@omnitend/dashboard-for-laravel 0.4.7
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/LICENSE +21 -0
- package/README.md +397 -0
- package/dist/components/base/DAccordion.vue.d.ts +12 -0
- package/dist/components/base/DAccordionItem.vue.d.ts +12 -0
- package/dist/components/base/DAlert.vue.d.ts +12 -0
- package/dist/components/base/DAvatar.vue.d.ts +12 -0
- package/dist/components/base/DBadge.vue.d.ts +12 -0
- package/dist/components/base/DBreadcrumb.vue.d.ts +12 -0
- package/dist/components/base/DButton.vue.d.ts +29 -0
- package/dist/components/base/DButtonGroup.vue.d.ts +12 -0
- package/dist/components/base/DButtonToolbar.vue.d.ts +12 -0
- package/dist/components/base/DCard.vue.d.ts +12 -0
- package/dist/components/base/DCarousel.vue.d.ts +12 -0
- package/dist/components/base/DCarouselSlide.vue.d.ts +12 -0
- package/dist/components/base/DCol.vue.d.ts +12 -0
- package/dist/components/base/DCollapse.vue.d.ts +12 -0
- package/dist/components/base/DContainer.vue.d.ts +12 -0
- package/dist/components/base/DDropdown.vue.d.ts +12 -0
- package/dist/components/base/DDropdownDivider.vue.d.ts +2 -0
- package/dist/components/base/DDropdownItem.vue.d.ts +12 -0
- package/dist/components/base/DForm.vue.d.ts +12 -0
- package/dist/components/base/DFormCheckbox.vue.d.ts +12 -0
- package/dist/components/base/DFormGroup.vue.d.ts +12 -0
- package/dist/components/base/DFormInput.vue.d.ts +2 -0
- package/dist/components/base/DFormInvalidFeedback.vue.d.ts +12 -0
- package/dist/components/base/DFormRadio.vue.d.ts +12 -0
- package/dist/components/base/DFormSelect.vue.d.ts +12 -0
- package/dist/components/base/DFormSpinbutton.vue.d.ts +12 -0
- package/dist/components/base/DFormTags.vue.d.ts +12 -0
- package/dist/components/base/DFormText.vue.d.ts +12 -0
- package/dist/components/base/DFormTextarea.vue.d.ts +2 -0
- package/dist/components/base/DImage.vue.d.ts +12 -0
- package/dist/components/base/DInputGroup.vue.d.ts +12 -0
- package/dist/components/base/DLink.vue.d.ts +12 -0
- package/dist/components/base/DListGroup.vue.d.ts +12 -0
- package/dist/components/base/DListGroupItem.vue.d.ts +12 -0
- package/dist/components/base/DModal.vue.d.ts +12 -0
- package/dist/components/base/DNav.vue.d.ts +12 -0
- package/dist/components/base/DNavItem.vue.d.ts +12 -0
- package/dist/components/base/DNavbar.vue.d.ts +12 -0
- package/dist/components/base/DNavbarBrand.vue.d.ts +12 -0
- package/dist/components/base/DNavbarNav.vue.d.ts +12 -0
- package/dist/components/base/DNavbarToggle.vue.d.ts +12 -0
- package/dist/components/base/DOffcanvas.vue.d.ts +12 -0
- package/dist/components/base/DOverlay.vue.d.ts +12 -0
- package/dist/components/base/DPagination.vue.d.ts +2 -0
- package/dist/components/base/DPlaceholder.vue.d.ts +12 -0
- package/dist/components/base/DPopover.vue.d.ts +12 -0
- package/dist/components/base/DProgress.vue.d.ts +12 -0
- package/dist/components/base/DRow.vue.d.ts +12 -0
- package/dist/components/base/DSpinner.vue.d.ts +2 -0
- package/dist/components/base/DTab.vue.d.ts +12 -0
- package/dist/components/base/DTable.vue.d.ts +26 -0
- package/dist/components/base/DTabs.vue.d.ts +12 -0
- package/dist/components/base/DToast.vue.d.ts +12 -0
- package/dist/components/base/DToaster.vue.d.ts +12 -0
- package/dist/components/base/DTooltip.vue.d.ts +12 -0
- package/dist/components/extended/DXBasicForm.vue.d.ts +39 -0
- package/dist/components/extended/DXDashboard.vue.d.ts +52 -0
- package/dist/components/extended/DXDashboardNavbar.vue.d.ts +53 -0
- package/dist/components/extended/DXDashboardSidebar.vue.d.ts +37 -0
- package/dist/components/extended/DXForm.vue.d.ts +31 -0
- package/dist/components/extended/DXTable.vue.d.ts +190 -0
- package/dist/composables/defineForm.d.ts +35 -0
- package/dist/composables/useForm.d.ts +46 -0
- package/dist/composables/useToast.d.ts +1 -0
- package/dist/dashboard-for-laravel.js +17748 -0
- package/dist/dashboard-for-laravel.js.map +1 -0
- package/dist/dashboard-for-laravel.umd.cjs +11 -0
- package/dist/dashboard-for-laravel.umd.cjs.map +1 -0
- package/dist/index.d.ts +73 -0
- package/dist/style.css +5 -0
- package/dist/types/index.d.ts +37 -0
- package/dist/types/navigation.d.ts +17 -0
- package/dist/utils/api.d.ts +30 -0
- package/docs/public/api-reference.json +1932 -0
- package/docs/public/docs-map.md +85 -0
- package/docs/public/llms.txt +110 -0
- package/package.json +116 -0
- package/resources/css/theme.scss +219 -0
- package/resources/js/components/base/DAccordion.vue +21 -0
- package/resources/js/components/base/DAccordionItem.vue +14 -0
- package/resources/js/components/base/DAlert.vue +14 -0
- package/resources/js/components/base/DAvatar.vue +21 -0
- package/resources/js/components/base/DBadge.vue +14 -0
- package/resources/js/components/base/DBreadcrumb.vue +21 -0
- package/resources/js/components/base/DButton.vue +58 -0
- package/resources/js/components/base/DButtonGroup.vue +21 -0
- package/resources/js/components/base/DButtonToolbar.vue +21 -0
- package/resources/js/components/base/DCard.vue +35 -0
- package/resources/js/components/base/DCarousel.vue +21 -0
- package/resources/js/components/base/DCarouselSlide.vue +14 -0
- package/resources/js/components/base/DCol.vue +14 -0
- package/resources/js/components/base/DCollapse.vue +34 -0
- package/resources/js/components/base/DContainer.vue +14 -0
- package/resources/js/components/base/DDropdown.vue +16 -0
- package/resources/js/components/base/DDropdownDivider.vue +7 -0
- package/resources/js/components/base/DDropdownItem.vue +14 -0
- package/resources/js/components/base/DForm.vue +21 -0
- package/resources/js/components/base/DFormCheckbox.vue +14 -0
- package/resources/js/components/base/DFormGroup.vue +11 -0
- package/resources/js/components/base/DFormInput.vue +7 -0
- package/resources/js/components/base/DFormInvalidFeedback.vue +16 -0
- package/resources/js/components/base/DFormRadio.vue +21 -0
- package/resources/js/components/base/DFormSelect.vue +14 -0
- package/resources/js/components/base/DFormSpinbutton.vue +21 -0
- package/resources/js/components/base/DFormTags.vue +21 -0
- package/resources/js/components/base/DFormText.vue +16 -0
- package/resources/js/components/base/DFormTextarea.vue +7 -0
- package/resources/js/components/base/DImage.vue +21 -0
- package/resources/js/components/base/DInputGroup.vue +21 -0
- package/resources/js/components/base/DLink.vue +21 -0
- package/resources/js/components/base/DListGroup.vue +21 -0
- package/resources/js/components/base/DListGroupItem.vue +14 -0
- package/resources/js/components/base/DModal.vue +11 -0
- package/resources/js/components/base/DNav.vue +14 -0
- package/resources/js/components/base/DNavItem.vue +14 -0
- package/resources/js/components/base/DNavbar.vue +21 -0
- package/resources/js/components/base/DNavbarBrand.vue +14 -0
- package/resources/js/components/base/DNavbarNav.vue +14 -0
- package/resources/js/components/base/DNavbarToggle.vue +14 -0
- package/resources/js/components/base/DOffcanvas.vue +11 -0
- package/resources/js/components/base/DOverlay.vue +21 -0
- package/resources/js/components/base/DPagination.vue +7 -0
- package/resources/js/components/base/DPlaceholder.vue +21 -0
- package/resources/js/components/base/DPopover.vue +21 -0
- package/resources/js/components/base/DProgress.vue +21 -0
- package/resources/js/components/base/DRow.vue +14 -0
- package/resources/js/components/base/DSpinner.vue +7 -0
- package/resources/js/components/base/DTab.vue +14 -0
- package/resources/js/components/base/DTable.vue +62 -0
- package/resources/js/components/base/DTabs.vue +21 -0
- package/resources/js/components/base/DToast.vue +16 -0
- package/resources/js/components/base/DToaster.vue +16 -0
- package/resources/js/components/base/DTooltip.vue +21 -0
- package/resources/js/components/extended/DXBasicForm.vue +177 -0
- package/resources/js/components/extended/DXDashboard.vue +208 -0
- package/resources/js/components/extended/DXDashboardNavbar.vue +112 -0
- package/resources/js/components/extended/DXDashboardSidebar.vue +233 -0
- package/resources/js/components/extended/DXForm.vue +44 -0
- package/resources/js/components/extended/DXTable.vue +1345 -0
- package/resources/js/composables/defineForm.ts +78 -0
- package/resources/js/composables/useForm.ts +272 -0
- package/resources/js/composables/useToast.ts +1 -0
- package/resources/js/index.ts +118 -0
- package/resources/js/types/index.ts +61 -0
- package/resources/js/types/navigation.ts +19 -0
- package/resources/js/utils/api.ts +182 -0
- package/scripts/mcp-server.mjs +359 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Documentation Map
|
|
2
|
+
|
|
3
|
+
> Auto-generated hierarchical overview of all documentation
|
|
4
|
+
> Last updated: 2025-11-26T12:28:39.369Z
|
|
5
|
+
|
|
6
|
+
This file provides a complete map of all available documentation for AI agents and developers.
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Components
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Base
|
|
13
|
+
|
|
14
|
+
- [DAccordion](/components/base/DAccordion): Type-safe wrapper around Bootstrap Vue Next's BAccordion component
|
|
15
|
+
- [DAlert](/components/base/DAlert): Type-safe wrapper around Bootstrap Vue Next's BAlert component
|
|
16
|
+
- [DAvatar](/components/base/DAvatar): Type-safe wrapper around Bootstrap Vue Next's BAvatar component
|
|
17
|
+
- [DBadge](/components/base/DBadge): Type-safe wrapper around Bootstrap Vue Next's BBadge component
|
|
18
|
+
- [DBreadcrumb](/components/base/DBreadcrumb): Type-safe wrapper around Bootstrap Vue Next's BBreadcrumb component
|
|
19
|
+
- [DButton](/components/base/DButton): Type-safe wrapper around Bootstrap Vue Next's BButton component
|
|
20
|
+
- [DButtonGroup](/components/base/DButtonGroup): Type-safe wrapper around Bootstrap Vue Next's BButtonGroup component
|
|
21
|
+
- [DButtonToolbar](/components/base/DButtonToolbar): Type-safe wrapper around Bootstrap Vue Next's BButtonToolbar component
|
|
22
|
+
- [DCard](/components/base/DCard): Type-safe wrapper around Bootstrap Vue Next's BCard component
|
|
23
|
+
- [DCarousel](/components/base/DCarousel): Type-safe wrapper around Bootstrap Vue Next's BCarousel component
|
|
24
|
+
- [DCol](/components/base/DCol): Type-safe wrapper around Bootstrap Vue Next's BCol component
|
|
25
|
+
- [DCollapse](/components/base/DCollapse): Type-safe wrapper around Bootstrap Vue Next's BCollapse component
|
|
26
|
+
- [DContainer](/components/base/DContainer): Type-safe wrapper around Bootstrap Vue Next's BContainer component
|
|
27
|
+
- [DDropdown](/components/base/DDropdown): Type-safe wrapper around Bootstrap Vue Next's BDropdown component
|
|
28
|
+
- [DDropdownDivider](/components/base/DDropdownDivider): Type-safe wrapper around Bootstrap Vue Next's BDropdownDivider component
|
|
29
|
+
- [DDropdownItem](/components/base/DDropdownItem): Type-safe wrapper around Bootstrap Vue Next's BDropdownItem component
|
|
30
|
+
- [DForm](/components/base/DForm): Type-safe wrapper around Bootstrap Vue Next's BForm component
|
|
31
|
+
- [DFormCheckbox](/components/base/DFormCheckbox): Type-safe wrapper around Bootstrap Vue Next's BFormCheckbox component
|
|
32
|
+
- [DFormGroup](/components/base/DFormGroup): Type-safe wrapper around Bootstrap Vue Next's BFormGroup component
|
|
33
|
+
- [DFormInput](/components/base/DFormInput): Type-safe wrapper around Bootstrap Vue Next's BFormInput component
|
|
34
|
+
- [DFormRadio](/components/base/DFormRadio): Type-safe wrapper around Bootstrap Vue Next's BFormRadio component
|
|
35
|
+
- [DFormSelect](/components/base/DFormSelect): Type-safe wrapper around Bootstrap Vue Next's BFormSelect component
|
|
36
|
+
- [DFormSpinbutton](/components/base/DFormSpinbutton): Type-safe wrapper around Bootstrap Vue Next's BFormSpinbutton component
|
|
37
|
+
- [DFormTags](/components/base/DFormTags): Type-safe wrapper around Bootstrap Vue Next's BFormTags component
|
|
38
|
+
- [DFormTextarea](/components/base/DFormTextarea): Type-safe wrapper around Bootstrap Vue Next's BFormTextarea component
|
|
39
|
+
- [DImage](/components/base/DImage): Type-safe wrapper around Bootstrap Vue Next's BImage component
|
|
40
|
+
- [DInputGroup](/components/base/DInputGroup): Type-safe wrapper around Bootstrap Vue Next's BInputGroup component
|
|
41
|
+
- [DLink](/components/base/DLink): Type-safe wrapper around Bootstrap Vue Next's BLink component
|
|
42
|
+
- [DListGroup](/components/base/DListGroup): Type-safe wrapper around Bootstrap Vue Next's BListGroup component
|
|
43
|
+
- [DModal](/components/base/DModal): Type-safe wrapper around Bootstrap Vue Next's BModal component
|
|
44
|
+
- [DNav](/components/base/DNav): Type-safe wrapper around Bootstrap Vue Next's BNav component
|
|
45
|
+
- [DNavItem](/components/base/DNavItem): DNavItem - A type-safe wrapper around Bootstrap Vue Next's BNavItem component. Individual navigation
|
|
46
|
+
- [DNavbar](/components/base/DNavbar): Type-safe wrapper around Bootstrap Vue Next BNavbar component. Responsive navigation header with sup
|
|
47
|
+
- [DOffcanvas](/components/base/DOffcanvas): DOffcanvas - A type-safe wrapper around Bootstrap Vue Next's BOffcanvas component. Hidden sidebar co
|
|
48
|
+
- [DOverlay](/components/base/DOverlay): Type-safe wrapper around Bootstrap Vue Next BOverlay component. Overlay component for indicating loa
|
|
49
|
+
- [DPagination](/components/base/DPagination): DPagination - A type-safe wrapper around Bootstrap Vue Next's BPagination component. Provides naviga
|
|
50
|
+
- [DPlaceholder](/components/base/DPlaceholder): Type-safe wrapper around Bootstrap Vue Next BPlaceholder component. Loading placeholder component to
|
|
51
|
+
- [DPopover](/components/base/DPopover): Type-safe wrapper around Bootstrap Vue Next BPopover component. Overlay component for displaying ric
|
|
52
|
+
- [DProgress](/components/base/DProgress): Type-safe wrapper around Bootstrap Vue Next BProgress component. Progress bar for displaying simple
|
|
53
|
+
- [DRow](/components/base/DRow): DRow - A type-safe wrapper around Bootstrap Vue Next's BRow component. Container for columns within
|
|
54
|
+
- [DSpinner](/components/base/DSpinner): DSpinner - A type-safe wrapper around Bootstrap Vue Next's BSpinner component. Loading indicator to
|
|
55
|
+
- [DTable](/components/base/DTable): DTable - A type-safe wrapper around Bootstrap Vue Next's BTable component. Feature-rich data table w
|
|
56
|
+
- [DTabs](/components/base/DTabs): Type-safe wrapper around Bootstrap Vue Next BTabs component. Create tabbed panes of local content wi
|
|
57
|
+
- [DToast](/components/base/DToast): DToast - A type-safe wrapper around Bootstrap Vue Next's BToast component. Lightweight notification
|
|
58
|
+
- [DToaster](/components/base/DToaster): DToaster - A type-safe wrapper around Bootstrap Vue Next's BToaster component. Container for managin
|
|
59
|
+
- [DTooltip](/components/base/DTooltip): Type-safe wrapper around Bootstrap Vue Next BTooltip component. Display helpful tooltips when hoveri
|
|
60
|
+
|
|
61
|
+
### Extended
|
|
62
|
+
|
|
63
|
+
- [DXBasicForm](/components/extended/DXBasicForm): Form instance from useForm composable
|
|
64
|
+
- [DXDashboard](/components/extended/DXDashboard): Complete dashboard layout component that combines sidebar navigation, top navbar, and content area.
|
|
65
|
+
- [DXDashboardNavbar](/components/extended/DXDashboardNavbar): A responsive top navigation bar component for Laravel dashboards with user menu, search functionalit
|
|
66
|
+
- [DXDashboardSidebar](/components/extended/DXDashboardSidebar): A collapsible sidebar navigation component for Laravel dashboards with support for navigation groups
|
|
67
|
+
- [DXForm](/components/extended/DXForm): Form object from defineForm
|
|
68
|
+
- [DXTable](/components/extended/DXTable): A comprehensive data table component with built-in pagination, loading states, and error handling fo
|
|
69
|
+
|
|
70
|
+
### Examples
|
|
71
|
+
|
|
72
|
+
- [Common Patterns](/examples/common-patterns): Real-world examples showing how to use the library components together.
|
|
73
|
+
|
|
74
|
+
### Guide
|
|
75
|
+
|
|
76
|
+
- [Forms](/guide/forms): The library includes a powerful type-safe form system with validation, auto-generated forms, and com
|
|
77
|
+
- [Getting Started](/guide/getting-started): @omnitend/dashboard-for-laravel is a reusable full-stack component library for building Laravel dash
|
|
78
|
+
- [Installation](/guide/installation): Install via npm:
|
|
79
|
+
- [Theming](/guide/theming): The library includes a custom Bootstrap 5 theme that can be easily customised using CSS variables an
|
|
80
|
+
- [TypeScript](/guide/typescript): The library is written in TypeScript and includes full type definitions for all components, composab
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
**Total Pages**: 58
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# @omnitend/dashboard-for-laravel
|
|
2
|
+
|
|
3
|
+
> Vue 3 dashboard components for Laravel with Bootstrap Vue Next
|
|
4
|
+
>
|
|
5
|
+
> A dual-package library (NPM + Composer) providing 61 Vue 3 components for building Laravel dashboards with Bootstrap Vue Next.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
- [NPM Installation](https://github.com/omnitend/dashboard-for-laravel#npm-package): Install via npm/yarn
|
|
10
|
+
- [Composer Installation](https://github.com/omnitend/dashboard-for-laravel#composer-package): Install via Composer for Laravel integration
|
|
11
|
+
|
|
12
|
+
## Getting Started
|
|
13
|
+
|
|
14
|
+
- [Forms](/guide/forms): Type-safe form handling and validation
|
|
15
|
+
- [Getting Started](/guide/getting-started): Quick start guide and core concepts
|
|
16
|
+
- [Installation](/guide/installation): Install and configure the package
|
|
17
|
+
- [Theming](/guide/theming): Customize appearance with CSS variables
|
|
18
|
+
- [TypeScript](/guide/typescript): TypeScript types and best practices
|
|
19
|
+
|
|
20
|
+
## Base Components (55 components)
|
|
21
|
+
|
|
22
|
+
Lightweight type-safe wrappers around Bootstrap Vue Next components providing API stability and consistent theming.
|
|
23
|
+
|
|
24
|
+
- [DAccordion](/components/base/daccordion): Bootstrap Vue Next Accordion wrapper
|
|
25
|
+
- [DAccordionItem](/components/base/daccordionitem): Bootstrap Vue Next AccordionItem wrapper
|
|
26
|
+
- [DAlert](/components/base/dalert): Bootstrap Vue Next Alert wrapper
|
|
27
|
+
- [DAvatar](/components/base/davatar): Bootstrap Vue Next Avatar wrapper
|
|
28
|
+
- [DBadge](/components/base/dbadge): Bootstrap Vue Next Badge wrapper
|
|
29
|
+
- [DBreadcrumb](/components/base/dbreadcrumb): Bootstrap Vue Next Breadcrumb wrapper
|
|
30
|
+
- [DButton](/components/base/dbutton): Bootstrap Vue Next Button wrapper
|
|
31
|
+
- [DButtonGroup](/components/base/dbuttongroup): Bootstrap Vue Next ButtonGroup wrapper
|
|
32
|
+
- [DButtonToolbar](/components/base/dbuttontoolbar): Bootstrap Vue Next ButtonToolbar wrapper
|
|
33
|
+
- [DCard](/components/base/dcard): Bootstrap Vue Next Card wrapper
|
|
34
|
+
- [DCarousel](/components/base/dcarousel): Bootstrap Vue Next Carousel wrapper
|
|
35
|
+
- [DCarouselSlide](/components/base/dcarouselslide): Bootstrap Vue Next CarouselSlide wrapper
|
|
36
|
+
- [DCol](/components/base/dcol): Bootstrap Vue Next Col wrapper
|
|
37
|
+
- [DCollapse](/components/base/dcollapse): Bootstrap Vue Next Collapse wrapper
|
|
38
|
+
- [DContainer](/components/base/dcontainer): Bootstrap Vue Next Container wrapper
|
|
39
|
+
- [DDropdown](/components/base/ddropdown): Bootstrap Vue Next Dropdown wrapper
|
|
40
|
+
- [DDropdownDivider](/components/base/ddropdowndivider): Bootstrap Vue Next DropdownDivider wrapper
|
|
41
|
+
- [DDropdownItem](/components/base/ddropdownitem): Bootstrap Vue Next DropdownItem wrapper
|
|
42
|
+
- [DForm](/components/base/dform): Bootstrap Vue Next Form wrapper
|
|
43
|
+
- [DFormCheckbox](/components/base/dformcheckbox): Bootstrap Vue Next FormCheckbox wrapper
|
|
44
|
+
- [DFormGroup](/components/base/dformgroup): Bootstrap Vue Next FormGroup wrapper
|
|
45
|
+
- [DFormInput](/components/base/dforminput): Bootstrap Vue Next FormInput wrapper
|
|
46
|
+
- [DFormInvalidFeedback](/components/base/dforminvalidfeedback): Bootstrap Vue Next FormInvalidFeedback wrapper
|
|
47
|
+
- [DFormRadio](/components/base/dformradio): Bootstrap Vue Next FormRadio wrapper
|
|
48
|
+
- [DFormSelect](/components/base/dformselect): Bootstrap Vue Next FormSelect wrapper
|
|
49
|
+
- [DFormSpinbutton](/components/base/dformspinbutton): Bootstrap Vue Next FormSpinbutton wrapper
|
|
50
|
+
- [DFormTags](/components/base/dformtags): Bootstrap Vue Next FormTags wrapper
|
|
51
|
+
- [DFormText](/components/base/dformtext): Bootstrap Vue Next FormText wrapper
|
|
52
|
+
- [DFormTextarea](/components/base/dformtextarea): Bootstrap Vue Next FormTextarea wrapper
|
|
53
|
+
- [DImage](/components/base/dimage): Bootstrap Vue Next Image wrapper
|
|
54
|
+
- [DInputGroup](/components/base/dinputgroup): Bootstrap Vue Next InputGroup wrapper
|
|
55
|
+
- [DLink](/components/base/dlink): Bootstrap Vue Next Link wrapper
|
|
56
|
+
- [DListGroup](/components/base/dlistgroup): Bootstrap Vue Next ListGroup wrapper
|
|
57
|
+
- [DListGroupItem](/components/base/dlistgroupitem): Bootstrap Vue Next ListGroupItem wrapper
|
|
58
|
+
- [DModal](/components/base/dmodal): Bootstrap Vue Next Modal wrapper
|
|
59
|
+
- [DNav](/components/base/dnav): Bootstrap Vue Next Nav wrapper
|
|
60
|
+
- [DNavItem](/components/base/dnavitem): Bootstrap Vue Next NavItem wrapper
|
|
61
|
+
- [DNavbar](/components/base/dnavbar): Bootstrap Vue Next Navbar wrapper
|
|
62
|
+
- [DNavbarBrand](/components/base/dnavbarbrand): Bootstrap Vue Next NavbarBrand wrapper
|
|
63
|
+
- [DNavbarNav](/components/base/dnavbarnav): Bootstrap Vue Next NavbarNav wrapper
|
|
64
|
+
- [DNavbarToggle](/components/base/dnavbartoggle): Bootstrap Vue Next NavbarToggle wrapper
|
|
65
|
+
- [DOffcanvas](/components/base/doffcanvas): Bootstrap Vue Next Offcanvas wrapper
|
|
66
|
+
- [DOverlay](/components/base/doverlay): Bootstrap Vue Next Overlay wrapper
|
|
67
|
+
- [DPagination](/components/base/dpagination): Bootstrap Vue Next Pagination wrapper
|
|
68
|
+
- [DPlaceholder](/components/base/dplaceholder): Bootstrap Vue Next Placeholder wrapper
|
|
69
|
+
- [DPopover](/components/base/dpopover): Bootstrap Vue Next Popover wrapper
|
|
70
|
+
- [DProgress](/components/base/dprogress): Bootstrap Vue Next Progress wrapper
|
|
71
|
+
- [DRow](/components/base/drow): Bootstrap Vue Next Row wrapper
|
|
72
|
+
- [DSpinner](/components/base/dspinner): Bootstrap Vue Next Spinner wrapper
|
|
73
|
+
- [DTab](/components/base/dtab): Bootstrap Vue Next Tab wrapper
|
|
74
|
+
- [DTable](/components/base/dtable): Bootstrap Vue Next Table wrapper
|
|
75
|
+
- [DTabs](/components/base/dtabs): Bootstrap Vue Next Tabs wrapper
|
|
76
|
+
- [DToast](/components/base/dtoast): Bootstrap Vue Next Toast wrapper
|
|
77
|
+
- [DToaster](/components/base/dtoaster): Bootstrap Vue Next Toaster wrapper
|
|
78
|
+
- [DTooltip](/components/base/dtooltip): Bootstrap Vue Next Tooltip wrapper
|
|
79
|
+
|
|
80
|
+
## Extended Components (6 components)
|
|
81
|
+
|
|
82
|
+
Custom dashboard components with advanced functionality beyond Bootstrap Vue Next.
|
|
83
|
+
|
|
84
|
+
- [DXBasicForm](/components/extended/dxbasicform): Auto-generated forms from field definitions
|
|
85
|
+
- [DXDashboard](/components/extended/dxdashboard): Complete dashboard layout with sidebar and navbar
|
|
86
|
+
- [DXDashboardNavbar](/components/extended/dxdashboardnavbar): Top navbar with user dropdown
|
|
87
|
+
- [DXDashboardSidebar](/components/extended/dxdashboardsidebar): Collapsible sidebar with navigation
|
|
88
|
+
- [DXForm](/components/extended/dxform): Advanced form wrapper with defineForm integration
|
|
89
|
+
- [DXTable](/components/extended/dxtable): Data table with pagination, filtering, and sorting
|
|
90
|
+
|
|
91
|
+
## Composables
|
|
92
|
+
|
|
93
|
+
- [useForm](/guide/forms#useform-composable): Type-safe form state management with validation
|
|
94
|
+
- [defineForm](/guide/forms#defineform): Define forms from field definitions with type inference
|
|
95
|
+
- [useToast](/components/base/dtoaster): Toast notification system
|
|
96
|
+
|
|
97
|
+
## PHP Integration
|
|
98
|
+
|
|
99
|
+
- [BaseFormRequest](/guide/installation#laravel-integration): Laravel form request base class with validation
|
|
100
|
+
- [HasApiResponses](/guide/installation#laravel-integration): Trait for consistent API responses
|
|
101
|
+
- [PaginatedResource](/guide/installation#laravel-integration): Resource for paginated API responses
|
|
102
|
+
|
|
103
|
+
## Optional
|
|
104
|
+
|
|
105
|
+
Additional resources for advanced usage:
|
|
106
|
+
|
|
107
|
+
- [TypeScript Guide](/guide/typescript): Full type safety and IDE support
|
|
108
|
+
- [Theming Guide](/guide/theming): Customize Bootstrap theme with CSS variables
|
|
109
|
+
- [Common Patterns](/examples/common-patterns): Real-world usage examples
|
|
110
|
+
- [GitHub Repository](https://github.com/omnitend/dashboard-for-laravel): Source code and issue tracker
|
package/package.json
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@omnitend/dashboard-for-laravel",
|
|
3
|
+
"version": "0.4.7",
|
|
4
|
+
"description": "Vue 3 dashboard components for Laravel with Bootstrap Vue Next",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/dashboard-for-laravel.umd.cjs",
|
|
7
|
+
"module": "./dist/dashboard-for-laravel.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"bin": {
|
|
10
|
+
"dashboard-docs-mcp": "scripts/mcp-server.mjs"
|
|
11
|
+
},
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"import": "./dist/dashboard-for-laravel.js",
|
|
16
|
+
"require": "./dist/dashboard-for-laravel.umd.cjs"
|
|
17
|
+
},
|
|
18
|
+
"./style.css": "./dist/style.css",
|
|
19
|
+
"./theme.css": "./dist/style.css",
|
|
20
|
+
"./theme.scss": "./resources/css/theme.scss"
|
|
21
|
+
},
|
|
22
|
+
"files": [
|
|
23
|
+
"dist",
|
|
24
|
+
"resources",
|
|
25
|
+
"scripts/mcp-server.mjs",
|
|
26
|
+
"docs/public/llms.txt",
|
|
27
|
+
"docs/public/api-reference.json",
|
|
28
|
+
"docs/public/docs-map.md"
|
|
29
|
+
],
|
|
30
|
+
"scripts": {
|
|
31
|
+
"dev": "vite build --watch",
|
|
32
|
+
"build": "vite build && vue-tsc --declaration --emitDeclarationOnly --outDir dist",
|
|
33
|
+
"typecheck": "vue-tsc --noEmit",
|
|
34
|
+
"test": "vitest",
|
|
35
|
+
"test:ui": "vitest --ui",
|
|
36
|
+
"test:headless": "vitest --run --browser.headless",
|
|
37
|
+
"docs:dev": "astro dev",
|
|
38
|
+
"docs:build": "npm run docs:generate:ai && astro build",
|
|
39
|
+
"docs:preview": "astro preview",
|
|
40
|
+
"docs:generate": "node scripts/generate-component-docs.mjs",
|
|
41
|
+
"docs:generate:ai": "node scripts/generate-llms-txt.mjs && node scripts/generate-api-manifest.mjs && node scripts/generate-docs-map.mjs",
|
|
42
|
+
"docs:enhance": "node scripts/enhance-frontmatter.mjs",
|
|
43
|
+
"docs:all": "npm run docs:generate && npm run docs:generate:ai && npm run docs:build",
|
|
44
|
+
"mcp": "node scripts/mcp-server.mjs",
|
|
45
|
+
"release": "bash scripts/release.sh"
|
|
46
|
+
},
|
|
47
|
+
"peerDependencies": {
|
|
48
|
+
"@inertiajs/vue3": "^2.0.0",
|
|
49
|
+
"axios": "^1.6.0",
|
|
50
|
+
"vue": "^3.4.0"
|
|
51
|
+
},
|
|
52
|
+
"peerDependenciesMeta": {
|
|
53
|
+
"axios": {
|
|
54
|
+
"optional": true
|
|
55
|
+
},
|
|
56
|
+
"bootstrap-vue-next": {
|
|
57
|
+
"optional": true
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"dependencies": {
|
|
61
|
+
"@modelcontextprotocol/sdk": "^1.22.0",
|
|
62
|
+
"bootstrap-vue-next": "^0.40.8",
|
|
63
|
+
"highlight.js": "^11.11.1",
|
|
64
|
+
"pluralize": "^8.0.0",
|
|
65
|
+
"rehype-autolink-headings": "^7.1.0",
|
|
66
|
+
"rehype-slug": "^6.0.0",
|
|
67
|
+
"vue-docgen-api": "^4.79.2"
|
|
68
|
+
},
|
|
69
|
+
"devDependencies": {
|
|
70
|
+
"@astrojs/mdx": "^4.3.8",
|
|
71
|
+
"@astrojs/sitemap": "^3.6.0",
|
|
72
|
+
"@astrojs/vue": "^5.1.1",
|
|
73
|
+
"@iconify-json/lucide": "^1.2.71",
|
|
74
|
+
"@iconify/json": "^2.2.397",
|
|
75
|
+
"@inertiajs/vue3": "^2.2.15",
|
|
76
|
+
"@types/pluralize": "^0.0.33",
|
|
77
|
+
"@vitejs/plugin-vue": "^5.2.4",
|
|
78
|
+
"@vitest/browser": "^4.0.3",
|
|
79
|
+
"@vitest/browser-playwright": "^4.0.3",
|
|
80
|
+
"@vue/test-utils": "^2.4.6",
|
|
81
|
+
"astro": "^5.15.1",
|
|
82
|
+
"bootstrap": "^5.3.8",
|
|
83
|
+
"happy-dom": "^20.0.8",
|
|
84
|
+
"pagefind": "^1.4.0",
|
|
85
|
+
"playwright": "^1.56.1",
|
|
86
|
+
"sass-embedded": "^1.93.2",
|
|
87
|
+
"typescript": "^5.9.3",
|
|
88
|
+
"unplugin-icons": "^22.5.0",
|
|
89
|
+
"unplugin-vue-components": "^30.0.0",
|
|
90
|
+
"vite": "^6.4.1",
|
|
91
|
+
"vitest": "^4.0.3",
|
|
92
|
+
"vitest-browser-vue": "^2.0.0",
|
|
93
|
+
"vue-tsc": "^2.2.12"
|
|
94
|
+
},
|
|
95
|
+
"keywords": [
|
|
96
|
+
"vue",
|
|
97
|
+
"vue3",
|
|
98
|
+
"laravel",
|
|
99
|
+
"bootstrap",
|
|
100
|
+
"dashboard",
|
|
101
|
+
"components",
|
|
102
|
+
"forms",
|
|
103
|
+
"inertia",
|
|
104
|
+
"typescript"
|
|
105
|
+
],
|
|
106
|
+
"license": "MIT",
|
|
107
|
+
"author": "Omni Tend",
|
|
108
|
+
"repository": {
|
|
109
|
+
"type": "git",
|
|
110
|
+
"url": "https://github.com/omnitend/dashboard-for-laravel.git"
|
|
111
|
+
},
|
|
112
|
+
"bugs": {
|
|
113
|
+
"url": "https://github.com/omnitend/dashboard-for-laravel/issues"
|
|
114
|
+
},
|
|
115
|
+
"homepage": "https://omnitend.github.io/dashboard-for-laravel/"
|
|
116
|
+
}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// Laravel Dashboard Theme
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// Custom Bootstrap theme for the Laravel Dashboard library
|
|
5
|
+
// Override Bootstrap variables BEFORE importing Bootstrap
|
|
6
|
+
|
|
7
|
+
// ----------------------------------------------------------------------------
|
|
8
|
+
// Colors
|
|
9
|
+
// ----------------------------------------------------------------------------
|
|
10
|
+
|
|
11
|
+
$primary: #4f46e5; // Indigo-600 (8.6:1 with white)
|
|
12
|
+
$secondary: #475569; // Slate-600 (7.0:1 with white) - darkened for better contrast
|
|
13
|
+
$success: #10b981; // Emerald-500 (6.7:1 with white)
|
|
14
|
+
$danger: #dc2626; // Red-600 (7.2:1 with white) - darkened for better contrast
|
|
15
|
+
$warning: #f59e0b; // Amber-500 (7.7:1 with white)
|
|
16
|
+
$info: #2563eb; // Blue-600 (7.3:1 with white)
|
|
17
|
+
$light: #f8fafc; // Slate-50 (uses dark text)
|
|
18
|
+
$dark: #0f172a; // Slate-900 (uses white text)
|
|
19
|
+
|
|
20
|
+
// ----------------------------------------------------------------------------
|
|
21
|
+
// Contrast Settings
|
|
22
|
+
// ----------------------------------------------------------------------------
|
|
23
|
+
// Bootstrap uses these to calculate whether to use light or dark text on colored backgrounds
|
|
24
|
+
|
|
25
|
+
$min-contrast-ratio: 4.5; // WCAG AA standard
|
|
26
|
+
$color-contrast-dark: $dark; // Dark text color (for light backgrounds)
|
|
27
|
+
$color-contrast-light: #fff; // Light text color (for dark backgrounds)
|
|
28
|
+
|
|
29
|
+
// ----------------------------------------------------------------------------
|
|
30
|
+
// Typography
|
|
31
|
+
// ----------------------------------------------------------------------------
|
|
32
|
+
|
|
33
|
+
$font-family-base: "Poppins", sans-serif;
|
|
34
|
+
$font-size-base: 0.875rem; // 14px
|
|
35
|
+
$font-weight-base: 400;
|
|
36
|
+
$line-height-base: 1.5;
|
|
37
|
+
|
|
38
|
+
$h1-font-size: 2rem; // 32px
|
|
39
|
+
$h2-font-size: 1.75rem; // 28px
|
|
40
|
+
$h3-font-size: 1.5rem; // 24px
|
|
41
|
+
$h4-font-size: 1.25rem; // 20px
|
|
42
|
+
$h5-font-size: 1.125rem; // 18px
|
|
43
|
+
$h6-font-size: 1rem; // 16px
|
|
44
|
+
|
|
45
|
+
$headings-font-weight: 600;
|
|
46
|
+
|
|
47
|
+
// ----------------------------------------------------------------------------
|
|
48
|
+
// Spacing
|
|
49
|
+
// ----------------------------------------------------------------------------
|
|
50
|
+
|
|
51
|
+
$spacer: 1rem;
|
|
52
|
+
|
|
53
|
+
// ----------------------------------------------------------------------------
|
|
54
|
+
// Borders
|
|
55
|
+
// ----------------------------------------------------------------------------
|
|
56
|
+
|
|
57
|
+
$border-radius: 0.5rem; // 8px
|
|
58
|
+
$border-radius-sm: 0.375rem; // 6px
|
|
59
|
+
$border-radius-lg: 0.75rem; // 12px
|
|
60
|
+
$border-color: #e5e7eb; // Gray-200
|
|
61
|
+
|
|
62
|
+
// ----------------------------------------------------------------------------
|
|
63
|
+
// Buttons
|
|
64
|
+
// ----------------------------------------------------------------------------
|
|
65
|
+
|
|
66
|
+
$btn-padding-y: 0.625rem; // 10px
|
|
67
|
+
$btn-padding-x: 1.25rem; // 20px
|
|
68
|
+
$btn-font-weight: 500;
|
|
69
|
+
$btn-border-radius: $border-radius;
|
|
70
|
+
$btn-box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
|
71
|
+
|
|
72
|
+
$btn-padding-y-sm: 0.5rem; // 8px
|
|
73
|
+
$btn-padding-x-sm: 1rem; // 16px
|
|
74
|
+
|
|
75
|
+
$btn-padding-y-lg: 0.75rem; // 12px
|
|
76
|
+
$btn-padding-x-lg: 1.5rem; // 24px
|
|
77
|
+
|
|
78
|
+
// ----------------------------------------------------------------------------
|
|
79
|
+
// Forms
|
|
80
|
+
// ----------------------------------------------------------------------------
|
|
81
|
+
|
|
82
|
+
$input-padding-y: 0.625rem;
|
|
83
|
+
$input-padding-x: 1rem;
|
|
84
|
+
$input-border-radius: $border-radius;
|
|
85
|
+
$input-border-color: #d1d5db; // Gray-300
|
|
86
|
+
$input-focus-border-color: $primary;
|
|
87
|
+
$input-focus-box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1);
|
|
88
|
+
|
|
89
|
+
// ----------------------------------------------------------------------------
|
|
90
|
+
// Cards
|
|
91
|
+
// ----------------------------------------------------------------------------
|
|
92
|
+
|
|
93
|
+
$card-border-radius: $border-radius;
|
|
94
|
+
$card-border-color: $border-color;
|
|
95
|
+
$card-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1),
|
|
96
|
+
0 1px 2px 0 rgba(0, 0, 0, 0.06);
|
|
97
|
+
$card-cap-bg: transparent;
|
|
98
|
+
$card-spacer-y: 1.5rem; // 24px vertical padding
|
|
99
|
+
$card-spacer-x: 1.5rem; // 24px horizontal padding
|
|
100
|
+
|
|
101
|
+
// ----------------------------------------------------------------------------
|
|
102
|
+
// Tables
|
|
103
|
+
// ----------------------------------------------------------------------------
|
|
104
|
+
|
|
105
|
+
$table-cell-padding-y: 0.75rem;
|
|
106
|
+
$table-cell-padding-x: 1rem;
|
|
107
|
+
$table-striped-bg: #f9fafb; // Gray-50
|
|
108
|
+
$table-hover-bg: #f3f4f6; // Gray-100
|
|
109
|
+
|
|
110
|
+
// ----------------------------------------------------------------------------
|
|
111
|
+
// Modals
|
|
112
|
+
// ----------------------------------------------------------------------------
|
|
113
|
+
|
|
114
|
+
$modal-content-border-radius: $border-radius-lg;
|
|
115
|
+
$modal-content-box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1),
|
|
116
|
+
0 10px 10px -5px rgba(0, 0, 0, 0.04);
|
|
117
|
+
|
|
118
|
+
// ----------------------------------------------------------------------------
|
|
119
|
+
// Alerts
|
|
120
|
+
// ----------------------------------------------------------------------------
|
|
121
|
+
|
|
122
|
+
$alert-border-radius: $border-radius;
|
|
123
|
+
$alert-padding-y: 1rem;
|
|
124
|
+
$alert-padding-x: 1rem;
|
|
125
|
+
|
|
126
|
+
// ----------------------------------------------------------------------------
|
|
127
|
+
// Badges
|
|
128
|
+
// ----------------------------------------------------------------------------
|
|
129
|
+
|
|
130
|
+
$badge-border-radius: $border-radius-sm;
|
|
131
|
+
$badge-padding-y: 0.25rem;
|
|
132
|
+
$badge-padding-x: 0.625rem;
|
|
133
|
+
$badge-font-weight: 500;
|
|
134
|
+
|
|
135
|
+
// ----------------------------------------------------------------------------
|
|
136
|
+
// Dashboard
|
|
137
|
+
// ----------------------------------------------------------------------------
|
|
138
|
+
|
|
139
|
+
$dashboard-sidebar-width: 280px;
|
|
140
|
+
$dashboard-sidebar-collapsed-width: 80px;
|
|
141
|
+
$dashboard-navbar-height: 64px;
|
|
142
|
+
|
|
143
|
+
// ----------------------------------------------------------------------------
|
|
144
|
+
// Import Bootstrap
|
|
145
|
+
// ----------------------------------------------------------------------------
|
|
146
|
+
|
|
147
|
+
@import "bootstrap/scss/bootstrap";
|
|
148
|
+
|
|
149
|
+
// ----------------------------------------------------------------------------
|
|
150
|
+
// Import Bootstrap Vue Next
|
|
151
|
+
// ----------------------------------------------------------------------------
|
|
152
|
+
|
|
153
|
+
@import "bootstrap-vue-next/dist/bootstrap-vue-next.css";
|
|
154
|
+
|
|
155
|
+
// ----------------------------------------------------------------------------
|
|
156
|
+
// Dashboard Custom Styles
|
|
157
|
+
// ----------------------------------------------------------------------------
|
|
158
|
+
|
|
159
|
+
.dashboard-sidebar {
|
|
160
|
+
background-color: $dark;
|
|
161
|
+
width: $dashboard-sidebar-width;
|
|
162
|
+
|
|
163
|
+
&.sidebar-collapsed {
|
|
164
|
+
width: $dashboard-sidebar-collapsed-width;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.sidebar-header {
|
|
168
|
+
height: $dashboard-navbar-height;
|
|
169
|
+
border-bottom-color: $navbar-dark-toggler-border-color;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.nav-group-label {
|
|
173
|
+
color: $navbar-dark-color;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.nav-group-divider {
|
|
177
|
+
border-color: $navbar-dark-toggler-border-color;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.nav-link {
|
|
181
|
+
color: $navbar-dark-hover-color;
|
|
182
|
+
|
|
183
|
+
&:hover {
|
|
184
|
+
color: $navbar-dark-active-color;
|
|
185
|
+
background-color: rgba($white, 0.1);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
&.active {
|
|
189
|
+
color: $navbar-dark-active-color;
|
|
190
|
+
background-color: rgba($white, 0.15);
|
|
191
|
+
font-weight: 500;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
.dashboard-navbar {
|
|
197
|
+
height: $dashboard-navbar-height;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// ----------------------------------------------------------------------------
|
|
201
|
+
// Custom Utilities
|
|
202
|
+
// ----------------------------------------------------------------------------
|
|
203
|
+
|
|
204
|
+
// Add any custom utility classes here
|
|
205
|
+
.shadow-sm {
|
|
206
|
+
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !important;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.shadow {
|
|
210
|
+
box-shadow:
|
|
211
|
+
0 1px 3px 0 rgba(0, 0, 0, 0.1),
|
|
212
|
+
0 1px 2px 0 rgba(0, 0, 0, 0.06) !important;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.shadow-lg {
|
|
216
|
+
box-shadow:
|
|
217
|
+
0 10px 15px -3px rgba(0, 0, 0, 0.1),
|
|
218
|
+
0 4px 6px -2px rgba(0, 0, 0, 0.05) !important;
|
|
219
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @component
|
|
3
|
+
* Type-safe wrapper around Bootstrap Vue Next BAccordion component.
|
|
4
|
+
* Easily toggle content visibility with collapsible accordions.
|
|
5
|
+
*/
|
|
6
|
+
<script setup lang="ts">
|
|
7
|
+
import { BAccordion } from "bootstrap-vue-next";
|
|
8
|
+
|
|
9
|
+
defineOptions({
|
|
10
|
+
inheritAttrs: false,
|
|
11
|
+
});
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<template>
|
|
15
|
+
<BAccordion v-bind="$attrs">
|
|
16
|
+
<!-- Dynamically pass through all named slots with their props -->
|
|
17
|
+
<template v-for="(_, name) in $slots" :key="name" #[name]="slotProps">
|
|
18
|
+
<slot :name="name" v-bind="slotProps" />
|
|
19
|
+
</template>
|
|
20
|
+
</BAccordion>
|
|
21
|
+
</template>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { BAccordionItem } from "bootstrap-vue-next";
|
|
3
|
+
import { useSlots } from "vue";
|
|
4
|
+
|
|
5
|
+
const slots = useSlots();
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<template>
|
|
9
|
+
<BAccordionItem v-bind="$attrs">
|
|
10
|
+
<template v-for="(_, name) in slots" :key="name" #[name]="slotProps">
|
|
11
|
+
<slot :name="name" v-bind="slotProps" />
|
|
12
|
+
</template>
|
|
13
|
+
</BAccordionItem>
|
|
14
|
+
</template>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { BAlert } from "bootstrap-vue-next";
|
|
3
|
+
import { useSlots } from "vue";
|
|
4
|
+
|
|
5
|
+
const slots = useSlots();
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<template>
|
|
9
|
+
<BAlert v-bind="$attrs">
|
|
10
|
+
<template v-for="(_, name) in slots" :key="name" #[name]>
|
|
11
|
+
<slot :name="name" />
|
|
12
|
+
</template>
|
|
13
|
+
</BAlert>
|
|
14
|
+
</template>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @component
|
|
3
|
+
* Type-safe wrapper around Bootstrap Vue Next BAvatar component.
|
|
4
|
+
* Display user profiles as pictures, icons, or short text.
|
|
5
|
+
*/
|
|
6
|
+
<script setup lang="ts">
|
|
7
|
+
import { BAvatar } from "bootstrap-vue-next";
|
|
8
|
+
|
|
9
|
+
defineOptions({
|
|
10
|
+
inheritAttrs: false,
|
|
11
|
+
});
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<template>
|
|
15
|
+
<BAvatar v-bind="$attrs">
|
|
16
|
+
<!-- Dynamically pass through all named slots with their props -->
|
|
17
|
+
<template v-for="(_, name) in $slots" :key="name" #[name]="slotProps">
|
|
18
|
+
<slot :name="name" v-bind="slotProps" />
|
|
19
|
+
</template>
|
|
20
|
+
</BAvatar>
|
|
21
|
+
</template>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { BBadge } from "bootstrap-vue-next";
|
|
3
|
+
import { useSlots } from "vue";
|
|
4
|
+
|
|
5
|
+
const slots = useSlots();
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<template>
|
|
9
|
+
<BBadge v-bind="$attrs">
|
|
10
|
+
<template v-for="(_, name) in slots" :key="name" #[name]>
|
|
11
|
+
<slot :name="name" />
|
|
12
|
+
</template>
|
|
13
|
+
</BBadge>
|
|
14
|
+
</template>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @component
|
|
3
|
+
* Type-safe wrapper around Bootstrap Vue Next BBreadcrumb component.
|
|
4
|
+
* Indicate the current page's location within a navigational hierarchy.
|
|
5
|
+
*/
|
|
6
|
+
<script setup lang="ts">
|
|
7
|
+
import { BBreadcrumb } from "bootstrap-vue-next";
|
|
8
|
+
|
|
9
|
+
defineOptions({
|
|
10
|
+
inheritAttrs: false,
|
|
11
|
+
});
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<template>
|
|
15
|
+
<BBreadcrumb v-bind="$attrs">
|
|
16
|
+
<!-- Dynamically pass through all named slots with their props -->
|
|
17
|
+
<template v-for="(_, name) in $slots" :key="name" #[name]="slotProps">
|
|
18
|
+
<slot :name="name" v-bind="slotProps" />
|
|
19
|
+
</template>
|
|
20
|
+
</BBreadcrumb>
|
|
21
|
+
</template>
|