@shohojdhara/atomix 0.1.30 → 0.2.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/CHANGELOG.md +0 -0
- package/LICENSE +0 -0
- package/README.md +151 -39
- package/dist/atomix.css +13529 -0
- package/dist/atomix.min.css +15 -0
- package/dist/index.d.ts +6112 -1757
- package/dist/index.esm.js +16852 -8364
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +16892 -8369
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/themes/boomdevs.css +13241 -0
- package/dist/themes/boomdevs.min.css +353 -0
- package/dist/themes/esrar.css +15374 -0
- package/dist/themes/esrar.min.css +189 -0
- package/dist/themes/mashroom.css +28079 -0
- package/dist/themes/mashroom.min.css +403 -0
- package/dist/themes/shaj-default.css +14203 -0
- package/dist/themes/shaj-default.min.css +500 -0
- package/dist/themes/yabai.css +13711 -0
- package/dist/themes/yabai.min.css +189 -0
- package/package.json +126 -99
- package/src/components/Accordion/Accordion.stories.tsx +271 -0
- package/src/components/Accordion/Accordion.tsx +131 -0
- package/src/components/Accordion/index.ts +3 -0
- package/src/components/AtomixLogo/AtomixLogo.tsx +36 -0
- package/src/components/AtomixLogo/index.ts +3 -0
- package/src/components/AtomixLogo.tsx +40 -0
- package/src/components/Avatar/Avatar.stories.tsx +257 -0
- package/src/components/Avatar/Avatar.tsx +68 -0
- package/src/components/Avatar/AvatarGroup.tsx +73 -0
- package/src/components/Avatar/index.ts +3 -0
- package/src/components/Badge/Badge.stories.tsx +371 -0
- package/src/components/Badge/Badge.tsx +39 -0
- package/src/components/Badge/index.ts +3 -0
- package/src/components/Block/Block.stories.tsx +408 -0
- package/src/components/Block/Block.tsx +137 -0
- package/src/components/Block/index.ts +1 -0
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +106 -0
- package/src/components/Breadcrumb/Breadcrumb.tsx +112 -0
- package/src/components/Breadcrumb/index.ts +3 -0
- package/src/components/Button/Button.stories.tsx +312 -0
- package/src/components/Button/Button.tsx +69 -0
- package/src/components/Button/index.ts +3 -0
- package/src/components/Callout/Callout.stories.tsx +588 -0
- package/src/components/Callout/Callout.tsx +78 -0
- package/src/components/Callout/index.ts +1 -0
- package/src/components/Card/Card.stories.tsx +105 -0
- package/src/components/Card/Card.tsx +69 -0
- package/src/components/Card/ElevationCard.tsx +47 -0
- package/src/components/Card/index.ts +15 -0
- package/src/components/Chart/AdvancedChart.tsx +624 -0
- package/src/components/Chart/AnimatedChart.tsx +206 -0
- package/src/components/Chart/AreaChart.tsx +27 -0
- package/src/components/Chart/BarChart.tsx +148 -0
- package/src/components/Chart/BubbleChart.tsx +411 -0
- package/src/components/Chart/CandlestickChart.tsx +765 -0
- package/src/components/Chart/Chart.stories.tsx +527 -0
- package/src/components/Chart/Chart.tsx +218 -0
- package/src/components/Chart/ChartRenderer.tsx +322 -0
- package/src/components/Chart/ChartToolbar.tsx +436 -0
- package/src/components/Chart/ChartTooltip.tsx +101 -0
- package/src/components/Chart/DonutChart.tsx +370 -0
- package/src/components/Chart/FunnelChart.tsx +393 -0
- package/src/components/Chart/GaugeChart.tsx +550 -0
- package/src/components/Chart/HeatmapChart.tsx +614 -0
- package/src/components/Chart/LineChart.tsx +172 -0
- package/src/components/Chart/LineChartNew.tsx +167 -0
- package/src/components/Chart/MultiAxisChart.tsx +498 -0
- package/src/components/Chart/PieChart.tsx +103 -0
- package/src/components/Chart/RadarChart.tsx +332 -0
- package/src/components/Chart/RealTimeChart.tsx +436 -0
- package/src/components/Chart/ScatterChart.tsx +152 -0
- package/src/components/Chart/TreemapChart.tsx +574 -0
- package/src/components/Chart/WaterfallChart.tsx +450 -0
- package/src/components/Chart/index.ts +119 -0
- package/src/components/Chart/types.ts +338 -0
- package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +44 -0
- package/src/components/ColorModeToggle/ColorModeToggle.tsx +85 -0
- package/src/components/ColorModeToggle/index.ts +2 -0
- package/src/components/Countdown/Countdown.stories.tsx +46 -0
- package/src/components/Countdown/Countdown.tsx +90 -0
- package/src/components/Countdown/index.ts +2 -0
- package/src/components/DataTable/DataTable.stories.tsx +248 -0
- package/src/components/DataTable/DataTable.tsx +213 -0
- package/src/components/DataTable/index.ts +3 -0
- package/src/components/DatePicker/DatePicker.stories.tsx +364 -0
- package/src/components/DatePicker/DatePicker.tsx +504 -0
- package/src/components/DatePicker/index.ts +4 -0
- package/src/components/DatePicker/readme.md +106 -0
- package/src/components/DatePicker/types.ts +167 -0
- package/src/components/DatePicker/utils.ts +185 -0
- package/src/components/Dropdown/Dropdown.stories.tsx +358 -0
- package/src/components/Dropdown/Dropdown.tsx +352 -0
- package/src/components/Dropdown/index.ts +14 -0
- package/src/components/Dropdown/readme.md +151 -0
- package/src/components/EdgePanel/EdgePanel.stories.tsx +266 -0
- package/src/components/EdgePanel/EdgePanel.tsx +73 -0
- package/src/components/EdgePanel/index.ts +1 -0
- package/src/components/Form/Checkbox.stories.tsx +76 -0
- package/src/components/Form/Checkbox.tsx +69 -0
- package/src/components/Form/Form.stories.tsx +497 -0
- package/src/components/Form/Form.tsx +46 -0
- package/src/components/Form/FormGroup.stories.tsx +162 -0
- package/src/components/Form/FormGroup.tsx +53 -0
- package/src/components/Form/Input.stories.tsx +106 -0
- package/src/components/Form/Input.tsx +87 -0
- package/src/components/Form/Radio.stories.tsx +94 -0
- package/src/components/Form/Radio.tsx +65 -0
- package/src/components/Form/Select.stories.tsx +151 -0
- package/src/components/Form/Select.tsx +191 -0
- package/src/components/Form/Textarea.stories.tsx +123 -0
- package/src/components/Form/Textarea.tsx +78 -0
- package/src/components/Form/index.ts +7 -0
- package/src/components/Hero/Hero.stories.tsx +295 -0
- package/src/components/Hero/Hero.tsx +175 -0
- package/src/components/Hero/index.ts +6 -0
- package/src/components/Icon/Icon.tsx +87 -0
- package/src/components/Icon/index.ts +2 -0
- package/src/components/List/List.stories.tsx +122 -0
- package/src/components/List/List.tsx +35 -0
- package/src/components/List/ListGroup.tsx +35 -0
- package/src/components/List/index.ts +2 -0
- package/src/components/Messages/Messages.stories.tsx +160 -0
- package/src/components/Messages/Messages.tsx +172 -0
- package/src/components/Messages/index.ts +3 -0
- package/src/components/Modal/Modal.stories.tsx +284 -0
- package/src/components/Modal/Modal.tsx +198 -0
- package/src/components/Modal/README.md +169 -0
- package/src/components/Modal/index.ts +1 -0
- package/src/components/Navigation/Menu/MegaMenu.tsx +109 -0
- package/src/components/Navigation/Menu/Menu.stories.tsx +339 -0
- package/src/components/Navigation/Menu/Menu.tsx +111 -0
- package/src/components/Navigation/Nav/Nav.stories.tsx +456 -0
- package/src/components/Navigation/Nav/Nav.tsx +51 -0
- package/src/components/Navigation/Nav/NavDropdown.tsx +105 -0
- package/src/components/Navigation/Nav/NavItem.tsx +168 -0
- package/src/components/Navigation/Navbar/Navbar.stories.tsx +569 -0
- package/src/components/Navigation/Navbar/Navbar.tsx +150 -0
- package/src/components/Navigation/README.md +314 -0
- package/src/components/Navigation/SideMenu/SideMenu.README.md +494 -0
- package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +609 -0
- package/src/components/Navigation/SideMenu/SideMenu.tsx +101 -0
- package/src/components/Navigation/SideMenu/SideMenuItem.tsx +103 -0
- package/src/components/Navigation/SideMenu/SideMenuList.tsx +41 -0
- package/src/components/Navigation/index.ts +23 -0
- package/src/components/Pagination/Pagination.stories.tsx +188 -0
- package/src/components/Pagination/Pagination.tsx +162 -0
- package/src/components/Pagination/index.ts +1 -0
- package/src/components/PhotoViewer/PhotoViewer.stories.tsx +397 -0
- package/src/components/PhotoViewer/PhotoViewer.tsx +246 -0
- package/src/components/PhotoViewer/PhotoViewerHeader.tsx +184 -0
- package/src/components/PhotoViewer/PhotoViewerImage.tsx +173 -0
- package/src/components/PhotoViewer/PhotoViewerInfo.tsx +91 -0
- package/src/components/PhotoViewer/PhotoViewerNavigation.tsx +85 -0
- package/src/components/PhotoViewer/PhotoViewerThumbnails.tsx +63 -0
- package/src/components/PhotoViewer/README.md +358 -0
- package/src/components/PhotoViewer/examples/ImageGallery.tsx +187 -0
- package/src/components/PhotoViewer/examples/SimpleGallery.tsx +73 -0
- package/src/components/PhotoViewer/examples/index.ts +2 -0
- package/src/components/PhotoViewer/index.ts +14 -0
- package/src/components/Popover/Popover.stories.tsx +143 -0
- package/src/components/Popover/Popover.tsx +137 -0
- package/src/components/Popover/index.ts +5 -0
- package/src/components/Popover/readme.md +120 -0
- package/src/components/ProductReview/ProductReview.stories.tsx +88 -0
- package/src/components/ProductReview/ProductReview.tsx +169 -0
- package/src/components/ProductReview/index.ts +3 -0
- package/src/components/Progress/Progress.stories.tsx +75 -0
- package/src/components/Progress/Progress.tsx +45 -0
- package/src/components/Progress/index.ts +1 -0
- package/src/components/Rating/Rating.stories.tsx +109 -0
- package/src/components/Rating/Rating.tsx +286 -0
- package/src/components/Rating/index.ts +6 -0
- package/src/components/River/River.stories.tsx +230 -0
- package/src/components/River/River.tsx +134 -0
- package/src/components/River/index.ts +2 -0
- package/src/components/SectionIntro/SectionIntro.stories.tsx +143 -0
- package/src/components/SectionIntro/SectionIntro.tsx +184 -0
- package/src/components/SectionIntro/index.ts +3 -0
- package/src/components/Slider/Slider.stories.tsx +241 -0
- package/src/components/Slider/Slider.tsx +225 -0
- package/src/components/Slider/index.ts +24 -0
- package/src/components/Spinner/Spinner.stories.tsx +65 -0
- package/src/components/Spinner/Spinner.tsx +36 -0
- package/src/components/Spinner/index.ts +2 -0
- package/src/components/Steps/Steps.stories.tsx +158 -0
- package/src/components/Steps/Steps.tsx +115 -0
- package/src/components/Steps/index.ts +3 -0
- package/src/components/Tab/Tab.stories.tsx +129 -0
- package/src/components/Tab/Tab.tsx +111 -0
- package/src/components/Tab/index.ts +2 -0
- package/src/components/Testimonial/Testimonial.stories.tsx +180 -0
- package/src/components/Testimonial/Testimonial.tsx +138 -0
- package/src/components/Testimonial/index.ts +3 -0
- package/src/components/Todo/Todo.stories.tsx +103 -0
- package/src/components/Todo/Todo.tsx +158 -0
- package/src/components/Todo/index.ts +1 -0
- package/src/components/Toggle/Toggle.stories.tsx +49 -0
- package/src/components/Toggle/Toggle.tsx +84 -0
- package/src/components/Toggle/index.ts +2 -0
- package/src/components/Tooltip/Tooltip.stories.tsx +115 -0
- package/src/components/Tooltip/Tooltip.tsx +150 -0
- package/src/components/Tooltip/index.ts +3 -0
- package/src/components/Upload/Upload.stories.tsx +220 -0
- package/src/components/Upload/Upload.tsx +354 -0
- package/src/components/Upload/index.ts +3 -0
- package/src/components/VideoPlayer/VideoPlayer.stories.tsx +484 -0
- package/src/components/VideoPlayer/VideoPlayer.tsx +574 -0
- package/src/components/VideoPlayer/index.ts +7 -0
- package/src/components/index.ts +111 -0
- package/src/layouts/Grid/Container.tsx +58 -0
- package/src/layouts/Grid/Grid.stories.tsx +861 -0
- package/src/layouts/Grid/Grid.tsx +68 -0
- package/src/layouts/Grid/GridCol.tsx +161 -0
- package/src/layouts/Grid/README.md +108 -0
- package/src/layouts/Grid/Row.tsx +70 -0
- package/src/layouts/Grid/index.ts +8 -0
- package/src/layouts/MasonryGrid/MasonryGrid.stories.tsx +387 -0
- package/src/layouts/MasonryGrid/MasonryGrid.tsx +408 -0
- package/src/layouts/MasonryGrid/MasonryGridItem.tsx +44 -0
- package/src/layouts/MasonryGrid/README.md +117 -0
- package/src/layouts/MasonryGrid/index.ts +4 -0
- package/src/layouts/index.ts +7 -0
- package/src/lib/README.md +89 -0
- package/src/lib/composables/index.ts +63 -0
- package/src/lib/composables/useAccordion.ts +129 -0
- package/src/lib/composables/useAmbientMode.ts +90 -0
- package/src/lib/composables/useBadge.ts +42 -0
- package/src/lib/composables/useBarChart.ts +365 -0
- package/src/lib/composables/useBlock.ts +56 -0
- package/src/lib/composables/useBreadcrumb.ts +81 -0
- package/src/lib/composables/useButton.ts +59 -0
- package/src/lib/composables/useCallout.ts +55 -0
- package/src/lib/composables/useCard.ts +155 -0
- package/src/lib/composables/useChart.ts +1082 -0
- package/src/lib/composables/useChartAnalytics.ts +505 -0
- package/src/lib/composables/useChartData.ts +38 -0
- package/src/lib/composables/useChartExport.ts +392 -0
- package/src/lib/composables/useChartInteraction.ts +34 -0
- package/src/lib/composables/useChartInteractions.ts +123 -0
- package/src/lib/composables/useChartPerformance.ts +323 -0
- package/src/lib/composables/useChartScale.ts +48 -0
- package/src/lib/composables/useChartToolbar.ts +532 -0
- package/src/lib/composables/useCheckbox.ts +70 -0
- package/src/lib/composables/useDataTable.ts +208 -0
- package/src/lib/composables/useDatePicker.ts +564 -0
- package/src/lib/composables/useDropdown.ts +272 -0
- package/src/lib/composables/useEdgePanel.ts +261 -0
- package/src/lib/composables/useForm.ts +62 -0
- package/src/lib/composables/useFormGroup.ts +51 -0
- package/src/lib/composables/useHero.ts +250 -0
- package/src/lib/composables/useInput.ts +58 -0
- package/src/lib/composables/useLineChart.ts +319 -0
- package/src/lib/composables/useMessages.ts +77 -0
- package/src/lib/composables/useModal.ts +110 -0
- package/src/lib/composables/useNavbar.ts +288 -0
- package/src/lib/composables/usePagination.ts +101 -0
- package/src/lib/composables/usePhotoViewer.ts +937 -0
- package/src/lib/composables/usePieChart.ts +362 -0
- package/src/lib/composables/usePopover.ts +354 -0
- package/src/lib/composables/useProgress.ts +74 -0
- package/src/lib/composables/useRadio.ts +47 -0
- package/src/lib/composables/useRating.ts +174 -0
- package/src/lib/composables/useRiver.ts +205 -0
- package/src/lib/composables/useSelect.ts +52 -0
- package/src/lib/composables/useSideMenu.ts +197 -0
- package/src/lib/composables/useSlider.ts +339 -0
- package/src/lib/composables/useSpinner.ts +42 -0
- package/src/lib/composables/useTextarea.ts +55 -0
- package/src/lib/composables/useTodo.ts +141 -0
- package/src/lib/composables/useVideoPlayer.ts +398 -0
- package/src/lib/constants/components.ts +1433 -0
- package/src/lib/constants/index.ts +4 -0
- package/src/lib/index.ts +11 -0
- package/src/lib/types/components.ts +4750 -0
- package/src/lib/types/index.ts +2 -0
- package/src/lib/utils/dom.ts +41 -0
- package/src/lib/utils/icons.ts +74 -0
- package/src/lib/utils/index.ts +55 -0
- package/src/lib/utils/useForkRef.test.tsx +64 -0
- package/src/lib/utils/useForkRef.ts +36 -0
- package/src/lib/utils.test.ts +14 -0
- package/src/styles/01-settings/_index.scss +2 -0
- package/src/styles/01-settings/_settings.accordion.scss +7 -5
- package/src/styles/01-settings/_settings.animations.scss +0 -0
- package/src/styles/01-settings/_settings.avatar-group.scss +6 -3
- package/src/styles/01-settings/_settings.avatar.scss +2 -2
- package/src/styles/01-settings/_settings.badge.scss +15 -9
- package/src/styles/01-settings/_settings.block.scss +11 -0
- package/src/styles/01-settings/_settings.border-radius.scss +12 -9
- package/src/styles/01-settings/_settings.border.scss +4 -1
- package/src/styles/01-settings/_settings.box-shadow.scss +1 -1
- package/src/styles/01-settings/_settings.breadcrumb.scss +9 -8
- package/src/styles/01-settings/_settings.breakpoints.scss +0 -0
- package/src/styles/01-settings/_settings.btn-group.scss +4 -1
- package/src/styles/01-settings/_settings.button.scss +19 -21
- package/src/styles/01-settings/_settings.callout.scss +42 -24
- package/src/styles/01-settings/_settings.card.scss +12 -10
- package/src/styles/01-settings/_settings.chart.scss +199 -0
- package/src/styles/01-settings/_settings.checkbox-group.scss +0 -0
- package/src/styles/01-settings/_settings.checkbox.scss +0 -0
- package/src/styles/01-settings/_settings.color-mode.scss +0 -0
- package/src/styles/01-settings/_settings.colors.scss +20 -0
- package/src/styles/01-settings/_settings.config.scss +1 -1
- package/src/styles/01-settings/_settings.countdown.scss +0 -0
- package/src/styles/01-settings/_settings.data-table.scss +0 -0
- package/src/styles/01-settings/_settings.datepicker.scss +0 -0
- package/src/styles/01-settings/_settings.dropdown.scss +0 -0
- package/src/styles/01-settings/_settings.edge-panel.scss +0 -0
- package/src/styles/01-settings/_settings.fonts.scss +1 -1
- package/src/styles/01-settings/_settings.form-group.scss +0 -0
- package/src/styles/01-settings/_settings.form.scss +0 -0
- package/src/styles/01-settings/_settings.grid.scss +3 -3
- package/src/styles/01-settings/_settings.hero.scss +1 -1
- package/src/styles/01-settings/_settings.input.scss +1 -1
- package/src/styles/01-settings/_settings.link.scss +0 -0
- package/src/styles/01-settings/_settings.list-group.scss +0 -0
- package/src/styles/01-settings/_settings.list.scss +0 -0
- package/src/styles/01-settings/_settings.maps.scss +43 -8
- package/src/styles/01-settings/_settings.masonry-grid.scss +0 -0
- package/src/styles/01-settings/_settings.menu.scss +0 -0
- package/src/styles/01-settings/_settings.messages.scss +0 -0
- package/src/styles/01-settings/_settings.modal.scss +1 -1
- package/src/styles/01-settings/_settings.nav.scss +0 -0
- package/src/styles/01-settings/_settings.navbar.scss +0 -0
- package/src/styles/01-settings/_settings.pagination.scss +0 -0
- package/src/styles/01-settings/_settings.photoviewer.scss +89 -23
- package/src/styles/01-settings/_settings.popover.scss +0 -0
- package/src/styles/01-settings/_settings.position.scss +0 -0
- package/src/styles/01-settings/_settings.progress.scss +0 -0
- package/src/styles/01-settings/_settings.rating.scss +0 -0
- package/src/styles/01-settings/_settings.river.scss +0 -0
- package/src/styles/01-settings/_settings.sectionintro.scss +0 -0
- package/src/styles/01-settings/_settings.select.scss +0 -0
- package/src/styles/01-settings/_settings.side-menu.scss +0 -0
- package/src/styles/01-settings/_settings.skeleton.scss +0 -0
- package/src/styles/01-settings/_settings.slider.scss +59 -0
- package/src/styles/01-settings/_settings.spacing.scss +11 -3
- package/src/styles/01-settings/_settings.spinner.scss +0 -0
- package/src/styles/01-settings/_settings.steps.scss +1 -1
- package/src/styles/01-settings/_settings.tabs.scss +4 -4
- package/src/styles/01-settings/_settings.testimonials.scss +0 -0
- package/src/styles/01-settings/_settings.todo.scss +0 -0
- package/src/styles/01-settings/_settings.toggle.scss +1 -1
- package/src/styles/01-settings/_settings.tooltip.scss +0 -0
- package/src/styles/01-settings/_settings.typography.scss +2 -0
- package/src/styles/01-settings/_settings.upload.scss +0 -0
- package/src/styles/01-settings/_settings.video-player.scss +64 -0
- package/src/styles/01-settings/_settings.z-layers.scss +0 -0
- package/src/styles/02-tools/_index.scss +1 -0
- package/src/styles/02-tools/_tools.animations.scss +82 -0
- package/src/styles/02-tools/_tools.border-radius.scss +0 -0
- package/src/styles/02-tools/_tools.breakpoints.scss +0 -0
- package/src/styles/02-tools/_tools.button.scss +5 -0
- package/src/styles/02-tools/_tools.clearfix.scss +0 -0
- package/src/styles/02-tools/_tools.color-functions.scss +0 -0
- package/src/styles/02-tools/_tools.color-mode.scss +1 -1
- package/src/styles/02-tools/_tools.component.scss +479 -0
- package/src/styles/02-tools/_tools.event.scss +0 -0
- package/src/styles/02-tools/_tools.grid.scss +0 -0
- package/src/styles/02-tools/_tools.hidden-visually.scss +0 -0
- package/src/styles/02-tools/_tools.hidden.scss +0 -0
- package/src/styles/02-tools/_tools.map-loop.scss +0 -0
- package/src/styles/02-tools/_tools.media-queries.scss +0 -0
- package/src/styles/02-tools/_tools.object-fit.scss +0 -0
- package/src/styles/02-tools/_tools.placeholder.scss +0 -0
- package/src/styles/02-tools/_tools.rem.scss +5 -1
- package/src/styles/02-tools/_tools.size.scss +0 -0
- package/src/styles/02-tools/_tools.spacing.scss +0 -0
- package/src/styles/02-tools/_tools.to-rgb.scss +0 -0
- package/src/styles/02-tools/_tools.transition.scss +0 -0
- package/src/styles/02-tools/_tools.utilities.scss +0 -0
- package/src/styles/02-tools/_tools.utility-api.scss +23 -2
- package/src/styles/03-generic/_generic.fonts.scss +0 -0
- package/src/styles/03-generic/_generic.reset.scss +0 -0
- package/src/styles/03-generic/_generic.root.scss +5 -1
- package/src/styles/03-generic/_generic.selection.scss +0 -0
- package/src/styles/03-generic/_index.scss +0 -0
- package/src/styles/04-elements/_elements.all.scss +0 -0
- package/src/styles/04-elements/_elements.body.scss +0 -0
- package/src/styles/04-elements/_elements.heading.scss +0 -0
- package/src/styles/04-elements/_elements.html.scss +0 -0
- package/src/styles/04-elements/_elements.links.scss +0 -0
- package/src/styles/04-elements/_index.scss +0 -0
- package/src/styles/05-objects/_index.scss +1 -0
- package/src/styles/05-objects/_objects.block.scss +122 -0
- package/src/styles/05-objects/_objects.container.scss +14 -10
- package/src/styles/05-objects/_objects.grid.scss +0 -0
- package/src/styles/05-objects/_objects.masonry-grid.scss +0 -0
- package/src/styles/06-components/_components.accordion.scss +3 -1
- package/src/styles/06-components/_components.avatar-group.scss +0 -0
- package/src/styles/06-components/_components.avatar.scss +0 -0
- package/src/styles/06-components/_components.badge.scss +9 -9
- package/src/styles/06-components/_components.breadcrumb.scss +0 -0
- package/src/styles/06-components/_components.btn-group.scss +0 -0
- package/src/styles/06-components/_components.button.scss +0 -0
- package/src/styles/06-components/_components.callout.scss +2 -1
- package/src/styles/06-components/_components.card.scss +0 -1
- package/src/styles/06-components/_components.chart.scss +2102 -0
- package/src/styles/06-components/_components.checkbox-group.scss +0 -0
- package/src/styles/06-components/_components.checkbox.scss +0 -0
- package/src/styles/06-components/_components.color-mode-toggle.scss +0 -0
- package/src/styles/06-components/_components.countdown.scss +0 -0
- package/src/styles/06-components/_components.data-table.scss +0 -0
- package/src/styles/06-components/_components.datepicker.scss +0 -0
- package/src/styles/06-components/_components.dropdown.scss +0 -0
- package/src/styles/06-components/_components.edge-panel.scss +0 -0
- package/src/styles/06-components/_components.form-group.scss +0 -0
- package/src/styles/06-components/_components.form.scss +0 -0
- package/src/styles/06-components/_components.hero.scss +1 -0
- package/src/styles/06-components/_components.icon.scss +2 -2
- package/src/styles/06-components/_components.image-gallery.scss +0 -0
- package/src/styles/06-components/_components.input.scss +0 -0
- package/src/styles/06-components/_components.list-group.scss +0 -0
- package/src/styles/06-components/_components.list.scss +0 -0
- package/src/styles/06-components/_components.menu.scss +0 -0
- package/src/styles/06-components/_components.messages.scss +0 -0
- package/src/styles/06-components/_components.modal.scss +3 -0
- package/src/styles/06-components/_components.nav.scss +0 -0
- package/src/styles/06-components/_components.navbar.scss +0 -0
- package/src/styles/06-components/_components.pagination.scss +0 -0
- package/src/styles/06-components/_components.photoviewer.scss +603 -545
- package/src/styles/06-components/_components.popover.scss +0 -0
- package/src/styles/06-components/_components.product-review.scss +0 -0
- package/src/styles/06-components/_components.progress.scss +0 -0
- package/src/styles/06-components/_components.rating.scss +0 -0
- package/src/styles/06-components/_components.river.scss +0 -0
- package/src/styles/06-components/_components.sectionintro.scss +0 -0
- package/src/styles/06-components/_components.select.scss +0 -0
- package/src/styles/06-components/_components.side-menu.scss +0 -0
- package/src/styles/06-components/_components.skeleton.scss +0 -0
- package/src/styles/06-components/_components.slider.scss +273 -0
- package/src/styles/06-components/_components.spinner.scss +0 -0
- package/src/styles/06-components/_components.steps.scss +1 -0
- package/src/styles/06-components/_components.tabs.scss +0 -0
- package/src/styles/06-components/_components.testimonials.scss +0 -0
- package/src/styles/06-components/_components.todo.scss +0 -0
- package/src/styles/06-components/_components.toggle.scss +0 -0
- package/src/styles/06-components/_components.tooltip.scss +4 -9
- package/src/styles/06-components/_components.upload.scss +0 -0
- package/src/styles/06-components/_components.video-player.scss +623 -0
- package/src/styles/06-components/_index.scss +3 -0
- package/src/styles/06-components/old.chart.styles.scss +2819 -0
- package/src/styles/99-utilities/_index.scss +0 -0
- package/src/styles/99-utilities/_utilities.background.scss +0 -0
- package/src/styles/99-utilities/_utilities.border.scss +0 -0
- package/src/styles/99-utilities/_utilities.clearfix.scss +0 -0
- package/src/styles/99-utilities/_utilities.display.scss +0 -0
- package/src/styles/99-utilities/_utilities.flex.scss +0 -0
- package/src/styles/99-utilities/_utilities.link.scss +0 -0
- package/src/styles/99-utilities/_utilities.object-fit.scss +0 -0
- package/src/styles/99-utilities/_utilities.opacity.scss +0 -0
- package/src/styles/99-utilities/_utilities.overflow.scss +0 -0
- package/src/styles/99-utilities/_utilities.position.scss +0 -0
- package/src/styles/99-utilities/_utilities.scss +2 -1
- package/src/styles/99-utilities/_utilities.shadow.scss +0 -0
- package/src/styles/99-utilities/_utilities.sizes.scss +0 -0
- package/src/styles/99-utilities/_utilities.spacing.scss +0 -0
- package/src/styles/99-utilities/_utilities.text.scss +5 -0
- package/src/styles/99-utilities/_utilities.visibility.scss +0 -0
- package/src/styles/99-utilities/_utilities.visually-hidden.scss +0 -0
- package/src/styles/99-utilities/_utilities.z-index.scss +0 -0
- package/src/styles/css-modules.d.ts +0 -0
- package/src/styles/index.scss +0 -0
- package/dist/index.css +0 -15
- package/dist/index.esm.css +0 -15
- package/dist/index.min.css +0 -15
|
@@ -0,0 +1,4750 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Common component size options
|
|
5
|
+
*/
|
|
6
|
+
export type Size = 'sm' | 'md' | 'lg';
|
|
7
|
+
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// THEME SYSTEM TYPES
|
|
10
|
+
// ============================================================================
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Available theme variants in the Shaj theme system
|
|
14
|
+
*/
|
|
15
|
+
export type ThemeName =
|
|
16
|
+
| 'shaj-default'
|
|
17
|
+
| 'shaj-ocean'
|
|
18
|
+
| 'shaj-sunset'
|
|
19
|
+
| 'shaj-forest'
|
|
20
|
+
| 'shaj-midnight'
|
|
21
|
+
| 'shaj-pastel';
|
|
22
|
+
|
|
23
|
+
// ============================================================================
|
|
24
|
+
// END THEME SYSTEM TYPES
|
|
25
|
+
// ============================================================================
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Theme color variants
|
|
29
|
+
*/
|
|
30
|
+
export type ThemeColor =
|
|
31
|
+
| 'primary'
|
|
32
|
+
| 'secondary'
|
|
33
|
+
| 'tertiary'
|
|
34
|
+
| 'invert'
|
|
35
|
+
| 'brand'
|
|
36
|
+
| 'error'
|
|
37
|
+
| 'success'
|
|
38
|
+
| 'warning'
|
|
39
|
+
| 'info'
|
|
40
|
+
| 'light'
|
|
41
|
+
| 'dark';
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Component variant including theme colors and outline variants
|
|
45
|
+
*/
|
|
46
|
+
export type Variant = ThemeColor | `outline-${ThemeColor}` | 'link';
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Base component properties interface
|
|
50
|
+
*/
|
|
51
|
+
export interface BaseComponentProps {
|
|
52
|
+
/**
|
|
53
|
+
* Additional CSS class names
|
|
54
|
+
*/
|
|
55
|
+
className?: string;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Component disabled state
|
|
59
|
+
*/
|
|
60
|
+
disabled?: boolean;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* CSS class state modifiers
|
|
65
|
+
*/
|
|
66
|
+
export type StateModifier =
|
|
67
|
+
| 'is-open'
|
|
68
|
+
| 'is-closed'
|
|
69
|
+
| 'is-active'
|
|
70
|
+
| 'is-disabled'
|
|
71
|
+
| 'is-loading'
|
|
72
|
+
| 'is-selected'
|
|
73
|
+
| 'is-animating'
|
|
74
|
+
| 'is-hovered';
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Icon position options
|
|
78
|
+
*/
|
|
79
|
+
export type IconPosition = 'left' | 'right';
|
|
80
|
+
|
|
81
|
+
export type listvariant = 'dash' | 'number' | 'text';
|
|
82
|
+
/**;
|
|
83
|
+
* List component properties
|
|
84
|
+
*/
|
|
85
|
+
export interface ListProps extends BaseComponentProps {
|
|
86
|
+
children?: ReactNode;
|
|
87
|
+
/**
|
|
88
|
+
* List items
|
|
89
|
+
*/
|
|
90
|
+
items?: ReactNode[];
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* List variant
|
|
94
|
+
*/
|
|
95
|
+
variant?: listvariant;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* List size
|
|
99
|
+
*/
|
|
100
|
+
size?: Size;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Whether the list is ordered
|
|
104
|
+
*/
|
|
105
|
+
ordered?: boolean;
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Whether to display list items inline
|
|
109
|
+
*/
|
|
110
|
+
inline?: boolean;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* List group component properties
|
|
115
|
+
*/
|
|
116
|
+
export interface ListGroupProps extends BaseComponentProps {
|
|
117
|
+
/**
|
|
118
|
+
* List group children
|
|
119
|
+
*/
|
|
120
|
+
children?: ReactNode;
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* List group variant
|
|
124
|
+
*/
|
|
125
|
+
variant?: Variant;
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* List group size
|
|
129
|
+
*/
|
|
130
|
+
size?: Size;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Button component properties
|
|
135
|
+
*/
|
|
136
|
+
export interface ButtonProps extends BaseComponentProps {
|
|
137
|
+
/**
|
|
138
|
+
* Button contents
|
|
139
|
+
*/
|
|
140
|
+
label: string;
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Optional click handler
|
|
144
|
+
*/
|
|
145
|
+
onClick?: () => void;
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Button variant
|
|
149
|
+
*/
|
|
150
|
+
variant?: Variant;
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Button size
|
|
154
|
+
*/
|
|
155
|
+
size?: Size;
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Optional icon
|
|
159
|
+
*/
|
|
160
|
+
icon?: ReactNode;
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Icon only button
|
|
164
|
+
*/
|
|
165
|
+
iconOnly?: boolean;
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Make button fully rounded (pill shape)
|
|
169
|
+
*/
|
|
170
|
+
rounded?: boolean;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Badge component properties
|
|
175
|
+
*/
|
|
176
|
+
export interface BadgeProps extends BaseComponentProps {
|
|
177
|
+
/**
|
|
178
|
+
* Badge text content
|
|
179
|
+
*/
|
|
180
|
+
label: string;
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Badge color variant
|
|
184
|
+
*/
|
|
185
|
+
variant?: ThemeColor;
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Badge size
|
|
189
|
+
*/
|
|
190
|
+
size?: Size;
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Optional icon
|
|
194
|
+
*/
|
|
195
|
+
icon?: ReactNode;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* Callout component properties
|
|
200
|
+
*/
|
|
201
|
+
export interface CalloutProps extends BaseComponentProps {
|
|
202
|
+
/**
|
|
203
|
+
* Callout title
|
|
204
|
+
*/
|
|
205
|
+
title?: ReactNode;
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Callout content
|
|
209
|
+
*/
|
|
210
|
+
children?: ReactNode;
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Optional icon
|
|
214
|
+
*/
|
|
215
|
+
icon?: ReactNode;
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Callout variant
|
|
219
|
+
*/
|
|
220
|
+
variant?: ThemeColor;
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Optional close handler
|
|
224
|
+
*/
|
|
225
|
+
onClose?: () => void;
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Optional action buttons
|
|
229
|
+
*/
|
|
230
|
+
actions?: ReactNode;
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Display in one line mode
|
|
234
|
+
*/
|
|
235
|
+
oneLine?: boolean;
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Display as toast notification
|
|
239
|
+
*/
|
|
240
|
+
toast?: boolean;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Accordion component properties
|
|
245
|
+
*/
|
|
246
|
+
export interface AccordionProps extends BaseComponentProps {
|
|
247
|
+
/**
|
|
248
|
+
* Title of the accordion
|
|
249
|
+
*/
|
|
250
|
+
title: string;
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Content to be shown when accordion is expanded
|
|
254
|
+
*/
|
|
255
|
+
children: ReactNode;
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Whether the accordion is initially open
|
|
259
|
+
*/
|
|
260
|
+
defaultOpen?: boolean;
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* Position of the icon (right or left)
|
|
264
|
+
*/
|
|
265
|
+
iconPosition?: IconPosition;
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Custom icon for the accordion
|
|
269
|
+
*/
|
|
270
|
+
icon?: ReactNode;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* Accordion state
|
|
275
|
+
*/
|
|
276
|
+
export interface AccordionState {
|
|
277
|
+
/**
|
|
278
|
+
* Whether the accordion is open
|
|
279
|
+
*/
|
|
280
|
+
isOpen: boolean;
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* Current panel height CSS value
|
|
284
|
+
*/
|
|
285
|
+
panelHeight: string;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* Common element ref types
|
|
290
|
+
*/
|
|
291
|
+
export interface ElementRefs {
|
|
292
|
+
panelRef?: React.RefObject<HTMLDivElement | null>;
|
|
293
|
+
contentRef?: React.RefObject<HTMLDivElement | null>;
|
|
294
|
+
buttonRef?: React.RefObject<HTMLButtonElement | null>;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* Hero alignment options
|
|
299
|
+
*/
|
|
300
|
+
export type HeroAlignment = 'left' | 'center' | 'right';
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Hero component properties
|
|
304
|
+
*/
|
|
305
|
+
export interface HeroProps extends BaseComponentProps {
|
|
306
|
+
/**
|
|
307
|
+
* Hero title
|
|
308
|
+
*/
|
|
309
|
+
title: string;
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* Hero subtitle
|
|
313
|
+
*/
|
|
314
|
+
subtitle?: string;
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* Hero text content
|
|
318
|
+
*/
|
|
319
|
+
text?: string;
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* Image source for the hero
|
|
323
|
+
*/
|
|
324
|
+
imageSrc?: string;
|
|
325
|
+
|
|
326
|
+
/**
|
|
327
|
+
* Image alt text
|
|
328
|
+
*/
|
|
329
|
+
imageAlt?: string;
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* Content alignment
|
|
333
|
+
*/
|
|
334
|
+
alignment?: HeroAlignment;
|
|
335
|
+
|
|
336
|
+
/**
|
|
337
|
+
* Background image source
|
|
338
|
+
*/
|
|
339
|
+
backgroundImageSrc?: string;
|
|
340
|
+
|
|
341
|
+
/**
|
|
342
|
+
* Whether to show the background overlay
|
|
343
|
+
*/
|
|
344
|
+
showOverlay?: boolean;
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* Whether the hero should take full viewport height
|
|
348
|
+
*/
|
|
349
|
+
fullViewportHeight?: boolean;
|
|
350
|
+
|
|
351
|
+
/**
|
|
352
|
+
* Actions to display in the hero
|
|
353
|
+
*/
|
|
354
|
+
actions?: ReactNode;
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* Custom grid column size for image (default is 7)
|
|
358
|
+
*/
|
|
359
|
+
imageColSize?: number;
|
|
360
|
+
|
|
361
|
+
/**
|
|
362
|
+
* Custom grid column size for content (default is 5)
|
|
363
|
+
*/
|
|
364
|
+
contentColSize?: number;
|
|
365
|
+
|
|
366
|
+
/**
|
|
367
|
+
* Custom width for the hero content (overrides the default CSS variable)
|
|
368
|
+
*/
|
|
369
|
+
contentWidth?: string;
|
|
370
|
+
|
|
371
|
+
/**
|
|
372
|
+
* Enable parallax effect on background image
|
|
373
|
+
*/
|
|
374
|
+
parallax?: boolean;
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* Parallax effect intensity (0-1)
|
|
378
|
+
*/
|
|
379
|
+
parallaxIntensity?: number;
|
|
380
|
+
|
|
381
|
+
/**
|
|
382
|
+
* Video background URL
|
|
383
|
+
*/
|
|
384
|
+
videoBackground?: string;
|
|
385
|
+
|
|
386
|
+
/**
|
|
387
|
+
* Video background options
|
|
388
|
+
*/
|
|
389
|
+
videoOptions?: {
|
|
390
|
+
/**
|
|
391
|
+
* Whether the video should autoplay
|
|
392
|
+
*/
|
|
393
|
+
autoplay?: boolean;
|
|
394
|
+
|
|
395
|
+
/**
|
|
396
|
+
* Whether the video should loop
|
|
397
|
+
*/
|
|
398
|
+
loop?: boolean;
|
|
399
|
+
|
|
400
|
+
/**
|
|
401
|
+
* Whether the video should be muted
|
|
402
|
+
*/
|
|
403
|
+
muted?: boolean;
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* Poster image URL for the video
|
|
407
|
+
*/
|
|
408
|
+
posterUrl?: string;
|
|
409
|
+
};
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
/**
|
|
413
|
+
* Spinner component properties
|
|
414
|
+
*/
|
|
415
|
+
export interface SpinnerProps extends BaseComponentProps {
|
|
416
|
+
/**
|
|
417
|
+
* Spinner color variant
|
|
418
|
+
*/
|
|
419
|
+
variant?: ThemeColor;
|
|
420
|
+
|
|
421
|
+
/**
|
|
422
|
+
* Spinner size
|
|
423
|
+
*/
|
|
424
|
+
size?: Size;
|
|
425
|
+
|
|
426
|
+
/**
|
|
427
|
+
* Whether the spinner should be displayed fullscreen
|
|
428
|
+
*/
|
|
429
|
+
fullscreen?: boolean;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
/**
|
|
433
|
+
* Navbar position options
|
|
434
|
+
*/
|
|
435
|
+
export type NavbarPosition = 'static' | 'fixed' | 'fixed-bottom';
|
|
436
|
+
|
|
437
|
+
/**
|
|
438
|
+
* Nav item alignment options
|
|
439
|
+
*/
|
|
440
|
+
export type NavAlignment = 'start' | 'center' | 'end';
|
|
441
|
+
|
|
442
|
+
/**
|
|
443
|
+
* Nav variant options
|
|
444
|
+
*/
|
|
445
|
+
export type NavVariant = 'default' | 'float-top-center' | 'float-bottom-center';
|
|
446
|
+
|
|
447
|
+
/**
|
|
448
|
+
* Navbar component properties
|
|
449
|
+
*/
|
|
450
|
+
export interface NavbarProps extends BaseComponentProps {
|
|
451
|
+
/**
|
|
452
|
+
* Brand/logo component or text
|
|
453
|
+
*/
|
|
454
|
+
brand?: ReactNode;
|
|
455
|
+
|
|
456
|
+
/**
|
|
457
|
+
* Navbar navigation items
|
|
458
|
+
*/
|
|
459
|
+
children?: ReactNode;
|
|
460
|
+
|
|
461
|
+
/**
|
|
462
|
+
* Optional variant/color scheme
|
|
463
|
+
*/
|
|
464
|
+
variant?: ThemeColor;
|
|
465
|
+
|
|
466
|
+
/**
|
|
467
|
+
* Navbar position
|
|
468
|
+
*/
|
|
469
|
+
position?: NavbarPosition;
|
|
470
|
+
|
|
471
|
+
/**
|
|
472
|
+
* Container max width (default is from settings)
|
|
473
|
+
*/
|
|
474
|
+
containerWidth?: string;
|
|
475
|
+
|
|
476
|
+
/**
|
|
477
|
+
* Whether to collapse navbar on mobile
|
|
478
|
+
*/
|
|
479
|
+
collapsible?: boolean;
|
|
480
|
+
|
|
481
|
+
/**
|
|
482
|
+
* Whether navbar is expanded (for controlled component)
|
|
483
|
+
*/
|
|
484
|
+
expanded?: boolean;
|
|
485
|
+
|
|
486
|
+
/**
|
|
487
|
+
* Callback when expansion state changes
|
|
488
|
+
*/
|
|
489
|
+
onToggle?: (expanded: boolean) => void;
|
|
490
|
+
|
|
491
|
+
/**
|
|
492
|
+
* Whether to show backdrop when expanded on mobile
|
|
493
|
+
*/
|
|
494
|
+
backdrop?: boolean;
|
|
495
|
+
|
|
496
|
+
/**
|
|
497
|
+
* Whether to close navbar when clicking outside
|
|
498
|
+
*/
|
|
499
|
+
closeOnOutsideClick?: boolean;
|
|
500
|
+
|
|
501
|
+
/**
|
|
502
|
+
* Whether to close navbar on escape key press
|
|
503
|
+
*/
|
|
504
|
+
closeOnEscape?: boolean;
|
|
505
|
+
|
|
506
|
+
/**
|
|
507
|
+
* Custom aria-label for the navigation
|
|
508
|
+
*/
|
|
509
|
+
ariaLabel?: string;
|
|
510
|
+
|
|
511
|
+
/**
|
|
512
|
+
* ID for the navbar (used for accessibility)
|
|
513
|
+
*/
|
|
514
|
+
id?: string;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
/**
|
|
518
|
+
* Nav component properties
|
|
519
|
+
*/
|
|
520
|
+
export interface NavProps extends BaseComponentProps {
|
|
521
|
+
/**
|
|
522
|
+
* Navigation items
|
|
523
|
+
*/
|
|
524
|
+
children: ReactNode;
|
|
525
|
+
|
|
526
|
+
/**
|
|
527
|
+
* Alignment of nav items
|
|
528
|
+
*/
|
|
529
|
+
alignment?: NavAlignment;
|
|
530
|
+
|
|
531
|
+
/**
|
|
532
|
+
* Nav variant (including float variants)
|
|
533
|
+
*/
|
|
534
|
+
variant?: NavVariant;
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
/**
|
|
538
|
+
* Nav item properties
|
|
539
|
+
*/
|
|
540
|
+
export interface NavItemProps extends BaseComponentProps {
|
|
541
|
+
/**
|
|
542
|
+
* Item content
|
|
543
|
+
*/
|
|
544
|
+
children: ReactNode;
|
|
545
|
+
|
|
546
|
+
/**
|
|
547
|
+
* Whether this item has a dropdown
|
|
548
|
+
*/
|
|
549
|
+
dropdown?: boolean;
|
|
550
|
+
|
|
551
|
+
/**
|
|
552
|
+
* Whether this item has a mega menu
|
|
553
|
+
*/
|
|
554
|
+
megaMenu?: boolean;
|
|
555
|
+
|
|
556
|
+
/**
|
|
557
|
+
* Whether this item is active
|
|
558
|
+
*/
|
|
559
|
+
active?: boolean;
|
|
560
|
+
|
|
561
|
+
/**
|
|
562
|
+
* Optional href for link items
|
|
563
|
+
*/
|
|
564
|
+
href?: string;
|
|
565
|
+
|
|
566
|
+
/**
|
|
567
|
+
* Optional click handler
|
|
568
|
+
*/
|
|
569
|
+
onClick?: () => void;
|
|
570
|
+
|
|
571
|
+
/**
|
|
572
|
+
* Whether dropdown/mega menu is expanded
|
|
573
|
+
*/
|
|
574
|
+
'aria-expanded'?: boolean;
|
|
575
|
+
|
|
576
|
+
/**
|
|
577
|
+
* Optional custom link component
|
|
578
|
+
*/
|
|
579
|
+
LinkComponent?: React.ElementType;
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
/**
|
|
583
|
+
* Nav dropdown properties
|
|
584
|
+
*/
|
|
585
|
+
export interface NavDropdownProps extends BaseComponentProps {
|
|
586
|
+
/**
|
|
587
|
+
* Dropdown title/trigger content
|
|
588
|
+
*/
|
|
589
|
+
title: ReactNode;
|
|
590
|
+
|
|
591
|
+
/**
|
|
592
|
+
* Dropdown menu items
|
|
593
|
+
*/
|
|
594
|
+
children: ReactNode;
|
|
595
|
+
|
|
596
|
+
/**
|
|
597
|
+
* Dropdown alignment
|
|
598
|
+
*/
|
|
599
|
+
alignment?: 'start' | 'center' | 'end';
|
|
600
|
+
|
|
601
|
+
/**
|
|
602
|
+
* Whether it's a mega menu (full width)
|
|
603
|
+
*/
|
|
604
|
+
megaMenu?: boolean;
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
/**
|
|
608
|
+
* Menu component properties
|
|
609
|
+
*/
|
|
610
|
+
export interface MenuProps extends BaseComponentProps {
|
|
611
|
+
/**
|
|
612
|
+
* Menu content
|
|
613
|
+
*/
|
|
614
|
+
children: ReactNode;
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
/**
|
|
618
|
+
* Menu item properties
|
|
619
|
+
*/
|
|
620
|
+
export interface MenuItemProps extends BaseComponentProps {
|
|
621
|
+
/**
|
|
622
|
+
* Item content
|
|
623
|
+
*/
|
|
624
|
+
children: ReactNode;
|
|
625
|
+
|
|
626
|
+
/**
|
|
627
|
+
* Item href
|
|
628
|
+
*/
|
|
629
|
+
href?: string;
|
|
630
|
+
|
|
631
|
+
/**
|
|
632
|
+
* Item icon
|
|
633
|
+
*/
|
|
634
|
+
icon?: ReactNode;
|
|
635
|
+
|
|
636
|
+
/**
|
|
637
|
+
* Whether item is active
|
|
638
|
+
*/
|
|
639
|
+
active?: boolean;
|
|
640
|
+
|
|
641
|
+
/**
|
|
642
|
+
* Item click handler
|
|
643
|
+
*/
|
|
644
|
+
onClick?: () => void;
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
/**
|
|
648
|
+
* MegaMenu component properties
|
|
649
|
+
*/
|
|
650
|
+
export interface MegaMenuProps extends BaseComponentProps {
|
|
651
|
+
/**
|
|
652
|
+
* MegaMenu content
|
|
653
|
+
*/
|
|
654
|
+
children: ReactNode;
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
/**
|
|
658
|
+
* MegaMenu column properties
|
|
659
|
+
*/
|
|
660
|
+
export interface MegaMenuColumnProps extends BaseComponentProps {
|
|
661
|
+
/**
|
|
662
|
+
* Column title
|
|
663
|
+
*/
|
|
664
|
+
title?: ReactNode;
|
|
665
|
+
|
|
666
|
+
/**
|
|
667
|
+
* Column icon
|
|
668
|
+
*/
|
|
669
|
+
icon?: ReactNode;
|
|
670
|
+
|
|
671
|
+
/**
|
|
672
|
+
* Column content
|
|
673
|
+
*/
|
|
674
|
+
children: ReactNode;
|
|
675
|
+
|
|
676
|
+
/**
|
|
677
|
+
* Column width (auto by default)
|
|
678
|
+
*/
|
|
679
|
+
width?: 'auto' | number;
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
/**
|
|
683
|
+
* MegaMenu link properties
|
|
684
|
+
*/
|
|
685
|
+
export interface MegaMenuLinkProps extends BaseComponentProps {
|
|
686
|
+
/**
|
|
687
|
+
* Link href
|
|
688
|
+
*/
|
|
689
|
+
href: string;
|
|
690
|
+
|
|
691
|
+
/**
|
|
692
|
+
* Link content
|
|
693
|
+
*/
|
|
694
|
+
children: ReactNode;
|
|
695
|
+
|
|
696
|
+
/**
|
|
697
|
+
* Link click handler
|
|
698
|
+
*/
|
|
699
|
+
onClick?: () => void;
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
/**
|
|
703
|
+
* SideMenu component properties
|
|
704
|
+
*/
|
|
705
|
+
export interface SideMenuProps extends BaseComponentProps {
|
|
706
|
+
/**
|
|
707
|
+
* Menu title displayed at the top
|
|
708
|
+
*/
|
|
709
|
+
title?: ReactNode;
|
|
710
|
+
|
|
711
|
+
/**
|
|
712
|
+
* Menu content (typically SideMenuList components)
|
|
713
|
+
*/
|
|
714
|
+
children: ReactNode;
|
|
715
|
+
|
|
716
|
+
/**
|
|
717
|
+
* Whether the menu is open (for controlled component)
|
|
718
|
+
*/
|
|
719
|
+
isOpen?: boolean;
|
|
720
|
+
|
|
721
|
+
/**
|
|
722
|
+
* Callback when menu open state changes
|
|
723
|
+
*/
|
|
724
|
+
onToggle?: (isOpen: boolean) => void;
|
|
725
|
+
|
|
726
|
+
/**
|
|
727
|
+
* Whether the menu is collapsible on mobile
|
|
728
|
+
*/
|
|
729
|
+
collapsible?: boolean;
|
|
730
|
+
|
|
731
|
+
/**
|
|
732
|
+
* Custom toggle icon
|
|
733
|
+
*/
|
|
734
|
+
toggleIcon?: ReactNode;
|
|
735
|
+
|
|
736
|
+
/**
|
|
737
|
+
* ID for the menu (used for accessibility)
|
|
738
|
+
*/
|
|
739
|
+
id?: string;
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
/**
|
|
743
|
+
* SideMenuList component properties
|
|
744
|
+
*/
|
|
745
|
+
export interface SideMenuListProps extends BaseComponentProps {
|
|
746
|
+
/**
|
|
747
|
+
* List items (typically SideMenuItem components)
|
|
748
|
+
*/
|
|
749
|
+
children: ReactNode;
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
/**
|
|
753
|
+
* SideMenuItem component properties
|
|
754
|
+
*/
|
|
755
|
+
export interface SideMenuItemProps extends BaseComponentProps {
|
|
756
|
+
/**
|
|
757
|
+
* Item content
|
|
758
|
+
*/
|
|
759
|
+
children: ReactNode;
|
|
760
|
+
|
|
761
|
+
/**
|
|
762
|
+
* Item href (renders as link)
|
|
763
|
+
*/
|
|
764
|
+
href?: string;
|
|
765
|
+
|
|
766
|
+
/**
|
|
767
|
+
* Item click handler (renders as button if no href)
|
|
768
|
+
*/
|
|
769
|
+
onClick?: (event: React.MouseEvent) => void;
|
|
770
|
+
|
|
771
|
+
/**
|
|
772
|
+
* Whether this item is active/current
|
|
773
|
+
*/
|
|
774
|
+
active?: boolean;
|
|
775
|
+
|
|
776
|
+
/**
|
|
777
|
+
* Optional icon for the item
|
|
778
|
+
*/
|
|
779
|
+
icon?: ReactNode;
|
|
780
|
+
|
|
781
|
+
/**
|
|
782
|
+
* Link target attribute
|
|
783
|
+
*/
|
|
784
|
+
target?: string;
|
|
785
|
+
|
|
786
|
+
/**
|
|
787
|
+
* Link rel attribute
|
|
788
|
+
*/
|
|
789
|
+
rel?: string;
|
|
790
|
+
|
|
791
|
+
/**
|
|
792
|
+
* Optional custom link component
|
|
793
|
+
*/
|
|
794
|
+
LinkComponent?: React.ElementType;
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
/**
|
|
798
|
+
* EdgePanel position options
|
|
799
|
+
*/
|
|
800
|
+
export type EdgePanelPosition = 'start' | 'end' | 'top' | 'bottom';
|
|
801
|
+
|
|
802
|
+
/**
|
|
803
|
+
* EdgePanel animation mode options
|
|
804
|
+
*/
|
|
805
|
+
export type EdgePanelMode = 'slide' | 'push' | 'none';
|
|
806
|
+
|
|
807
|
+
/**
|
|
808
|
+
* EdgePanel component properties
|
|
809
|
+
*/
|
|
810
|
+
export interface EdgePanelProps extends BaseComponentProps {
|
|
811
|
+
/**
|
|
812
|
+
* Panel title
|
|
813
|
+
*/
|
|
814
|
+
title?: ReactNode;
|
|
815
|
+
|
|
816
|
+
/**
|
|
817
|
+
* Panel content
|
|
818
|
+
*/
|
|
819
|
+
children: ReactNode;
|
|
820
|
+
|
|
821
|
+
/**
|
|
822
|
+
* Panel position
|
|
823
|
+
*/
|
|
824
|
+
position?: EdgePanelPosition;
|
|
825
|
+
|
|
826
|
+
/**
|
|
827
|
+
* Animation mode
|
|
828
|
+
*/
|
|
829
|
+
mode?: EdgePanelMode;
|
|
830
|
+
|
|
831
|
+
/**
|
|
832
|
+
* Whether the panel is open
|
|
833
|
+
*/
|
|
834
|
+
isOpen?: boolean;
|
|
835
|
+
|
|
836
|
+
/**
|
|
837
|
+
* Open/close callback
|
|
838
|
+
*/
|
|
839
|
+
onOpenChange?: (open: boolean) => void;
|
|
840
|
+
|
|
841
|
+
/**
|
|
842
|
+
* Show backdrop
|
|
843
|
+
*/
|
|
844
|
+
backdrop?: boolean;
|
|
845
|
+
|
|
846
|
+
/**
|
|
847
|
+
* Close when clicking backdrop
|
|
848
|
+
*/
|
|
849
|
+
closeOnBackdropClick?: boolean;
|
|
850
|
+
|
|
851
|
+
/**
|
|
852
|
+
* Close when pressing escape key
|
|
853
|
+
*/
|
|
854
|
+
closeOnEscape?: boolean;
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
/**
|
|
858
|
+
* DataTable column definition
|
|
859
|
+
*/
|
|
860
|
+
export interface DataTableColumn {
|
|
861
|
+
/**
|
|
862
|
+
* Unique identifier for the column
|
|
863
|
+
*/
|
|
864
|
+
key: string;
|
|
865
|
+
|
|
866
|
+
/**
|
|
867
|
+
* Display title for the column
|
|
868
|
+
*/
|
|
869
|
+
title: string;
|
|
870
|
+
|
|
871
|
+
/**
|
|
872
|
+
* Whether the column is sortable
|
|
873
|
+
*/
|
|
874
|
+
sortable?: boolean;
|
|
875
|
+
|
|
876
|
+
/**
|
|
877
|
+
* Whether the column is filterable
|
|
878
|
+
*/
|
|
879
|
+
filterable?: boolean;
|
|
880
|
+
|
|
881
|
+
/**
|
|
882
|
+
* Custom render function for the cell
|
|
883
|
+
*/
|
|
884
|
+
render?: (value: any, row: any) => React.ReactNode;
|
|
885
|
+
|
|
886
|
+
/**
|
|
887
|
+
* Width of the column (CSS value)
|
|
888
|
+
*/
|
|
889
|
+
width?: string;
|
|
890
|
+
}
|
|
891
|
+
|
|
892
|
+
/**
|
|
893
|
+
* Sort configuration
|
|
894
|
+
*/
|
|
895
|
+
export interface SortConfig {
|
|
896
|
+
/**
|
|
897
|
+
* Column key to sort by
|
|
898
|
+
*/
|
|
899
|
+
key: string;
|
|
900
|
+
|
|
901
|
+
/**
|
|
902
|
+
* Sort direction
|
|
903
|
+
*/
|
|
904
|
+
direction: 'asc' | 'desc';
|
|
905
|
+
}
|
|
906
|
+
|
|
907
|
+
/**
|
|
908
|
+
* DataTable component properties
|
|
909
|
+
*/
|
|
910
|
+
export interface DataTableProps extends BaseComponentProps {
|
|
911
|
+
/**
|
|
912
|
+
* Data array to display in the table
|
|
913
|
+
*/
|
|
914
|
+
data: any[];
|
|
915
|
+
|
|
916
|
+
/**
|
|
917
|
+
* Column definitions
|
|
918
|
+
*/
|
|
919
|
+
columns: DataTableColumn[];
|
|
920
|
+
|
|
921
|
+
/**
|
|
922
|
+
* Whether the table is sortable
|
|
923
|
+
*/
|
|
924
|
+
sortable?: boolean;
|
|
925
|
+
|
|
926
|
+
/**
|
|
927
|
+
* Whether the table is filterable
|
|
928
|
+
*/
|
|
929
|
+
filterable?: boolean;
|
|
930
|
+
|
|
931
|
+
/**
|
|
932
|
+
* Whether the table is paginated
|
|
933
|
+
*/
|
|
934
|
+
paginated?: boolean;
|
|
935
|
+
|
|
936
|
+
/**
|
|
937
|
+
* Number of rows per page
|
|
938
|
+
*/
|
|
939
|
+
pageSize?: number;
|
|
940
|
+
|
|
941
|
+
/**
|
|
942
|
+
* Whether to show alternating row colors
|
|
943
|
+
*/
|
|
944
|
+
striped?: boolean;
|
|
945
|
+
|
|
946
|
+
/**
|
|
947
|
+
* Whether to show borders around cells
|
|
948
|
+
*/
|
|
949
|
+
bordered?: boolean;
|
|
950
|
+
|
|
951
|
+
/**
|
|
952
|
+
* Whether to use compact styling
|
|
953
|
+
*/
|
|
954
|
+
dense?: boolean;
|
|
955
|
+
|
|
956
|
+
/**
|
|
957
|
+
* Whether the table is in loading state
|
|
958
|
+
*/
|
|
959
|
+
loading?: boolean;
|
|
960
|
+
|
|
961
|
+
/**
|
|
962
|
+
* Message to display when there is no data
|
|
963
|
+
*/
|
|
964
|
+
emptyMessage?: string;
|
|
965
|
+
|
|
966
|
+
/**
|
|
967
|
+
* Callback when a row is clicked
|
|
968
|
+
*/
|
|
969
|
+
onRowClick?: (row: any) => void;
|
|
970
|
+
|
|
971
|
+
/**
|
|
972
|
+
* Callback when sorting changes
|
|
973
|
+
*/
|
|
974
|
+
onSort?: (sortConfig: SortConfig) => void;
|
|
975
|
+
}
|
|
976
|
+
|
|
977
|
+
/**
|
|
978
|
+
* Pagination component properties
|
|
979
|
+
*/
|
|
980
|
+
export interface PaginationProps extends BaseComponentProps {
|
|
981
|
+
/**
|
|
982
|
+
* Current active page
|
|
983
|
+
*/
|
|
984
|
+
currentPage: number;
|
|
985
|
+
|
|
986
|
+
/**
|
|
987
|
+
* Total number of pages
|
|
988
|
+
*/
|
|
989
|
+
totalPages: number;
|
|
990
|
+
|
|
991
|
+
/**
|
|
992
|
+
* Callback function when page changes
|
|
993
|
+
*/
|
|
994
|
+
onPageChange: (page: number) => void;
|
|
995
|
+
|
|
996
|
+
/**
|
|
997
|
+
* Number of page links to show before and after current page
|
|
998
|
+
*/
|
|
999
|
+
siblingCount?: number;
|
|
1000
|
+
|
|
1001
|
+
/**
|
|
1002
|
+
* Whether to show first/last page buttons
|
|
1003
|
+
*/
|
|
1004
|
+
showFirstLastButtons?: boolean;
|
|
1005
|
+
|
|
1006
|
+
/**
|
|
1007
|
+
* Whether to show previous/next page buttons
|
|
1008
|
+
*/
|
|
1009
|
+
showPrevNextButtons?: boolean;
|
|
1010
|
+
|
|
1011
|
+
/**
|
|
1012
|
+
* Custom class for the pagination container
|
|
1013
|
+
*/
|
|
1014
|
+
className?: string;
|
|
1015
|
+
|
|
1016
|
+
/**
|
|
1017
|
+
* Size variant for the pagination component
|
|
1018
|
+
*/
|
|
1019
|
+
size?: Size;
|
|
1020
|
+
|
|
1021
|
+
/**
|
|
1022
|
+
* Accessible label for the navigation element
|
|
1023
|
+
*/
|
|
1024
|
+
ariaLabel?: string;
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
/**
|
|
1028
|
+
* Todo item data structure
|
|
1029
|
+
*/
|
|
1030
|
+
export interface TodoItem {
|
|
1031
|
+
/**
|
|
1032
|
+
* Unique identifier for the todo
|
|
1033
|
+
*/
|
|
1034
|
+
id: string;
|
|
1035
|
+
|
|
1036
|
+
/**
|
|
1037
|
+
* Todo item text
|
|
1038
|
+
*/
|
|
1039
|
+
text: string;
|
|
1040
|
+
|
|
1041
|
+
/**
|
|
1042
|
+
* Whether the todo is completed
|
|
1043
|
+
*/
|
|
1044
|
+
completed: boolean;
|
|
1045
|
+
}
|
|
1046
|
+
|
|
1047
|
+
/**
|
|
1048
|
+
* Todo component properties
|
|
1049
|
+
*/
|
|
1050
|
+
export interface TodoProps extends BaseComponentProps {
|
|
1051
|
+
/**
|
|
1052
|
+
* List of todo items
|
|
1053
|
+
*/
|
|
1054
|
+
items: TodoItem[];
|
|
1055
|
+
|
|
1056
|
+
/**
|
|
1057
|
+
* Callback when a todo item is added
|
|
1058
|
+
*/
|
|
1059
|
+
onAddTodo?: (text: string) => void;
|
|
1060
|
+
|
|
1061
|
+
/**
|
|
1062
|
+
* Callback when a todo item is toggled
|
|
1063
|
+
*/
|
|
1064
|
+
onToggleTodo?: (id: string) => void;
|
|
1065
|
+
|
|
1066
|
+
/**
|
|
1067
|
+
* Callback when a todo item is deleted
|
|
1068
|
+
*/
|
|
1069
|
+
onDeleteTodo?: (id: string) => void;
|
|
1070
|
+
|
|
1071
|
+
/**
|
|
1072
|
+
* Title of the todo list
|
|
1073
|
+
*/
|
|
1074
|
+
title?: string;
|
|
1075
|
+
|
|
1076
|
+
/**
|
|
1077
|
+
* Size variant for the todo component
|
|
1078
|
+
*/
|
|
1079
|
+
size?: Size;
|
|
1080
|
+
|
|
1081
|
+
/**
|
|
1082
|
+
* Placeholder text for the new todo input
|
|
1083
|
+
*/
|
|
1084
|
+
placeholder?: string;
|
|
1085
|
+
|
|
1086
|
+
/**
|
|
1087
|
+
* Whether to show the completed todos
|
|
1088
|
+
*/
|
|
1089
|
+
showCompleted?: boolean;
|
|
1090
|
+
}
|
|
1091
|
+
|
|
1092
|
+
/**
|
|
1093
|
+
* Form component properties
|
|
1094
|
+
*/
|
|
1095
|
+
export interface FormProps extends BaseComponentProps {
|
|
1096
|
+
/**
|
|
1097
|
+
* Form content
|
|
1098
|
+
*/
|
|
1099
|
+
children: ReactNode;
|
|
1100
|
+
|
|
1101
|
+
/**
|
|
1102
|
+
* Form submit handler
|
|
1103
|
+
*/
|
|
1104
|
+
onSubmit?: (event: React.FormEvent<HTMLFormElement>) => void;
|
|
1105
|
+
|
|
1106
|
+
/**
|
|
1107
|
+
* Form reset handler
|
|
1108
|
+
*/
|
|
1109
|
+
onReset?: (event: React.FormEvent<HTMLFormElement>) => void;
|
|
1110
|
+
|
|
1111
|
+
/**
|
|
1112
|
+
* Form ID
|
|
1113
|
+
*/
|
|
1114
|
+
id?: string;
|
|
1115
|
+
|
|
1116
|
+
/**
|
|
1117
|
+
* Form method
|
|
1118
|
+
*/
|
|
1119
|
+
method?: 'get' | 'post';
|
|
1120
|
+
|
|
1121
|
+
/**
|
|
1122
|
+
* Form encoding type
|
|
1123
|
+
*/
|
|
1124
|
+
encType?: string;
|
|
1125
|
+
|
|
1126
|
+
/**
|
|
1127
|
+
* Whether to disable HTML5 validation
|
|
1128
|
+
*/
|
|
1129
|
+
noValidate?: boolean;
|
|
1130
|
+
|
|
1131
|
+
/**
|
|
1132
|
+
* Form autocomplete setting
|
|
1133
|
+
*/
|
|
1134
|
+
autoComplete?: string;
|
|
1135
|
+
}
|
|
1136
|
+
|
|
1137
|
+
/**
|
|
1138
|
+
* Form Group component properties
|
|
1139
|
+
*/
|
|
1140
|
+
export interface FormGroupProps extends BaseComponentProps {
|
|
1141
|
+
/**
|
|
1142
|
+
* Form control content
|
|
1143
|
+
*/
|
|
1144
|
+
children: ReactNode;
|
|
1145
|
+
|
|
1146
|
+
/**
|
|
1147
|
+
* Label text
|
|
1148
|
+
*/
|
|
1149
|
+
label?: string;
|
|
1150
|
+
|
|
1151
|
+
/**
|
|
1152
|
+
* Helper text displayed below the input
|
|
1153
|
+
*/
|
|
1154
|
+
helperText?: ReactNode;
|
|
1155
|
+
|
|
1156
|
+
/**
|
|
1157
|
+
* ID of the form control this label is for
|
|
1158
|
+
*/
|
|
1159
|
+
htmlFor?: string;
|
|
1160
|
+
|
|
1161
|
+
/**
|
|
1162
|
+
* Whether the field is required
|
|
1163
|
+
*/
|
|
1164
|
+
required?: boolean;
|
|
1165
|
+
|
|
1166
|
+
/**
|
|
1167
|
+
* Whether the field is invalid
|
|
1168
|
+
*/
|
|
1169
|
+
invalid?: boolean;
|
|
1170
|
+
|
|
1171
|
+
/**
|
|
1172
|
+
* Whether the field is valid
|
|
1173
|
+
*/
|
|
1174
|
+
valid?: boolean;
|
|
1175
|
+
|
|
1176
|
+
/**
|
|
1177
|
+
* Size variant
|
|
1178
|
+
*/
|
|
1179
|
+
size?: Size;
|
|
1180
|
+
}
|
|
1181
|
+
|
|
1182
|
+
/**
|
|
1183
|
+
* Input component properties
|
|
1184
|
+
*/
|
|
1185
|
+
export interface InputProps extends BaseComponentProps {
|
|
1186
|
+
/**
|
|
1187
|
+
* Input type
|
|
1188
|
+
*/
|
|
1189
|
+
type?: string;
|
|
1190
|
+
|
|
1191
|
+
/**
|
|
1192
|
+
* Input value
|
|
1193
|
+
*/
|
|
1194
|
+
value?: string | number;
|
|
1195
|
+
|
|
1196
|
+
/**
|
|
1197
|
+
* Change handler
|
|
1198
|
+
*/
|
|
1199
|
+
onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
1200
|
+
|
|
1201
|
+
/**
|
|
1202
|
+
* Blur handler
|
|
1203
|
+
*/
|
|
1204
|
+
onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;
|
|
1205
|
+
|
|
1206
|
+
/**
|
|
1207
|
+
* Focus handler
|
|
1208
|
+
*/
|
|
1209
|
+
onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;
|
|
1210
|
+
|
|
1211
|
+
/**
|
|
1212
|
+
* Placeholder text
|
|
1213
|
+
*/
|
|
1214
|
+
placeholder?: string;
|
|
1215
|
+
|
|
1216
|
+
/**
|
|
1217
|
+
* Whether the input is required
|
|
1218
|
+
*/
|
|
1219
|
+
required?: boolean;
|
|
1220
|
+
|
|
1221
|
+
/**
|
|
1222
|
+
* Whether the input is read-only
|
|
1223
|
+
*/
|
|
1224
|
+
readOnly?: boolean;
|
|
1225
|
+
|
|
1226
|
+
/**
|
|
1227
|
+
* Input ID
|
|
1228
|
+
*/
|
|
1229
|
+
id?: string;
|
|
1230
|
+
|
|
1231
|
+
/**
|
|
1232
|
+
* Input name
|
|
1233
|
+
*/
|
|
1234
|
+
name?: string;
|
|
1235
|
+
|
|
1236
|
+
/**
|
|
1237
|
+
* Autocomplete attribute
|
|
1238
|
+
*/
|
|
1239
|
+
autoComplete?: string;
|
|
1240
|
+
|
|
1241
|
+
/**
|
|
1242
|
+
* Whether the input should receive focus on render
|
|
1243
|
+
*/
|
|
1244
|
+
autoFocus?: boolean;
|
|
1245
|
+
|
|
1246
|
+
/**
|
|
1247
|
+
* Size variant
|
|
1248
|
+
*/
|
|
1249
|
+
size?: Size;
|
|
1250
|
+
|
|
1251
|
+
/**
|
|
1252
|
+
* Color variant
|
|
1253
|
+
*/
|
|
1254
|
+
variant?: ThemeColor;
|
|
1255
|
+
|
|
1256
|
+
/**
|
|
1257
|
+
* Whether the input is invalid
|
|
1258
|
+
*/
|
|
1259
|
+
invalid?: boolean;
|
|
1260
|
+
|
|
1261
|
+
/**
|
|
1262
|
+
* Whether the input is valid
|
|
1263
|
+
*/
|
|
1264
|
+
valid?: boolean;
|
|
1265
|
+
|
|
1266
|
+
/**
|
|
1267
|
+
* Maximum length
|
|
1268
|
+
*/
|
|
1269
|
+
maxLength?: number;
|
|
1270
|
+
|
|
1271
|
+
/**
|
|
1272
|
+
* Minimum length
|
|
1273
|
+
*/
|
|
1274
|
+
minLength?: number;
|
|
1275
|
+
|
|
1276
|
+
/**
|
|
1277
|
+
* Input pattern
|
|
1278
|
+
*/
|
|
1279
|
+
pattern?: string;
|
|
1280
|
+
|
|
1281
|
+
/**
|
|
1282
|
+
* Minimum value (for number inputs)
|
|
1283
|
+
*/
|
|
1284
|
+
min?: number | string;
|
|
1285
|
+
|
|
1286
|
+
/**
|
|
1287
|
+
* Maximum value (for number inputs)
|
|
1288
|
+
*/
|
|
1289
|
+
max?: number | string;
|
|
1290
|
+
|
|
1291
|
+
/**
|
|
1292
|
+
* Step value (for number inputs)
|
|
1293
|
+
*/
|
|
1294
|
+
step?: number | string;
|
|
1295
|
+
|
|
1296
|
+
/**
|
|
1297
|
+
* Accessible label (if no visible label)
|
|
1298
|
+
*/
|
|
1299
|
+
ariaLabel?: string;
|
|
1300
|
+
|
|
1301
|
+
/**
|
|
1302
|
+
* ID of element that describes this input
|
|
1303
|
+
*/
|
|
1304
|
+
ariaDescribedBy?: string;
|
|
1305
|
+
}
|
|
1306
|
+
|
|
1307
|
+
/**
|
|
1308
|
+
* Select option
|
|
1309
|
+
*/
|
|
1310
|
+
export interface SelectOption {
|
|
1311
|
+
/**
|
|
1312
|
+
* Option value
|
|
1313
|
+
*/
|
|
1314
|
+
value: string;
|
|
1315
|
+
|
|
1316
|
+
/**
|
|
1317
|
+
* Option display label
|
|
1318
|
+
*/
|
|
1319
|
+
label: string;
|
|
1320
|
+
|
|
1321
|
+
/**
|
|
1322
|
+
* Whether the option is disabled
|
|
1323
|
+
*/
|
|
1324
|
+
disabled?: boolean;
|
|
1325
|
+
}
|
|
1326
|
+
|
|
1327
|
+
/**
|
|
1328
|
+
* Select component properties
|
|
1329
|
+
*/
|
|
1330
|
+
export interface SelectProps extends BaseComponentProps {
|
|
1331
|
+
/**
|
|
1332
|
+
* Select options
|
|
1333
|
+
*/
|
|
1334
|
+
options: SelectOption[];
|
|
1335
|
+
|
|
1336
|
+
/**
|
|
1337
|
+
* Selected value(s)
|
|
1338
|
+
*/
|
|
1339
|
+
value?: string | string[];
|
|
1340
|
+
|
|
1341
|
+
/**
|
|
1342
|
+
* Change handler
|
|
1343
|
+
*/
|
|
1344
|
+
onChange?: (event: React.ChangeEvent<HTMLSelectElement>) => void;
|
|
1345
|
+
|
|
1346
|
+
/**
|
|
1347
|
+
* Blur handler
|
|
1348
|
+
*/
|
|
1349
|
+
onBlur?: (event: React.FocusEvent<HTMLSelectElement>) => void;
|
|
1350
|
+
|
|
1351
|
+
/**
|
|
1352
|
+
* Focus handler
|
|
1353
|
+
*/
|
|
1354
|
+
onFocus?: (event: React.FocusEvent<HTMLSelectElement>) => void;
|
|
1355
|
+
|
|
1356
|
+
/**
|
|
1357
|
+
* Placeholder text
|
|
1358
|
+
*/
|
|
1359
|
+
placeholder?: string;
|
|
1360
|
+
|
|
1361
|
+
/**
|
|
1362
|
+
* Whether the select is required
|
|
1363
|
+
*/
|
|
1364
|
+
required?: boolean;
|
|
1365
|
+
|
|
1366
|
+
/**
|
|
1367
|
+
* Select ID
|
|
1368
|
+
*/
|
|
1369
|
+
id?: string;
|
|
1370
|
+
|
|
1371
|
+
/**
|
|
1372
|
+
* Select name
|
|
1373
|
+
*/
|
|
1374
|
+
name?: string;
|
|
1375
|
+
|
|
1376
|
+
/**
|
|
1377
|
+
* Size variant
|
|
1378
|
+
*/
|
|
1379
|
+
size?: Size;
|
|
1380
|
+
|
|
1381
|
+
/**
|
|
1382
|
+
* Whether the select is invalid
|
|
1383
|
+
*/
|
|
1384
|
+
invalid?: boolean;
|
|
1385
|
+
|
|
1386
|
+
/**
|
|
1387
|
+
* Whether the select is valid
|
|
1388
|
+
*/
|
|
1389
|
+
valid?: boolean;
|
|
1390
|
+
|
|
1391
|
+
/**
|
|
1392
|
+
* Whether multiple options can be selected
|
|
1393
|
+
*/
|
|
1394
|
+
multiple?: boolean;
|
|
1395
|
+
|
|
1396
|
+
/**
|
|
1397
|
+
* Accessible label (if no visible label)
|
|
1398
|
+
*/
|
|
1399
|
+
ariaLabel?: string;
|
|
1400
|
+
|
|
1401
|
+
/**
|
|
1402
|
+
* ID of element that describes this select
|
|
1403
|
+
*/
|
|
1404
|
+
ariaDescribedBy?: string;
|
|
1405
|
+
}
|
|
1406
|
+
|
|
1407
|
+
/**
|
|
1408
|
+
* Checkbox component properties
|
|
1409
|
+
*/
|
|
1410
|
+
export interface CheckboxProps extends BaseComponentProps {
|
|
1411
|
+
/**
|
|
1412
|
+
* Checkbox label
|
|
1413
|
+
*/
|
|
1414
|
+
label?: ReactNode;
|
|
1415
|
+
|
|
1416
|
+
/**
|
|
1417
|
+
* Whether the checkbox is checked
|
|
1418
|
+
*/
|
|
1419
|
+
checked?: boolean;
|
|
1420
|
+
|
|
1421
|
+
/**
|
|
1422
|
+
* Change handler
|
|
1423
|
+
*/
|
|
1424
|
+
onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
1425
|
+
|
|
1426
|
+
/**
|
|
1427
|
+
* Whether the checkbox is required
|
|
1428
|
+
*/
|
|
1429
|
+
required?: boolean;
|
|
1430
|
+
|
|
1431
|
+
/**
|
|
1432
|
+
* Checkbox ID
|
|
1433
|
+
*/
|
|
1434
|
+
id?: string;
|
|
1435
|
+
|
|
1436
|
+
/**
|
|
1437
|
+
* Checkbox name
|
|
1438
|
+
*/
|
|
1439
|
+
name?: string;
|
|
1440
|
+
|
|
1441
|
+
/**
|
|
1442
|
+
* Checkbox value
|
|
1443
|
+
*/
|
|
1444
|
+
value?: string;
|
|
1445
|
+
|
|
1446
|
+
/**
|
|
1447
|
+
* Whether the checkbox is invalid
|
|
1448
|
+
*/
|
|
1449
|
+
invalid?: boolean;
|
|
1450
|
+
|
|
1451
|
+
/**
|
|
1452
|
+
* Whether the checkbox is valid
|
|
1453
|
+
*/
|
|
1454
|
+
valid?: boolean;
|
|
1455
|
+
|
|
1456
|
+
/**
|
|
1457
|
+
* Whether the checkbox is in indeterminate state
|
|
1458
|
+
*/
|
|
1459
|
+
indeterminate?: boolean;
|
|
1460
|
+
|
|
1461
|
+
/**
|
|
1462
|
+
* Accessible label (if no visible label)
|
|
1463
|
+
*/
|
|
1464
|
+
ariaLabel?: string;
|
|
1465
|
+
|
|
1466
|
+
/**
|
|
1467
|
+
* ID of element that describes this checkbox
|
|
1468
|
+
*/
|
|
1469
|
+
ariaDescribedBy?: string;
|
|
1470
|
+
}
|
|
1471
|
+
|
|
1472
|
+
/**
|
|
1473
|
+
* Radio component properties
|
|
1474
|
+
*/
|
|
1475
|
+
export interface RadioProps extends BaseComponentProps {
|
|
1476
|
+
/**
|
|
1477
|
+
* Radio label
|
|
1478
|
+
*/
|
|
1479
|
+
label?: ReactNode;
|
|
1480
|
+
|
|
1481
|
+
/**
|
|
1482
|
+
* Whether the radio is checked
|
|
1483
|
+
*/
|
|
1484
|
+
checked?: boolean;
|
|
1485
|
+
|
|
1486
|
+
/**
|
|
1487
|
+
* Change handler
|
|
1488
|
+
*/
|
|
1489
|
+
onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
1490
|
+
|
|
1491
|
+
/**
|
|
1492
|
+
* Whether the radio is required
|
|
1493
|
+
*/
|
|
1494
|
+
required?: boolean;
|
|
1495
|
+
|
|
1496
|
+
/**
|
|
1497
|
+
* Radio ID
|
|
1498
|
+
*/
|
|
1499
|
+
id?: string;
|
|
1500
|
+
|
|
1501
|
+
/**
|
|
1502
|
+
* Radio name
|
|
1503
|
+
*/
|
|
1504
|
+
name?: string;
|
|
1505
|
+
|
|
1506
|
+
/**
|
|
1507
|
+
* Radio value
|
|
1508
|
+
*/
|
|
1509
|
+
value?: string;
|
|
1510
|
+
|
|
1511
|
+
/**
|
|
1512
|
+
* Whether the radio is invalid
|
|
1513
|
+
*/
|
|
1514
|
+
invalid?: boolean;
|
|
1515
|
+
|
|
1516
|
+
/**
|
|
1517
|
+
* Whether the radio is valid
|
|
1518
|
+
*/
|
|
1519
|
+
valid?: boolean;
|
|
1520
|
+
|
|
1521
|
+
/**
|
|
1522
|
+
* Accessible label (if no visible label)
|
|
1523
|
+
*/
|
|
1524
|
+
ariaLabel?: string;
|
|
1525
|
+
|
|
1526
|
+
/**
|
|
1527
|
+
* ID of element that describes this radio
|
|
1528
|
+
*/
|
|
1529
|
+
ariaDescribedBy?: string;
|
|
1530
|
+
}
|
|
1531
|
+
|
|
1532
|
+
/**
|
|
1533
|
+
* Textarea component properties
|
|
1534
|
+
*/
|
|
1535
|
+
export interface TextareaProps extends BaseComponentProps {
|
|
1536
|
+
/**
|
|
1537
|
+
* Textarea value
|
|
1538
|
+
*/
|
|
1539
|
+
value?: string;
|
|
1540
|
+
|
|
1541
|
+
/**
|
|
1542
|
+
* Change handler
|
|
1543
|
+
*/
|
|
1544
|
+
onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;
|
|
1545
|
+
|
|
1546
|
+
/**
|
|
1547
|
+
* Blur handler
|
|
1548
|
+
*/
|
|
1549
|
+
onBlur?: (event: React.FocusEvent<HTMLTextAreaElement>) => void;
|
|
1550
|
+
|
|
1551
|
+
/**
|
|
1552
|
+
* Focus handler
|
|
1553
|
+
*/
|
|
1554
|
+
onFocus?: (event: React.FocusEvent<HTMLTextAreaElement>) => void;
|
|
1555
|
+
|
|
1556
|
+
/**
|
|
1557
|
+
* Placeholder text
|
|
1558
|
+
*/
|
|
1559
|
+
placeholder?: string;
|
|
1560
|
+
|
|
1561
|
+
/**
|
|
1562
|
+
* Whether the textarea is required
|
|
1563
|
+
*/
|
|
1564
|
+
required?: boolean;
|
|
1565
|
+
|
|
1566
|
+
/**
|
|
1567
|
+
* Whether the textarea is read-only
|
|
1568
|
+
*/
|
|
1569
|
+
readOnly?: boolean;
|
|
1570
|
+
|
|
1571
|
+
/**
|
|
1572
|
+
* Textarea ID
|
|
1573
|
+
*/
|
|
1574
|
+
id?: string;
|
|
1575
|
+
|
|
1576
|
+
/**
|
|
1577
|
+
* Textarea name
|
|
1578
|
+
*/
|
|
1579
|
+
name?: string;
|
|
1580
|
+
|
|
1581
|
+
/**
|
|
1582
|
+
* Number of rows
|
|
1583
|
+
*/
|
|
1584
|
+
rows?: number;
|
|
1585
|
+
|
|
1586
|
+
/**
|
|
1587
|
+
* Number of columns
|
|
1588
|
+
*/
|
|
1589
|
+
cols?: number;
|
|
1590
|
+
|
|
1591
|
+
/**
|
|
1592
|
+
* Maximum length
|
|
1593
|
+
*/
|
|
1594
|
+
maxLength?: number;
|
|
1595
|
+
|
|
1596
|
+
/**
|
|
1597
|
+
* Minimum length
|
|
1598
|
+
*/
|
|
1599
|
+
minLength?: number;
|
|
1600
|
+
|
|
1601
|
+
/**
|
|
1602
|
+
* Size variant
|
|
1603
|
+
*/
|
|
1604
|
+
size?: Size;
|
|
1605
|
+
|
|
1606
|
+
/**
|
|
1607
|
+
* Color variant
|
|
1608
|
+
*/
|
|
1609
|
+
variant?: ThemeColor;
|
|
1610
|
+
|
|
1611
|
+
/**
|
|
1612
|
+
* Whether the textarea is invalid
|
|
1613
|
+
*/
|
|
1614
|
+
invalid?: boolean;
|
|
1615
|
+
|
|
1616
|
+
/**
|
|
1617
|
+
* Whether the textarea is valid
|
|
1618
|
+
*/
|
|
1619
|
+
valid?: boolean;
|
|
1620
|
+
|
|
1621
|
+
/**
|
|
1622
|
+
* Whether the textarea should receive focus on render
|
|
1623
|
+
*/
|
|
1624
|
+
autoFocus?: boolean;
|
|
1625
|
+
|
|
1626
|
+
/**
|
|
1627
|
+
* Accessible label (if no visible label)
|
|
1628
|
+
*/
|
|
1629
|
+
ariaLabel?: string;
|
|
1630
|
+
|
|
1631
|
+
/**
|
|
1632
|
+
* ID of element that describes this textarea
|
|
1633
|
+
*/
|
|
1634
|
+
ariaDescribedBy?: string;
|
|
1635
|
+
}
|
|
1636
|
+
|
|
1637
|
+
/**
|
|
1638
|
+
* Avatar size options
|
|
1639
|
+
*/
|
|
1640
|
+
export type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
1641
|
+
|
|
1642
|
+
/**
|
|
1643
|
+
* Avatar component properties
|
|
1644
|
+
*/
|
|
1645
|
+
export interface AvatarProps extends BaseComponentProps {
|
|
1646
|
+
/**
|
|
1647
|
+
* Avatar image source URL
|
|
1648
|
+
*/
|
|
1649
|
+
src?: string;
|
|
1650
|
+
|
|
1651
|
+
/**
|
|
1652
|
+
* Alt text for the avatar image
|
|
1653
|
+
*/
|
|
1654
|
+
alt?: string;
|
|
1655
|
+
|
|
1656
|
+
/**
|
|
1657
|
+
* Initials to display when no image is available
|
|
1658
|
+
*/
|
|
1659
|
+
initials?: string;
|
|
1660
|
+
|
|
1661
|
+
/**
|
|
1662
|
+
* Icon to display when no image or initials are available
|
|
1663
|
+
*/
|
|
1664
|
+
icon?: ReactNode;
|
|
1665
|
+
|
|
1666
|
+
/**
|
|
1667
|
+
* Size variant for the avatar
|
|
1668
|
+
*/
|
|
1669
|
+
size?: AvatarSize;
|
|
1670
|
+
|
|
1671
|
+
/**
|
|
1672
|
+
* Whether to make the avatar circular
|
|
1673
|
+
*/
|
|
1674
|
+
circle?: boolean;
|
|
1675
|
+
|
|
1676
|
+
/**
|
|
1677
|
+
* Optional click handler
|
|
1678
|
+
*/
|
|
1679
|
+
onClick?: (event: React.MouseEvent<HTMLDivElement>) => void;
|
|
1680
|
+
}
|
|
1681
|
+
|
|
1682
|
+
/**
|
|
1683
|
+
* Avatar Group component properties
|
|
1684
|
+
*/
|
|
1685
|
+
export interface AvatarGroupProps extends BaseComponentProps {
|
|
1686
|
+
/**
|
|
1687
|
+
* Child Avatar components
|
|
1688
|
+
*/
|
|
1689
|
+
children: ReactNode;
|
|
1690
|
+
|
|
1691
|
+
/**
|
|
1692
|
+
* Maximum number of avatars to display before showing a "+X" indicator
|
|
1693
|
+
*/
|
|
1694
|
+
max?: number;
|
|
1695
|
+
|
|
1696
|
+
/**
|
|
1697
|
+
* Whether to display avatars in a stacked formation
|
|
1698
|
+
*/
|
|
1699
|
+
stacked?: boolean;
|
|
1700
|
+
|
|
1701
|
+
/**
|
|
1702
|
+
* Custom text for the "more" indicator
|
|
1703
|
+
*/
|
|
1704
|
+
moreText?: string;
|
|
1705
|
+
}
|
|
1706
|
+
|
|
1707
|
+
/**
|
|
1708
|
+
* Modal component props
|
|
1709
|
+
*/
|
|
1710
|
+
export interface ModalProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
1711
|
+
/**
|
|
1712
|
+
* Whether the modal is open
|
|
1713
|
+
*/
|
|
1714
|
+
isOpen?: boolean;
|
|
1715
|
+
|
|
1716
|
+
/**
|
|
1717
|
+
* Callback when the modal's open state changes
|
|
1718
|
+
*/
|
|
1719
|
+
onOpenChange?: (isOpen: boolean) => void;
|
|
1720
|
+
|
|
1721
|
+
/**
|
|
1722
|
+
* Callback when the modal is opened
|
|
1723
|
+
*/
|
|
1724
|
+
onOpen?: () => void;
|
|
1725
|
+
|
|
1726
|
+
/**
|
|
1727
|
+
* Callback when the modal is closed
|
|
1728
|
+
*/
|
|
1729
|
+
onClose?: () => void;
|
|
1730
|
+
|
|
1731
|
+
/**
|
|
1732
|
+
* Modal title displayed in the header
|
|
1733
|
+
*/
|
|
1734
|
+
title?: React.ReactNode;
|
|
1735
|
+
|
|
1736
|
+
/**
|
|
1737
|
+
* Modal subtitle displayed below the title
|
|
1738
|
+
*/
|
|
1739
|
+
subtitle?: React.ReactNode;
|
|
1740
|
+
|
|
1741
|
+
/**
|
|
1742
|
+
* Modal size
|
|
1743
|
+
*/
|
|
1744
|
+
size?: 'sm' | 'md' | 'lg' | 'xl';
|
|
1745
|
+
|
|
1746
|
+
/**
|
|
1747
|
+
* Whether to close when backdrop is clicked
|
|
1748
|
+
*/
|
|
1749
|
+
backdrop?: boolean;
|
|
1750
|
+
|
|
1751
|
+
/**
|
|
1752
|
+
* Whether to close when the escape key is pressed
|
|
1753
|
+
*/
|
|
1754
|
+
keyboard?: boolean;
|
|
1755
|
+
|
|
1756
|
+
/**
|
|
1757
|
+
* Whether to show the close button
|
|
1758
|
+
*/
|
|
1759
|
+
closeButton?: boolean;
|
|
1760
|
+
|
|
1761
|
+
/**
|
|
1762
|
+
* Content for the modal footer
|
|
1763
|
+
*/
|
|
1764
|
+
footer?: React.ReactNode;
|
|
1765
|
+
}
|
|
1766
|
+
|
|
1767
|
+
/**
|
|
1768
|
+
* Breadcrumb item interface
|
|
1769
|
+
*/
|
|
1770
|
+
export interface BreadcrumbItem {
|
|
1771
|
+
/**
|
|
1772
|
+
* Item label text
|
|
1773
|
+
*/
|
|
1774
|
+
label: string;
|
|
1775
|
+
|
|
1776
|
+
/**
|
|
1777
|
+
* Optional URL for the breadcrumb item
|
|
1778
|
+
*/
|
|
1779
|
+
href?: string;
|
|
1780
|
+
|
|
1781
|
+
/**
|
|
1782
|
+
* Whether this item is active/current
|
|
1783
|
+
*/
|
|
1784
|
+
active?: boolean;
|
|
1785
|
+
|
|
1786
|
+
/**
|
|
1787
|
+
* Icon name from Phosphor Icons
|
|
1788
|
+
*/
|
|
1789
|
+
icon?: string;
|
|
1790
|
+
|
|
1791
|
+
/**
|
|
1792
|
+
* Optional click handler
|
|
1793
|
+
*/
|
|
1794
|
+
onClick?: (event: MouseEvent) => void;
|
|
1795
|
+
}
|
|
1796
|
+
|
|
1797
|
+
/**
|
|
1798
|
+
* Breadcrumb options interface
|
|
1799
|
+
*/
|
|
1800
|
+
export interface BreadcrumbOptions {
|
|
1801
|
+
/**
|
|
1802
|
+
* Array of breadcrumb items
|
|
1803
|
+
*/
|
|
1804
|
+
items?: BreadcrumbItem[];
|
|
1805
|
+
|
|
1806
|
+
/**
|
|
1807
|
+
* Divider character or string between items
|
|
1808
|
+
*/
|
|
1809
|
+
divider?: string;
|
|
1810
|
+
|
|
1811
|
+
/**
|
|
1812
|
+
* Additional CSS class names
|
|
1813
|
+
*/
|
|
1814
|
+
className?: string;
|
|
1815
|
+
|
|
1816
|
+
/**
|
|
1817
|
+
* Accessible label for the breadcrumb navigation
|
|
1818
|
+
*/
|
|
1819
|
+
ariaLabel?: string;
|
|
1820
|
+
}
|
|
1821
|
+
|
|
1822
|
+
/**
|
|
1823
|
+
* Breadcrumb instance interface
|
|
1824
|
+
*/
|
|
1825
|
+
export interface BreadcrumbInstance {
|
|
1826
|
+
/**
|
|
1827
|
+
* Update the breadcrumb with new options
|
|
1828
|
+
*/
|
|
1829
|
+
update: (options: Partial<BreadcrumbOptions>) => void;
|
|
1830
|
+
|
|
1831
|
+
/**
|
|
1832
|
+
* Destroy the breadcrumb component
|
|
1833
|
+
*/
|
|
1834
|
+
destroy: () => void;
|
|
1835
|
+
}
|
|
1836
|
+
|
|
1837
|
+
/**
|
|
1838
|
+
* Message item interface
|
|
1839
|
+
*/
|
|
1840
|
+
export interface MessageItem {
|
|
1841
|
+
/**
|
|
1842
|
+
* Unique identifier for the message
|
|
1843
|
+
*/
|
|
1844
|
+
id: string;
|
|
1845
|
+
|
|
1846
|
+
/**
|
|
1847
|
+
* Message text content
|
|
1848
|
+
*/
|
|
1849
|
+
text?: string;
|
|
1850
|
+
|
|
1851
|
+
/**
|
|
1852
|
+
* Image URL for image messages
|
|
1853
|
+
*/
|
|
1854
|
+
image?: string;
|
|
1855
|
+
|
|
1856
|
+
/**
|
|
1857
|
+
* File information for file messages
|
|
1858
|
+
*/
|
|
1859
|
+
file?: {
|
|
1860
|
+
/**
|
|
1861
|
+
* File name
|
|
1862
|
+
*/
|
|
1863
|
+
name: string;
|
|
1864
|
+
|
|
1865
|
+
/**
|
|
1866
|
+
* File size (formatted string)
|
|
1867
|
+
*/
|
|
1868
|
+
size: string;
|
|
1869
|
+
};
|
|
1870
|
+
|
|
1871
|
+
/**
|
|
1872
|
+
* Message timestamp
|
|
1873
|
+
*/
|
|
1874
|
+
time: string;
|
|
1875
|
+
|
|
1876
|
+
/**
|
|
1877
|
+
* Whether the message is from the current user
|
|
1878
|
+
*/
|
|
1879
|
+
isSelf?: boolean;
|
|
1880
|
+
}
|
|
1881
|
+
|
|
1882
|
+
/**
|
|
1883
|
+
* Messages component properties
|
|
1884
|
+
*/
|
|
1885
|
+
export interface MessagesProps extends BaseComponentProps {
|
|
1886
|
+
/**
|
|
1887
|
+
* Array of message items to display
|
|
1888
|
+
*/
|
|
1889
|
+
messages: MessageItem[];
|
|
1890
|
+
|
|
1891
|
+
/**
|
|
1892
|
+
* Avatar image URL for the other person
|
|
1893
|
+
*/
|
|
1894
|
+
otherAvatar?: string;
|
|
1895
|
+
|
|
1896
|
+
/**
|
|
1897
|
+
* Avatar image URL for the current user
|
|
1898
|
+
*/
|
|
1899
|
+
selfAvatar?: string;
|
|
1900
|
+
|
|
1901
|
+
/**
|
|
1902
|
+
* Name of the other person
|
|
1903
|
+
*/
|
|
1904
|
+
otherName?: string;
|
|
1905
|
+
|
|
1906
|
+
/**
|
|
1907
|
+
* Custom width for the messages container
|
|
1908
|
+
*/
|
|
1909
|
+
width?: string;
|
|
1910
|
+
|
|
1911
|
+
/**
|
|
1912
|
+
* Callback when a new message is sent
|
|
1913
|
+
*/
|
|
1914
|
+
onSendMessage?: (text: string) => void;
|
|
1915
|
+
|
|
1916
|
+
/**
|
|
1917
|
+
* Placeholder text for the input field
|
|
1918
|
+
*/
|
|
1919
|
+
placeholder?: string;
|
|
1920
|
+
|
|
1921
|
+
/**
|
|
1922
|
+
* Maximum height for the messages body
|
|
1923
|
+
*/
|
|
1924
|
+
bodyHeight?: string;
|
|
1925
|
+
|
|
1926
|
+
/**
|
|
1927
|
+
* Unique identifier for the messages component
|
|
1928
|
+
*/
|
|
1929
|
+
id?: string;
|
|
1930
|
+
}
|
|
1931
|
+
|
|
1932
|
+
/**
|
|
1933
|
+
* Popover component properties
|
|
1934
|
+
*/
|
|
1935
|
+
export interface PopoverTriggerProps {
|
|
1936
|
+
/**
|
|
1937
|
+
* The element that will trigger the popover
|
|
1938
|
+
*/
|
|
1939
|
+
children: ReactNode;
|
|
1940
|
+
|
|
1941
|
+
/**
|
|
1942
|
+
* How the popover is triggered
|
|
1943
|
+
*/
|
|
1944
|
+
trigger?: 'hover' | 'click';
|
|
1945
|
+
|
|
1946
|
+
/**
|
|
1947
|
+
* Popover reference passed from PopoverContext
|
|
1948
|
+
*/
|
|
1949
|
+
popoverId?: string;
|
|
1950
|
+
}
|
|
1951
|
+
|
|
1952
|
+
export interface PopoverProps {
|
|
1953
|
+
/**
|
|
1954
|
+
* Content to be displayed in the popover
|
|
1955
|
+
*/
|
|
1956
|
+
content: ReactNode;
|
|
1957
|
+
|
|
1958
|
+
/**
|
|
1959
|
+
* The position of the popover relative to the trigger
|
|
1960
|
+
*/
|
|
1961
|
+
position?: 'top' | 'bottom' | 'left' | 'right' | 'auto';
|
|
1962
|
+
|
|
1963
|
+
/**
|
|
1964
|
+
* How the popover is triggered
|
|
1965
|
+
*/
|
|
1966
|
+
trigger?: 'hover' | 'click';
|
|
1967
|
+
|
|
1968
|
+
/**
|
|
1969
|
+
* Additional CSS class for the popover
|
|
1970
|
+
*/
|
|
1971
|
+
className?: string;
|
|
1972
|
+
|
|
1973
|
+
/**
|
|
1974
|
+
* Delay before showing the popover (in milliseconds)
|
|
1975
|
+
*/
|
|
1976
|
+
delay?: number;
|
|
1977
|
+
|
|
1978
|
+
/**
|
|
1979
|
+
* Offset from the trigger element (in pixels)
|
|
1980
|
+
*/
|
|
1981
|
+
offset?: number;
|
|
1982
|
+
|
|
1983
|
+
/**
|
|
1984
|
+
* Whether the popover should be open initially
|
|
1985
|
+
*/
|
|
1986
|
+
defaultOpen?: boolean;
|
|
1987
|
+
|
|
1988
|
+
/**
|
|
1989
|
+
* Controlled state of the popover
|
|
1990
|
+
*/
|
|
1991
|
+
isOpen?: boolean;
|
|
1992
|
+
|
|
1993
|
+
/**
|
|
1994
|
+
* Callback when the popover open state changes
|
|
1995
|
+
*/
|
|
1996
|
+
onOpenChange?: (isOpen: boolean) => void;
|
|
1997
|
+
|
|
1998
|
+
/**
|
|
1999
|
+
* Whether to close the popover when clicking outside
|
|
2000
|
+
*/
|
|
2001
|
+
closeOnClickOutside?: boolean;
|
|
2002
|
+
|
|
2003
|
+
/**
|
|
2004
|
+
* Whether to close the popover when pressing escape key
|
|
2005
|
+
*/
|
|
2006
|
+
closeOnEscape?: boolean;
|
|
2007
|
+
|
|
2008
|
+
/**
|
|
2009
|
+
* Optional ID for the popover
|
|
2010
|
+
*/
|
|
2011
|
+
id?: string;
|
|
2012
|
+
|
|
2013
|
+
/**
|
|
2014
|
+
* Children content (removed in favor of using PopoverTrigger)
|
|
2015
|
+
*/
|
|
2016
|
+
children?: ReactNode;
|
|
2017
|
+
}
|
|
2018
|
+
|
|
2019
|
+
/**
|
|
2020
|
+
* The trigger method for the dropdown menu
|
|
2021
|
+
*/
|
|
2022
|
+
export type DropdownTrigger = 'click' | 'hover';
|
|
2023
|
+
|
|
2024
|
+
/**
|
|
2025
|
+
* The placement of the dropdown menu
|
|
2026
|
+
*/
|
|
2027
|
+
export type DropdownPlacement =
|
|
2028
|
+
| 'bottom-start'
|
|
2029
|
+
| 'bottom-end'
|
|
2030
|
+
| 'top-start'
|
|
2031
|
+
| 'top-end'
|
|
2032
|
+
| 'left-start'
|
|
2033
|
+
| 'left-end'
|
|
2034
|
+
| 'right-start'
|
|
2035
|
+
| 'right-end';
|
|
2036
|
+
|
|
2037
|
+
/**
|
|
2038
|
+
* Dropdown component properties
|
|
2039
|
+
*/
|
|
2040
|
+
export interface DropdownProps extends BaseComponentProps {
|
|
2041
|
+
/**
|
|
2042
|
+
* Dropdown trigger element
|
|
2043
|
+
*/
|
|
2044
|
+
children: ReactNode;
|
|
2045
|
+
|
|
2046
|
+
/**
|
|
2047
|
+
* Dropdown menu content
|
|
2048
|
+
*/
|
|
2049
|
+
menu: ReactNode;
|
|
2050
|
+
|
|
2051
|
+
/**
|
|
2052
|
+
* How the dropdown is triggered
|
|
2053
|
+
*/
|
|
2054
|
+
trigger?: DropdownTrigger;
|
|
2055
|
+
|
|
2056
|
+
/**
|
|
2057
|
+
* The placement of the dropdown menu
|
|
2058
|
+
*/
|
|
2059
|
+
placement?: DropdownPlacement;
|
|
2060
|
+
|
|
2061
|
+
/**
|
|
2062
|
+
* Whether the dropdown is initially open
|
|
2063
|
+
*/
|
|
2064
|
+
defaultOpen?: boolean;
|
|
2065
|
+
|
|
2066
|
+
/**
|
|
2067
|
+
* Controlled state of the dropdown
|
|
2068
|
+
*/
|
|
2069
|
+
isOpen?: boolean;
|
|
2070
|
+
|
|
2071
|
+
/**
|
|
2072
|
+
* Callback when the dropdown open state changes
|
|
2073
|
+
*/
|
|
2074
|
+
onOpenChange?: (isOpen: boolean) => void;
|
|
2075
|
+
|
|
2076
|
+
/**
|
|
2077
|
+
* Offset from the trigger element (in pixels)
|
|
2078
|
+
*/
|
|
2079
|
+
offset?: number;
|
|
2080
|
+
|
|
2081
|
+
/**
|
|
2082
|
+
* Whether the dropdown should be closed when clicking outside
|
|
2083
|
+
*/
|
|
2084
|
+
closeOnClickOutside?: boolean;
|
|
2085
|
+
|
|
2086
|
+
/**
|
|
2087
|
+
* Whether the dropdown should be closed when pressing escape key
|
|
2088
|
+
*/
|
|
2089
|
+
closeOnEscape?: boolean;
|
|
2090
|
+
|
|
2091
|
+
/**
|
|
2092
|
+
* Max height for the dropdown menu
|
|
2093
|
+
*/
|
|
2094
|
+
maxHeight?: string;
|
|
2095
|
+
|
|
2096
|
+
/**
|
|
2097
|
+
* Min width for the dropdown menu
|
|
2098
|
+
*/
|
|
2099
|
+
minWidth?: string | number;
|
|
2100
|
+
|
|
2101
|
+
/**
|
|
2102
|
+
* Color variant for the dropdown trigger
|
|
2103
|
+
*/
|
|
2104
|
+
variant?: ThemeColor;
|
|
2105
|
+
|
|
2106
|
+
/**
|
|
2107
|
+
* Optional ID for the dropdown
|
|
2108
|
+
*/
|
|
2109
|
+
id?: string;
|
|
2110
|
+
}
|
|
2111
|
+
|
|
2112
|
+
/**
|
|
2113
|
+
* Dropdown menu item properties
|
|
2114
|
+
*/
|
|
2115
|
+
export interface DropdownItemProps extends BaseComponentProps {
|
|
2116
|
+
/**
|
|
2117
|
+
* Item content
|
|
2118
|
+
*/
|
|
2119
|
+
children: ReactNode;
|
|
2120
|
+
|
|
2121
|
+
/**
|
|
2122
|
+
* Item href
|
|
2123
|
+
*/
|
|
2124
|
+
href?: string;
|
|
2125
|
+
|
|
2126
|
+
/**
|
|
2127
|
+
* Whether item is active
|
|
2128
|
+
*/
|
|
2129
|
+
active?: boolean;
|
|
2130
|
+
|
|
2131
|
+
/**
|
|
2132
|
+
* Whether item is disabled
|
|
2133
|
+
*/
|
|
2134
|
+
disabled?: boolean;
|
|
2135
|
+
|
|
2136
|
+
/**
|
|
2137
|
+
* Item icon
|
|
2138
|
+
*/
|
|
2139
|
+
icon?: ReactNode;
|
|
2140
|
+
|
|
2141
|
+
/**
|
|
2142
|
+
* Item click handler
|
|
2143
|
+
*/
|
|
2144
|
+
onClick?: (event: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;
|
|
2145
|
+
|
|
2146
|
+
/**
|
|
2147
|
+
* Optional custom link component
|
|
2148
|
+
*/
|
|
2149
|
+
LinkComponent?: React.ElementType;
|
|
2150
|
+
}
|
|
2151
|
+
|
|
2152
|
+
/**
|
|
2153
|
+
* Dropdown divider properties
|
|
2154
|
+
*/
|
|
2155
|
+
export interface DropdownDividerProps {
|
|
2156
|
+
/**
|
|
2157
|
+
* Additional CSS class names
|
|
2158
|
+
*/
|
|
2159
|
+
className?: string;
|
|
2160
|
+
}
|
|
2161
|
+
|
|
2162
|
+
/**
|
|
2163
|
+
* Dropdown header properties
|
|
2164
|
+
*/
|
|
2165
|
+
export interface DropdownHeaderProps {
|
|
2166
|
+
/**
|
|
2167
|
+
* Header content
|
|
2168
|
+
*/
|
|
2169
|
+
children: ReactNode;
|
|
2170
|
+
|
|
2171
|
+
/**
|
|
2172
|
+
* Additional CSS class names
|
|
2173
|
+
*/
|
|
2174
|
+
className?: string;
|
|
2175
|
+
}
|
|
2176
|
+
|
|
2177
|
+
/**
|
|
2178
|
+
* Progress component properties
|
|
2179
|
+
*/
|
|
2180
|
+
export interface ProgressProps extends BaseComponentProps {
|
|
2181
|
+
/**
|
|
2182
|
+
* Progress value (0-100)
|
|
2183
|
+
*/
|
|
2184
|
+
value: number;
|
|
2185
|
+
|
|
2186
|
+
/**
|
|
2187
|
+
* Progress bar color variant
|
|
2188
|
+
*/
|
|
2189
|
+
variant?: ThemeColor;
|
|
2190
|
+
|
|
2191
|
+
/**
|
|
2192
|
+
* Progress bar size
|
|
2193
|
+
*/
|
|
2194
|
+
size?: Size;
|
|
2195
|
+
|
|
2196
|
+
/**
|
|
2197
|
+
* Accessible label for screen readers
|
|
2198
|
+
*/
|
|
2199
|
+
ariaLabel?: string;
|
|
2200
|
+
}
|
|
2201
|
+
|
|
2202
|
+
/**
|
|
2203
|
+
* Rating component properties
|
|
2204
|
+
*/
|
|
2205
|
+
export interface RatingProps extends BaseComponentProps {
|
|
2206
|
+
/**
|
|
2207
|
+
* The rating value (0-5)
|
|
2208
|
+
*/
|
|
2209
|
+
value?: number;
|
|
2210
|
+
|
|
2211
|
+
/**
|
|
2212
|
+
* Default value for uncontrolled mode
|
|
2213
|
+
*/
|
|
2214
|
+
defaultValue?: number;
|
|
2215
|
+
|
|
2216
|
+
/**
|
|
2217
|
+
* Maximum possible rating value
|
|
2218
|
+
*/
|
|
2219
|
+
maxValue?: number;
|
|
2220
|
+
|
|
2221
|
+
/**
|
|
2222
|
+
* Whether to allow half-star ratings
|
|
2223
|
+
*/
|
|
2224
|
+
allowHalf?: boolean;
|
|
2225
|
+
|
|
2226
|
+
/**
|
|
2227
|
+
* Whether the rating is read-only
|
|
2228
|
+
*/
|
|
2229
|
+
readOnly?: boolean;
|
|
2230
|
+
|
|
2231
|
+
/**
|
|
2232
|
+
* Size variant
|
|
2233
|
+
*/
|
|
2234
|
+
size?: Size;
|
|
2235
|
+
|
|
2236
|
+
/**
|
|
2237
|
+
* Color theme
|
|
2238
|
+
*/
|
|
2239
|
+
color?: ThemeColor;
|
|
2240
|
+
|
|
2241
|
+
/**
|
|
2242
|
+
* Optional callback when rating changes
|
|
2243
|
+
*/
|
|
2244
|
+
onChange?: (value: number) => void;
|
|
2245
|
+
|
|
2246
|
+
/**
|
|
2247
|
+
* Optional label for the rating component (for accessibility)
|
|
2248
|
+
*/
|
|
2249
|
+
label?: string;
|
|
2250
|
+
|
|
2251
|
+
/**
|
|
2252
|
+
* ID for the rating component (for accessibility)
|
|
2253
|
+
*/
|
|
2254
|
+
id?: string;
|
|
2255
|
+
|
|
2256
|
+
/**
|
|
2257
|
+
* Whether to use the vanilla JS implementation
|
|
2258
|
+
*/
|
|
2259
|
+
useVanillaJS?: boolean;
|
|
2260
|
+
}
|
|
2261
|
+
|
|
2262
|
+
/**
|
|
2263
|
+
* VideoPlayer component properties
|
|
2264
|
+
*/
|
|
2265
|
+
export interface VideoQuality {
|
|
2266
|
+
label: string;
|
|
2267
|
+
src: string;
|
|
2268
|
+
resolution?: string;
|
|
2269
|
+
}
|
|
2270
|
+
|
|
2271
|
+
export interface VideoSubtitle {
|
|
2272
|
+
label: string;
|
|
2273
|
+
src: string;
|
|
2274
|
+
srcLang: string;
|
|
2275
|
+
default?: boolean;
|
|
2276
|
+
}
|
|
2277
|
+
|
|
2278
|
+
export interface VideoChapter {
|
|
2279
|
+
title: string;
|
|
2280
|
+
startTime: number;
|
|
2281
|
+
endTime?: number;
|
|
2282
|
+
}
|
|
2283
|
+
|
|
2284
|
+
export interface VideoPlayerProps extends BaseComponentProps {
|
|
2285
|
+
/**
|
|
2286
|
+
* Video source URL or YouTube video ID
|
|
2287
|
+
*/
|
|
2288
|
+
src: string;
|
|
2289
|
+
|
|
2290
|
+
/**
|
|
2291
|
+
* Video player type
|
|
2292
|
+
*/
|
|
2293
|
+
type?: 'video' | 'youtube';
|
|
2294
|
+
|
|
2295
|
+
/**
|
|
2296
|
+
* YouTube video ID (alternative to src for YouTube videos)
|
|
2297
|
+
*/
|
|
2298
|
+
youtubeId?: string;
|
|
2299
|
+
|
|
2300
|
+
/**
|
|
2301
|
+
* Poster image URL
|
|
2302
|
+
*/
|
|
2303
|
+
poster?: string;
|
|
2304
|
+
|
|
2305
|
+
/**
|
|
2306
|
+
* Whether video should autoplay
|
|
2307
|
+
*/
|
|
2308
|
+
autoplay?: boolean;
|
|
2309
|
+
|
|
2310
|
+
/**
|
|
2311
|
+
* Whether video should loop
|
|
2312
|
+
*/
|
|
2313
|
+
loop?: boolean;
|
|
2314
|
+
|
|
2315
|
+
/**
|
|
2316
|
+
* Whether video should be muted
|
|
2317
|
+
*/
|
|
2318
|
+
muted?: boolean;
|
|
2319
|
+
|
|
2320
|
+
/**
|
|
2321
|
+
* Whether to show custom controls
|
|
2322
|
+
*/
|
|
2323
|
+
controls?: boolean;
|
|
2324
|
+
|
|
2325
|
+
/**
|
|
2326
|
+
* Video preload setting
|
|
2327
|
+
*/
|
|
2328
|
+
preload?: 'none' | 'metadata' | 'auto';
|
|
2329
|
+
|
|
2330
|
+
/**
|
|
2331
|
+
* Video width
|
|
2332
|
+
*/
|
|
2333
|
+
width?: string | number;
|
|
2334
|
+
|
|
2335
|
+
/**
|
|
2336
|
+
* Video height
|
|
2337
|
+
*/
|
|
2338
|
+
height?: string | number;
|
|
2339
|
+
|
|
2340
|
+
/**
|
|
2341
|
+
* Aspect ratio (e.g., '16:9', '4:3')
|
|
2342
|
+
*/
|
|
2343
|
+
aspectRatio?: string;
|
|
2344
|
+
|
|
2345
|
+
/**
|
|
2346
|
+
* Available playback rates
|
|
2347
|
+
*/
|
|
2348
|
+
playbackRates?: number[];
|
|
2349
|
+
|
|
2350
|
+
/**
|
|
2351
|
+
* Available video qualities
|
|
2352
|
+
*/
|
|
2353
|
+
quality?: VideoQuality[];
|
|
2354
|
+
|
|
2355
|
+
/**
|
|
2356
|
+
* Available subtitles
|
|
2357
|
+
*/
|
|
2358
|
+
subtitles?: VideoSubtitle[];
|
|
2359
|
+
|
|
2360
|
+
/**
|
|
2361
|
+
* Video chapters for navigation
|
|
2362
|
+
*/
|
|
2363
|
+
chapters?: VideoChapter[];
|
|
2364
|
+
|
|
2365
|
+
/**
|
|
2366
|
+
* Thumbnail images for scrubbing
|
|
2367
|
+
*/
|
|
2368
|
+
thumbnails?: string[];
|
|
2369
|
+
|
|
2370
|
+
/**
|
|
2371
|
+
* Whether to show download button
|
|
2372
|
+
*/
|
|
2373
|
+
showDownload?: boolean;
|
|
2374
|
+
|
|
2375
|
+
/**
|
|
2376
|
+
* Whether to show share button
|
|
2377
|
+
*/
|
|
2378
|
+
showShare?: boolean;
|
|
2379
|
+
|
|
2380
|
+
/**
|
|
2381
|
+
* Whether to show settings menu
|
|
2382
|
+
*/
|
|
2383
|
+
showSettings?: boolean;
|
|
2384
|
+
|
|
2385
|
+
/**
|
|
2386
|
+
* Enable ambient mode (YouTube-like background glow)
|
|
2387
|
+
*/
|
|
2388
|
+
ambientMode?: boolean;
|
|
2389
|
+
|
|
2390
|
+
/**
|
|
2391
|
+
* Play event handler
|
|
2392
|
+
*/
|
|
2393
|
+
onPlay?: () => void;
|
|
2394
|
+
|
|
2395
|
+
/**
|
|
2396
|
+
* Pause event handler
|
|
2397
|
+
*/
|
|
2398
|
+
onPause?: () => void;
|
|
2399
|
+
|
|
2400
|
+
/**
|
|
2401
|
+
* Ended event handler
|
|
2402
|
+
*/
|
|
2403
|
+
onEnded?: () => void;
|
|
2404
|
+
|
|
2405
|
+
/**
|
|
2406
|
+
* Time update event handler
|
|
2407
|
+
*/
|
|
2408
|
+
onTimeUpdate?: (currentTime: number) => void;
|
|
2409
|
+
|
|
2410
|
+
/**
|
|
2411
|
+
* Volume change event handler
|
|
2412
|
+
*/
|
|
2413
|
+
onVolumeChange?: (volume: number) => void;
|
|
2414
|
+
|
|
2415
|
+
/**
|
|
2416
|
+
* Fullscreen change event handler
|
|
2417
|
+
*/
|
|
2418
|
+
onFullscreenChange?: (isFullscreen: boolean) => void;
|
|
2419
|
+
|
|
2420
|
+
/**
|
|
2421
|
+
* Error event handler
|
|
2422
|
+
*/
|
|
2423
|
+
onError?: (error: Event) => void;
|
|
2424
|
+
}
|
|
2425
|
+
|
|
2426
|
+
/**
|
|
2427
|
+
* PhotoViewer component properties
|
|
2428
|
+
*/
|
|
2429
|
+
/**
|
|
2430
|
+
* Interface for image objects used in PhotoViewer
|
|
2431
|
+
*/
|
|
2432
|
+
export interface ImageType {
|
|
2433
|
+
src: string;
|
|
2434
|
+
alt?: string;
|
|
2435
|
+
thumbnail?: string;
|
|
2436
|
+
title?: string;
|
|
2437
|
+
description?: string;
|
|
2438
|
+
date?: string;
|
|
2439
|
+
author?: string;
|
|
2440
|
+
tags?: string[];
|
|
2441
|
+
}
|
|
2442
|
+
|
|
2443
|
+
export interface PhotoViewerProps extends BaseComponentProps {
|
|
2444
|
+
/**
|
|
2445
|
+
* Array of image URLs or image objects to display in the viewer
|
|
2446
|
+
*/
|
|
2447
|
+
images: (string | ImageType)[];
|
|
2448
|
+
/**
|
|
2449
|
+
* Index of the image to show first
|
|
2450
|
+
* @default 0
|
|
2451
|
+
*/
|
|
2452
|
+
startIndex?: number;
|
|
2453
|
+
/**
|
|
2454
|
+
* Additional className for the root element
|
|
2455
|
+
*/
|
|
2456
|
+
className?: string;
|
|
2457
|
+
/**
|
|
2458
|
+
* Whether the viewer is disabled
|
|
2459
|
+
* @default false
|
|
2460
|
+
*/
|
|
2461
|
+
disabled?: boolean;
|
|
2462
|
+
/**
|
|
2463
|
+
* Enable keyboard navigation (arrow keys, escape)
|
|
2464
|
+
* @default true
|
|
2465
|
+
*/
|
|
2466
|
+
enableKeyboardNavigation?: boolean;
|
|
2467
|
+
/**
|
|
2468
|
+
* Enable touch gestures for mobile devices
|
|
2469
|
+
* @default true
|
|
2470
|
+
*/
|
|
2471
|
+
enableGestures?: boolean;
|
|
2472
|
+
/**
|
|
2473
|
+
* Enable fullscreen mode
|
|
2474
|
+
* @default true
|
|
2475
|
+
*/
|
|
2476
|
+
enableFullscreen?: boolean;
|
|
2477
|
+
/**
|
|
2478
|
+
* Position of thumbnails
|
|
2479
|
+
* @default 'bottom'
|
|
2480
|
+
*/
|
|
2481
|
+
thumbnailPosition?: 'bottom' | 'top' | 'left' | 'right' | 'none';
|
|
2482
|
+
/**
|
|
2483
|
+
* Callback when image changes
|
|
2484
|
+
*/
|
|
2485
|
+
onImageChange?: (index: number) => void;
|
|
2486
|
+
/**
|
|
2487
|
+
* Callback when viewer is closed
|
|
2488
|
+
*/
|
|
2489
|
+
onClose?: () => void;
|
|
2490
|
+
}
|
|
2491
|
+
|
|
2492
|
+
/**
|
|
2493
|
+
* Card component props
|
|
2494
|
+
*/
|
|
2495
|
+
export interface CardProps extends BaseComponentProps {
|
|
2496
|
+
/**
|
|
2497
|
+
* Card header content
|
|
2498
|
+
*/
|
|
2499
|
+
header?: ReactNode;
|
|
2500
|
+
|
|
2501
|
+
/**
|
|
2502
|
+
* Card image source URL
|
|
2503
|
+
*/
|
|
2504
|
+
image?: string;
|
|
2505
|
+
|
|
2506
|
+
/**
|
|
2507
|
+
* Alternative text for the image
|
|
2508
|
+
*/
|
|
2509
|
+
imageAlt?: string;
|
|
2510
|
+
|
|
2511
|
+
/**
|
|
2512
|
+
* Card title
|
|
2513
|
+
*/
|
|
2514
|
+
title?: ReactNode;
|
|
2515
|
+
|
|
2516
|
+
/**
|
|
2517
|
+
* Card text content
|
|
2518
|
+
*/
|
|
2519
|
+
text?: ReactNode;
|
|
2520
|
+
|
|
2521
|
+
/**
|
|
2522
|
+
* Card actions (buttons, links, etc.)
|
|
2523
|
+
*/
|
|
2524
|
+
actions?: ReactNode;
|
|
2525
|
+
|
|
2526
|
+
/**
|
|
2527
|
+
* Card icon
|
|
2528
|
+
*/
|
|
2529
|
+
icon?: ReactNode;
|
|
2530
|
+
|
|
2531
|
+
/**
|
|
2532
|
+
* Card footer content
|
|
2533
|
+
*/
|
|
2534
|
+
footer?: ReactNode;
|
|
2535
|
+
|
|
2536
|
+
/**
|
|
2537
|
+
* Row layout (horizontal card)
|
|
2538
|
+
*/
|
|
2539
|
+
row?: boolean;
|
|
2540
|
+
|
|
2541
|
+
/**
|
|
2542
|
+
* Flat style (no padding on image container)
|
|
2543
|
+
*/
|
|
2544
|
+
flat?: boolean;
|
|
2545
|
+
|
|
2546
|
+
/**
|
|
2547
|
+
* Active state
|
|
2548
|
+
*/
|
|
2549
|
+
active?: boolean;
|
|
2550
|
+
|
|
2551
|
+
/**
|
|
2552
|
+
* Card content (body)
|
|
2553
|
+
*/
|
|
2554
|
+
children?: ReactNode;
|
|
2555
|
+
|
|
2556
|
+
/**
|
|
2557
|
+
* Optional click handler
|
|
2558
|
+
*/
|
|
2559
|
+
onClick?: (event: React.MouseEvent<HTMLDivElement>) => void;
|
|
2560
|
+
}
|
|
2561
|
+
|
|
2562
|
+
/**
|
|
2563
|
+
* Elevation Card component props
|
|
2564
|
+
*/
|
|
2565
|
+
export interface ElevationCardProps extends CardProps {
|
|
2566
|
+
/**
|
|
2567
|
+
* CSS class for elevation effect
|
|
2568
|
+
*/
|
|
2569
|
+
elevationClass?: string;
|
|
2570
|
+
}
|
|
2571
|
+
|
|
2572
|
+
/**
|
|
2573
|
+
* Card hook options
|
|
2574
|
+
*/
|
|
2575
|
+
export interface UseCardOptions {
|
|
2576
|
+
/**
|
|
2577
|
+
* Enable elevation effect on hover
|
|
2578
|
+
*/
|
|
2579
|
+
elevationEffect?: boolean;
|
|
2580
|
+
|
|
2581
|
+
/**
|
|
2582
|
+
* CSS class for elevation effect
|
|
2583
|
+
*/
|
|
2584
|
+
elevationClass?: string;
|
|
2585
|
+
|
|
2586
|
+
/**
|
|
2587
|
+
* Enable flip effect
|
|
2588
|
+
*/
|
|
2589
|
+
flipEffect?: boolean;
|
|
2590
|
+
|
|
2591
|
+
/**
|
|
2592
|
+
* Trigger for flip effect: 'click' or 'hover'
|
|
2593
|
+
*/
|
|
2594
|
+
flipTrigger?: 'click' | 'hover';
|
|
2595
|
+
|
|
2596
|
+
/**
|
|
2597
|
+
* Make card focusable and add focus effect
|
|
2598
|
+
*/
|
|
2599
|
+
focusEffect?: boolean;
|
|
2600
|
+
|
|
2601
|
+
/**
|
|
2602
|
+
* Make card clickable
|
|
2603
|
+
*/
|
|
2604
|
+
clickable?: boolean;
|
|
2605
|
+
|
|
2606
|
+
/**
|
|
2607
|
+
* Click handler for clickable card
|
|
2608
|
+
*/
|
|
2609
|
+
onClick?: (event: React.MouseEvent) => void;
|
|
2610
|
+
}
|
|
2611
|
+
|
|
2612
|
+
/**
|
|
2613
|
+
* Card hook return value
|
|
2614
|
+
*/
|
|
2615
|
+
export interface UseCardReturn {
|
|
2616
|
+
/**
|
|
2617
|
+
* Reference to the card element
|
|
2618
|
+
*/
|
|
2619
|
+
cardRef: React.RefObject<HTMLDivElement | null>;
|
|
2620
|
+
|
|
2621
|
+
/**
|
|
2622
|
+
* Reference to the front side of a flip card
|
|
2623
|
+
*/
|
|
2624
|
+
frontRef: React.RefObject<HTMLDivElement | null>;
|
|
2625
|
+
|
|
2626
|
+
/**
|
|
2627
|
+
* Reference to the back side of a flip card
|
|
2628
|
+
*/
|
|
2629
|
+
backRef: React.RefObject<HTMLDivElement | null>;
|
|
2630
|
+
|
|
2631
|
+
/**
|
|
2632
|
+
* Whether the card is flipped
|
|
2633
|
+
*/
|
|
2634
|
+
isFlipped: boolean;
|
|
2635
|
+
|
|
2636
|
+
/**
|
|
2637
|
+
* Whether the card is elevated
|
|
2638
|
+
*/
|
|
2639
|
+
isElevated: boolean;
|
|
2640
|
+
|
|
2641
|
+
/**
|
|
2642
|
+
* Whether the card is focused
|
|
2643
|
+
*/
|
|
2644
|
+
isFocused: boolean;
|
|
2645
|
+
|
|
2646
|
+
/**
|
|
2647
|
+
* Whether the card is hovered
|
|
2648
|
+
*/
|
|
2649
|
+
isHovered: boolean;
|
|
2650
|
+
|
|
2651
|
+
/**
|
|
2652
|
+
* Click event handler
|
|
2653
|
+
*/
|
|
2654
|
+
handleClick: (event: React.MouseEvent) => void;
|
|
2655
|
+
|
|
2656
|
+
/**
|
|
2657
|
+
* Keyboard event handler
|
|
2658
|
+
*/
|
|
2659
|
+
handleKeyDown: (event: React.KeyboardEvent) => void;
|
|
2660
|
+
|
|
2661
|
+
/**
|
|
2662
|
+
* Mouse enter event handler
|
|
2663
|
+
*/
|
|
2664
|
+
handleMouseEnter: () => void;
|
|
2665
|
+
|
|
2666
|
+
/**
|
|
2667
|
+
* Mouse leave event handler
|
|
2668
|
+
*/
|
|
2669
|
+
handleMouseLeave: () => void;
|
|
2670
|
+
|
|
2671
|
+
/**
|
|
2672
|
+
* Focus event handler
|
|
2673
|
+
*/
|
|
2674
|
+
handleFocus: () => void;
|
|
2675
|
+
|
|
2676
|
+
/**
|
|
2677
|
+
* Blur event handler
|
|
2678
|
+
*/
|
|
2679
|
+
handleBlur: () => void;
|
|
2680
|
+
|
|
2681
|
+
/**
|
|
2682
|
+
* Get all card props combined
|
|
2683
|
+
*/
|
|
2684
|
+
getCardProps: () => {
|
|
2685
|
+
className: string;
|
|
2686
|
+
ref: React.RefObject<HTMLDivElement | null>;
|
|
2687
|
+
tabIndex?: number;
|
|
2688
|
+
role?: string;
|
|
2689
|
+
onMouseEnter: () => void;
|
|
2690
|
+
onMouseLeave: () => void;
|
|
2691
|
+
onFocus: () => void;
|
|
2692
|
+
onBlur: () => void;
|
|
2693
|
+
onClick: (event: React.MouseEvent) => void;
|
|
2694
|
+
onKeyDown: (event: React.KeyboardEvent) => void;
|
|
2695
|
+
};
|
|
2696
|
+
}
|
|
2697
|
+
|
|
2698
|
+
/**
|
|
2699
|
+
* Slider slide item interface
|
|
2700
|
+
*/
|
|
2701
|
+
export interface SliderSlide {
|
|
2702
|
+
/**
|
|
2703
|
+
* Unique identifier for the slide
|
|
2704
|
+
*/
|
|
2705
|
+
id: string;
|
|
2706
|
+
|
|
2707
|
+
/**
|
|
2708
|
+
* Slide content
|
|
2709
|
+
*/
|
|
2710
|
+
content: ReactNode;
|
|
2711
|
+
|
|
2712
|
+
/**
|
|
2713
|
+
* Optional image source
|
|
2714
|
+
*/
|
|
2715
|
+
image?: string;
|
|
2716
|
+
|
|
2717
|
+
/**
|
|
2718
|
+
* Optional image alt text
|
|
2719
|
+
*/
|
|
2720
|
+
alt?: string;
|
|
2721
|
+
|
|
2722
|
+
/**
|
|
2723
|
+
* Optional title
|
|
2724
|
+
*/
|
|
2725
|
+
title?: string;
|
|
2726
|
+
|
|
2727
|
+
/**
|
|
2728
|
+
* Optional description
|
|
2729
|
+
*/
|
|
2730
|
+
description?: string;
|
|
2731
|
+
|
|
2732
|
+
/**
|
|
2733
|
+
* Optional link URL
|
|
2734
|
+
*/
|
|
2735
|
+
href?: string;
|
|
2736
|
+
|
|
2737
|
+
/**
|
|
2738
|
+
* Optional click handler
|
|
2739
|
+
*/
|
|
2740
|
+
onClick?: () => void;
|
|
2741
|
+
|
|
2742
|
+
/**
|
|
2743
|
+
* Custom CSS class for the slide
|
|
2744
|
+
*/
|
|
2745
|
+
className?: string;
|
|
2746
|
+
|
|
2747
|
+
/**
|
|
2748
|
+
* Custom data attributes
|
|
2749
|
+
*/
|
|
2750
|
+
data?: Record<string, string>;
|
|
2751
|
+
|
|
2752
|
+
/**
|
|
2753
|
+
* Lazy loading image source
|
|
2754
|
+
*/
|
|
2755
|
+
dataSrc?: string;
|
|
2756
|
+
|
|
2757
|
+
/**
|
|
2758
|
+
* Background image
|
|
2759
|
+
*/
|
|
2760
|
+
backgroundImage?: string;
|
|
2761
|
+
|
|
2762
|
+
/**
|
|
2763
|
+
* Video source for video slides
|
|
2764
|
+
*/
|
|
2765
|
+
video?: {
|
|
2766
|
+
src: string;
|
|
2767
|
+
poster?: string;
|
|
2768
|
+
autoplay?: boolean;
|
|
2769
|
+
loop?: boolean;
|
|
2770
|
+
muted?: boolean;
|
|
2771
|
+
};
|
|
2772
|
+
}
|
|
2773
|
+
|
|
2774
|
+
/**
|
|
2775
|
+
* Slider breakpoint configuration
|
|
2776
|
+
*/
|
|
2777
|
+
export interface SliderBreakpoint {
|
|
2778
|
+
/**
|
|
2779
|
+
* Number of slides to show
|
|
2780
|
+
*/
|
|
2781
|
+
slidesToShow?: number;
|
|
2782
|
+
|
|
2783
|
+
/**
|
|
2784
|
+
* Slides per view
|
|
2785
|
+
*/
|
|
2786
|
+
slidesPerView?: number | 'auto';
|
|
2787
|
+
|
|
2788
|
+
/**
|
|
2789
|
+
* Number of slides to scroll
|
|
2790
|
+
*/
|
|
2791
|
+
slidesToScroll?: number;
|
|
2792
|
+
|
|
2793
|
+
/**
|
|
2794
|
+
* Slides per group
|
|
2795
|
+
*/
|
|
2796
|
+
slidesPerGroup?: number;
|
|
2797
|
+
|
|
2798
|
+
/**
|
|
2799
|
+
* Space between slides in pixels
|
|
2800
|
+
*/
|
|
2801
|
+
spaceBetween?: number;
|
|
2802
|
+
|
|
2803
|
+
/**
|
|
2804
|
+
* Whether to center slides
|
|
2805
|
+
*/
|
|
2806
|
+
centeredSlides?: boolean;
|
|
2807
|
+
|
|
2808
|
+
/**
|
|
2809
|
+
* Slides per column
|
|
2810
|
+
*/
|
|
2811
|
+
slidesPerColumn?: number;
|
|
2812
|
+
|
|
2813
|
+
/**
|
|
2814
|
+
* Slides per column fill
|
|
2815
|
+
*/
|
|
2816
|
+
slidesPerColumnFill?: 'column' | 'row';
|
|
2817
|
+
|
|
2818
|
+
/**
|
|
2819
|
+
* Direction
|
|
2820
|
+
*/
|
|
2821
|
+
direction?: 'horizontal' | 'vertical';
|
|
2822
|
+
|
|
2823
|
+
/**
|
|
2824
|
+
* Width
|
|
2825
|
+
*/
|
|
2826
|
+
width?: number;
|
|
2827
|
+
|
|
2828
|
+
/**
|
|
2829
|
+
* Height
|
|
2830
|
+
*/
|
|
2831
|
+
height?: number;
|
|
2832
|
+
|
|
2833
|
+
/**
|
|
2834
|
+
* Loop
|
|
2835
|
+
*/
|
|
2836
|
+
loop?: boolean;
|
|
2837
|
+
|
|
2838
|
+
/**
|
|
2839
|
+
* Loop additional slides
|
|
2840
|
+
*/
|
|
2841
|
+
loopAdditionalSlides?: number;
|
|
2842
|
+
|
|
2843
|
+
/**
|
|
2844
|
+
* Loop filled group with blank
|
|
2845
|
+
*/
|
|
2846
|
+
loopFillGroupWithBlank?: boolean;
|
|
2847
|
+
|
|
2848
|
+
/**
|
|
2849
|
+
* Free mode
|
|
2850
|
+
*/
|
|
2851
|
+
freeMode?: boolean;
|
|
2852
|
+
|
|
2853
|
+
/**
|
|
2854
|
+
* Speed
|
|
2855
|
+
*/
|
|
2856
|
+
speed?: number;
|
|
2857
|
+
|
|
2858
|
+
/**
|
|
2859
|
+
* Effect
|
|
2860
|
+
*/
|
|
2861
|
+
effect?: string;
|
|
2862
|
+
|
|
2863
|
+
/**
|
|
2864
|
+
* Autoplay
|
|
2865
|
+
*/
|
|
2866
|
+
autoplay?: boolean | SliderAutoplay;
|
|
2867
|
+
|
|
2868
|
+
/**
|
|
2869
|
+
* Navigation
|
|
2870
|
+
*/
|
|
2871
|
+
navigation?: boolean | SliderNavigation;
|
|
2872
|
+
|
|
2873
|
+
/**
|
|
2874
|
+
* Pagination
|
|
2875
|
+
*/
|
|
2876
|
+
pagination?: boolean | SliderPagination;
|
|
2877
|
+
|
|
2878
|
+
/**
|
|
2879
|
+
* Scrollbar
|
|
2880
|
+
*/
|
|
2881
|
+
scrollbar?: boolean | SliderScrollbar;
|
|
2882
|
+
}
|
|
2883
|
+
|
|
2884
|
+
/**
|
|
2885
|
+
* Slider autoplay configuration
|
|
2886
|
+
*/
|
|
2887
|
+
export interface SliderAutoplay {
|
|
2888
|
+
/**
|
|
2889
|
+
* Delay between transitions in milliseconds
|
|
2890
|
+
*/
|
|
2891
|
+
delay: number;
|
|
2892
|
+
|
|
2893
|
+
/**
|
|
2894
|
+
* Whether to stop autoplay on interaction
|
|
2895
|
+
*/
|
|
2896
|
+
stopOnInteraction?: boolean;
|
|
2897
|
+
|
|
2898
|
+
/**
|
|
2899
|
+
* Whether to disable autoplay on hover
|
|
2900
|
+
*/
|
|
2901
|
+
pauseOnHover?: boolean;
|
|
2902
|
+
|
|
2903
|
+
/**
|
|
2904
|
+
* Whether to reverse direction
|
|
2905
|
+
*/
|
|
2906
|
+
reverseDirection?: boolean;
|
|
2907
|
+
|
|
2908
|
+
/**
|
|
2909
|
+
* Disable on interaction
|
|
2910
|
+
*/
|
|
2911
|
+
disableOnInteraction?: boolean;
|
|
2912
|
+
|
|
2913
|
+
/**
|
|
2914
|
+
* Wait for transition
|
|
2915
|
+
*/
|
|
2916
|
+
waitForTransition?: boolean;
|
|
2917
|
+
|
|
2918
|
+
/**
|
|
2919
|
+
* Pause on mouse enter
|
|
2920
|
+
*/
|
|
2921
|
+
pauseOnMouseEnter?: boolean;
|
|
2922
|
+
}
|
|
2923
|
+
|
|
2924
|
+
/**
|
|
2925
|
+
* Slider pagination configuration
|
|
2926
|
+
*/
|
|
2927
|
+
export interface SliderPagination {
|
|
2928
|
+
/**
|
|
2929
|
+
* Whether pagination is enabled
|
|
2930
|
+
*/
|
|
2931
|
+
enabled: boolean;
|
|
2932
|
+
|
|
2933
|
+
/**
|
|
2934
|
+
* Pagination element selector
|
|
2935
|
+
*/
|
|
2936
|
+
el?: string | HTMLElement;
|
|
2937
|
+
|
|
2938
|
+
/**
|
|
2939
|
+
* Pagination type
|
|
2940
|
+
*/
|
|
2941
|
+
type?: 'bullets' | 'fraction' | 'progressbar' | 'custom';
|
|
2942
|
+
|
|
2943
|
+
/**
|
|
2944
|
+
* Whether pagination is clickable
|
|
2945
|
+
*/
|
|
2946
|
+
clickable?: boolean;
|
|
2947
|
+
|
|
2948
|
+
/**
|
|
2949
|
+
* Whether to hide pagination on single slide
|
|
2950
|
+
*/
|
|
2951
|
+
hideOnClick?: boolean;
|
|
2952
|
+
|
|
2953
|
+
/**
|
|
2954
|
+
* Dynamic bullets
|
|
2955
|
+
*/
|
|
2956
|
+
dynamicBullets?: boolean;
|
|
2957
|
+
|
|
2958
|
+
/**
|
|
2959
|
+
* Dynamic main bullets
|
|
2960
|
+
*/
|
|
2961
|
+
dynamicMainBullets?: number;
|
|
2962
|
+
|
|
2963
|
+
/**
|
|
2964
|
+
* Format fraction current
|
|
2965
|
+
*/
|
|
2966
|
+
formatFractionCurrent?: (number: number) => string;
|
|
2967
|
+
|
|
2968
|
+
/**
|
|
2969
|
+
* Format fraction total
|
|
2970
|
+
*/
|
|
2971
|
+
formatFractionTotal?: (number: number) => string;
|
|
2972
|
+
|
|
2973
|
+
/**
|
|
2974
|
+
* Render bullet
|
|
2975
|
+
*/
|
|
2976
|
+
renderBullet?: (index: number, className: string) => string;
|
|
2977
|
+
|
|
2978
|
+
/**
|
|
2979
|
+
* Render fraction
|
|
2980
|
+
*/
|
|
2981
|
+
renderFraction?: (currentClass: string, totalClass: string) => string;
|
|
2982
|
+
|
|
2983
|
+
/**
|
|
2984
|
+
* Render progressbar
|
|
2985
|
+
*/
|
|
2986
|
+
renderProgressbar?: (progressbarFillClass: string) => string;
|
|
2987
|
+
|
|
2988
|
+
/**
|
|
2989
|
+
* Render custom
|
|
2990
|
+
*/
|
|
2991
|
+
renderCustom?: (swiper: any, current: number, total: number) => string;
|
|
2992
|
+
|
|
2993
|
+
/**
|
|
2994
|
+
* Progressbar opposite
|
|
2995
|
+
*/
|
|
2996
|
+
progressbarOpposite?: boolean;
|
|
2997
|
+
|
|
2998
|
+
/**
|
|
2999
|
+
* Bullet class
|
|
3000
|
+
*/
|
|
3001
|
+
bulletClass?: string;
|
|
3002
|
+
|
|
3003
|
+
/**
|
|
3004
|
+
* Bullet active class
|
|
3005
|
+
*/
|
|
3006
|
+
bulletActiveClass?: string;
|
|
3007
|
+
|
|
3008
|
+
/**
|
|
3009
|
+
* Modifier class
|
|
3010
|
+
*/
|
|
3011
|
+
modifierClass?: string;
|
|
3012
|
+
|
|
3013
|
+
/**
|
|
3014
|
+
* Current class
|
|
3015
|
+
*/
|
|
3016
|
+
currentClass?: string;
|
|
3017
|
+
|
|
3018
|
+
/**
|
|
3019
|
+
* Total class
|
|
3020
|
+
*/
|
|
3021
|
+
totalClass?: string;
|
|
3022
|
+
|
|
3023
|
+
/**
|
|
3024
|
+
* Hidden class
|
|
3025
|
+
*/
|
|
3026
|
+
hiddenClass?: string;
|
|
3027
|
+
|
|
3028
|
+
/**
|
|
3029
|
+
* Progressbar fill class
|
|
3030
|
+
*/
|
|
3031
|
+
progressbarFillClass?: string;
|
|
3032
|
+
|
|
3033
|
+
/**
|
|
3034
|
+
* Progressbar opposite class
|
|
3035
|
+
*/
|
|
3036
|
+
progressbarOppositeClass?: string;
|
|
3037
|
+
|
|
3038
|
+
/**
|
|
3039
|
+
* Clickable class
|
|
3040
|
+
*/
|
|
3041
|
+
clickableClass?: string;
|
|
3042
|
+
|
|
3043
|
+
/**
|
|
3044
|
+
* Lock class
|
|
3045
|
+
*/
|
|
3046
|
+
lockClass?: string;
|
|
3047
|
+
|
|
3048
|
+
/**
|
|
3049
|
+
* Horizontal class
|
|
3050
|
+
*/
|
|
3051
|
+
horizontalClass?: string;
|
|
3052
|
+
|
|
3053
|
+
/**
|
|
3054
|
+
* Vertical class
|
|
3055
|
+
*/
|
|
3056
|
+
verticalClass?: string;
|
|
3057
|
+
}
|
|
3058
|
+
|
|
3059
|
+
/**
|
|
3060
|
+
* Slider navigation configuration
|
|
3061
|
+
*/
|
|
3062
|
+
export interface SliderNavigation {
|
|
3063
|
+
/**
|
|
3064
|
+
* Whether navigation is enabled
|
|
3065
|
+
*/
|
|
3066
|
+
enabled: boolean;
|
|
3067
|
+
|
|
3068
|
+
/**
|
|
3069
|
+
* Previous button element selector
|
|
3070
|
+
*/
|
|
3071
|
+
prevEl?: string | HTMLElement | ReactNode;
|
|
3072
|
+
|
|
3073
|
+
/**
|
|
3074
|
+
* Next button element selector
|
|
3075
|
+
*/
|
|
3076
|
+
nextEl?: string | HTMLElement | ReactNode;
|
|
3077
|
+
|
|
3078
|
+
/**
|
|
3079
|
+
* Whether to hide navigation on reach
|
|
3080
|
+
*/
|
|
3081
|
+
hideOnClick?: boolean;
|
|
3082
|
+
|
|
3083
|
+
/**
|
|
3084
|
+
* Disabled class
|
|
3085
|
+
*/
|
|
3086
|
+
disabledClass?: string;
|
|
3087
|
+
|
|
3088
|
+
/**
|
|
3089
|
+
* Hidden class
|
|
3090
|
+
*/
|
|
3091
|
+
hiddenClass?: string;
|
|
3092
|
+
|
|
3093
|
+
/**
|
|
3094
|
+
* Lock class
|
|
3095
|
+
*/
|
|
3096
|
+
lockClass?: string;
|
|
3097
|
+
|
|
3098
|
+
/**
|
|
3099
|
+
* Navigation wrapper class
|
|
3100
|
+
*/
|
|
3101
|
+
navigationDisabledClass?: string;
|
|
3102
|
+
}
|
|
3103
|
+
|
|
3104
|
+
/**
|
|
3105
|
+
* Slider scrollbar configuration
|
|
3106
|
+
*/
|
|
3107
|
+
export interface SliderScrollbar {
|
|
3108
|
+
/**
|
|
3109
|
+
* Whether scrollbar is enabled
|
|
3110
|
+
*/
|
|
3111
|
+
enabled: boolean;
|
|
3112
|
+
|
|
3113
|
+
/**
|
|
3114
|
+
* Scrollbar element selector
|
|
3115
|
+
*/
|
|
3116
|
+
el?: string | HTMLElement;
|
|
3117
|
+
|
|
3118
|
+
/**
|
|
3119
|
+
* Whether scrollbar is draggable
|
|
3120
|
+
*/
|
|
3121
|
+
draggable?: boolean;
|
|
3122
|
+
|
|
3123
|
+
/**
|
|
3124
|
+
* Whether to hide scrollbar automatically
|
|
3125
|
+
*/
|
|
3126
|
+
hide?: boolean;
|
|
3127
|
+
|
|
3128
|
+
/**
|
|
3129
|
+
* Scrollbar snap on release
|
|
3130
|
+
*/
|
|
3131
|
+
snapOnRelease?: boolean;
|
|
3132
|
+
|
|
3133
|
+
/**
|
|
3134
|
+
* Drag class
|
|
3135
|
+
*/
|
|
3136
|
+
dragClass?: string;
|
|
3137
|
+
|
|
3138
|
+
/**
|
|
3139
|
+
* Lock class
|
|
3140
|
+
*/
|
|
3141
|
+
lockClass?: string;
|
|
3142
|
+
|
|
3143
|
+
/**
|
|
3144
|
+
* Horizontal class
|
|
3145
|
+
*/
|
|
3146
|
+
horizontalClass?: string;
|
|
3147
|
+
|
|
3148
|
+
/**
|
|
3149
|
+
* Vertical class
|
|
3150
|
+
*/
|
|
3151
|
+
verticalClass?: string;
|
|
3152
|
+
}
|
|
3153
|
+
|
|
3154
|
+
/**
|
|
3155
|
+
* Slider effect configuration
|
|
3156
|
+
*/
|
|
3157
|
+
export interface SliderEffect {
|
|
3158
|
+
/**
|
|
3159
|
+
* Transition effect type
|
|
3160
|
+
*/
|
|
3161
|
+
type: 'slide' | 'fade' | 'cube' | 'coverflow' | 'flip' | 'cards' | 'creative';
|
|
3162
|
+
|
|
3163
|
+
/**
|
|
3164
|
+
* Fade effect options
|
|
3165
|
+
*/
|
|
3166
|
+
fade?: {
|
|
3167
|
+
crossFade?: boolean;
|
|
3168
|
+
};
|
|
3169
|
+
|
|
3170
|
+
/**
|
|
3171
|
+
* Cube effect options
|
|
3172
|
+
*/
|
|
3173
|
+
cube?: {
|
|
3174
|
+
slideShadows?: boolean;
|
|
3175
|
+
shadow?: boolean;
|
|
3176
|
+
shadowOffset?: number;
|
|
3177
|
+
shadowScale?: number;
|
|
3178
|
+
};
|
|
3179
|
+
|
|
3180
|
+
/**
|
|
3181
|
+
* Coverflow effect options
|
|
3182
|
+
*/
|
|
3183
|
+
coverflow?: {
|
|
3184
|
+
rotate?: number;
|
|
3185
|
+
stretch?: number;
|
|
3186
|
+
depth?: number;
|
|
3187
|
+
modifier?: number;
|
|
3188
|
+
slideShadows?: boolean;
|
|
3189
|
+
};
|
|
3190
|
+
|
|
3191
|
+
/**
|
|
3192
|
+
* Flip effect options
|
|
3193
|
+
*/
|
|
3194
|
+
flip?: {
|
|
3195
|
+
slideShadows?: boolean;
|
|
3196
|
+
limitRotation?: boolean;
|
|
3197
|
+
};
|
|
3198
|
+
|
|
3199
|
+
/**
|
|
3200
|
+
* Cards effect options
|
|
3201
|
+
*/
|
|
3202
|
+
cards?: {
|
|
3203
|
+
perSlideOffset?: number;
|
|
3204
|
+
perSlideRotate?: number;
|
|
3205
|
+
rotate?: boolean;
|
|
3206
|
+
slideShadows?: boolean;
|
|
3207
|
+
};
|
|
3208
|
+
|
|
3209
|
+
/**
|
|
3210
|
+
* Creative effect options
|
|
3211
|
+
*/
|
|
3212
|
+
creative?: {
|
|
3213
|
+
prev?: {
|
|
3214
|
+
translate?: [number, number, number];
|
|
3215
|
+
rotate?: [number, number, number];
|
|
3216
|
+
opacity?: number;
|
|
3217
|
+
scale?: number;
|
|
3218
|
+
};
|
|
3219
|
+
next?: {
|
|
3220
|
+
translate?: [number, number, number];
|
|
3221
|
+
rotate?: [number, number, number];
|
|
3222
|
+
opacity?: number;
|
|
3223
|
+
scale?: number;
|
|
3224
|
+
};
|
|
3225
|
+
limitProgress?: number;
|
|
3226
|
+
shadowPerProgress?: boolean;
|
|
3227
|
+
progressMultiplier?: number;
|
|
3228
|
+
};
|
|
3229
|
+
}
|
|
3230
|
+
|
|
3231
|
+
/**
|
|
3232
|
+
* Slider thumbs configuration
|
|
3233
|
+
*/
|
|
3234
|
+
export interface SliderThumbs {
|
|
3235
|
+
/**
|
|
3236
|
+
* Whether thumbs are enabled
|
|
3237
|
+
*/
|
|
3238
|
+
enabled: boolean;
|
|
3239
|
+
|
|
3240
|
+
/**
|
|
3241
|
+
* Swiper instance for thumbs
|
|
3242
|
+
*/
|
|
3243
|
+
swiper?: any;
|
|
3244
|
+
|
|
3245
|
+
/**
|
|
3246
|
+
* Thumbs slides data
|
|
3247
|
+
*/
|
|
3248
|
+
slides?: SliderSlide[];
|
|
3249
|
+
|
|
3250
|
+
/**
|
|
3251
|
+
* Number of thumbs to show
|
|
3252
|
+
*/
|
|
3253
|
+
slidesToShow?: number;
|
|
3254
|
+
|
|
3255
|
+
/**
|
|
3256
|
+
* Space between thumbs
|
|
3257
|
+
*/
|
|
3258
|
+
spaceBetween?: number;
|
|
3259
|
+
|
|
3260
|
+
/**
|
|
3261
|
+
* Thumbs direction
|
|
3262
|
+
*/
|
|
3263
|
+
direction?: 'horizontal' | 'vertical';
|
|
3264
|
+
|
|
3265
|
+
/**
|
|
3266
|
+
* Whether thumbs are clickable
|
|
3267
|
+
*/
|
|
3268
|
+
clickable?: boolean;
|
|
3269
|
+
|
|
3270
|
+
/**
|
|
3271
|
+
* Slide thumb active class
|
|
3272
|
+
*/
|
|
3273
|
+
slideThumbActiveClass?: string;
|
|
3274
|
+
|
|
3275
|
+
/**
|
|
3276
|
+
* Thumbs container class
|
|
3277
|
+
*/
|
|
3278
|
+
thumbsContainerClass?: string;
|
|
3279
|
+
|
|
3280
|
+
/**
|
|
3281
|
+
* Auto scroll offset
|
|
3282
|
+
*/
|
|
3283
|
+
autoScrollOffset?: number;
|
|
3284
|
+
|
|
3285
|
+
/**
|
|
3286
|
+
* Multiple active thumbs
|
|
3287
|
+
*/
|
|
3288
|
+
multipleActiveThumbs?: boolean;
|
|
3289
|
+
}
|
|
3290
|
+
|
|
3291
|
+
/**
|
|
3292
|
+
* Slider zoom configuration
|
|
3293
|
+
*/
|
|
3294
|
+
export interface SliderZoom {
|
|
3295
|
+
/**
|
|
3296
|
+
* Whether zoom is enabled
|
|
3297
|
+
*/
|
|
3298
|
+
enabled: boolean;
|
|
3299
|
+
|
|
3300
|
+
/**
|
|
3301
|
+
* Maximum zoom ratio
|
|
3302
|
+
*/
|
|
3303
|
+
maxRatio?: number;
|
|
3304
|
+
|
|
3305
|
+
/**
|
|
3306
|
+
* Minimum zoom ratio
|
|
3307
|
+
*/
|
|
3308
|
+
minRatio?: number;
|
|
3309
|
+
|
|
3310
|
+
/**
|
|
3311
|
+
* Whether to toggle zoom on double tap
|
|
3312
|
+
*/
|
|
3313
|
+
toggle?: boolean;
|
|
3314
|
+
|
|
3315
|
+
/**
|
|
3316
|
+
* Container selector for zoom
|
|
3317
|
+
*/
|
|
3318
|
+
containerClass?: string;
|
|
3319
|
+
|
|
3320
|
+
/**
|
|
3321
|
+
* Zoomed slide class
|
|
3322
|
+
*/
|
|
3323
|
+
zoomedSlideClass?: string;
|
|
3324
|
+
|
|
3325
|
+
/**
|
|
3326
|
+
* Zoom container class
|
|
3327
|
+
*/
|
|
3328
|
+
zoomContainerClass?: string;
|
|
3329
|
+
}
|
|
3330
|
+
|
|
3331
|
+
/**
|
|
3332
|
+
* Slider lazy loading configuration
|
|
3333
|
+
*/
|
|
3334
|
+
export interface SliderLazy {
|
|
3335
|
+
/**
|
|
3336
|
+
* Whether lazy loading is enabled
|
|
3337
|
+
*/
|
|
3338
|
+
enabled: boolean;
|
|
3339
|
+
|
|
3340
|
+
/**
|
|
3341
|
+
* Check in view
|
|
3342
|
+
*/
|
|
3343
|
+
checkInView?: boolean;
|
|
3344
|
+
|
|
3345
|
+
/**
|
|
3346
|
+
* Load on transition start
|
|
3347
|
+
*/
|
|
3348
|
+
loadOnTransitionStart?: boolean;
|
|
3349
|
+
|
|
3350
|
+
/**
|
|
3351
|
+
* Number of slides to preload
|
|
3352
|
+
*/
|
|
3353
|
+
loadPrevNext?: boolean;
|
|
3354
|
+
|
|
3355
|
+
/**
|
|
3356
|
+
* Number of slides to preload in each direction
|
|
3357
|
+
*/
|
|
3358
|
+
loadPrevNextAmount?: number;
|
|
3359
|
+
|
|
3360
|
+
/**
|
|
3361
|
+
* Loading element selector
|
|
3362
|
+
*/
|
|
3363
|
+
loadingClass?: string;
|
|
3364
|
+
|
|
3365
|
+
/**
|
|
3366
|
+
* Loaded element selector
|
|
3367
|
+
*/
|
|
3368
|
+
loadedClass?: string;
|
|
3369
|
+
|
|
3370
|
+
/**
|
|
3371
|
+
* Preloader element selector
|
|
3372
|
+
*/
|
|
3373
|
+
preloaderClass?: string;
|
|
3374
|
+
|
|
3375
|
+
/**
|
|
3376
|
+
* Element class
|
|
3377
|
+
*/
|
|
3378
|
+
elementClass?: string;
|
|
3379
|
+
}
|
|
3380
|
+
|
|
3381
|
+
/**
|
|
3382
|
+
* Slider virtual slides configuration
|
|
3383
|
+
*/
|
|
3384
|
+
export interface SliderVirtual {
|
|
3385
|
+
/**
|
|
3386
|
+
* Whether virtual slides are enabled
|
|
3387
|
+
*/
|
|
3388
|
+
enabled: boolean;
|
|
3389
|
+
|
|
3390
|
+
/**
|
|
3391
|
+
* Number of slides to render
|
|
3392
|
+
*/
|
|
3393
|
+
slides?: SliderSlide[];
|
|
3394
|
+
|
|
3395
|
+
/**
|
|
3396
|
+
* Cache rendered slides
|
|
3397
|
+
*/
|
|
3398
|
+
cache?: boolean;
|
|
3399
|
+
|
|
3400
|
+
/**
|
|
3401
|
+
* Render slide function
|
|
3402
|
+
*/
|
|
3403
|
+
renderSlide?: (slide: SliderSlide, index: number) => string;
|
|
3404
|
+
|
|
3405
|
+
/**
|
|
3406
|
+
* Render external function
|
|
3407
|
+
*/
|
|
3408
|
+
renderExternal?: (data: any) => void;
|
|
3409
|
+
|
|
3410
|
+
/**
|
|
3411
|
+
* Add slides before
|
|
3412
|
+
*/
|
|
3413
|
+
addSlidesBefore?: number;
|
|
3414
|
+
|
|
3415
|
+
/**
|
|
3416
|
+
* Add slides after
|
|
3417
|
+
*/
|
|
3418
|
+
addSlidesAfter?: number;
|
|
3419
|
+
|
|
3420
|
+
/**
|
|
3421
|
+
* Render external update
|
|
3422
|
+
*/
|
|
3423
|
+
renderExternalUpdate?: boolean;
|
|
3424
|
+
}
|
|
3425
|
+
|
|
3426
|
+
/**
|
|
3427
|
+
* Slider state interface
|
|
3428
|
+
*/
|
|
3429
|
+
export interface SliderState {
|
|
3430
|
+
/**
|
|
3431
|
+
* Current active slide index
|
|
3432
|
+
*/
|
|
3433
|
+
activeIndex: number;
|
|
3434
|
+
|
|
3435
|
+
/**
|
|
3436
|
+
* Real index (without loop duplicates)
|
|
3437
|
+
*/
|
|
3438
|
+
realIndex: number;
|
|
3439
|
+
|
|
3440
|
+
/**
|
|
3441
|
+
* Previous index
|
|
3442
|
+
*/
|
|
3443
|
+
previousIndex: number;
|
|
3444
|
+
|
|
3445
|
+
/**
|
|
3446
|
+
* Whether slider is at the beginning
|
|
3447
|
+
*/
|
|
3448
|
+
isBeginning: boolean;
|
|
3449
|
+
|
|
3450
|
+
/**
|
|
3451
|
+
* Whether slider is at the end
|
|
3452
|
+
*/
|
|
3453
|
+
isEnd: boolean;
|
|
3454
|
+
|
|
3455
|
+
/**
|
|
3456
|
+
* Current progress (0-1)
|
|
3457
|
+
*/
|
|
3458
|
+
progress: number;
|
|
3459
|
+
|
|
3460
|
+
/**
|
|
3461
|
+
* Whether autoplay is running
|
|
3462
|
+
*/
|
|
3463
|
+
autoplayRunning: boolean;
|
|
3464
|
+
|
|
3465
|
+
/**
|
|
3466
|
+
* Whether slider is transitioning
|
|
3467
|
+
*/
|
|
3468
|
+
transitioning: boolean;
|
|
3469
|
+
|
|
3470
|
+
/**
|
|
3471
|
+
* Whether touch is active
|
|
3472
|
+
*/
|
|
3473
|
+
touching: boolean;
|
|
3474
|
+
|
|
3475
|
+
/**
|
|
3476
|
+
* Current translate value
|
|
3477
|
+
*/
|
|
3478
|
+
translate: number;
|
|
3479
|
+
|
|
3480
|
+
/**
|
|
3481
|
+
* Slides per view
|
|
3482
|
+
*/
|
|
3483
|
+
slidesPerView: number | 'auto';
|
|
3484
|
+
|
|
3485
|
+
/**
|
|
3486
|
+
* Total slides count
|
|
3487
|
+
*/
|
|
3488
|
+
slidesCount: number;
|
|
3489
|
+
|
|
3490
|
+
/**
|
|
3491
|
+
* Whether slider is locked
|
|
3492
|
+
*/
|
|
3493
|
+
isLocked: boolean;
|
|
3494
|
+
|
|
3495
|
+
/**
|
|
3496
|
+
* Whether slider is destroyed
|
|
3497
|
+
*/
|
|
3498
|
+
destroyed: boolean;
|
|
3499
|
+
|
|
3500
|
+
/**
|
|
3501
|
+
* Current breakpoint
|
|
3502
|
+
*/
|
|
3503
|
+
currentBreakpoint?: string;
|
|
3504
|
+
|
|
3505
|
+
/**
|
|
3506
|
+
* Size
|
|
3507
|
+
*/
|
|
3508
|
+
size: number;
|
|
3509
|
+
|
|
3510
|
+
/**
|
|
3511
|
+
* Touches
|
|
3512
|
+
*/
|
|
3513
|
+
touches: {
|
|
3514
|
+
startX: number;
|
|
3515
|
+
startY: number;
|
|
3516
|
+
currentX: number;
|
|
3517
|
+
currentY: number;
|
|
3518
|
+
diff: number;
|
|
3519
|
+
};
|
|
3520
|
+
|
|
3521
|
+
/**
|
|
3522
|
+
* Allow slide next
|
|
3523
|
+
*/
|
|
3524
|
+
allowSlideNext: boolean;
|
|
3525
|
+
|
|
3526
|
+
/**
|
|
3527
|
+
* Allow slide prev
|
|
3528
|
+
*/
|
|
3529
|
+
allowSlidePrev: boolean;
|
|
3530
|
+
|
|
3531
|
+
/**
|
|
3532
|
+
* Allow touch move
|
|
3533
|
+
*/
|
|
3534
|
+
allowTouchMove: boolean;
|
|
3535
|
+
|
|
3536
|
+
/**
|
|
3537
|
+
* Animating
|
|
3538
|
+
*/
|
|
3539
|
+
animating: boolean;
|
|
3540
|
+
|
|
3541
|
+
/**
|
|
3542
|
+
* Enabled
|
|
3543
|
+
*/
|
|
3544
|
+
enabled: boolean;
|
|
3545
|
+
|
|
3546
|
+
/**
|
|
3547
|
+
* Initialized
|
|
3548
|
+
*/
|
|
3549
|
+
initialized: boolean;
|
|
3550
|
+
}
|
|
3551
|
+
|
|
3552
|
+
/**
|
|
3553
|
+
* Slider element refs
|
|
3554
|
+
*/
|
|
3555
|
+
export interface SliderRefs {
|
|
3556
|
+
containerRef?: React.RefObject<HTMLDivElement | null>;
|
|
3557
|
+
wrapperRef?: React.RefObject<HTMLDivElement | null>;
|
|
3558
|
+
paginationRef?: React.RefObject<HTMLDivElement | null>;
|
|
3559
|
+
navigationPrevRef?: React.RefObject<HTMLButtonElement | null>;
|
|
3560
|
+
navigationNextRef?: React.RefObject<HTMLButtonElement | null>;
|
|
3561
|
+
}
|
|
3562
|
+
|
|
3563
|
+
/**
|
|
3564
|
+
* Slider component properties
|
|
3565
|
+
*/
|
|
3566
|
+
export interface SliderProps extends BaseComponentProps {
|
|
3567
|
+
/**
|
|
3568
|
+
* Array of slides to display
|
|
3569
|
+
*/
|
|
3570
|
+
slides: SliderSlide[];
|
|
3571
|
+
|
|
3572
|
+
/**
|
|
3573
|
+
* Number of slides to show at once
|
|
3574
|
+
*/
|
|
3575
|
+
slidesToShow?: number;
|
|
3576
|
+
|
|
3577
|
+
/**
|
|
3578
|
+
* Number of slides to scroll at once
|
|
3579
|
+
*/
|
|
3580
|
+
slidesToScroll?: number;
|
|
3581
|
+
|
|
3582
|
+
/**
|
|
3583
|
+
* Space between slides in pixels
|
|
3584
|
+
*/
|
|
3585
|
+
spaceBetween?: number;
|
|
3586
|
+
|
|
3587
|
+
/**
|
|
3588
|
+
* Whether to center slides
|
|
3589
|
+
*/
|
|
3590
|
+
centeredSlides?: boolean;
|
|
3591
|
+
|
|
3592
|
+
/**
|
|
3593
|
+
* Whether to loop slides infinitely
|
|
3594
|
+
*/
|
|
3595
|
+
loop?: boolean;
|
|
3596
|
+
|
|
3597
|
+
/**
|
|
3598
|
+
* Initial slide index
|
|
3599
|
+
*/
|
|
3600
|
+
initialSlide?: number;
|
|
3601
|
+
|
|
3602
|
+
/**
|
|
3603
|
+
* Slider direction
|
|
3604
|
+
*/
|
|
3605
|
+
direction?: 'horizontal' | 'vertical';
|
|
3606
|
+
|
|
3607
|
+
/**
|
|
3608
|
+
* Transition speed in milliseconds
|
|
3609
|
+
*/
|
|
3610
|
+
speed?: number;
|
|
3611
|
+
|
|
3612
|
+
/**
|
|
3613
|
+
* CSS easing function
|
|
3614
|
+
*/
|
|
3615
|
+
easing?: string;
|
|
3616
|
+
|
|
3617
|
+
/**
|
|
3618
|
+
* Whether to allow touch/swipe gestures
|
|
3619
|
+
*/
|
|
3620
|
+
allowTouchMove?: boolean;
|
|
3621
|
+
|
|
3622
|
+
/**
|
|
3623
|
+
* Touch threshold for swipe (default: 10px)
|
|
3624
|
+
*/
|
|
3625
|
+
threshold?: number;
|
|
3626
|
+
|
|
3627
|
+
/**
|
|
3628
|
+
* Whether to enable mouse wheel control
|
|
3629
|
+
*/
|
|
3630
|
+
mousewheel?:
|
|
3631
|
+
| boolean
|
|
3632
|
+
| {
|
|
3633
|
+
forceToAxis?: boolean;
|
|
3634
|
+
sensitivity?: number;
|
|
3635
|
+
releaseOnEdges?: boolean;
|
|
3636
|
+
};
|
|
3637
|
+
|
|
3638
|
+
/**
|
|
3639
|
+
* Whether to enable keyboard control
|
|
3640
|
+
*/
|
|
3641
|
+
keyboard?:
|
|
3642
|
+
| boolean
|
|
3643
|
+
| {
|
|
3644
|
+
enabled?: boolean;
|
|
3645
|
+
onlyInViewport?: boolean;
|
|
3646
|
+
pageUpDown?: boolean;
|
|
3647
|
+
};
|
|
3648
|
+
|
|
3649
|
+
/**
|
|
3650
|
+
* Whether to grab cursor on hover (default: true)
|
|
3651
|
+
*/
|
|
3652
|
+
grabCursor?: boolean;
|
|
3653
|
+
|
|
3654
|
+
/**
|
|
3655
|
+
* Autoplay configuration
|
|
3656
|
+
*/
|
|
3657
|
+
autoplay?: SliderAutoplay | boolean;
|
|
3658
|
+
|
|
3659
|
+
/**
|
|
3660
|
+
* Pagination configuration
|
|
3661
|
+
*/
|
|
3662
|
+
pagination?: SliderPagination | boolean;
|
|
3663
|
+
|
|
3664
|
+
/**
|
|
3665
|
+
* Navigation configuration
|
|
3666
|
+
*/
|
|
3667
|
+
navigation?: SliderNavigation | boolean;
|
|
3668
|
+
|
|
3669
|
+
/**
|
|
3670
|
+
* Scrollbar configuration
|
|
3671
|
+
*/
|
|
3672
|
+
scrollbar?: SliderScrollbar | boolean;
|
|
3673
|
+
|
|
3674
|
+
/**
|
|
3675
|
+
* Effect configuration
|
|
3676
|
+
*/
|
|
3677
|
+
effect?: SliderEffect;
|
|
3678
|
+
|
|
3679
|
+
/**
|
|
3680
|
+
* Thumbs configuration
|
|
3681
|
+
*/
|
|
3682
|
+
thumbs?: SliderThumbs;
|
|
3683
|
+
|
|
3684
|
+
/**
|
|
3685
|
+
* Zoom configuration
|
|
3686
|
+
*/
|
|
3687
|
+
zoom?: SliderZoom;
|
|
3688
|
+
|
|
3689
|
+
/**
|
|
3690
|
+
* Lazy loading configuration
|
|
3691
|
+
*/
|
|
3692
|
+
lazy?: SliderLazy;
|
|
3693
|
+
|
|
3694
|
+
/**
|
|
3695
|
+
* Virtual slides configuration
|
|
3696
|
+
*/
|
|
3697
|
+
virtual?: SliderVirtual;
|
|
3698
|
+
|
|
3699
|
+
/**
|
|
3700
|
+
* Responsive breakpoints
|
|
3701
|
+
*/
|
|
3702
|
+
breakpoints?: {
|
|
3703
|
+
[key: number]: SliderBreakpoint;
|
|
3704
|
+
};
|
|
3705
|
+
|
|
3706
|
+
/**
|
|
3707
|
+
* Whether to free mode (no snap to slides)
|
|
3708
|
+
*/
|
|
3709
|
+
freeMode?:
|
|
3710
|
+
| boolean
|
|
3711
|
+
| {
|
|
3712
|
+
enabled?: boolean;
|
|
3713
|
+
sticky?: boolean;
|
|
3714
|
+
momentumRatio?: number;
|
|
3715
|
+
momentumVelocityRatio?: number;
|
|
3716
|
+
momentumBounce?: boolean;
|
|
3717
|
+
momentumBounceRatio?: number;
|
|
3718
|
+
minimumVelocity?: number;
|
|
3719
|
+
};
|
|
3720
|
+
|
|
3721
|
+
/**
|
|
3722
|
+
* Whether to watch for slides and wrapper size changes
|
|
3723
|
+
*/
|
|
3724
|
+
watchSlidesProgress?: boolean;
|
|
3725
|
+
|
|
3726
|
+
/**
|
|
3727
|
+
* Whether to watch for overflow
|
|
3728
|
+
*/
|
|
3729
|
+
watchOverflow?: boolean;
|
|
3730
|
+
|
|
3731
|
+
/**
|
|
3732
|
+
* Resistance ratio for edges
|
|
3733
|
+
*/
|
|
3734
|
+
resistanceRatio?: number;
|
|
3735
|
+
|
|
3736
|
+
/**
|
|
3737
|
+
* Whether to prevent clicks during transition
|
|
3738
|
+
*/
|
|
3739
|
+
preventClicks?: boolean;
|
|
3740
|
+
|
|
3741
|
+
/**
|
|
3742
|
+
* Whether to prevent clicks propagation during transition
|
|
3743
|
+
*/
|
|
3744
|
+
preventClicksPropagation?: boolean;
|
|
3745
|
+
|
|
3746
|
+
/**
|
|
3747
|
+
* Parallax configuration
|
|
3748
|
+
*/
|
|
3749
|
+
parallax?: boolean;
|
|
3750
|
+
|
|
3751
|
+
/**
|
|
3752
|
+
* Hash navigation
|
|
3753
|
+
*/
|
|
3754
|
+
hashNavigation?:
|
|
3755
|
+
| boolean
|
|
3756
|
+
| {
|
|
3757
|
+
watchState?: boolean;
|
|
3758
|
+
replaceState?: boolean;
|
|
3759
|
+
};
|
|
3760
|
+
|
|
3761
|
+
/**
|
|
3762
|
+
* History navigation
|
|
3763
|
+
*/
|
|
3764
|
+
history?:
|
|
3765
|
+
| boolean
|
|
3766
|
+
| {
|
|
3767
|
+
enabled?: boolean;
|
|
3768
|
+
root?: string;
|
|
3769
|
+
replaceState?: boolean;
|
|
3770
|
+
key?: string;
|
|
3771
|
+
};
|
|
3772
|
+
|
|
3773
|
+
/**
|
|
3774
|
+
* Controller configuration
|
|
3775
|
+
*/
|
|
3776
|
+
controller?: {
|
|
3777
|
+
control?: any;
|
|
3778
|
+
inverse?: boolean;
|
|
3779
|
+
by?: 'slide' | 'container';
|
|
3780
|
+
};
|
|
3781
|
+
|
|
3782
|
+
/**
|
|
3783
|
+
* A11y configuration
|
|
3784
|
+
*/
|
|
3785
|
+
a11y?:
|
|
3786
|
+
| boolean
|
|
3787
|
+
| {
|
|
3788
|
+
enabled?: boolean;
|
|
3789
|
+
prevSlideMessage?: string;
|
|
3790
|
+
nextSlideMessage?: string;
|
|
3791
|
+
firstSlideMessage?: string;
|
|
3792
|
+
lastSlideMessage?: string;
|
|
3793
|
+
paginationBulletMessage?: string;
|
|
3794
|
+
notificationClass?: string;
|
|
3795
|
+
};
|
|
3796
|
+
|
|
3797
|
+
/**
|
|
3798
|
+
* Slide change callback
|
|
3799
|
+
*/
|
|
3800
|
+
onSlideChange?: (swiper: any) => void;
|
|
3801
|
+
|
|
3802
|
+
/**
|
|
3803
|
+
* Slide change transition start callback
|
|
3804
|
+
*/
|
|
3805
|
+
onSlideChangeTransitionStart?: (swiper: any) => void;
|
|
3806
|
+
|
|
3807
|
+
/**
|
|
3808
|
+
* Slide change transition end callback
|
|
3809
|
+
*/
|
|
3810
|
+
onSlideChangeTransitionEnd?: (swiper: any) => void;
|
|
3811
|
+
|
|
3812
|
+
/**
|
|
3813
|
+
* Slider initialization callback
|
|
3814
|
+
*/
|
|
3815
|
+
onInit?: (swiper: any) => void;
|
|
3816
|
+
|
|
3817
|
+
/**
|
|
3818
|
+
* Before destroy callback
|
|
3819
|
+
*/
|
|
3820
|
+
onDestroy?: () => void;
|
|
3821
|
+
|
|
3822
|
+
/**
|
|
3823
|
+
* Touch start callback
|
|
3824
|
+
*/
|
|
3825
|
+
onTouchStart?: (swiper: any, event: TouchEvent) => void;
|
|
3826
|
+
|
|
3827
|
+
/**
|
|
3828
|
+
* Touch move callback
|
|
3829
|
+
*/
|
|
3830
|
+
onTouchMove?: (swiper: any, event: TouchEvent) => void;
|
|
3831
|
+
|
|
3832
|
+
/**
|
|
3833
|
+
* Touch end callback
|
|
3834
|
+
*/
|
|
3835
|
+
onTouchEnd?: (swiper: any, event: TouchEvent) => void;
|
|
3836
|
+
|
|
3837
|
+
/**
|
|
3838
|
+
* Reach beginning callback
|
|
3839
|
+
*/
|
|
3840
|
+
onReachBeginning?: (swiper: any) => void;
|
|
3841
|
+
|
|
3842
|
+
/**
|
|
3843
|
+
* Reach end callback
|
|
3844
|
+
*/
|
|
3845
|
+
onReachEnd?: (swiper: any) => void;
|
|
3846
|
+
|
|
3847
|
+
/**
|
|
3848
|
+
* Progress change callback
|
|
3849
|
+
*/
|
|
3850
|
+
onProgress?: (swiper: any, progress: number) => void;
|
|
3851
|
+
|
|
3852
|
+
/**
|
|
3853
|
+
* Autoplay start callback
|
|
3854
|
+
*/
|
|
3855
|
+
onAutoplayStart?: (swiper: any) => void;
|
|
3856
|
+
|
|
3857
|
+
/**
|
|
3858
|
+
* Autoplay stop callback
|
|
3859
|
+
*/
|
|
3860
|
+
onAutoplayStop?: (swiper: any) => void;
|
|
3861
|
+
|
|
3862
|
+
/**
|
|
3863
|
+
* Before resize callback
|
|
3864
|
+
*/
|
|
3865
|
+
onBeforeResize?: (swiper: any) => void;
|
|
3866
|
+
|
|
3867
|
+
/**
|
|
3868
|
+
* After resize callback
|
|
3869
|
+
*/
|
|
3870
|
+
onResize?: (swiper: any) => void;
|
|
3871
|
+
|
|
3872
|
+
/**
|
|
3873
|
+
* Slider size
|
|
3874
|
+
*/
|
|
3875
|
+
size?: Size;
|
|
3876
|
+
|
|
3877
|
+
/**
|
|
3878
|
+
* Slider height (for horizontal sliders)
|
|
3879
|
+
*/
|
|
3880
|
+
height?: string | number;
|
|
3881
|
+
|
|
3882
|
+
/**
|
|
3883
|
+
* Slider width (for vertical sliders)
|
|
3884
|
+
*/
|
|
3885
|
+
width?: string | number;
|
|
3886
|
+
|
|
3887
|
+
/**
|
|
3888
|
+
* Custom container class
|
|
3889
|
+
*/
|
|
3890
|
+
containerClass?: string;
|
|
3891
|
+
|
|
3892
|
+
/**
|
|
3893
|
+
* Whether to use vanilla JS implementation
|
|
3894
|
+
*/
|
|
3895
|
+
useVanillaJS?: boolean;
|
|
3896
|
+
|
|
3897
|
+
/**
|
|
3898
|
+
* Modules to enable
|
|
3899
|
+
*/
|
|
3900
|
+
modules?: string[];
|
|
3901
|
+
|
|
3902
|
+
/**
|
|
3903
|
+
* Update on window resize
|
|
3904
|
+
*/
|
|
3905
|
+
updateOnWindowResize?: boolean;
|
|
3906
|
+
|
|
3907
|
+
/**
|
|
3908
|
+
* Resize observer
|
|
3909
|
+
*/
|
|
3910
|
+
resizeObserver?: boolean;
|
|
3911
|
+
|
|
3912
|
+
/**
|
|
3913
|
+
* Observer
|
|
3914
|
+
*/
|
|
3915
|
+
observer?: boolean;
|
|
3916
|
+
|
|
3917
|
+
/**
|
|
3918
|
+
* Observer parents
|
|
3919
|
+
*/
|
|
3920
|
+
observeParents?: boolean;
|
|
3921
|
+
|
|
3922
|
+
/**
|
|
3923
|
+
* Observer slide children
|
|
3924
|
+
*/
|
|
3925
|
+
observeSlideChildren?: boolean;
|
|
3926
|
+
|
|
3927
|
+
/**
|
|
3928
|
+
* Run callbacks on init
|
|
3929
|
+
*/
|
|
3930
|
+
runCallbacksOnInit?: boolean;
|
|
3931
|
+
|
|
3932
|
+
/**
|
|
3933
|
+
* Preload images
|
|
3934
|
+
*/
|
|
3935
|
+
preloadImages?: boolean;
|
|
3936
|
+
|
|
3937
|
+
/**
|
|
3938
|
+
* Update on images ready
|
|
3939
|
+
*/
|
|
3940
|
+
updateOnImagesReady?: boolean;
|
|
3941
|
+
|
|
3942
|
+
/**
|
|
3943
|
+
* CSS mode
|
|
3944
|
+
*/
|
|
3945
|
+
cssMode?: boolean;
|
|
3946
|
+
|
|
3947
|
+
/**
|
|
3948
|
+
* Simulate touch
|
|
3949
|
+
*/
|
|
3950
|
+
simulateTouch?: boolean;
|
|
3951
|
+
|
|
3952
|
+
/**
|
|
3953
|
+
* Touch ratio
|
|
3954
|
+
*/
|
|
3955
|
+
touchRatio?: number;
|
|
3956
|
+
|
|
3957
|
+
/**
|
|
3958
|
+
* Touch angle
|
|
3959
|
+
*/
|
|
3960
|
+
touchAngle?: number;
|
|
3961
|
+
|
|
3962
|
+
/**
|
|
3963
|
+
* Short swipes
|
|
3964
|
+
*/
|
|
3965
|
+
shortSwipes?: boolean;
|
|
3966
|
+
|
|
3967
|
+
/**
|
|
3968
|
+
* Long swipes
|
|
3969
|
+
*/
|
|
3970
|
+
longSwipes?: boolean;
|
|
3971
|
+
|
|
3972
|
+
/**
|
|
3973
|
+
* Long swipes ratio
|
|
3974
|
+
*/
|
|
3975
|
+
longSwipesRatio?: number;
|
|
3976
|
+
|
|
3977
|
+
/**
|
|
3978
|
+
* Long swipes ms
|
|
3979
|
+
*/
|
|
3980
|
+
longSwipesMs?: number;
|
|
3981
|
+
|
|
3982
|
+
/**
|
|
3983
|
+
* Follow finger
|
|
3984
|
+
*/
|
|
3985
|
+
followFinger?: boolean;
|
|
3986
|
+
|
|
3987
|
+
/**
|
|
3988
|
+
* Touch move stop propagation
|
|
3989
|
+
*/
|
|
3990
|
+
touchMoveStopPropagation?: boolean;
|
|
3991
|
+
|
|
3992
|
+
/**
|
|
3993
|
+
* Touch start prevent default
|
|
3994
|
+
*/
|
|
3995
|
+
touchStartPreventDefault?: boolean;
|
|
3996
|
+
|
|
3997
|
+
/**
|
|
3998
|
+
* Touch start force prevent default
|
|
3999
|
+
*/
|
|
4000
|
+
touchStartForcePreventDefault?: boolean;
|
|
4001
|
+
|
|
4002
|
+
/**
|
|
4003
|
+
* Touch release on edges
|
|
4004
|
+
*/
|
|
4005
|
+
touchReleaseOnEdges?: boolean;
|
|
4006
|
+
|
|
4007
|
+
/**
|
|
4008
|
+
* Unique nav elements
|
|
4009
|
+
*/
|
|
4010
|
+
uniqueNavElements?: boolean;
|
|
4011
|
+
|
|
4012
|
+
/**
|
|
4013
|
+
* Slides per group
|
|
4014
|
+
*/
|
|
4015
|
+
slidesPerGroup?: number;
|
|
4016
|
+
|
|
4017
|
+
/**
|
|
4018
|
+
* Slides per group skip
|
|
4019
|
+
*/
|
|
4020
|
+
slidesPerGroupSkip?: number;
|
|
4021
|
+
|
|
4022
|
+
/**
|
|
4023
|
+
* Slides per group auto
|
|
4024
|
+
*/
|
|
4025
|
+
slidesPerGroupAuto?: boolean;
|
|
4026
|
+
|
|
4027
|
+
/**
|
|
4028
|
+
* Centered slides bounds
|
|
4029
|
+
*/
|
|
4030
|
+
centeredSlidesBounds?: boolean;
|
|
4031
|
+
|
|
4032
|
+
/**
|
|
4033
|
+
* Slides grid
|
|
4034
|
+
*/
|
|
4035
|
+
grid?: {
|
|
4036
|
+
rows?: number;
|
|
4037
|
+
fill?: 'row' | 'column';
|
|
4038
|
+
};
|
|
4039
|
+
|
|
4040
|
+
/**
|
|
4041
|
+
* Set wrapper size
|
|
4042
|
+
*/
|
|
4043
|
+
setWrapperSize?: boolean;
|
|
4044
|
+
|
|
4045
|
+
/**
|
|
4046
|
+
* Virtual translate
|
|
4047
|
+
*/
|
|
4048
|
+
virtualTranslate?: boolean;
|
|
4049
|
+
|
|
4050
|
+
/**
|
|
4051
|
+
* Round lengths
|
|
4052
|
+
*/
|
|
4053
|
+
roundLengths?: boolean;
|
|
4054
|
+
|
|
4055
|
+
/**
|
|
4056
|
+
* Nested
|
|
4057
|
+
*/
|
|
4058
|
+
nested?: boolean;
|
|
4059
|
+
|
|
4060
|
+
/**
|
|
4061
|
+
* Focus on select
|
|
4062
|
+
*/
|
|
4063
|
+
focusableElements?: string;
|
|
4064
|
+
|
|
4065
|
+
/**
|
|
4066
|
+
* Release form elements
|
|
4067
|
+
*/
|
|
4068
|
+
releaseFormElements?: boolean;
|
|
4069
|
+
|
|
4070
|
+
/**
|
|
4071
|
+
* Auto height
|
|
4072
|
+
*/
|
|
4073
|
+
autoHeight?: boolean;
|
|
4074
|
+
|
|
4075
|
+
/**
|
|
4076
|
+
* Slides offset before
|
|
4077
|
+
*/
|
|
4078
|
+
slidesOffsetBefore?: number;
|
|
4079
|
+
|
|
4080
|
+
/**
|
|
4081
|
+
* Slides offset after
|
|
4082
|
+
*/
|
|
4083
|
+
slidesOffsetAfter?: number;
|
|
4084
|
+
|
|
4085
|
+
/**
|
|
4086
|
+
* Normalize slide index
|
|
4087
|
+
*/
|
|
4088
|
+
normalizeSlideIndex?: boolean;
|
|
4089
|
+
|
|
4090
|
+
/**
|
|
4091
|
+
* Center insufficient slides
|
|
4092
|
+
*/
|
|
4093
|
+
centerInsufficientSlides?: boolean;
|
|
4094
|
+
|
|
4095
|
+
/**
|
|
4096
|
+
* Watch slides visibility
|
|
4097
|
+
*/
|
|
4098
|
+
watchSlidesVisibility?: boolean;
|
|
4099
|
+
|
|
4100
|
+
/**
|
|
4101
|
+
* Max backface hidden slides
|
|
4102
|
+
*/
|
|
4103
|
+
maxBackfaceHiddenSlides?: number;
|
|
4104
|
+
|
|
4105
|
+
/**
|
|
4106
|
+
* Edge swipe detection
|
|
4107
|
+
*/
|
|
4108
|
+
edgeSwipeDetection?: boolean | string;
|
|
4109
|
+
|
|
4110
|
+
/**
|
|
4111
|
+
* Edge swipe threshold
|
|
4112
|
+
*/
|
|
4113
|
+
edgeSwipeThreshold?: number;
|
|
4114
|
+
|
|
4115
|
+
/**
|
|
4116
|
+
* Resistance
|
|
4117
|
+
*/
|
|
4118
|
+
resistance?: boolean;
|
|
4119
|
+
|
|
4120
|
+
/**
|
|
4121
|
+
* Passive listeners
|
|
4122
|
+
*/
|
|
4123
|
+
passiveListeners?: boolean;
|
|
4124
|
+
|
|
4125
|
+
/**
|
|
4126
|
+
* Container modifier class
|
|
4127
|
+
*/
|
|
4128
|
+
containerModifierClass?: string;
|
|
4129
|
+
|
|
4130
|
+
/**
|
|
4131
|
+
* Slide class
|
|
4132
|
+
*/
|
|
4133
|
+
slideClass?: string;
|
|
4134
|
+
|
|
4135
|
+
/**
|
|
4136
|
+
* Slide blank class
|
|
4137
|
+
*/
|
|
4138
|
+
slideBlankClass?: string;
|
|
4139
|
+
|
|
4140
|
+
/**
|
|
4141
|
+
* Slide active class
|
|
4142
|
+
*/
|
|
4143
|
+
slideActiveClass?: string;
|
|
4144
|
+
|
|
4145
|
+
/**
|
|
4146
|
+
* Slide duplicate active class
|
|
4147
|
+
*/
|
|
4148
|
+
slideDuplicateActiveClass?: string;
|
|
4149
|
+
|
|
4150
|
+
/**
|
|
4151
|
+
* Slide visible class
|
|
4152
|
+
*/
|
|
4153
|
+
slideVisibleClass?: string;
|
|
4154
|
+
|
|
4155
|
+
/**
|
|
4156
|
+
* Slide duplicate class
|
|
4157
|
+
*/
|
|
4158
|
+
slideDuplicateClass?: string;
|
|
4159
|
+
|
|
4160
|
+
/**
|
|
4161
|
+
* Slide next class
|
|
4162
|
+
*/
|
|
4163
|
+
slideNextClass?: string;
|
|
4164
|
+
|
|
4165
|
+
/**
|
|
4166
|
+
* Slide duplicate next class
|
|
4167
|
+
*/
|
|
4168
|
+
slideDuplicateNextClass?: string;
|
|
4169
|
+
|
|
4170
|
+
/**
|
|
4171
|
+
* Slide prev class
|
|
4172
|
+
*/
|
|
4173
|
+
slidePrevClass?: string;
|
|
4174
|
+
|
|
4175
|
+
/**
|
|
4176
|
+
* Slide duplicate prev class
|
|
4177
|
+
*/
|
|
4178
|
+
slideDuplicatePrevClass?: string;
|
|
4179
|
+
|
|
4180
|
+
/**
|
|
4181
|
+
* Wrapper class
|
|
4182
|
+
*/
|
|
4183
|
+
wrapperClass?: string;
|
|
4184
|
+
|
|
4185
|
+
/**
|
|
4186
|
+
* Lazy preloader class
|
|
4187
|
+
*/
|
|
4188
|
+
lazyPreloaderClass?: string;
|
|
4189
|
+
|
|
4190
|
+
/**
|
|
4191
|
+
* Lazy preloader custom
|
|
4192
|
+
*/
|
|
4193
|
+
lazyPreloaderCustom?: string;
|
|
4194
|
+
|
|
4195
|
+
/**
|
|
4196
|
+
* Init
|
|
4197
|
+
*/
|
|
4198
|
+
init?: boolean;
|
|
4199
|
+
|
|
4200
|
+
/**
|
|
4201
|
+
* On any
|
|
4202
|
+
*/
|
|
4203
|
+
onAny?: (eventName: string, ...args: any[]) => void;
|
|
4204
|
+
|
|
4205
|
+
/**
|
|
4206
|
+
* Before init
|
|
4207
|
+
*/
|
|
4208
|
+
onBeforeInit?: (swiper: any) => void;
|
|
4209
|
+
|
|
4210
|
+
/**
|
|
4211
|
+
* Slides length change
|
|
4212
|
+
*/
|
|
4213
|
+
onSlidesLengthChange?: (swiper: any) => void;
|
|
4214
|
+
|
|
4215
|
+
/**
|
|
4216
|
+
* Snap index change
|
|
4217
|
+
*/
|
|
4218
|
+
onSnapIndexChange?: (swiper: any) => void;
|
|
4219
|
+
|
|
4220
|
+
/**
|
|
4221
|
+
* Real index change
|
|
4222
|
+
*/
|
|
4223
|
+
onRealIndexChange?: (swiper: any) => void;
|
|
4224
|
+
|
|
4225
|
+
/**
|
|
4226
|
+
* Before loop fix
|
|
4227
|
+
*/
|
|
4228
|
+
onBeforeLoopFix?: (swiper: any) => void;
|
|
4229
|
+
|
|
4230
|
+
/**
|
|
4231
|
+
* Loop fix
|
|
4232
|
+
*/
|
|
4233
|
+
onLoopFix?: (swiper: any) => void;
|
|
4234
|
+
|
|
4235
|
+
/**
|
|
4236
|
+
* Before transition start
|
|
4237
|
+
*/
|
|
4238
|
+
onBeforeTransitionStart?: (swiper: any, speed: number, internal: boolean) => void;
|
|
4239
|
+
|
|
4240
|
+
/**
|
|
4241
|
+
* Transition start
|
|
4242
|
+
*/
|
|
4243
|
+
onTransitionStart?: (swiper: any) => void;
|
|
4244
|
+
|
|
4245
|
+
/**
|
|
4246
|
+
* Transition end
|
|
4247
|
+
*/
|
|
4248
|
+
onTransitionEnd?: (swiper: any) => void;
|
|
4249
|
+
|
|
4250
|
+
/**
|
|
4251
|
+
* Slider move
|
|
4252
|
+
*/
|
|
4253
|
+
onSliderMove?: (swiper: any, event: TouchEvent | MouseEvent) => void;
|
|
4254
|
+
|
|
4255
|
+
/**
|
|
4256
|
+
* Slider first move
|
|
4257
|
+
*/
|
|
4258
|
+
onSliderFirstMove?: (swiper: any, event: TouchEvent | MouseEvent) => void;
|
|
4259
|
+
|
|
4260
|
+
/**
|
|
4261
|
+
* Set translate
|
|
4262
|
+
*/
|
|
4263
|
+
onSetTranslate?: (swiper: any, translate: number) => void;
|
|
4264
|
+
|
|
4265
|
+
/**
|
|
4266
|
+
* Set transition
|
|
4267
|
+
*/
|
|
4268
|
+
onSetTransition?: (swiper: any, duration: number) => void;
|
|
4269
|
+
|
|
4270
|
+
/**
|
|
4271
|
+
* From edge
|
|
4272
|
+
*/
|
|
4273
|
+
onFromEdge?: (swiper: any) => void;
|
|
4274
|
+
|
|
4275
|
+
/**
|
|
4276
|
+
* To edge
|
|
4277
|
+
*/
|
|
4278
|
+
onToEdge?: (swiper: any) => void;
|
|
4279
|
+
|
|
4280
|
+
/**
|
|
4281
|
+
* Tap
|
|
4282
|
+
*/
|
|
4283
|
+
onTap?: (swiper: any, event: TouchEvent | MouseEvent) => void;
|
|
4284
|
+
|
|
4285
|
+
/**
|
|
4286
|
+
* Double tap
|
|
4287
|
+
*/
|
|
4288
|
+
onDoubleTap?: (swiper: any, event: TouchEvent | MouseEvent) => void;
|
|
4289
|
+
|
|
4290
|
+
/**
|
|
4291
|
+
* Images ready
|
|
4292
|
+
*/
|
|
4293
|
+
onImagesReady?: (swiper: any) => void;
|
|
4294
|
+
|
|
4295
|
+
/**
|
|
4296
|
+
* Lock
|
|
4297
|
+
*/
|
|
4298
|
+
onLock?: (swiper: any) => void;
|
|
4299
|
+
|
|
4300
|
+
/**
|
|
4301
|
+
* Unlock
|
|
4302
|
+
*/
|
|
4303
|
+
onUnlock?: (swiper: any) => void;
|
|
4304
|
+
|
|
4305
|
+
/**
|
|
4306
|
+
* Breakpoint
|
|
4307
|
+
*/
|
|
4308
|
+
onBreakpoint?: (swiper: any, breakpointParams: any) => void;
|
|
4309
|
+
|
|
4310
|
+
/**
|
|
4311
|
+
* Orientation change
|
|
4312
|
+
*/
|
|
4313
|
+
onOrientationchange?: (swiper: any) => void;
|
|
4314
|
+
|
|
4315
|
+
/**
|
|
4316
|
+
* Keyboard
|
|
4317
|
+
*/
|
|
4318
|
+
onKeyPress?: (swiper: any, keyCode: string) => void;
|
|
4319
|
+
|
|
4320
|
+
/**
|
|
4321
|
+
* Mousewheel
|
|
4322
|
+
*/
|
|
4323
|
+
onScroll?: (swiper: any, event: WheelEvent) => void;
|
|
4324
|
+
|
|
4325
|
+
/**
|
|
4326
|
+
* Navigation hide
|
|
4327
|
+
*/
|
|
4328
|
+
onNavigationHide?: (swiper: any) => void;
|
|
4329
|
+
|
|
4330
|
+
/**
|
|
4331
|
+
* Navigation show
|
|
4332
|
+
*/
|
|
4333
|
+
onNavigationShow?: (swiper: any) => void;
|
|
4334
|
+
|
|
4335
|
+
/**
|
|
4336
|
+
* Pagination hide
|
|
4337
|
+
*/
|
|
4338
|
+
onPaginationHide?: (swiper: any) => void;
|
|
4339
|
+
|
|
4340
|
+
/**
|
|
4341
|
+
* Pagination show
|
|
4342
|
+
*/
|
|
4343
|
+
onPaginationShow?: (swiper: any) => void;
|
|
4344
|
+
|
|
4345
|
+
/**
|
|
4346
|
+
* Pagination render
|
|
4347
|
+
*/
|
|
4348
|
+
onPaginationRender?: (swiper: any, paginationEl: HTMLElement) => void;
|
|
4349
|
+
|
|
4350
|
+
/**
|
|
4351
|
+
* Scrollbar drag start
|
|
4352
|
+
*/
|
|
4353
|
+
onScrollbarDragStart?: (swiper: any, event: MouseEvent | TouchEvent) => void;
|
|
4354
|
+
|
|
4355
|
+
/**
|
|
4356
|
+
* Scrollbar drag move
|
|
4357
|
+
*/
|
|
4358
|
+
onScrollbarDragMove?: (swiper: any, event: MouseEvent | TouchEvent) => void;
|
|
4359
|
+
|
|
4360
|
+
/**
|
|
4361
|
+
* Scrollbar drag end
|
|
4362
|
+
*/
|
|
4363
|
+
onScrollbarDragEnd?: (swiper: any, event: MouseEvent | TouchEvent) => void;
|
|
4364
|
+
|
|
4365
|
+
/**
|
|
4366
|
+
* Zoom change
|
|
4367
|
+
*/
|
|
4368
|
+
onZoomChange?: (swiper: any, scale: number, imageEl: HTMLElement, slideEl: HTMLElement) => void;
|
|
4369
|
+
|
|
4370
|
+
/**
|
|
4371
|
+
* Autoplay pause
|
|
4372
|
+
*/
|
|
4373
|
+
onAutoplayPause?: (swiper: any) => void;
|
|
4374
|
+
|
|
4375
|
+
/**
|
|
4376
|
+
* Autoplay resume
|
|
4377
|
+
*/
|
|
4378
|
+
onAutoplayResume?: (swiper: any) => void;
|
|
4379
|
+
|
|
4380
|
+
/**
|
|
4381
|
+
* Autoplay time left
|
|
4382
|
+
*/
|
|
4383
|
+
onAutoplayTimeLeft?: (swiper: any, timeLeft: number, percentage: number) => void;
|
|
4384
|
+
}
|
|
4385
|
+
|
|
4386
|
+
// ============================================================================
|
|
4387
|
+
// CHART COMPONENT TYPES
|
|
4388
|
+
// ============================================================================
|
|
4389
|
+
|
|
4390
|
+
/**
|
|
4391
|
+
* Chart type options
|
|
4392
|
+
*/
|
|
4393
|
+
export type ChartType =
|
|
4394
|
+
| 'line'
|
|
4395
|
+
| 'area'
|
|
4396
|
+
| 'bar'
|
|
4397
|
+
| 'horizontal-bar'
|
|
4398
|
+
| 'pie'
|
|
4399
|
+
| 'donut'
|
|
4400
|
+
| 'doughnut'
|
|
4401
|
+
| 'scatter'
|
|
4402
|
+
| 'radar'
|
|
4403
|
+
| 'bubble'
|
|
4404
|
+
| 'candlestick'
|
|
4405
|
+
| 'interactive'
|
|
4406
|
+
| 'advanced'
|
|
4407
|
+
| 'gauge'
|
|
4408
|
+
| 'funnel'
|
|
4409
|
+
| 'waterfall'
|
|
4410
|
+
| 'heatmap'
|
|
4411
|
+
| 'treemap'
|
|
4412
|
+
| 'realtime';
|
|
4413
|
+
|
|
4414
|
+
/**
|
|
4415
|
+
* Extended size options for charts
|
|
4416
|
+
*/
|
|
4417
|
+
export type ChartSize = Size | 'xl' | 'full';
|
|
4418
|
+
|
|
4419
|
+
/**
|
|
4420
|
+
* Chart data point interface
|
|
4421
|
+
*/
|
|
4422
|
+
export interface ChartDataPoint {
|
|
4423
|
+
/**
|
|
4424
|
+
* Data point label
|
|
4425
|
+
*/
|
|
4426
|
+
label: string;
|
|
4427
|
+
|
|
4428
|
+
/**
|
|
4429
|
+
* Data point value
|
|
4430
|
+
*/
|
|
4431
|
+
value: number;
|
|
4432
|
+
|
|
4433
|
+
/**
|
|
4434
|
+
* Optional color for this data point
|
|
4435
|
+
*/
|
|
4436
|
+
color?: string;
|
|
4437
|
+
|
|
4438
|
+
/**
|
|
4439
|
+
* Optional metadata
|
|
4440
|
+
*/
|
|
4441
|
+
metadata?: Record<string, any>;
|
|
4442
|
+
}
|
|
4443
|
+
|
|
4444
|
+
/**
|
|
4445
|
+
* Chart dataset interface
|
|
4446
|
+
*/
|
|
4447
|
+
export interface ChartDataset {
|
|
4448
|
+
/**
|
|
4449
|
+
* Dataset label
|
|
4450
|
+
*/
|
|
4451
|
+
label: string;
|
|
4452
|
+
|
|
4453
|
+
/**
|
|
4454
|
+
* Dataset data points
|
|
4455
|
+
*/
|
|
4456
|
+
data: ChartDataPoint[];
|
|
4457
|
+
|
|
4458
|
+
/**
|
|
4459
|
+
* Dataset color
|
|
4460
|
+
*/
|
|
4461
|
+
color?: string;
|
|
4462
|
+
|
|
4463
|
+
/**
|
|
4464
|
+
* Whether this dataset is visible
|
|
4465
|
+
*/
|
|
4466
|
+
visible?: boolean;
|
|
4467
|
+
}
|
|
4468
|
+
|
|
4469
|
+
/**
|
|
4470
|
+
* Chart axis configuration
|
|
4471
|
+
*/
|
|
4472
|
+
export interface ChartAxis {
|
|
4473
|
+
/**
|
|
4474
|
+
* Axis label
|
|
4475
|
+
*/
|
|
4476
|
+
label?: string;
|
|
4477
|
+
|
|
4478
|
+
/**
|
|
4479
|
+
* Whether to show grid lines
|
|
4480
|
+
*/
|
|
4481
|
+
showGrid?: boolean;
|
|
4482
|
+
|
|
4483
|
+
/**
|
|
4484
|
+
* Whether to show axis labels
|
|
4485
|
+
*/
|
|
4486
|
+
showLabels?: boolean;
|
|
4487
|
+
|
|
4488
|
+
/**
|
|
4489
|
+
* Minimum value
|
|
4490
|
+
*/
|
|
4491
|
+
min?: number;
|
|
4492
|
+
|
|
4493
|
+
/**
|
|
4494
|
+
* Maximum value
|
|
4495
|
+
*/
|
|
4496
|
+
max?: number;
|
|
4497
|
+
|
|
4498
|
+
/**
|
|
4499
|
+
* Value formatter function
|
|
4500
|
+
*/
|
|
4501
|
+
formatter?: (value: number) => string;
|
|
4502
|
+
|
|
4503
|
+
/**
|
|
4504
|
+
* Number of ticks
|
|
4505
|
+
*/
|
|
4506
|
+
ticks?: number;
|
|
4507
|
+
}
|
|
4508
|
+
|
|
4509
|
+
/**
|
|
4510
|
+
* Chart configuration
|
|
4511
|
+
*/
|
|
4512
|
+
export interface ChartConfig {
|
|
4513
|
+
/**
|
|
4514
|
+
* X-axis configuration
|
|
4515
|
+
*/
|
|
4516
|
+
xAxis?: ChartAxis;
|
|
4517
|
+
|
|
4518
|
+
/**
|
|
4519
|
+
* Y-axis configuration
|
|
4520
|
+
*/
|
|
4521
|
+
yAxis?: ChartAxis;
|
|
4522
|
+
|
|
4523
|
+
/**
|
|
4524
|
+
* Whether to show legend
|
|
4525
|
+
*/
|
|
4526
|
+
showLegend?: boolean;
|
|
4527
|
+
|
|
4528
|
+
/**
|
|
4529
|
+
* Whether to show tooltips
|
|
4530
|
+
*/
|
|
4531
|
+
showTooltips?: boolean;
|
|
4532
|
+
|
|
4533
|
+
/**
|
|
4534
|
+
* Whether to animate the chart
|
|
4535
|
+
*/
|
|
4536
|
+
animate?: boolean;
|
|
4537
|
+
|
|
4538
|
+
/**
|
|
4539
|
+
* Animation duration in milliseconds
|
|
4540
|
+
*/
|
|
4541
|
+
animationDuration?: number;
|
|
4542
|
+
}
|
|
4543
|
+
|
|
4544
|
+
/**
|
|
4545
|
+
* Chart component properties
|
|
4546
|
+
*/
|
|
4547
|
+
export interface ChartProps extends BaseComponentProps {
|
|
4548
|
+
/**
|
|
4549
|
+
* Chart type
|
|
4550
|
+
*/
|
|
4551
|
+
type?: ChartType;
|
|
4552
|
+
|
|
4553
|
+
/**
|
|
4554
|
+
* Chart datasets
|
|
4555
|
+
*/
|
|
4556
|
+
datasets?: ChartDataset[];
|
|
4557
|
+
|
|
4558
|
+
/**
|
|
4559
|
+
* Chart configuration
|
|
4560
|
+
*/
|
|
4561
|
+
config?: ChartConfig;
|
|
4562
|
+
|
|
4563
|
+
/**
|
|
4564
|
+
* Chart title
|
|
4565
|
+
*/
|
|
4566
|
+
title?: string;
|
|
4567
|
+
|
|
4568
|
+
/**
|
|
4569
|
+
* Chart subtitle
|
|
4570
|
+
*/
|
|
4571
|
+
subtitle?: string;
|
|
4572
|
+
|
|
4573
|
+
/**
|
|
4574
|
+
* Loading state
|
|
4575
|
+
*/
|
|
4576
|
+
loading?: boolean;
|
|
4577
|
+
|
|
4578
|
+
/**
|
|
4579
|
+
* Error message
|
|
4580
|
+
*/
|
|
4581
|
+
error?: string;
|
|
4582
|
+
|
|
4583
|
+
/**
|
|
4584
|
+
* Chart size
|
|
4585
|
+
*/
|
|
4586
|
+
size?: ChartSize;
|
|
4587
|
+
|
|
4588
|
+
/**
|
|
4589
|
+
* Chart variant
|
|
4590
|
+
*/
|
|
4591
|
+
variant?: Variant;
|
|
4592
|
+
|
|
4593
|
+
/**
|
|
4594
|
+
* Chart content (for wrapper chart component)
|
|
4595
|
+
*/
|
|
4596
|
+
children?: React.ReactNode;
|
|
4597
|
+
|
|
4598
|
+
/**
|
|
4599
|
+
* Click handler for data points
|
|
4600
|
+
*/
|
|
4601
|
+
onDataPointClick?: (dataPoint: ChartDataPoint, datasetIndex: number, pointIndex: number) => void;
|
|
4602
|
+
|
|
4603
|
+
/**
|
|
4604
|
+
* Legend item click handler
|
|
4605
|
+
*/
|
|
4606
|
+
onLegendItemClick?: (datasetIndex: number, visible: boolean) => void;
|
|
4607
|
+
|
|
4608
|
+
/**
|
|
4609
|
+
* Interactive mode - enables hover/click effects
|
|
4610
|
+
*/
|
|
4611
|
+
interactive?: boolean;
|
|
4612
|
+
|
|
4613
|
+
/**
|
|
4614
|
+
* Disabled state
|
|
4615
|
+
*/
|
|
4616
|
+
disabled?: boolean;
|
|
4617
|
+
|
|
4618
|
+
/**
|
|
4619
|
+
* Fullscreen mode
|
|
4620
|
+
*/
|
|
4621
|
+
fullscreen?: boolean;
|
|
4622
|
+
|
|
4623
|
+
/**
|
|
4624
|
+
* Minimized mode
|
|
4625
|
+
*/
|
|
4626
|
+
minimized?: boolean;
|
|
4627
|
+
|
|
4628
|
+
/**
|
|
4629
|
+
* Show toolbar with actions
|
|
4630
|
+
*/
|
|
4631
|
+
showToolbar?: boolean;
|
|
4632
|
+
|
|
4633
|
+
/**
|
|
4634
|
+
* Enable fullscreen functionality
|
|
4635
|
+
*/
|
|
4636
|
+
enableFullscreen?: boolean;
|
|
4637
|
+
|
|
4638
|
+
/**
|
|
4639
|
+
* Enable export functionality
|
|
4640
|
+
*/
|
|
4641
|
+
enableExport?: boolean;
|
|
4642
|
+
|
|
4643
|
+
/**
|
|
4644
|
+
* Enable refresh functionality
|
|
4645
|
+
*/
|
|
4646
|
+
enableRefresh?: boolean;
|
|
4647
|
+
|
|
4648
|
+
/**
|
|
4649
|
+
* Available export formats
|
|
4650
|
+
*/
|
|
4651
|
+
exportFormats?: ('png' | 'svg' | 'csv' | 'json')[];
|
|
4652
|
+
|
|
4653
|
+
/**
|
|
4654
|
+
* Fullscreen state change handler
|
|
4655
|
+
*/
|
|
4656
|
+
onFullscreen?: (isFullscreen: boolean) => void;
|
|
4657
|
+
|
|
4658
|
+
/**
|
|
4659
|
+
* Export handler
|
|
4660
|
+
*/
|
|
4661
|
+
onExport?: (format: string) => Promise<void> | void;
|
|
4662
|
+
|
|
4663
|
+
/**
|
|
4664
|
+
* Refresh handler
|
|
4665
|
+
*/
|
|
4666
|
+
onRefresh?: () => void;
|
|
4667
|
+
|
|
4668
|
+
/**
|
|
4669
|
+
* Custom toolbar actions
|
|
4670
|
+
*/
|
|
4671
|
+
toolbarActions?: React.ReactNode;
|
|
4672
|
+
|
|
4673
|
+
/**
|
|
4674
|
+
* Empty state configuration
|
|
4675
|
+
*/
|
|
4676
|
+
emptyState?: {
|
|
4677
|
+
message?: string;
|
|
4678
|
+
icon?: React.ReactNode;
|
|
4679
|
+
};
|
|
4680
|
+
|
|
4681
|
+
/**
|
|
4682
|
+
* Accessibility label
|
|
4683
|
+
*/
|
|
4684
|
+
'aria-label'?: string;
|
|
4685
|
+
}
|
|
4686
|
+
|
|
4687
|
+
/**
|
|
4688
|
+
* CodeBlock component properties
|
|
4689
|
+
*/
|
|
4690
|
+
export interface CodeBlockProps extends BaseComponentProps {
|
|
4691
|
+
/**
|
|
4692
|
+
* The code to be displayed
|
|
4693
|
+
*/
|
|
4694
|
+
code: string;
|
|
4695
|
+
|
|
4696
|
+
/**
|
|
4697
|
+
* The language of the code
|
|
4698
|
+
*/
|
|
4699
|
+
language: string;
|
|
4700
|
+
|
|
4701
|
+
/**
|
|
4702
|
+
* Whether to show line numbers
|
|
4703
|
+
*/
|
|
4704
|
+
showLineNumbers?: boolean;
|
|
4705
|
+
|
|
4706
|
+
/**
|
|
4707
|
+
* Theme variant for the code block
|
|
4708
|
+
*/
|
|
4709
|
+
theme?: 'light' | 'dark' | 'auto';
|
|
4710
|
+
|
|
4711
|
+
/**
|
|
4712
|
+
* Maximum height of the code block in pixels or CSS units
|
|
4713
|
+
*/
|
|
4714
|
+
maxHeight?: string | number;
|
|
4715
|
+
|
|
4716
|
+
/**
|
|
4717
|
+
* Minimum height of the code block in pixels or CSS units
|
|
4718
|
+
*/
|
|
4719
|
+
minHeight?: string | number;
|
|
4720
|
+
|
|
4721
|
+
/**
|
|
4722
|
+
* Callback when code is copied to clipboard
|
|
4723
|
+
*/
|
|
4724
|
+
onCopy?: () => void;
|
|
4725
|
+
|
|
4726
|
+
/**
|
|
4727
|
+
* Callback when fullscreen mode changes
|
|
4728
|
+
*/
|
|
4729
|
+
onFullscreenChange?: (isFullscreen: boolean) => void;
|
|
4730
|
+
|
|
4731
|
+
/**
|
|
4732
|
+
* Whether to enable line wrapping
|
|
4733
|
+
*/
|
|
4734
|
+
wrapLines?: boolean;
|
|
4735
|
+
|
|
4736
|
+
/**
|
|
4737
|
+
* Whether to enable fullscreen mode
|
|
4738
|
+
*/
|
|
4739
|
+
enableFullscreen?: boolean;
|
|
4740
|
+
|
|
4741
|
+
/**
|
|
4742
|
+
* Whether to enable copy functionality
|
|
4743
|
+
*/
|
|
4744
|
+
enableCopy?: boolean;
|
|
4745
|
+
|
|
4746
|
+
/**
|
|
4747
|
+
* Whether to show the toolbar with actions
|
|
4748
|
+
*/
|
|
4749
|
+
showToolbar?: boolean;
|
|
4750
|
+
}
|