flowbite-angular 1.0.0-alpha.2 → 1.0.0-alpha.4
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 +376 -0
- package/accordion/README.md +3 -0
- package/{lib/components/accordion → accordion}/accordion-content.component.d.ts +1 -1
- package/{lib/components/accordion → accordion}/accordion-content.theme.d.ts +1 -1
- package/{lib/components/accordion → accordion}/accordion-content.theme.service.d.ts +1 -1
- package/{lib/components/accordion → accordion}/accordion-panel.component.d.ts +1 -1
- package/{lib/components/accordion → accordion}/accordion-panel.theme.d.ts +1 -1
- package/{lib/components/accordion → accordion}/accordion-panel.theme.service.d.ts +1 -1
- package/{lib/components/accordion → accordion}/accordion-title.component.d.ts +2 -2
- package/{lib/components/accordion → accordion}/accordion-title.theme.d.ts +1 -2
- package/{lib/components/accordion → accordion}/accordion-title.theme.service.d.ts +1 -1
- package/{lib/components/accordion → accordion}/accordion.component.d.ts +1 -1
- package/{lib/components/accordion → accordion}/accordion.theme.d.ts +1 -4
- package/{lib/components/accordion → accordion}/accordion.theme.service.d.ts +1 -1
- package/alert/README.md +3 -0
- package/{lib/components/alert → alert}/alert.component.d.ts +5 -5
- package/{lib/components/alert → alert}/alert.theme.d.ts +1 -4
- package/{lib/components/alert → alert}/alert.theme.service.d.ts +1 -1
- package/badge/README.md +3 -0
- package/{lib/components/badge → badge}/badge.component.d.ts +4 -4
- package/{lib/components/badge → badge}/badge.theme.d.ts +1 -6
- package/{lib/components/badge → badge}/badge.theme.service.d.ts +1 -1
- package/{lib/components/base-component.directive.d.ts → base-component.directive.d.ts} +2 -2
- package/breadcrumb/README.md +3 -0
- package/{lib/components/breadcrumb → breadcrumb}/breadcrumb-item.component.d.ts +4 -4
- package/{lib/components/breadcrumb → breadcrumb}/breadcrumb-item.theme.d.ts +1 -2
- package/{lib/components/breadcrumb → breadcrumb}/breadcrumb-item.theme.service.d.ts +1 -1
- package/{lib/components/breadcrumb → breadcrumb}/breadcrumb.component.d.ts +1 -1
- package/{lib/components/breadcrumb → breadcrumb}/breadcrumb.theme.d.ts +1 -1
- package/{lib/components/breadcrumb → breadcrumb}/breadcrumb.theme.service.d.ts +1 -1
- package/button/README.md +3 -0
- package/{lib/components/button → button}/button.component.d.ts +2 -2
- package/{lib/components/button → button}/button.theme.d.ts +1 -8
- package/{lib/components/button → button}/button.theme.service.d.ts +1 -1
- package/core/README.md +3 -0
- package/core/index.d.ts +1 -0
- package/dark-theme-toggle/README.md +3 -0
- package/{lib/components/dark-theme-toggle → dark-theme-toggle}/dark-theme-toggle.component.d.ts +2 -2
- package/{lib/components/dark-theme-toggle → dark-theme-toggle}/dark-theme-toggle.theme.d.ts +1 -1
- package/{lib/components/dark-theme-toggle → dark-theme-toggle}/dark-theme-toggle.theme.service.d.ts +1 -1
- package/{lib/components/dark-theme-toggle → dark-theme-toggle}/index.d.ts +1 -2
- package/dropdown/README.md +3 -0
- package/{lib/components/dropdown → dropdown}/dropdown-divider.component.d.ts +1 -1
- package/{lib/components/dropdown → dropdown}/dropdown-divider.theme.d.ts +1 -1
- package/{lib/components/dropdown → dropdown}/dropdown-divider.theme.service.d.ts +1 -1
- package/{lib/components/dropdown → dropdown}/dropdown-header.component.d.ts +1 -1
- package/{lib/components/dropdown → dropdown}/dropdown-header.theme.d.ts +1 -1
- package/{lib/components/dropdown → dropdown}/dropdown-header.theme.service.d.ts +1 -1
- package/{lib/components/dropdown → dropdown}/dropdown-item.component.d.ts +1 -1
- package/{lib/components/dropdown → dropdown}/dropdown-item.theme.d.ts +1 -1
- package/{lib/components/dropdown → dropdown}/dropdown-item.theme.service.d.ts +1 -1
- package/{lib/components/dropdown → dropdown}/dropdown.component.d.ts +2 -2
- package/{lib/components/dropdown → dropdown}/dropdown.theme.d.ts +1 -4
- package/{lib/components/dropdown → dropdown}/dropdown.theme.service.d.ts +1 -1
- package/esm2022/accordion/accordion-content.component.mjs +47 -0
- package/esm2022/accordion/accordion-content.theme.mjs +19 -0
- package/esm2022/accordion/accordion-content.theme.service.mjs +17 -0
- package/esm2022/accordion/accordion-panel.component.mjs +59 -0
- package/esm2022/accordion/accordion-panel.theme.mjs +7 -0
- package/esm2022/accordion/accordion-panel.theme.service.mjs +17 -0
- package/esm2022/accordion/accordion-title.component.mjs +71 -0
- package/esm2022/accordion/accordion-title.theme.mjs +26 -0
- package/esm2022/accordion/accordion-title.theme.service.mjs +18 -0
- package/esm2022/accordion/accordion.component.mjs +50 -0
- package/esm2022/accordion/accordion.theme.mjs +19 -0
- package/esm2022/accordion/accordion.theme.service.mjs +17 -0
- package/esm2022/accordion/flowbite-angular-accordion.mjs +5 -0
- package/esm2022/accordion/index.mjs +13 -0
- package/esm2022/alert/alert.component.mjs +96 -0
- package/esm2022/alert/alert.theme.mjs +34 -0
- package/esm2022/alert/alert.theme.service.mjs +18 -0
- package/esm2022/alert/flowbite-angular-alert.mjs +5 -0
- package/esm2022/alert/index.mjs +4 -0
- package/esm2022/badge/badge.component.mjs +48 -0
- package/esm2022/badge/badge.theme.mjs +34 -0
- package/esm2022/badge/badge.theme.service.mjs +19 -0
- package/esm2022/badge/flowbite-angular-badge.mjs +5 -0
- package/esm2022/badge/index.mjs +4 -0
- package/esm2022/base-component.directive.mjs +34 -0
- package/esm2022/breadcrumb/breadcrumb-item.component.mjs +59 -0
- package/esm2022/breadcrumb/breadcrumb-item.theme.mjs +18 -0
- package/esm2022/breadcrumb/breadcrumb-item.theme.service.mjs +18 -0
- package/esm2022/breadcrumb/breadcrumb.component.mjs +48 -0
- package/esm2022/breadcrumb/breadcrumb.theme.mjs +7 -0
- package/esm2022/breadcrumb/breadcrumb.theme.service.mjs +17 -0
- package/esm2022/breadcrumb/flowbite-angular-breadcrumb.mjs +5 -0
- package/esm2022/breadcrumb/index.mjs +7 -0
- package/esm2022/{lib/components/button → button}/button.component.mjs +6 -5
- package/esm2022/button/button.theme.mjs +113 -0
- package/esm2022/button/button.theme.service.mjs +24 -0
- package/esm2022/button/flowbite-angular-button.mjs +5 -0
- package/esm2022/button/index.mjs +4 -0
- package/esm2022/core/flowbite-angular-core.mjs +5 -0
- package/esm2022/core/flowbite.theme.init.mjs +281 -0
- package/esm2022/core/index.mjs +2 -0
- package/esm2022/{lib/components/dark-theme-toggle → dark-theme-toggle}/dark-theme-toggle.component.mjs +8 -6
- package/esm2022/dark-theme-toggle/dark-theme-toggle.theme.mjs +7 -0
- package/esm2022/dark-theme-toggle/dark-theme-toggle.theme.service.mjs +17 -0
- package/esm2022/dark-theme-toggle/flowbite-angular-dark-theme-toggle.mjs +5 -0
- package/esm2022/dark-theme-toggle/index.mjs +4 -0
- package/esm2022/dropdown/dropdown-divider.component.mjs +36 -0
- package/esm2022/dropdown/dropdown-divider.theme.mjs +7 -0
- package/esm2022/dropdown/dropdown-divider.theme.service.mjs +17 -0
- package/esm2022/dropdown/dropdown-header.component.mjs +46 -0
- package/esm2022/dropdown/dropdown-header.theme.mjs +10 -0
- package/esm2022/dropdown/dropdown-header.theme.service.mjs +18 -0
- package/esm2022/dropdown/dropdown-item.component.mjs +36 -0
- package/esm2022/dropdown/dropdown-item.theme.mjs +6 -0
- package/esm2022/dropdown/dropdown-item.theme.service.mjs +17 -0
- package/esm2022/dropdown/dropdown.component.mjs +150 -0
- package/esm2022/dropdown/dropdown.theme.mjs +32 -0
- package/esm2022/dropdown/dropdown.theme.service.mjs +22 -0
- package/esm2022/dropdown/flowbite-angular-dropdown.mjs +5 -0
- package/esm2022/dropdown/index.mjs +13 -0
- package/esm2022/flowbite-angular.mjs +2 -2
- package/esm2022/flowbite.theme.service.mjs +16 -0
- package/esm2022/icon/flowbite-angular-icon.mjs +5 -0
- package/esm2022/icon/icon-registry.mjs +159 -0
- package/esm2022/icon/icon.component.mjs +72 -0
- package/esm2022/icon/index.mjs +4 -0
- package/esm2022/icon/trusted-types.mjs +21 -0
- package/esm2022/index.mjs +4 -0
- package/esm2022/indicator/flowbite-angular-indicator.mjs +5 -0
- package/esm2022/indicator/index.mjs +4 -0
- package/esm2022/indicator/indicators.component.mjs +55 -0
- package/esm2022/indicator/indicators.theme.mjs +68 -0
- package/esm2022/indicator/indicators.theme.service.mjs +19 -0
- package/esm2022/modal/flowbite-angular-modal.mjs +5 -0
- package/esm2022/modal/index.mjs +13 -0
- package/esm2022/modal/modal-body.component.mjs +36 -0
- package/esm2022/modal/modal-body.theme.mjs +7 -0
- package/esm2022/modal/modal-body.theme.service.mjs +17 -0
- package/esm2022/modal/modal-footer.component.mjs +36 -0
- package/esm2022/modal/modal-footer.theme.mjs +7 -0
- package/esm2022/modal/modal-footer.theme.service.mjs +17 -0
- package/esm2022/modal/modal-header.component.mjs +68 -0
- package/esm2022/modal/modal-header.theme.mjs +13 -0
- package/esm2022/modal/modal-header.theme.service.mjs +19 -0
- package/esm2022/modal/modal.component.mjs +143 -0
- package/esm2022/modal/modal.theme.mjs +33 -0
- package/esm2022/modal/modal.theme.service.mjs +20 -0
- package/esm2022/navbar/flowbite-angular-navbar.mjs +5 -0
- package/esm2022/navbar/index.mjs +19 -0
- package/esm2022/navbar/navbar-brand.component.mjs +36 -0
- package/esm2022/navbar/navbar-brand.theme.mjs +7 -0
- package/esm2022/navbar/navbar-brand.theme.service.mjs +17 -0
- package/esm2022/navbar/navbar-content.component.mjs +46 -0
- package/esm2022/navbar/navbar-content.theme.mjs +14 -0
- package/esm2022/navbar/navbar-content.theme.service.mjs +18 -0
- package/esm2022/navbar/navbar-icon-button.component.mjs +44 -0
- package/esm2022/navbar/navbar-icon-button.theme.mjs +15 -0
- package/esm2022/navbar/navbar-icon-button.theme.service.mjs +17 -0
- package/esm2022/navbar/navbar-item.component.mjs +51 -0
- package/esm2022/{lib/components/navbar → navbar}/navbar-item.theme.mjs +2 -2
- package/esm2022/navbar/navbar-item.theme.service.mjs +17 -0
- package/esm2022/navbar/navbar-toggle.component.mjs +52 -0
- package/esm2022/navbar/navbar-toggle.theme.mjs +7 -0
- package/esm2022/navbar/navbar-toggle.theme.service.mjs +17 -0
- package/esm2022/navbar/navbar.component.mjs +63 -0
- package/esm2022/navbar/navbar.theme.mjs +23 -0
- package/esm2022/navbar/navbar.theme.service.mjs +17 -0
- package/esm2022/router-link/flowbite-angular-router-link.mjs +5 -0
- package/esm2022/router-link/flowbite-router-link.directive.mjs +54 -0
- package/esm2022/router-link/index.mjs +2 -0
- package/esm2022/router-link-active/flowbite-angular-router-link-active.mjs +5 -0
- package/esm2022/router-link-active/flowbite-router-link-active.directive.mjs +49 -0
- package/esm2022/router-link-active/index.mjs +2 -0
- package/esm2022/sanitize-html/flowbite-angular-sanitize-html.mjs +5 -0
- package/esm2022/sanitize-html/index.mjs +2 -0
- package/esm2022/sanitize-html/sanitize-html.pipe.mjs +32 -0
- package/esm2022/scroll-top/flowbite-angular-scroll-top.mjs +5 -0
- package/esm2022/scroll-top/index.mjs +4 -0
- package/esm2022/scroll-top/scroll-top.component.mjs +52 -0
- package/esm2022/scroll-top/scroll-top.theme.mjs +27 -0
- package/esm2022/scroll-top/scroll-top.theme.service.mjs +17 -0
- package/esm2022/sidebar/flowbite-angular-sidebar.mjs +5 -0
- package/esm2022/sidebar/index.mjs +19 -0
- package/esm2022/sidebar/sidebar-item-group.component.mjs +83 -0
- package/esm2022/sidebar/sidebar-item-group.theme.mjs +18 -0
- package/esm2022/sidebar/sidebar-item-group.theme.service.mjs +18 -0
- package/esm2022/sidebar/sidebar-item.component.mjs +79 -0
- package/esm2022/sidebar/sidebar-item.theme.mjs +18 -0
- package/esm2022/sidebar/sidebar-item.theme.service.mjs +18 -0
- package/esm2022/sidebar/sidebar-menu.component.mjs +50 -0
- package/esm2022/sidebar/sidebar-menu.theme.mjs +24 -0
- package/esm2022/sidebar/sidebar-menu.theme.service.mjs +17 -0
- package/esm2022/sidebar/sidebar-page-content.component.mjs +37 -0
- package/esm2022/sidebar/sidebar-page-content.theme.mjs +12 -0
- package/esm2022/sidebar/sidebar-page-content.theme.service.mjs +17 -0
- package/esm2022/sidebar/sidebar-toggle.component.mjs +55 -0
- package/esm2022/sidebar/sidebar-toggle.theme.mjs +18 -0
- package/esm2022/sidebar/sidebar-toggle.theme.service.mjs +17 -0
- package/esm2022/sidebar/sidebar.component.mjs +62 -0
- package/esm2022/sidebar/sidebar.theme.mjs +11 -0
- package/esm2022/sidebar/sidebar.theme.service.mjs +17 -0
- package/esm2022/type-definitions/colors/flowbite.colors.mjs +2 -0
- package/esm2022/type-definitions/colors/flowbite.gradient-colors.mjs +2 -0
- package/esm2022/type-definitions/colors/flowbite.gradient-duo-tone-colors.mjs +2 -0
- package/esm2022/type-definitions/colors/index.mjs +2 -0
- package/esm2022/type-definitions/flowbite.boolean.mjs +10 -0
- package/esm2022/type-definitions/flowbite.class.mjs +2 -0
- package/esm2022/type-definitions/flowbite.combination.mjs +5 -0
- package/esm2022/type-definitions/flowbite.content-positions.mjs +2 -0
- package/esm2022/type-definitions/flowbite.deep-partial.mjs +2 -0
- package/esm2022/type-definitions/flowbite.heading-levels.mjs +2 -0
- package/esm2022/type-definitions/flowbite.positions.mjs +2 -0
- package/esm2022/type-definitions/flowbite.router-link-parameter.mjs +2 -0
- package/esm2022/type-definitions/flowbite.sizes.mjs +2 -0
- package/esm2022/type-definitions/flowbite.themes.mjs +2 -0
- package/esm2022/type-definitions/index.mjs +3 -0
- package/esm2022/utils/flowbite-angular-utils.mjs +5 -0
- package/esm2022/utils/icon.list.mjs +39 -0
- package/esm2022/utils/id.generator.mjs +81 -0
- package/esm2022/utils/index.mjs +9 -0
- package/esm2022/utils/theme/clone-deep.mjs +18 -0
- package/esm2022/utils/theme/create-class.mjs +10 -0
- package/esm2022/utils/theme/create-theme.mjs +10 -0
- package/esm2022/utils/theme/is-object.mjs +10 -0
- package/esm2022/utils/theme/merge-theme.mjs +29 -0
- package/esm2022/utils/theme/to-string.mjs +10 -0
- package/fesm2022/flowbite-angular-accordion.mjs +338 -0
- package/fesm2022/flowbite-angular-accordion.mjs.map +1 -0
- package/fesm2022/flowbite-angular-alert.mjs +151 -0
- package/fesm2022/flowbite-angular-alert.mjs.map +1 -0
- package/fesm2022/flowbite-angular-badge.mjs +105 -0
- package/fesm2022/flowbite-angular-badge.mjs.map +1 -0
- package/fesm2022/flowbite-angular-breadcrumb.mjs +159 -0
- package/fesm2022/flowbite-angular-breadcrumb.mjs.map +1 -0
- package/fesm2022/flowbite-angular-button.mjs +223 -0
- package/fesm2022/flowbite-angular-button.mjs.map +1 -0
- package/fesm2022/flowbite-angular-core.mjs +288 -0
- package/fesm2022/flowbite-angular-core.mjs.map +1 -0
- package/fesm2022/flowbite-angular-dark-theme-toggle.mjs +105 -0
- package/fesm2022/flowbite-angular-dark-theme-toggle.mjs.map +1 -0
- package/fesm2022/flowbite-angular-dropdown.mjs +368 -0
- package/fesm2022/flowbite-angular-dropdown.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon.mjs +254 -0
- package/fesm2022/flowbite-angular-icon.mjs.map +1 -0
- package/fesm2022/flowbite-angular-indicator.mjs +146 -0
- package/fesm2022/flowbite-angular-indicator.mjs.map +1 -0
- package/fesm2022/flowbite-angular-modal.mjs +386 -0
- package/fesm2022/flowbite-angular-modal.mjs.map +1 -0
- package/fesm2022/flowbite-angular-navbar.mjs +422 -0
- package/fesm2022/flowbite-angular-navbar.mjs.map +1 -0
- package/fesm2022/flowbite-angular-router-link-active.mjs +56 -0
- package/fesm2022/flowbite-angular-router-link-active.mjs.map +1 -0
- package/fesm2022/flowbite-angular-router-link.mjs +61 -0
- package/fesm2022/flowbite-angular-router-link.mjs.map +1 -0
- package/fesm2022/flowbite-angular-sanitize-html.mjs +39 -0
- package/fesm2022/flowbite-angular-sanitize-html.mjs.map +1 -0
- package/fesm2022/flowbite-angular-scroll-top.mjs +99 -0
- package/fesm2022/flowbite-angular-scroll-top.mjs.map +1 -0
- package/fesm2022/flowbite-angular-sidebar.mjs +518 -0
- package/fesm2022/flowbite-angular-sidebar.mjs.map +1 -0
- package/fesm2022/flowbite-angular-utils.mjs +210 -0
- package/fesm2022/flowbite-angular-utils.mjs.map +1 -0
- package/fesm2022/flowbite-angular.mjs +13 -4176
- package/fesm2022/flowbite-angular.mjs.map +1 -1
- package/{lib/services/flowbite.theme.service.d.ts → flowbite.theme.service.d.ts} +1 -1
- package/icon/README.md +3 -0
- package/{lib/components/icon → icon}/icon.component.d.ts +2 -2
- package/index.d.ts +3 -5
- package/indicator/README.md +3 -0
- package/{lib/components/indicators → indicator}/indicators.component.d.ts +14 -14
- package/{lib/components/indicators → indicator}/indicators.theme.d.ts +1 -6
- package/{lib/components/indicators → indicator}/indicators.theme.service.d.ts +1 -1
- package/modal/README.md +3 -0
- package/{lib/components/modal → modal}/modal-body.component.d.ts +1 -1
- package/{lib/components/modal → modal}/modal-body.theme.d.ts +1 -1
- package/{lib/components/modal → modal}/modal-body.theme.service.d.ts +1 -1
- package/{lib/components/modal → modal}/modal-footer.component.d.ts +1 -1
- package/{lib/components/modal → modal}/modal-footer.theme.d.ts +1 -1
- package/{lib/components/modal → modal}/modal-footer.theme.service.d.ts +1 -1
- package/{lib/components/modal → modal}/modal-header.component.d.ts +2 -2
- package/{lib/components/modal → modal}/modal-header.theme.d.ts +1 -1
- package/{lib/components/modal → modal}/modal-header.theme.service.d.ts +1 -1
- package/{lib/components/modal → modal}/modal.component.d.ts +6 -6
- package/{lib/components/modal → modal}/modal.theme.d.ts +1 -5
- package/{lib/components/modal → modal}/modal.theme.service.d.ts +1 -1
- package/navbar/README.md +3 -0
- package/{lib/components/navbar → navbar}/navbar-brand.component.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-brand.theme.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-brand.theme.service.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-content.component.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-content.theme.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-content.theme.service.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-icon-button.component.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-icon-button.theme.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-icon-button.theme.service.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-item.component.d.ts +3 -3
- package/{lib/components/navbar → navbar}/navbar-item.theme.d.ts +1 -2
- package/{lib/components/navbar → navbar}/navbar-item.theme.service.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-toggle.component.d.ts +2 -2
- package/{lib/components/navbar → navbar}/navbar-toggle.theme.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-toggle.theme.service.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar.component.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar.theme.d.ts +1 -4
- package/{lib/components/navbar → navbar}/navbar.theme.service.d.ts +1 -1
- package/package.json +110 -2
- package/router-link/README.md +3 -0
- package/router-link/index.d.ts +1 -0
- package/router-link-active/README.md +3 -0
- package/{lib/directives → router-link-active}/index.d.ts +0 -1
- package/sanitize-html/README.md +3 -0
- package/scroll-top/README.md +3 -0
- package/{lib/components/scroll-top → scroll-top}/scroll-top.component.d.ts +7 -7
- package/{lib/components/scroll-top → scroll-top}/scroll-top.theme.d.ts +1 -1
- package/{lib/components/scroll-top → scroll-top}/scroll-top.theme.service.d.ts +1 -1
- package/sidebar/README.md +3 -0
- package/{lib/components/sidebar → sidebar}/sidebar-item-group.component.d.ts +3 -3
- package/{lib/components/sidebar → sidebar}/sidebar-item-group.theme.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar-item-group.theme.service.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar-item.component.d.ts +4 -4
- package/{lib/components/sidebar → sidebar}/sidebar-item.theme.d.ts +1 -2
- package/{lib/components/sidebar → sidebar}/sidebar-item.theme.service.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar-menu.component.d.ts +2 -2
- package/{lib/components/sidebar → sidebar}/sidebar-menu.theme.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar-menu.theme.service.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar-page-content.component.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar-page-content.theme.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar-page-content.theme.service.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar-toggle.component.d.ts +3 -3
- package/{lib/components/sidebar → sidebar}/sidebar-toggle.theme.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar-toggle.theme.service.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar.component.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar.theme.d.ts +1 -4
- package/{lib/components/sidebar → sidebar}/sidebar.theme.service.d.ts +1 -1
- package/tailwind.config.js +306 -0
- package/{lib/utils/boolean.util.d.ts → type-definitions/flowbite.boolean.d.ts} +7 -1
- package/{lib/common/type-definitions → type-definitions}/index.d.ts +1 -0
- package/utils/README.md +3 -0
- package/{lib/utils → utils}/index.d.ts +1 -1
- package/esm2022/lib/common/flowbite.theme.init.mjs +0 -318
- package/esm2022/lib/common/index.mjs +0 -3
- package/esm2022/lib/common/type-definitions/colors/flowbite.colors.mjs +0 -2
- package/esm2022/lib/common/type-definitions/colors/flowbite.gradient-colors.mjs +0 -2
- package/esm2022/lib/common/type-definitions/colors/flowbite.gradient-duo-tone-colors.mjs +0 -2
- package/esm2022/lib/common/type-definitions/colors/index.mjs +0 -2
- package/esm2022/lib/common/type-definitions/flowbite.boolean.mjs +0 -2
- package/esm2022/lib/common/type-definitions/flowbite.class.mjs +0 -2
- package/esm2022/lib/common/type-definitions/flowbite.combination.mjs +0 -5
- package/esm2022/lib/common/type-definitions/flowbite.content-positions.mjs +0 -2
- package/esm2022/lib/common/type-definitions/flowbite.deep-partial.mjs +0 -2
- package/esm2022/lib/common/type-definitions/flowbite.heading-levels.mjs +0 -2
- package/esm2022/lib/common/type-definitions/flowbite.positions.mjs +0 -2
- package/esm2022/lib/common/type-definitions/flowbite.router-link-parameter.mjs +0 -2
- package/esm2022/lib/common/type-definitions/flowbite.sizes.mjs +0 -2
- package/esm2022/lib/common/type-definitions/flowbite.themes.mjs +0 -2
- package/esm2022/lib/common/type-definitions/index.mjs +0 -2
- package/esm2022/lib/components/accordion/accordion-content.component.mjs +0 -46
- package/esm2022/lib/components/accordion/accordion-content.theme.mjs +0 -19
- package/esm2022/lib/components/accordion/accordion-content.theme.service.mjs +0 -17
- package/esm2022/lib/components/accordion/accordion-panel.component.mjs +0 -57
- package/esm2022/lib/components/accordion/accordion-panel.theme.mjs +0 -7
- package/esm2022/lib/components/accordion/accordion-panel.theme.service.mjs +0 -17
- package/esm2022/lib/components/accordion/accordion-title.component.mjs +0 -70
- package/esm2022/lib/components/accordion/accordion-title.theme.mjs +0 -26
- package/esm2022/lib/components/accordion/accordion-title.theme.service.mjs +0 -18
- package/esm2022/lib/components/accordion/accordion.component.mjs +0 -49
- package/esm2022/lib/components/accordion/accordion.theme.mjs +0 -19
- package/esm2022/lib/components/accordion/accordion.theme.service.mjs +0 -17
- package/esm2022/lib/components/accordion/index.mjs +0 -13
- package/esm2022/lib/components/alert/alert.component.mjs +0 -95
- package/esm2022/lib/components/alert/alert.theme.mjs +0 -34
- package/esm2022/lib/components/alert/alert.theme.service.mjs +0 -18
- package/esm2022/lib/components/alert/index.mjs +0 -4
- package/esm2022/lib/components/badge/badge.component.mjs +0 -47
- package/esm2022/lib/components/badge/badge.theme.mjs +0 -34
- package/esm2022/lib/components/badge/badge.theme.service.mjs +0 -19
- package/esm2022/lib/components/badge/index.mjs +0 -4
- package/esm2022/lib/components/base-component.directive.mjs +0 -34
- package/esm2022/lib/components/breadcrumb/breadcrumb-item.component.mjs +0 -57
- package/esm2022/lib/components/breadcrumb/breadcrumb-item.theme.mjs +0 -18
- package/esm2022/lib/components/breadcrumb/breadcrumb-item.theme.service.mjs +0 -18
- package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +0 -46
- package/esm2022/lib/components/breadcrumb/breadcrumb.theme.mjs +0 -7
- package/esm2022/lib/components/breadcrumb/breadcrumb.theme.service.mjs +0 -17
- package/esm2022/lib/components/breadcrumb/index.mjs +0 -7
- package/esm2022/lib/components/button/button.theme.mjs +0 -113
- package/esm2022/lib/components/button/button.theme.service.mjs +0 -24
- package/esm2022/lib/components/button/index.mjs +0 -4
- package/esm2022/lib/components/dark-theme-toggle/dark-theme-toggle.theme.mjs +0 -7
- package/esm2022/lib/components/dark-theme-toggle/dark-theme-toggle.theme.service.mjs +0 -17
- package/esm2022/lib/components/dark-theme-toggle/index.mjs +0 -4
- package/esm2022/lib/components/dropdown/dropdown-divider.component.mjs +0 -34
- package/esm2022/lib/components/dropdown/dropdown-divider.theme.mjs +0 -7
- package/esm2022/lib/components/dropdown/dropdown-divider.theme.service.mjs +0 -17
- package/esm2022/lib/components/dropdown/dropdown-header.component.mjs +0 -44
- package/esm2022/lib/components/dropdown/dropdown-header.theme.mjs +0 -10
- package/esm2022/lib/components/dropdown/dropdown-header.theme.service.mjs +0 -18
- package/esm2022/lib/components/dropdown/dropdown-item.component.mjs +0 -34
- package/esm2022/lib/components/dropdown/dropdown-item.theme.mjs +0 -6
- package/esm2022/lib/components/dropdown/dropdown-item.theme.service.mjs +0 -17
- package/esm2022/lib/components/dropdown/dropdown.component.mjs +0 -149
- package/esm2022/lib/components/dropdown/dropdown.theme.mjs +0 -32
- package/esm2022/lib/components/dropdown/dropdown.theme.service.mjs +0 -22
- package/esm2022/lib/components/dropdown/index.mjs +0 -13
- package/esm2022/lib/components/form-field/directives/addon.directive.mjs +0 -32
- package/esm2022/lib/components/form-field/directives/addon.directive.theme.mjs +0 -8
- package/esm2022/lib/components/form-field/directives/addon.directive.theme.service.mjs +0 -17
- package/esm2022/lib/components/form-field/directives/base-input.directive.mjs +0 -26
- package/esm2022/lib/components/form-field/directives/helper.directive.mjs +0 -34
- package/esm2022/lib/components/form-field/directives/helper.directive.theme.mjs +0 -12
- package/esm2022/lib/components/form-field/directives/helper.directive.theme.service.mjs +0 -17
- package/esm2022/lib/components/form-field/directives/icon.directive.mjs +0 -32
- package/esm2022/lib/components/form-field/directives/icon.directive.theme.mjs +0 -8
- package/esm2022/lib/components/form-field/directives/icon.directive.theme.service.mjs +0 -17
- package/esm2022/lib/components/form-field/directives/index.mjs +0 -17
- package/esm2022/lib/components/form-field/directives/input.directive.mjs +0 -41
- package/esm2022/lib/components/form-field/directives/input.directive.theme.mjs +0 -79
- package/esm2022/lib/components/form-field/directives/input.directive.theme.service.mjs +0 -32
- package/esm2022/lib/components/form-field/directives/label.directive.mjs +0 -41
- package/esm2022/lib/components/form-field/directives/label.directive.theme.mjs +0 -51
- package/esm2022/lib/components/form-field/directives/label.directive.theme.service.mjs +0 -23
- package/esm2022/lib/components/form-field/form-field.component.mjs +0 -40
- package/esm2022/lib/components/form-field/form-field.theme.mjs +0 -8
- package/esm2022/lib/components/form-field/form-field.theme.service.mjs +0 -17
- package/esm2022/lib/components/form-field/index.mjs +0 -5
- package/esm2022/lib/components/icon/icon-registry.mjs +0 -159
- package/esm2022/lib/components/icon/icon.component.mjs +0 -67
- package/esm2022/lib/components/icon/index.mjs +0 -4
- package/esm2022/lib/components/icon/trusted-types.mjs +0 -21
- package/esm2022/lib/components/index.mjs +0 -16
- package/esm2022/lib/components/indicators/index.mjs +0 -4
- package/esm2022/lib/components/indicators/indicators.component.mjs +0 -54
- package/esm2022/lib/components/indicators/indicators.theme.mjs +0 -68
- package/esm2022/lib/components/indicators/indicators.theme.service.mjs +0 -19
- package/esm2022/lib/components/modal/index.mjs +0 -13
- package/esm2022/lib/components/modal/modal-body.component.mjs +0 -34
- package/esm2022/lib/components/modal/modal-body.theme.mjs +0 -7
- package/esm2022/lib/components/modal/modal-body.theme.service.mjs +0 -17
- package/esm2022/lib/components/modal/modal-footer.component.mjs +0 -34
- package/esm2022/lib/components/modal/modal-footer.theme.mjs +0 -7
- package/esm2022/lib/components/modal/modal-footer.theme.service.mjs +0 -17
- package/esm2022/lib/components/modal/modal-header.component.mjs +0 -66
- package/esm2022/lib/components/modal/modal-header.theme.mjs +0 -13
- package/esm2022/lib/components/modal/modal-header.theme.service.mjs +0 -19
- package/esm2022/lib/components/modal/modal.component.mjs +0 -142
- package/esm2022/lib/components/modal/modal.theme.mjs +0 -33
- package/esm2022/lib/components/modal/modal.theme.service.mjs +0 -20
- package/esm2022/lib/components/navbar/index.mjs +0 -19
- package/esm2022/lib/components/navbar/navbar-brand.component.mjs +0 -34
- package/esm2022/lib/components/navbar/navbar-brand.theme.mjs +0 -7
- package/esm2022/lib/components/navbar/navbar-brand.theme.service.mjs +0 -17
- package/esm2022/lib/components/navbar/navbar-content.component.mjs +0 -45
- package/esm2022/lib/components/navbar/navbar-content.theme.mjs +0 -14
- package/esm2022/lib/components/navbar/navbar-content.theme.service.mjs +0 -18
- package/esm2022/lib/components/navbar/navbar-icon-button.component.mjs +0 -42
- package/esm2022/lib/components/navbar/navbar-icon-button.theme.mjs +0 -15
- package/esm2022/lib/components/navbar/navbar-icon-button.theme.service.mjs +0 -17
- package/esm2022/lib/components/navbar/navbar-item.component.mjs +0 -49
- package/esm2022/lib/components/navbar/navbar-item.theme.service.mjs +0 -17
- package/esm2022/lib/components/navbar/navbar-toggle.component.mjs +0 -50
- package/esm2022/lib/components/navbar/navbar-toggle.theme.mjs +0 -7
- package/esm2022/lib/components/navbar/navbar-toggle.theme.service.mjs +0 -17
- package/esm2022/lib/components/navbar/navbar.component.mjs +0 -62
- package/esm2022/lib/components/navbar/navbar.theme.mjs +0 -23
- package/esm2022/lib/components/navbar/navbar.theme.service.mjs +0 -17
- package/esm2022/lib/components/scroll-top/index.mjs +0 -4
- package/esm2022/lib/components/scroll-top/scroll-top.component.mjs +0 -50
- package/esm2022/lib/components/scroll-top/scroll-top.theme.mjs +0 -27
- package/esm2022/lib/components/scroll-top/scroll-top.theme.service.mjs +0 -17
- package/esm2022/lib/components/sidebar/index.mjs +0 -19
- package/esm2022/lib/components/sidebar/sidebar-item-group.component.mjs +0 -81
- package/esm2022/lib/components/sidebar/sidebar-item-group.theme.mjs +0 -18
- package/esm2022/lib/components/sidebar/sidebar-item-group.theme.service.mjs +0 -18
- package/esm2022/lib/components/sidebar/sidebar-item.component.mjs +0 -77
- package/esm2022/lib/components/sidebar/sidebar-item.theme.mjs +0 -18
- package/esm2022/lib/components/sidebar/sidebar-item.theme.service.mjs +0 -18
- package/esm2022/lib/components/sidebar/sidebar-menu.component.mjs +0 -49
- package/esm2022/lib/components/sidebar/sidebar-menu.theme.mjs +0 -24
- package/esm2022/lib/components/sidebar/sidebar-menu.theme.service.mjs +0 -17
- package/esm2022/lib/components/sidebar/sidebar-page-content.component.mjs +0 -36
- package/esm2022/lib/components/sidebar/sidebar-page-content.theme.mjs +0 -12
- package/esm2022/lib/components/sidebar/sidebar-page-content.theme.service.mjs +0 -17
- package/esm2022/lib/components/sidebar/sidebar-toggle.component.mjs +0 -53
- package/esm2022/lib/components/sidebar/sidebar-toggle.theme.mjs +0 -18
- package/esm2022/lib/components/sidebar/sidebar-toggle.theme.service.mjs +0 -17
- package/esm2022/lib/components/sidebar/sidebar.component.mjs +0 -61
- package/esm2022/lib/components/sidebar/sidebar.theme.mjs +0 -11
- package/esm2022/lib/components/sidebar/sidebar.theme.service.mjs +0 -17
- package/esm2022/lib/directives/flowbite-router-link-active.directive.mjs +0 -51
- package/esm2022/lib/directives/flowbite-router-link.directive.mjs +0 -44
- package/esm2022/lib/directives/index.mjs +0 -3
- package/esm2022/lib/pipes/index.mjs +0 -2
- package/esm2022/lib/pipes/sanitize-html/index.mjs +0 -2
- package/esm2022/lib/pipes/sanitize-html/sanitize-html.pipe.mjs +0 -32
- package/esm2022/lib/services/flowbite.theme.service.mjs +0 -16
- package/esm2022/lib/services/index.mjs +0 -2
- package/esm2022/lib/utils/boolean.util.mjs +0 -10
- package/esm2022/lib/utils/directives/index.mjs +0 -3
- package/esm2022/lib/utils/directives/inputs/index.mjs +0 -3
- package/esm2022/lib/utils/directives/inputs/router-link-active.input.mjs +0 -8
- package/esm2022/lib/utils/directives/inputs/router-link.inputs.mjs +0 -20
- package/esm2022/lib/utils/directives/outputs/index.mjs +0 -3
- package/esm2022/lib/utils/directives/outputs/router-link-active.output.mjs +0 -8
- package/esm2022/lib/utils/directives/outputs/router-link.output.mjs +0 -8
- package/esm2022/lib/utils/icon.list.mjs +0 -39
- package/esm2022/lib/utils/id.generator.mjs +0 -81
- package/esm2022/lib/utils/index.mjs +0 -9
- package/esm2022/lib/utils/theme/clone-deep.mjs +0 -18
- package/esm2022/lib/utils/theme/create-class.mjs +0 -10
- package/esm2022/lib/utils/theme/create-theme.mjs +0 -10
- package/esm2022/lib/utils/theme/is-object.mjs +0 -10
- package/esm2022/lib/utils/theme/merge-theme.mjs +0 -29
- package/esm2022/lib/utils/theme/to-string.mjs +0 -10
- package/esm2022/public-api.mjs +0 -7
- package/lib/common/index.d.ts +0 -2
- package/lib/common/type-definitions/flowbite.boolean.d.ts +0 -7
- package/lib/components/form-field/directives/addon.directive.d.ts +0 -13
- package/lib/components/form-field/directives/addon.directive.theme.d.ts +0 -10
- package/lib/components/form-field/directives/addon.directive.theme.service.d.ts +0 -8
- package/lib/components/form-field/directives/base-input.directive.d.ts +0 -14
- package/lib/components/form-field/directives/helper.directive.d.ts +0 -18
- package/lib/components/form-field/directives/helper.directive.theme.d.ts +0 -13
- package/lib/components/form-field/directives/helper.directive.theme.service.d.ts +0 -8
- package/lib/components/form-field/directives/icon.directive.d.ts +0 -13
- package/lib/components/form-field/directives/icon.directive.theme.d.ts +0 -10
- package/lib/components/form-field/directives/icon.directive.theme.service.d.ts +0 -8
- package/lib/components/form-field/directives/index.d.ts +0 -21
- package/lib/components/form-field/directives/input.directive.d.ts +0 -100
- package/lib/components/form-field/directives/input.directive.theme.d.ts +0 -24
- package/lib/components/form-field/directives/input.directive.theme.service.d.ts +0 -8
- package/lib/components/form-field/directives/label.directive.d.ts +0 -62
- package/lib/components/form-field/directives/label.directive.theme.d.ts +0 -20
- package/lib/components/form-field/directives/label.directive.theme.service.d.ts +0 -8
- package/lib/components/form-field/form-field.component.d.ts +0 -20
- package/lib/components/form-field/form-field.theme.d.ts +0 -45
- package/lib/components/form-field/form-field.theme.service.d.ts +0 -8
- package/lib/components/form-field/index.d.ts +0 -5
- package/lib/components/index.d.ts +0 -15
- package/lib/pipes/index.d.ts +0 -1
- package/lib/services/index.d.ts +0 -1
- package/lib/utils/directives/index.d.ts +0 -2
- package/lib/utils/directives/inputs/index.d.ts +0 -2
- package/lib/utils/directives/inputs/router-link-active.input.d.ts +0 -8
- package/lib/utils/directives/inputs/router-link.inputs.d.ts +0 -8
- package/lib/utils/directives/outputs/index.d.ts +0 -2
- package/lib/utils/directives/outputs/router-link-active.output.d.ts +0 -8
- package/lib/utils/directives/outputs/router-link.output.d.ts +0 -8
- package/public-api.d.ts +0 -6
- /package/{lib/components/accordion → accordion}/index.d.ts +0 -0
- /package/{lib/components/alert → alert}/index.d.ts +0 -0
- /package/{lib/components/badge → badge}/index.d.ts +0 -0
- /package/{lib/components/breadcrumb → breadcrumb}/index.d.ts +0 -0
- /package/{lib/components/button → button}/index.d.ts +0 -0
- /package/{lib/common → core}/flowbite.theme.init.d.ts +0 -0
- /package/{lib/components/dropdown → dropdown}/index.d.ts +0 -0
- /package/{lib/components/icon → icon}/icon-registry.d.ts +0 -0
- /package/{lib/components/icon → icon}/index.d.ts +0 -0
- /package/{lib/components/icon → icon}/trusted-types.d.ts +0 -0
- /package/{lib/components/indicators → indicator}/index.d.ts +0 -0
- /package/{lib/components/modal → modal}/index.d.ts +0 -0
- /package/{lib/components/navbar → navbar}/index.d.ts +0 -0
- /package/{lib/directives → router-link}/flowbite-router-link.directive.d.ts +0 -0
- /package/{lib/directives → router-link-active}/flowbite-router-link-active.directive.d.ts +0 -0
- /package/{lib/pipes/sanitize-html → sanitize-html}/index.d.ts +0 -0
- /package/{lib/pipes/sanitize-html → sanitize-html}/sanitize-html.pipe.d.ts +0 -0
- /package/{lib/components/scroll-top → scroll-top}/index.d.ts +0 -0
- /package/{lib/components/sidebar → sidebar}/index.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/colors/flowbite.colors.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/colors/flowbite.gradient-colors.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/colors/flowbite.gradient-duo-tone-colors.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/colors/index.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/flowbite.class.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/flowbite.combination.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/flowbite.content-positions.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/flowbite.deep-partial.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/flowbite.heading-levels.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/flowbite.positions.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/flowbite.router-link-parameter.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/flowbite.sizes.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/flowbite.themes.d.ts +0 -0
- /package/{lib/utils → utils}/icon.list.d.ts +0 -0
- /package/{lib/utils → utils}/id.generator.d.ts +0 -0
- /package/{lib/utils → utils}/theme/clone-deep.d.ts +0 -0
- /package/{lib/utils → utils}/theme/create-class.d.ts +0 -0
- /package/{lib/utils → utils}/theme/create-theme.d.ts +0 -0
- /package/{lib/utils → utils}/theme/is-object.d.ts +0 -0
- /package/{lib/utils → utils}/theme/merge-theme.d.ts +0 -0
- /package/{lib/utils → utils}/theme/to-string.d.ts +0 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { mergeTheme, createTheme } from 'flowbite-angular/utils';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { InjectionToken, inject, model, Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';
|
|
4
|
+
import { twMerge } from 'tailwind-merge';
|
|
5
|
+
import { BaseComponent, booleanToFlowbiteBoolean } from 'flowbite-angular';
|
|
6
|
+
import { FlowbiteRouterLinkDirective } from 'flowbite-angular/router-link';
|
|
7
|
+
import { NgClass } from '@angular/common';
|
|
8
|
+
|
|
9
|
+
const FLOWBITE_BADGE_THEME_TOKEN = new InjectionToken('FLOWBITE_BADGE_THEME_TOKEN');
|
|
10
|
+
class BadgeThemeService {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.baseTheme = inject(FLOWBITE_BADGE_THEME_TOKEN);
|
|
13
|
+
}
|
|
14
|
+
getClasses(properties) {
|
|
15
|
+
const theme = mergeTheme(this.baseTheme, properties.customStyle);
|
|
16
|
+
const output = {
|
|
17
|
+
rootClass: twMerge(theme.root.base, theme.root.color[properties.color], theme.root.size[properties.size], theme.root.isPill[properties.isPill == 'enabled' || properties.isIconOnly == 'enabled'
|
|
18
|
+
? 'enabled'
|
|
19
|
+
: properties.isPill], theme.root.isIconOnly[properties.isIconOnly], theme.root.link[properties.link ? 'enabled' : 'disabled']),
|
|
20
|
+
};
|
|
21
|
+
return output;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @see https://flowbite.com/docs/components/badge/
|
|
27
|
+
*/
|
|
28
|
+
class BadgeComponent extends BaseComponent {
|
|
29
|
+
constructor() {
|
|
30
|
+
super(...arguments);
|
|
31
|
+
this.flowbiteRouterLink = inject(FlowbiteRouterLinkDirective, { optional: true });
|
|
32
|
+
this.themeService = inject(BadgeThemeService);
|
|
33
|
+
//#region properties
|
|
34
|
+
this.color = model('primary');
|
|
35
|
+
this.size = model('xs');
|
|
36
|
+
this.isIconOnly = model(false);
|
|
37
|
+
this.isPill = model(false);
|
|
38
|
+
this.customStyle = model({});
|
|
39
|
+
}
|
|
40
|
+
//#endregion
|
|
41
|
+
//#region BaseComponent implementation
|
|
42
|
+
fetchClass() {
|
|
43
|
+
return this.themeService.getClasses({
|
|
44
|
+
color: this.color(),
|
|
45
|
+
size: this.size(),
|
|
46
|
+
isIconOnly: booleanToFlowbiteBoolean(this.isIconOnly()),
|
|
47
|
+
isPill: booleanToFlowbiteBoolean(this.isPill()),
|
|
48
|
+
link: this.flowbiteRouterLink?.routerLink.urlTree ?? null,
|
|
49
|
+
customStyle: this.customStyle(),
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BadgeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.0", type: BadgeComponent, isStandalone: true, selector: "flowbite-badge", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, isIconOnly: { classPropertyName: "isIconOnly", publicName: "isIconOnly", isSignal: true, isRequired: false, transformFunction: null }, isPill: { classPropertyName: "isPill", publicName: "isPill", isSignal: true, isRequired: false, transformFunction: null }, customStyle: { classPropertyName: "customStyle", publicName: "customStyle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { color: "colorChange", size: "sizeChange", isIconOnly: "isIconOnlyChange", isPill: "isPillChange", customStyle: "customStyleChange" }, usesInheritance: true, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
54
|
+
}
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BadgeComponent, decorators: [{
|
|
56
|
+
type: Component,
|
|
57
|
+
args: [{
|
|
58
|
+
standalone: true,
|
|
59
|
+
imports: [NgClass],
|
|
60
|
+
selector: 'flowbite-badge',
|
|
61
|
+
template: `<ng-content />`,
|
|
62
|
+
encapsulation: ViewEncapsulation.None,
|
|
63
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
64
|
+
}]
|
|
65
|
+
}] });
|
|
66
|
+
|
|
67
|
+
const badgeTheme = createTheme({
|
|
68
|
+
root: {
|
|
69
|
+
base: 'flex h-fit items-center gap-1 font-semibold',
|
|
70
|
+
color: {
|
|
71
|
+
primary: 'bg-primary-100 dark:bg-primary-700 text-primary-800 dark:text-primary-300 group-hover:bg-primary-200 dark:group-hover:bg-primary-600',
|
|
72
|
+
dark: 'bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-300 group-hover:bg-gray-200 dark:group-hover:bg-gray-600',
|
|
73
|
+
blue: 'bg-blue-100 dark:bg-blue-200 text-blue-800 dark:text-blue-800 group-hover:bg-blue-200 dark:group-hover:bg-blue-300',
|
|
74
|
+
red: 'bg-red-100 dark:bg-red-200 text-red-800 dark:text-red-900 group-hover:bg-red-200 dark:group-hover:bg-red-300',
|
|
75
|
+
green: 'bg-green-100 dark:bg-green-200 text-green-800 dark:text-green-900 group-hover:bg-green-200 dark:group-hover:bg-green-300',
|
|
76
|
+
yellow: 'bg-yellow-100 dark:bg-yellow-200 text-yellow-800 dark:text-yellow-900 group-hover:bg-yellow-200 dark:group-hover:bg-yellow-300',
|
|
77
|
+
indigo: 'bg-indigo-100 dark:bg-indigo-200 text-indigo-800 dark:text-indigo-900 group-hover:bg-indigo-200 dark:group-hover:bg-indigo-300',
|
|
78
|
+
purple: 'bg-purple-100 dark:bg-purple-200 text-purple-800 dark:text-purple-900 group-hover:bg-purple-200 dark:group-hover:bg-purple-300',
|
|
79
|
+
pink: 'bg-pink-100 dark:bg-pink-200 text-pink-800 dark:text-pink-900 group-hover:bg-pink-200 dark:group-hover:bg-pink-300',
|
|
80
|
+
},
|
|
81
|
+
size: {
|
|
82
|
+
xs: 'text-xs p-1',
|
|
83
|
+
sm: 'text-sm p-1.5',
|
|
84
|
+
},
|
|
85
|
+
isPill: {
|
|
86
|
+
enabled: 'rounded-full',
|
|
87
|
+
disabled: 'rounded',
|
|
88
|
+
},
|
|
89
|
+
link: {
|
|
90
|
+
enabled: 'group cursor-pointer',
|
|
91
|
+
disabled: '',
|
|
92
|
+
},
|
|
93
|
+
isIconOnly: {
|
|
94
|
+
enabled: '',
|
|
95
|
+
disabled: 'px-2 py-0.5',
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Generated bundle index. Do not edit.
|
|
102
|
+
*/
|
|
103
|
+
|
|
104
|
+
export { BadgeComponent, BadgeThemeService, FLOWBITE_BADGE_THEME_TOKEN, badgeTheme };
|
|
105
|
+
//# sourceMappingURL=flowbite-angular-badge.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flowbite-angular-badge.mjs","sources":["../../../../libs/flowbite-angular/badge/badge.theme.service.ts","../../../../libs/flowbite-angular/badge/badge.component.ts","../../../../libs/flowbite-angular/badge/badge.theme.ts","../../../../libs/flowbite-angular/badge/flowbite-angular-badge.ts"],"sourcesContent":["import type { BadgeClass, BadgeProperties, BadgeTheme } from './badge.theme';\n\nimport type { FlowbiteThemeService } from 'flowbite-angular';\nimport { mergeTheme } from 'flowbite-angular/utils';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_BADGE_THEME_TOKEN = new InjectionToken<BadgeTheme>(\n 'FLOWBITE_BADGE_THEME_TOKEN'\n);\n\nexport class BadgeThemeService implements FlowbiteThemeService<BadgeProperties> {\n private readonly baseTheme = inject(FLOWBITE_BADGE_THEME_TOKEN);\n\n public getClasses(properties: BadgeProperties): BadgeClass {\n const theme: BadgeTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: BadgeClass = {\n rootClass: twMerge(\n theme.root.base,\n theme.root.color[properties.color],\n theme.root.size[properties.size],\n theme.root.isPill[\n properties.isPill == 'enabled' || properties.isIconOnly == 'enabled'\n ? 'enabled'\n : properties.isPill\n ],\n theme.root.isIconOnly[properties.isIconOnly],\n theme.root.link[properties.link ? 'enabled' : 'disabled']\n ),\n };\n\n return output;\n }\n}\n","import type { BadgeClass, BadgeColors, BadgeSizes, BadgeTheme } from './badge.theme';\nimport { BadgeThemeService } from './badge.theme.service';\n\nimport type { DeepPartial } from 'flowbite-angular';\nimport { BaseComponent, booleanToFlowbiteBoolean } from 'flowbite-angular';\nimport { FlowbiteRouterLinkDirective } from 'flowbite-angular/router-link';\n\nimport { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n model,\n ViewEncapsulation,\n} from '@angular/core';\n\n/**\n * @see https://flowbite.com/docs/components/badge/\n */\n@Component({\n standalone: true,\n imports: [NgClass],\n selector: 'flowbite-badge',\n template: `<ng-content />`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BadgeComponent extends BaseComponent<BadgeClass> {\n public readonly flowbiteRouterLink = inject(FlowbiteRouterLinkDirective, { optional: true });\n public readonly themeService = inject(BadgeThemeService);\n\n //#region properties\n public color = model<keyof BadgeColors>('primary');\n public size = model<keyof BadgeSizes>('xs');\n public isIconOnly = model<boolean>(false);\n public isPill = model<boolean>(false);\n public customStyle = model<DeepPartial<BadgeTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): BadgeClass {\n return this.themeService.getClasses({\n color: this.color(),\n size: this.size(),\n isIconOnly: booleanToFlowbiteBoolean(this.isIconOnly()),\n isPill: booleanToFlowbiteBoolean(this.isPill()),\n link: this.flowbiteRouterLink?.routerLink.urlTree ?? null,\n customStyle: this.customStyle(),\n });\n }\n //#endregion\n}\n","import type {\n DeepPartial,\n FlowbiteBoolean,\n FlowbiteClass,\n FlowbiteColors,\n FlowbiteSizes,\n RouterLinkParameter,\n} from 'flowbite-angular';\nimport { createTheme } from 'flowbite-angular/utils';\n\n//#region Component theme option\nexport interface BadgeColors\n extends Pick<\n FlowbiteColors,\n 'primary' | 'dark' | 'blue' | 'red' | 'green' | 'yellow' | 'indigo' | 'purple' | 'pink'\n > {\n [key: string]: string;\n}\n\nexport interface BadgeSizes extends Pick<FlowbiteSizes, 'xs' | 'sm'> {\n [key: string]: string;\n}\n//#endregion\n\nexport interface BadgeProperties {\n color: keyof BadgeColors;\n size: keyof BadgeSizes;\n isIconOnly: keyof FlowbiteBoolean;\n isPill: keyof FlowbiteBoolean;\n link: RouterLinkParameter;\n customStyle: DeepPartial<BadgeTheme>;\n}\n\nexport interface BadgeTheme {\n root: {\n base: string;\n color: BadgeColors;\n size: BadgeSizes;\n isPill: FlowbiteBoolean;\n isIconOnly: FlowbiteBoolean;\n link: FlowbiteBoolean;\n };\n}\n\nexport const badgeTheme: BadgeTheme = createTheme({\n root: {\n base: 'flex h-fit items-center gap-1 font-semibold',\n color: {\n primary:\n 'bg-primary-100 dark:bg-primary-700 text-primary-800 dark:text-primary-300 group-hover:bg-primary-200 dark:group-hover:bg-primary-600',\n dark: 'bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-300 group-hover:bg-gray-200 dark:group-hover:bg-gray-600',\n blue: 'bg-blue-100 dark:bg-blue-200 text-blue-800 dark:text-blue-800 group-hover:bg-blue-200 dark:group-hover:bg-blue-300',\n red: 'bg-red-100 dark:bg-red-200 text-red-800 dark:text-red-900 group-hover:bg-red-200 dark:group-hover:bg-red-300',\n green:\n 'bg-green-100 dark:bg-green-200 text-green-800 dark:text-green-900 group-hover:bg-green-200 dark:group-hover:bg-green-300',\n yellow:\n 'bg-yellow-100 dark:bg-yellow-200 text-yellow-800 dark:text-yellow-900 group-hover:bg-yellow-200 dark:group-hover:bg-yellow-300',\n indigo:\n 'bg-indigo-100 dark:bg-indigo-200 text-indigo-800 dark:text-indigo-900 group-hover:bg-indigo-200 dark:group-hover:bg-indigo-300',\n purple:\n 'bg-purple-100 dark:bg-purple-200 text-purple-800 dark:text-purple-900 group-hover:bg-purple-200 dark:group-hover:bg-purple-300',\n pink: 'bg-pink-100 dark:bg-pink-200 text-pink-800 dark:text-pink-900 group-hover:bg-pink-200 dark:group-hover:bg-pink-300',\n },\n size: {\n xs: 'text-xs p-1',\n sm: 'text-sm p-1.5',\n },\n isPill: {\n enabled: 'rounded-full',\n disabled: 'rounded',\n },\n link: {\n enabled: 'group cursor-pointer',\n disabled: '',\n },\n isIconOnly: {\n enabled: '',\n disabled: 'px-2 py-0.5',\n },\n },\n});\n\nexport type BadgeClass = FlowbiteClass;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { mergeTheme, CHEVRON_RIGHT_SVG_ICON, createTheme } from 'flowbite-angular/utils';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { InjectionToken, inject, model, Component, ViewEncapsulation, ChangeDetectionStrategy, contentChildren } from '@angular/core';
|
|
4
|
+
import { twMerge } from 'tailwind-merge';
|
|
5
|
+
import { BaseComponent } from 'flowbite-angular';
|
|
6
|
+
import { IconRegistry, IconComponent } from 'flowbite-angular/icon';
|
|
7
|
+
import { FlowbiteRouterLinkDirective } from 'flowbite-angular/router-link';
|
|
8
|
+
import { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';
|
|
9
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
10
|
+
|
|
11
|
+
const FLOWBITE_BREADCRUMB_ITEM_THEME_TOKEN = new InjectionToken('FLOWBITE_BREADCRUMB_ITEM_THEME_TOKEN');
|
|
12
|
+
class BreadcrumbItemThemeService {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.baseTheme = inject(FLOWBITE_BREADCRUMB_ITEM_THEME_TOKEN);
|
|
15
|
+
}
|
|
16
|
+
getClasses(properties) {
|
|
17
|
+
const theme = mergeTheme(this.baseTheme, properties.customStyle);
|
|
18
|
+
const output = {
|
|
19
|
+
rootClass: twMerge(theme.root.base, theme.root.color[properties.color]),
|
|
20
|
+
breadcrumbIconClass: twMerge(theme.icon.base),
|
|
21
|
+
};
|
|
22
|
+
return output;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
class BreadcrumbItemComponent extends BaseComponent {
|
|
27
|
+
constructor() {
|
|
28
|
+
super(...arguments);
|
|
29
|
+
this.themeService = inject(BreadcrumbItemThemeService);
|
|
30
|
+
this.breadcrumbComponent = inject(BreadcrumbComponent);
|
|
31
|
+
this.flowbiteRouterLink = inject(FlowbiteRouterLinkDirective, { optional: true });
|
|
32
|
+
this.iconRegistry = inject(IconRegistry);
|
|
33
|
+
this.domSanitizer = inject(DomSanitizer);
|
|
34
|
+
//#region properties
|
|
35
|
+
this.color = model(this.breadcrumbComponent.color());
|
|
36
|
+
this.customStyle = model({});
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
//#region BaseComponent implementation
|
|
40
|
+
fetchClass() {
|
|
41
|
+
return this.themeService.getClasses({
|
|
42
|
+
color: this.color(),
|
|
43
|
+
link: this.flowbiteRouterLink?.routerLink.urlTree ?? null,
|
|
44
|
+
customStyle: this.customStyle(),
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
init() {
|
|
48
|
+
this.iconRegistry.addRawSvgIconInNamepsace('flowbite-angular', 'chevron-right', this.domSanitizer.bypassSecurityTrustHtml(CHEVRON_RIGHT_SVG_ICON));
|
|
49
|
+
}
|
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BreadcrumbItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
51
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.0", type: BreadcrumbItemComponent, isStandalone: true, selector: "flowbite-breadcrumb-item", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, customStyle: { classPropertyName: "customStyle", publicName: "customStyle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { color: "colorChange", customStyle: "customStyleChange" }, usesInheritance: true, ngImport: i0, template: `
|
|
52
|
+
<flowbite-icon
|
|
53
|
+
[ngClass]="contentClasses().breadcrumbIconClass"
|
|
54
|
+
svgIcon="flowbite-angular:chevron-right" />
|
|
55
|
+
<ng-content />
|
|
56
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "flowbite-icon", inputs: ["svgIcon"], outputs: ["svgIconChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
57
|
+
}
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BreadcrumbItemComponent, decorators: [{
|
|
59
|
+
type: Component,
|
|
60
|
+
args: [{
|
|
61
|
+
standalone: true,
|
|
62
|
+
imports: [NgIf, NgClass, NgTemplateOutlet, IconComponent],
|
|
63
|
+
selector: 'flowbite-breadcrumb-item',
|
|
64
|
+
template: `
|
|
65
|
+
<flowbite-icon
|
|
66
|
+
[ngClass]="contentClasses().breadcrumbIconClass"
|
|
67
|
+
svgIcon="flowbite-angular:chevron-right" />
|
|
68
|
+
<ng-content />
|
|
69
|
+
`,
|
|
70
|
+
encapsulation: ViewEncapsulation.None,
|
|
71
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
72
|
+
}]
|
|
73
|
+
}] });
|
|
74
|
+
|
|
75
|
+
const FLOWBITE_BREADCRUMB_THEME_TOKEN = new InjectionToken('FLOWBITE_BREADCRUMB_THEME_TOKEN');
|
|
76
|
+
class BreadcrumbThemeService {
|
|
77
|
+
constructor() {
|
|
78
|
+
this.baseTheme = inject(FLOWBITE_BREADCRUMB_THEME_TOKEN);
|
|
79
|
+
}
|
|
80
|
+
getClasses(properties) {
|
|
81
|
+
const theme = mergeTheme(this.baseTheme, properties.customStyle);
|
|
82
|
+
const output = {
|
|
83
|
+
rootClass: twMerge(theme.root.base),
|
|
84
|
+
};
|
|
85
|
+
return output;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* @see https://flowbite.com/docs/components/breadcrumb/
|
|
91
|
+
*/
|
|
92
|
+
class BreadcrumbComponent extends BaseComponent {
|
|
93
|
+
constructor() {
|
|
94
|
+
super(...arguments);
|
|
95
|
+
this.themeService = inject(BreadcrumbThemeService);
|
|
96
|
+
this.breadcrumbItemChildren = contentChildren(BreadcrumbItemComponent);
|
|
97
|
+
//#region properties
|
|
98
|
+
this.color = model('primary');
|
|
99
|
+
this.customStyle = model({});
|
|
100
|
+
}
|
|
101
|
+
//#endregion
|
|
102
|
+
//#region BaseComponent implementation
|
|
103
|
+
fetchClass() {
|
|
104
|
+
return this.themeService.getClasses({
|
|
105
|
+
customStyle: this.customStyle(),
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
verify() {
|
|
109
|
+
if (this.breadcrumbItemChildren().length === 0) {
|
|
110
|
+
throw new Error('No BreadcrumbItemComponent available');
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BreadcrumbComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
114
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.0.0", type: BreadcrumbComponent, isStandalone: true, selector: "flowbite-breadcrumb", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, customStyle: { classPropertyName: "customStyle", publicName: "customStyle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { color: "colorChange", customStyle: "customStyleChange" }, host: { properties: { "attr.aria-label": "breadcrumb" } }, queries: [{ propertyName: "breadcrumbItemChildren", predicate: BreadcrumbItemComponent, isSignal: true }], usesInheritance: true, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
115
|
+
}
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BreadcrumbComponent, decorators: [{
|
|
117
|
+
type: Component,
|
|
118
|
+
args: [{
|
|
119
|
+
standalone: true,
|
|
120
|
+
imports: [NgClass],
|
|
121
|
+
selector: 'flowbite-breadcrumb',
|
|
122
|
+
template: `<ng-content />`,
|
|
123
|
+
host: {
|
|
124
|
+
'[attr.aria-label]': 'breadcrumb',
|
|
125
|
+
},
|
|
126
|
+
encapsulation: ViewEncapsulation.None,
|
|
127
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
128
|
+
}]
|
|
129
|
+
}] });
|
|
130
|
+
|
|
131
|
+
const breadcrumbTheme = createTheme({
|
|
132
|
+
root: {
|
|
133
|
+
base: 'flex items-center',
|
|
134
|
+
},
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
const breadcrumbItemTheme = createTheme({
|
|
138
|
+
root: {
|
|
139
|
+
base: 'group flex items-center text-sm font-medium cursor-pointer',
|
|
140
|
+
color: {
|
|
141
|
+
primary: 'text-primary-700 dark:text-primary-400 hover:text-primary-900 dark:hover:text-primary-500',
|
|
142
|
+
dark: 'text-gray-700 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white',
|
|
143
|
+
blue: 'text-blue-700 dark:text-blue-400 hover:text-blue-900 dark:hover:text-blue-500',
|
|
144
|
+
red: 'text-red-700 dark:text-red-400 hover:text-red-900 dark:hover:text-red-500',
|
|
145
|
+
green: 'text-green-700 dark:text-green-400 hover:text-green-900 dark:hover:text-green-500',
|
|
146
|
+
yellow: 'text-yellow-700 dark:text-yellow-400 hover:text-yellow-900 dark:hover:text-yellow-500',
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
icon: {
|
|
150
|
+
base: 'mx-1 h-6 w-6 md:mx-2 group-first:hidden',
|
|
151
|
+
},
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Generated bundle index. Do not edit.
|
|
156
|
+
*/
|
|
157
|
+
|
|
158
|
+
export { BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbItemThemeService, BreadcrumbThemeService, FLOWBITE_BREADCRUMB_ITEM_THEME_TOKEN, FLOWBITE_BREADCRUMB_THEME_TOKEN, breadcrumbItemTheme, breadcrumbTheme };
|
|
159
|
+
//# sourceMappingURL=flowbite-angular-breadcrumb.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flowbite-angular-breadcrumb.mjs","sources":["../../../../libs/flowbite-angular/breadcrumb/breadcrumb-item.theme.service.ts","../../../../libs/flowbite-angular/breadcrumb/breadcrumb-item.component.ts","../../../../libs/flowbite-angular/breadcrumb/breadcrumb.theme.service.ts","../../../../libs/flowbite-angular/breadcrumb/breadcrumb.component.ts","../../../../libs/flowbite-angular/breadcrumb/breadcrumb.theme.ts","../../../../libs/flowbite-angular/breadcrumb/breadcrumb-item.theme.ts","../../../../libs/flowbite-angular/breadcrumb/flowbite-angular-breadcrumb.ts"],"sourcesContent":["import type {\n BreadcrumbItemClass,\n BreadcrumbItemProperties,\n BreadcrumbItemTheme,\n} from './breadcrumb-item.theme';\n\nimport type { FlowbiteThemeService } from 'flowbite-angular';\nimport { mergeTheme } from 'flowbite-angular/utils';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_BREADCRUMB_ITEM_THEME_TOKEN = new InjectionToken<BreadcrumbItemTheme>(\n 'FLOWBITE_BREADCRUMB_ITEM_THEME_TOKEN'\n);\n\nexport class BreadcrumbItemThemeService implements FlowbiteThemeService<BreadcrumbItemProperties> {\n private readonly baseTheme = inject(FLOWBITE_BREADCRUMB_ITEM_THEME_TOKEN);\n\n public getClasses(properties: BreadcrumbItemProperties): BreadcrumbItemClass {\n const theme: BreadcrumbItemTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: BreadcrumbItemClass = {\n rootClass: twMerge(theme.root.base, theme.root.color[properties.color]),\n breadcrumbIconClass: twMerge(theme.icon.base),\n };\n\n return output;\n }\n}\n","import type { BreadcrumbItemClass, BreadcrumbItemTheme } from './breadcrumb-item.theme';\nimport { BreadcrumbItemThemeService } from './breadcrumb-item.theme.service';\nimport { BreadcrumbComponent } from './breadcrumb.component';\nimport type { BreadcrumbColors } from './breadcrumb.theme';\n\nimport type { DeepPartial } from 'flowbite-angular';\nimport { BaseComponent } from 'flowbite-angular';\nimport { IconComponent, IconRegistry } from 'flowbite-angular/icon';\nimport { FlowbiteRouterLinkDirective } from 'flowbite-angular/router-link';\nimport { CHEVRON_RIGHT_SVG_ICON } from 'flowbite-angular/utils';\n\nimport { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';\nimport type { OnInit } from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n model,\n ViewEncapsulation,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n standalone: true,\n imports: [NgIf, NgClass, NgTemplateOutlet, IconComponent],\n selector: 'flowbite-breadcrumb-item',\n template: `\n <flowbite-icon\n [ngClass]=\"contentClasses().breadcrumbIconClass\"\n svgIcon=\"flowbite-angular:chevron-right\" />\n <ng-content />\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BreadcrumbItemComponent extends BaseComponent<BreadcrumbItemClass> implements OnInit {\n public readonly themeService = inject(BreadcrumbItemThemeService);\n public readonly breadcrumbComponent = inject(BreadcrumbComponent);\n public readonly flowbiteRouterLink = inject(FlowbiteRouterLinkDirective, { optional: true });\n public readonly iconRegistry = inject(IconRegistry);\n public readonly domSanitizer = inject(DomSanitizer);\n\n //#region properties\n public color = model<keyof BreadcrumbColors>(this.breadcrumbComponent.color());\n public customStyle = model<DeepPartial<BreadcrumbItemTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): BreadcrumbItemClass {\n return this.themeService.getClasses({\n color: this.color(),\n link: this.flowbiteRouterLink?.routerLink.urlTree ?? null,\n customStyle: this.customStyle(),\n });\n }\n\n public override init(): void {\n this.iconRegistry.addRawSvgIconInNamepsace(\n 'flowbite-angular',\n 'chevron-right',\n this.domSanitizer.bypassSecurityTrustHtml(CHEVRON_RIGHT_SVG_ICON)\n );\n }\n //#endregion\n}\n","import type { BreadcrumbClass, BreadcrumbProperties, BreadcrumbTheme } from './breadcrumb.theme';\n\nimport type { FlowbiteThemeService } from 'flowbite-angular';\nimport { mergeTheme } from 'flowbite-angular/utils';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_BREADCRUMB_THEME_TOKEN = new InjectionToken<BreadcrumbTheme>(\n 'FLOWBITE_BREADCRUMB_THEME_TOKEN'\n);\n\nexport class BreadcrumbThemeService implements FlowbiteThemeService<BreadcrumbProperties> {\n private readonly baseTheme = inject(FLOWBITE_BREADCRUMB_THEME_TOKEN);\n\n public getClasses(properties: BreadcrumbProperties): BreadcrumbClass {\n const theme: BreadcrumbTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: BreadcrumbClass = {\n rootClass: twMerge(theme.root.base),\n };\n\n return output;\n }\n}\n","import { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport type { BreadcrumbClass, BreadcrumbColors, BreadcrumbTheme } from './breadcrumb.theme';\nimport { BreadcrumbThemeService } from './breadcrumb.theme.service';\n\nimport type { DeepPartial } from 'flowbite-angular';\nimport { BaseComponent } from 'flowbite-angular';\n\nimport { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n inject,\n model,\n ViewEncapsulation,\n} from '@angular/core';\n\n/**\n * @see https://flowbite.com/docs/components/breadcrumb/\n */\n@Component({\n standalone: true,\n imports: [NgClass],\n selector: 'flowbite-breadcrumb',\n template: `<ng-content />`,\n host: {\n '[attr.aria-label]': 'breadcrumb',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BreadcrumbComponent extends BaseComponent<BreadcrumbClass> {\n public readonly themeService = inject(BreadcrumbThemeService);\n public readonly breadcrumbItemChildren = contentChildren(BreadcrumbItemComponent);\n\n //#region properties\n public color = model<keyof BreadcrumbColors>('primary');\n public customStyle = model<DeepPartial<BreadcrumbTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): BreadcrumbClass {\n return this.themeService.getClasses({\n customStyle: this.customStyle(),\n });\n }\n\n public override verify(): void {\n if (this.breadcrumbItemChildren().length === 0) {\n throw new Error('No BreadcrumbItemComponent available');\n }\n }\n //#endregion\n}\n","import type { DeepPartial, FlowbiteClass, FlowbiteColors } from 'flowbite-angular';\nimport { createTheme } from 'flowbite-angular/utils';\n\nexport interface BreadcrumbColors\n extends Pick<FlowbiteColors, 'primary' | 'dark' | 'blue' | 'red' | 'green' | 'yellow'> {\n [key: string]: string;\n}\n\nexport interface BreadcrumbProperties {\n customStyle: DeepPartial<BreadcrumbTheme>;\n}\n\nexport interface BreadcrumbTheme {\n root: {\n base: string;\n };\n}\n\nexport const breadcrumbTheme: BreadcrumbTheme = createTheme({\n root: {\n base: 'flex items-center',\n },\n});\n\nexport type BreadcrumbClass = FlowbiteClass;\n","import type { BreadcrumbColors } from './breadcrumb.theme';\n\nimport type { DeepPartial, FlowbiteClass } from 'flowbite-angular';\nimport { createTheme } from 'flowbite-angular/utils';\n\nimport type { UrlTree } from '@angular/router';\n\nexport interface BreadcrumbItemProperties {\n color: keyof BreadcrumbColors;\n link: UrlTree | null;\n customStyle: DeepPartial<BreadcrumbItemTheme>;\n}\n\nexport interface BreadcrumbItemTheme {\n root: {\n base: string;\n color: BreadcrumbColors;\n };\n icon: {\n base: string;\n };\n}\n\nexport const breadcrumbItemTheme: BreadcrumbItemTheme = createTheme({\n root: {\n base: 'group flex items-center text-sm font-medium cursor-pointer',\n color: {\n primary:\n 'text-primary-700 dark:text-primary-400 hover:text-primary-900 dark:hover:text-primary-500',\n dark: 'text-gray-700 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white',\n blue: 'text-blue-700 dark:text-blue-400 hover:text-blue-900 dark:hover:text-blue-500',\n red: 'text-red-700 dark:text-red-400 hover:text-red-900 dark:hover:text-red-500',\n green: 'text-green-700 dark:text-green-400 hover:text-green-900 dark:hover:text-green-500',\n yellow:\n 'text-yellow-700 dark:text-yellow-400 hover:text-yellow-900 dark:hover:text-yellow-500',\n },\n },\n icon: {\n base: 'mx-1 h-6 w-6 md:mx-2 group-first:hidden',\n },\n});\n\nexport interface BreadcrumbItemClass extends FlowbiteClass {\n breadcrumbIconClass: string;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { mergeTheme, createTheme } from 'flowbite-angular/utils';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { InjectionToken, inject, model, Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';
|
|
4
|
+
import { twMerge } from 'tailwind-merge';
|
|
5
|
+
import { BaseComponent, booleanToFlowbiteBoolean } from 'flowbite-angular';
|
|
6
|
+
import { NgIf, NgClass, NgTemplateOutlet } from '@angular/common';
|
|
7
|
+
|
|
8
|
+
const FLOWBITE_BUTTON_THEME_TOKEN = new InjectionToken('FLOWBITE_BUTTON_THEME_TOKEN');
|
|
9
|
+
class ButtonThemeService {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.baseTheme = inject(FLOWBITE_BUTTON_THEME_TOKEN);
|
|
12
|
+
}
|
|
13
|
+
getClasses(properties) {
|
|
14
|
+
const theme = mergeTheme(this.baseTheme, properties.customStyle);
|
|
15
|
+
const output = {
|
|
16
|
+
rootClass: twMerge(properties.gradientDuoTone && properties.fill == 'outline'
|
|
17
|
+
? theme.root.base['span']
|
|
18
|
+
: `${theme.root.base['default']} ${theme.root.size[properties.size]}`, properties.gradientDuoTone
|
|
19
|
+
? theme.root.gradientDuoTone[properties.gradientDuoTone][properties.fill]
|
|
20
|
+
: properties.gradientMonochrome
|
|
21
|
+
? theme.root.gradientMonochrome[properties.gradientMonochrome]
|
|
22
|
+
: theme.root.color[properties.color][properties.fill], theme.root.isPill[properties.isPill], theme.root.isDisabled[properties.isDisabled]),
|
|
23
|
+
spanClass: twMerge(theme.span.base, theme.span.isPill[properties.isPill], theme.span.size[properties.size]),
|
|
24
|
+
};
|
|
25
|
+
return output;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* @see https://flowbite.com/docs/components/buttons/
|
|
31
|
+
*/
|
|
32
|
+
class ButtonComponent extends BaseComponent {
|
|
33
|
+
constructor() {
|
|
34
|
+
super(...arguments);
|
|
35
|
+
this.themeService = inject(ButtonThemeService);
|
|
36
|
+
//#region properties
|
|
37
|
+
this.color = model('primary');
|
|
38
|
+
this.size = model('md');
|
|
39
|
+
this.isPill = model(false);
|
|
40
|
+
this.fill = model('solid');
|
|
41
|
+
this.isDisabled = model(false);
|
|
42
|
+
this.gradientMonochrome = model(undefined);
|
|
43
|
+
this.gradientDuoTone = model(undefined);
|
|
44
|
+
this.customStyle = model({});
|
|
45
|
+
}
|
|
46
|
+
//#endregion
|
|
47
|
+
//#region BaseComponent implementation
|
|
48
|
+
fetchClass() {
|
|
49
|
+
return this.themeService.getClasses({
|
|
50
|
+
color: this.color(),
|
|
51
|
+
isDisabled: booleanToFlowbiteBoolean(this.isDisabled()),
|
|
52
|
+
fill: this.fill(),
|
|
53
|
+
isPill: booleanToFlowbiteBoolean(this.isPill()),
|
|
54
|
+
size: this.size(),
|
|
55
|
+
gradientMonochrome: this.gradientMonochrome(),
|
|
56
|
+
gradientDuoTone: this.gradientDuoTone(),
|
|
57
|
+
customStyle: this.customStyle(),
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
61
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.0", type: ButtonComponent, isStandalone: true, selector: "flowbite-button", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, isPill: { classPropertyName: "isPill", publicName: "isPill", isSignal: true, isRequired: false, transformFunction: null }, fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, gradientMonochrome: { classPropertyName: "gradientMonochrome", publicName: "gradientMonochrome", isSignal: true, isRequired: false, transformFunction: null }, gradientDuoTone: { classPropertyName: "gradientDuoTone", publicName: "gradientDuoTone", isSignal: true, isRequired: false, transformFunction: null }, customStyle: { classPropertyName: "customStyle", publicName: "customStyle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { color: "colorChange", size: "sizeChange", isPill: "isPillChange", fill: "fillChange", isDisabled: "isDisabledChange", gradientMonochrome: "gradientMonochromeChange", gradientDuoTone: "gradientDuoToneChange", customStyle: "customStyleChange" }, host: { properties: { "attr.type": "button" } }, usesInheritance: true, ngImport: i0, template: `
|
|
62
|
+
<span
|
|
63
|
+
*ngIf="gradientDuoTone() && fill() === 'outline'; else default"
|
|
64
|
+
[ngClass]="contentClasses().spanClass">
|
|
65
|
+
<ng-container *ngTemplateOutlet="contentOutlet"></ng-container>
|
|
66
|
+
</span>
|
|
67
|
+
|
|
68
|
+
<ng-template #default>
|
|
69
|
+
<ng-container *ngTemplateOutlet="contentOutlet"></ng-container>
|
|
70
|
+
</ng-template>
|
|
71
|
+
|
|
72
|
+
<ng-template #contentOutlet>
|
|
73
|
+
<ng-content />
|
|
74
|
+
</ng-template>
|
|
75
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
76
|
+
}
|
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
78
|
+
type: Component,
|
|
79
|
+
args: [{
|
|
80
|
+
standalone: true,
|
|
81
|
+
imports: [NgIf, NgClass, NgTemplateOutlet],
|
|
82
|
+
selector: 'flowbite-button',
|
|
83
|
+
template: `
|
|
84
|
+
<span
|
|
85
|
+
*ngIf="gradientDuoTone() && fill() === 'outline'; else default"
|
|
86
|
+
[ngClass]="contentClasses().spanClass">
|
|
87
|
+
<ng-container *ngTemplateOutlet="contentOutlet"></ng-container>
|
|
88
|
+
</span>
|
|
89
|
+
|
|
90
|
+
<ng-template #default>
|
|
91
|
+
<ng-container *ngTemplateOutlet="contentOutlet"></ng-container>
|
|
92
|
+
</ng-template>
|
|
93
|
+
|
|
94
|
+
<ng-template #contentOutlet>
|
|
95
|
+
<ng-content />
|
|
96
|
+
</ng-template>
|
|
97
|
+
`,
|
|
98
|
+
host: {
|
|
99
|
+
'[attr.type]': 'button',
|
|
100
|
+
},
|
|
101
|
+
encapsulation: ViewEncapsulation.None,
|
|
102
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
103
|
+
}]
|
|
104
|
+
}] });
|
|
105
|
+
|
|
106
|
+
const buttonTheme = createTheme({
|
|
107
|
+
root: {
|
|
108
|
+
base: {
|
|
109
|
+
default: 'cursor-pointer group flex h-min w-fit items-center justify-center p-0.5 text-center font-medium focus:z-10',
|
|
110
|
+
span: 'cursor-pointer group inline-flex relative items-center justify-center p-0.5 font-medium overflow-hidden',
|
|
111
|
+
},
|
|
112
|
+
color: {
|
|
113
|
+
dark: {
|
|
114
|
+
solid: 'text-white bg-gray-800 dark:bg-gray-800 border border-transparent dark:border-gray-700 hover:bg-gray-900 dark:hover:bg-gray-700 focus:ring-4 focus:ring-gray-300 dark:focus:ring-gray-800 disabled:hover:bg-gray-800 dark:disabled:hover:bg-gray-800',
|
|
115
|
+
outline: 'text-gray-900 hover:text-white border border-gray-800 hover:bg-gray-900 dark:border-gray-600 dark:text-gray-400 dark:hover:text-white focus:ring-4 focus:outline-none focus:ring-gray-300 dark:hover:bg-gray-600 dark:focus:ring-gray-800',
|
|
116
|
+
},
|
|
117
|
+
primary: {
|
|
118
|
+
solid: 'text-white bg-primary-700 border border-transparent hover:bg-primary-800 focus:ring-4 focus:ring-primary-300 dark:bg-primary-700 dark:hover:bg-primary-800 dark:focus:ring-primary-900',
|
|
119
|
+
outline: 'text-primary-700 hover:text-white border border-primary-700 hover:bg-primary-800 focus:ring-4 focus:outline-none focus:ring-primary-300 dark:border-primary-500 dark:text-primary-500 dark:hover:text-white dark:hover:bg-primary-600 dark:focus:ring-primary-900',
|
|
120
|
+
},
|
|
121
|
+
red: {
|
|
122
|
+
solid: 'text-white bg-red-700 border border-transparent hover:bg-red-800 focus:ring-4 focus:ring-red-300 dark:bg-red-600 dark:hover:bg-red-700 dark:focus:ring-red-900',
|
|
123
|
+
outline: 'text-red-700 hover:text-white border border-red-700 hover:bg-red-800 focus:ring-4 focus:outline-none focus:ring-red-300 dark:border-red-500 dark:text-red-500 dark:hover:text-white dark:hover:bg-red-600 dark:focus:ring-red-900',
|
|
124
|
+
},
|
|
125
|
+
blue: {
|
|
126
|
+
solid: 'text-white bg-blue-700 border border-transparent hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800',
|
|
127
|
+
outline: 'text-blue-700 hover:text-white border border-blue-700 hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300 dark:border-blue-500 dark:text-blue-500 dark:hover:text-white dark:hover:bg-blue-600 dark:focus:ring-blue-800',
|
|
128
|
+
},
|
|
129
|
+
light: {
|
|
130
|
+
solid: 'text-gray-900 bg-white border border-gray-300 hover:bg-gray-100 focus:ring-4 focus:ring-blue-300 dark:bg-gray-600 dark:text-white dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-700 dark:focus:ring-gray-700',
|
|
131
|
+
outline: 'text-gray-900 bg-transparent border border-gray-200 hover:bg-white focus:ring-4 focus:ring-blue-300 dark:bg-transparent dark:text-white dark:border-white dark:hover:text-gray-900 dark:hover:bg-white dark:hover:border-gray-700 dark:focus:ring-gray-700',
|
|
132
|
+
},
|
|
133
|
+
purple: {
|
|
134
|
+
solid: 'text-white bg-purple-700 border border-transparent hover:bg-purple-800 focus:ring-4 focus:ring-purple-300 dark:bg-purple-600 dark:hover:bg-purple-700 dark:focus:ring-purple-900',
|
|
135
|
+
outline: 'text-purple-700 hover:text-white border border-purple-700 hover:bg-purple-800 focus:ring-4 focus:outline-none focus:ring-purple-300 dark:border-purple-400 dark:text-purple-400 dark:hover:text-white dark:hover:bg-purple-500 dark:focus:ring-purple-900',
|
|
136
|
+
},
|
|
137
|
+
green: {
|
|
138
|
+
solid: 'text-white bg-green-700 border border-transparent hover:bg-green-800 focus:ring-4 focus:ring-green-300 dark:bg-green-600 dark:hover:bg-green-700 dark:focus:ring-green-800',
|
|
139
|
+
outline: 'text-green-700 hover:text-white border border-green-700 hover:bg-green-800 focus:ring-4 focus:outline-none focus:ring-green-300 dark:border-green-500 dark:text-green-500 dark:hover:text-white dark:hover:bg-green-600 dark:focus:ring-green-800',
|
|
140
|
+
},
|
|
141
|
+
yellow: {
|
|
142
|
+
solid: 'text-white bg-yellow-400 border border-transparent hover:bg-yellow-500 focus:ring-4 focus:ring-yellow-300 dark:focus:ring-yellow-900',
|
|
143
|
+
outline: 'text-yellow-400 hover:text-white border border-yellow-400 hover:bg-yellow-500 focus:ring-4 focus:outline-none focus:ring-yellow-300 dark:border-yellow-300 dark:text-yellow-300 dark:hover:text-white dark:hover:bg-yellow-400 dark:focus:ring-yellow-900',
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
isDisabled: {
|
|
147
|
+
enabled: 'cursor-not-allowed opacity-50',
|
|
148
|
+
disabled: '',
|
|
149
|
+
},
|
|
150
|
+
gradientMonochrome: {
|
|
151
|
+
cyan: 'text-white bg-gradient-to-r from-cyan-400 via-cyan-500 to-cyan-600 hover:bg-gradient-to-br focus:ring-4 focus:ring-cyan-300 dark:focus:ring-cyan-800',
|
|
152
|
+
red: 'text-white bg-gradient-to-r from-red-400 via-red-500 to-red-600 hover:bg-gradient-to-br focus:ring-4 focus:ring-red-300 dark:focus:ring-red-800',
|
|
153
|
+
blue: 'text-white bg-gradient-to-r from-blue-500 via-blue-600 to-blue-700 hover:bg-gradient-to-br focus:ring-4 focus:ring-blue-300 dark:focus:ring-blue-800',
|
|
154
|
+
lime: 'text-gray-900 bg-gradient-to-r from-lime-200 via-lime-400 to-lime-500 hover:bg-gradient-to-br focus:ring-4 focus:ring-lime-300 dark:focus:ring-lime-800',
|
|
155
|
+
pink: 'text-white bg-gradient-to-r from-pink-400 via-pink-500 to-pink-600 hover:bg-gradient-to-br focus:ring-4 focus:ring-pink-300 dark:focus:ring-pink-800',
|
|
156
|
+
purple: 'text-white bg-gradient-to-r from-purple-500 via-purple-600 to-purple-700 hover:bg-gradient-to-br focus:ring-4 focus:ring-purple-300 dark:focus:ring-purple-800',
|
|
157
|
+
green: 'text-white bg-gradient-to-r from-green-400 via-green-500 to-green-600 hover:bg-gradient-to-br focus:ring-4 focus:ring-green-300 dark:focus:ring-green-800',
|
|
158
|
+
teal: 'text-white bg-gradient-to-r from-teal-400 via-teal-500 to-teal-600 hover:bg-gradient-to-br focus:ring-4 focus:ring-teal-300 dark:focus:ring-teal-800',
|
|
159
|
+
},
|
|
160
|
+
gradientDuoTone: {
|
|
161
|
+
purpleToBlue: {
|
|
162
|
+
solid: 'text-white bg-gradient-to-br from-purple-600 to-blue-500 hover:bg-gradient-to-bl focus:ring-4 focus:outline-none focus:ring-blue-300 dark:focus:ring-blue-800',
|
|
163
|
+
outline: 'text-gray-900 bg-gradient-to-br from-purple-600 to-blue-500 group-hover:from-purple-600 group-hover:to-blue-500 hover:text-white dark:text-white focus:ring-4 focus:outline-none focus:ring-blue-300 dark:focus:ring-blue-800',
|
|
164
|
+
},
|
|
165
|
+
cyanToBlue: {
|
|
166
|
+
solid: 'text-white bg-gradient-to-r from-cyan-500 to-blue-500 hover:bg-gradient-to-bl focus:ring-4 focus:outline-none focus:ring-cyan-300 dark:focus:ring-cyan-800',
|
|
167
|
+
outline: 'text-gray-900 bg-gradient-to-br from-cyan-500 to-blue-500 group-hover:from-cyan-500 group-hover:to-blue-500 hover:text-white dark:text-white focus:ring-4 focus:outline-none focus:ring-cyan-200 dark:focus:ring-cyan-800',
|
|
168
|
+
},
|
|
169
|
+
greenToBlue: {
|
|
170
|
+
solid: 'text-white bg-gradient-to-br from-green-400 to-blue-600 hover:bg-gradient-to-bl focus:ring-4 focus:outline-none focus:ring-green-200 dark:focus:ring-green-800',
|
|
171
|
+
outline: 'text-gray-900 bg-gradient-to-br from-green-400 to-blue-600 group-hover:from-green-400 group-hover:to-blue-600 hover:text-white dark:text-white focus:ring-4 focus:outline-none focus:ring-green-200 dark:focus:ring-green-800',
|
|
172
|
+
},
|
|
173
|
+
purpleToPink: {
|
|
174
|
+
solid: 'text-white bg-gradient-to-r from-purple-500 to-pink-500 hover:bg-gradient-to-l focus:ring-4 focus:outline-none focus:ring-purple-200 dark:focus:ring-purple-800',
|
|
175
|
+
outline: 'text-gray-900 bg-gradient-to-br from-purple-500 to-pink-500 group-hover:from-purple-500 group-hover:to-pink-500 hover:text-white dark:text-white focus:ring-4 focus:outline-none focus:ring-purple-200 dark:focus:ring-purple-800',
|
|
176
|
+
},
|
|
177
|
+
pinkToOrange: {
|
|
178
|
+
solid: 'text-white bg-gradient-to-br from-pink-500 to-orange-400 hover:bg-gradient-to-bl focus:ring-4 focus:outline-none focus:ring-pink-200 dark:focus:ring-pink-800',
|
|
179
|
+
outline: 'text-gray-900 bg-gradient-to-br from-pink-500 to-orange-400 group-hover:from-pink-500 group-hover:to-orange-400 hover:text-white dark:text-white focus:ring-4 focus:outline-none focus:ring-pink-200 dark:focus:ring-pink-800',
|
|
180
|
+
},
|
|
181
|
+
tealToLime: {
|
|
182
|
+
solid: 'text-gray-900 bg-gradient-to-r from-teal-200 to-lime-200 hover:bg-gradient-to-l hover:from-teal-200 hover:to-lime-200 focus:ring-4 focus:outline-none focus:ring-lime-200 dark:focus:ring-teal-700',
|
|
183
|
+
outline: 'text-gray-900 bg-gradient-to-br from-teal-300 to-lime-300 group-hover:from-teal-300 group-hover:to-lime-300 dark:text-white dark:hover:text-gray-900 focus:ring-4 focus:outline-none focus:ring-lime-200 dark:focus:ring-lime-800',
|
|
184
|
+
},
|
|
185
|
+
redToYellow: {
|
|
186
|
+
solid: 'text-gray-900 bg-gradient-to-r from-red-200 via-red-300 to-yellow-200 hover:bg-gradient-to-bl focus:ring-4 focus:outline-none focus:ring-red-100 dark:focus:ring-red-400',
|
|
187
|
+
outline: 'text-gray-900 bg-gradient-to-br from-red-200 via-red-300 to-yellow-200 group-hover:from-red-200 group-hover:via-red-300 group-hover:to-yellow-200 dark:text-white dark:hover:text-gray-900 focus:ring-4 focus:outline-none focus:ring-red-100 dark:focus:ring-red-400',
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
size: {
|
|
191
|
+
xs: 'text-xs py-2 px-3',
|
|
192
|
+
sm: 'text-sm py-2 px-3',
|
|
193
|
+
md: 'text-sm px-5 py-2.5',
|
|
194
|
+
lg: 'text-base py-3 px-5',
|
|
195
|
+
xl: 'text-base px-6 py-3.5',
|
|
196
|
+
},
|
|
197
|
+
isPill: {
|
|
198
|
+
enabled: 'rounded-full',
|
|
199
|
+
disabled: 'rounded-lg',
|
|
200
|
+
},
|
|
201
|
+
},
|
|
202
|
+
span: {
|
|
203
|
+
base: 'cursor-pointer relative inline-flex items-center bg-white transition-all duration-75 ease-in group-hover:bg-opacity-0 dark:bg-gray-900',
|
|
204
|
+
isPill: {
|
|
205
|
+
enabled: 'rounded-full',
|
|
206
|
+
disabled: 'rounded-md',
|
|
207
|
+
},
|
|
208
|
+
size: {
|
|
209
|
+
xs: 'text-xs py-2 px-3',
|
|
210
|
+
sm: 'text-sm py-2 px-3',
|
|
211
|
+
md: 'text-sm px-5 py-2.5',
|
|
212
|
+
lg: 'text-base py-3 px-5',
|
|
213
|
+
xl: 'text-base px-6 py-3.5',
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Generated bundle index. Do not edit.
|
|
220
|
+
*/
|
|
221
|
+
|
|
222
|
+
export { ButtonComponent, ButtonThemeService, FLOWBITE_BUTTON_THEME_TOKEN, buttonTheme };
|
|
223
|
+
//# sourceMappingURL=flowbite-angular-button.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flowbite-angular-button.mjs","sources":["../../../../libs/flowbite-angular/button/button.theme.service.ts","../../../../libs/flowbite-angular/button/button.component.ts","../../../../libs/flowbite-angular/button/button.theme.ts","../../../../libs/flowbite-angular/button/flowbite-angular-button.ts"],"sourcesContent":["import type { ButtonClass, ButtonProperties, ButtonTheme } from './button.theme';\n\nimport type { FlowbiteThemeService } from 'flowbite-angular';\nimport { mergeTheme } from 'flowbite-angular/utils';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_BUTTON_THEME_TOKEN = new InjectionToken<ButtonTheme>(\n 'FLOWBITE_BUTTON_THEME_TOKEN'\n);\n\nexport class ButtonThemeService implements FlowbiteThemeService<ButtonProperties> {\n private readonly baseTheme = inject(FLOWBITE_BUTTON_THEME_TOKEN);\n\n public getClasses(properties: ButtonProperties): ButtonClass {\n const theme: ButtonTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: ButtonClass = {\n rootClass: twMerge(\n properties.gradientDuoTone && properties.fill == 'outline'\n ? theme.root.base['span']\n : `${theme.root.base['default']} ${theme.root.size[properties.size]}`,\n properties.gradientDuoTone\n ? theme.root.gradientDuoTone[properties.gradientDuoTone][properties.fill]\n : properties.gradientMonochrome\n ? theme.root.gradientMonochrome[properties.gradientMonochrome]\n : theme.root.color[properties.color][properties.fill],\n theme.root.isPill[properties.isPill],\n theme.root.isDisabled[properties.isDisabled]\n ),\n spanClass: twMerge(\n theme.span.base,\n theme.span.isPill[properties.isPill],\n theme.span.size[properties.size]\n ),\n };\n\n return output;\n }\n}\n","import type {\n ButtonClass,\n ButtonColors,\n ButtonDuoToneColors,\n ButtonFill,\n ButtonMonochromeColors,\n ButtonSizes,\n ButtonTheme,\n} from './button.theme';\nimport { ButtonThemeService } from './button.theme.service';\n\nimport type { DeepPartial } from 'flowbite-angular';\nimport { BaseComponent, booleanToFlowbiteBoolean } from 'flowbite-angular';\n\nimport { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n model,\n ViewEncapsulation,\n} from '@angular/core';\n\n/**\n * @see https://flowbite.com/docs/components/buttons/\n */\n@Component({\n standalone: true,\n imports: [NgIf, NgClass, NgTemplateOutlet],\n selector: 'flowbite-button',\n template: `\n <span\n *ngIf=\"gradientDuoTone() && fill() === 'outline'; else default\"\n [ngClass]=\"contentClasses().spanClass\">\n <ng-container *ngTemplateOutlet=\"contentOutlet\"></ng-container>\n </span>\n\n <ng-template #default>\n <ng-container *ngTemplateOutlet=\"contentOutlet\"></ng-container>\n </ng-template>\n\n <ng-template #contentOutlet>\n <ng-content />\n </ng-template>\n `,\n host: {\n '[attr.type]': 'button',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ButtonComponent extends BaseComponent<ButtonClass> {\n public readonly themeService = inject(ButtonThemeService);\n\n //#region properties\n public color = model<keyof ButtonColors>('primary');\n public size = model<keyof ButtonSizes>('md');\n public isPill = model<boolean>(false);\n public fill = model<keyof ButtonFill>('solid');\n public isDisabled = model<boolean>(false);\n public gradientMonochrome = model<keyof ButtonMonochromeColors | undefined>(undefined);\n public gradientDuoTone = model<keyof ButtonDuoToneColors | undefined>(undefined);\n public customStyle = model<DeepPartial<ButtonTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): ButtonClass {\n return this.themeService.getClasses({\n color: this.color(),\n isDisabled: booleanToFlowbiteBoolean(this.isDisabled()),\n fill: this.fill(),\n isPill: booleanToFlowbiteBoolean(this.isPill()),\n size: this.size(),\n gradientMonochrome: this.gradientMonochrome(),\n gradientDuoTone: this.gradientDuoTone(),\n customStyle: this.customStyle(),\n });\n }\n //#endregion\n}\n","import type {\n Combination,\n DeepPartial,\n FlowbiteBoolean,\n FlowbiteClass,\n FlowbiteColors,\n FlowbiteGradientColors,\n FlowbiteGradientDuoToneColors,\n FlowbiteSizes,\n} from 'flowbite-angular';\nimport { createTheme } from 'flowbite-angular/utils';\n\n//#region Component theme option\nexport interface ButtonColors\n extends Pick<\n FlowbiteColors,\n 'dark' | 'primary' | 'light' | 'blue' | 'red' | 'green' | 'yellow' | 'purple'\n > {\n [key: string]: string;\n}\n\nexport interface ButtonMonochromeColors\n extends Pick<\n FlowbiteGradientColors,\n 'blue' | 'green' | 'cyan' | 'teal' | 'lime' | 'red' | 'pink' | 'purple'\n > {\n [key: string]: string;\n}\n\nexport type ButtonDuoToneColors = Pick<\n FlowbiteGradientDuoToneColors,\n | 'purpleToBlue'\n | 'cyanToBlue'\n | 'greenToBlue'\n | 'purpleToPink'\n | 'pinkToOrange'\n | 'tealToLime'\n | 'redToYellow'\n>;\n\nexport interface ButtonSizes extends Pick<FlowbiteSizes, 'xs' | 'sm' | 'md' | 'lg' | 'xl'> {\n [key: string]: string;\n}\n\nexport interface ButtonFill {\n solid: string;\n outline: string;\n}\n\nexport interface ButtonTypes {\n default: string;\n span: string;\n}\n//#endregion\n\nexport interface ButtonProperties {\n color: keyof ButtonColors;\n gradientMonochrome?: keyof ButtonMonochromeColors;\n gradientDuoTone?: keyof ButtonDuoToneColors;\n size: keyof ButtonSizes;\n isPill: keyof FlowbiteBoolean;\n fill: keyof ButtonFill;\n isDisabled: keyof FlowbiteBoolean;\n customStyle: DeepPartial<ButtonTheme>;\n}\n\nexport interface ButtonTheme {\n root: {\n base: ButtonTypes;\n color: Combination<keyof ButtonColors, keyof ButtonFill, string>;\n gradientMonochrome: ButtonMonochromeColors;\n gradientDuoTone: Combination<keyof ButtonDuoToneColors, keyof ButtonFill, string>;\n size: ButtonSizes;\n isPill: FlowbiteBoolean;\n isDisabled: FlowbiteBoolean;\n };\n span: {\n base: string;\n isPill: FlowbiteBoolean;\n size: ButtonSizes;\n };\n}\n\nexport const buttonTheme: ButtonTheme = createTheme({\n root: {\n base: {\n default:\n 'cursor-pointer group flex h-min w-fit items-center justify-center p-0.5 text-center font-medium focus:z-10',\n span: 'cursor-pointer group inline-flex relative items-center justify-center p-0.5 font-medium overflow-hidden',\n },\n color: {\n dark: {\n solid:\n 'text-white bg-gray-800 dark:bg-gray-800 border border-transparent dark:border-gray-700 hover:bg-gray-900 dark:hover:bg-gray-700 focus:ring-4 focus:ring-gray-300 dark:focus:ring-gray-800 disabled:hover:bg-gray-800 dark:disabled:hover:bg-gray-800',\n outline:\n 'text-gray-900 hover:text-white border border-gray-800 hover:bg-gray-900 dark:border-gray-600 dark:text-gray-400 dark:hover:text-white focus:ring-4 focus:outline-none focus:ring-gray-300 dark:hover:bg-gray-600 dark:focus:ring-gray-800',\n },\n primary: {\n solid:\n 'text-white bg-primary-700 border border-transparent hover:bg-primary-800 focus:ring-4 focus:ring-primary-300 dark:bg-primary-700 dark:hover:bg-primary-800 dark:focus:ring-primary-900',\n outline:\n 'text-primary-700 hover:text-white border border-primary-700 hover:bg-primary-800 focus:ring-4 focus:outline-none focus:ring-primary-300 dark:border-primary-500 dark:text-primary-500 dark:hover:text-white dark:hover:bg-primary-600 dark:focus:ring-primary-900',\n },\n red: {\n solid:\n 'text-white bg-red-700 border border-transparent hover:bg-red-800 focus:ring-4 focus:ring-red-300 dark:bg-red-600 dark:hover:bg-red-700 dark:focus:ring-red-900',\n outline:\n 'text-red-700 hover:text-white border border-red-700 hover:bg-red-800 focus:ring-4 focus:outline-none focus:ring-red-300 dark:border-red-500 dark:text-red-500 dark:hover:text-white dark:hover:bg-red-600 dark:focus:ring-red-900',\n },\n blue: {\n solid:\n 'text-white bg-blue-700 border border-transparent hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800',\n outline:\n 'text-blue-700 hover:text-white border border-blue-700 hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300 dark:border-blue-500 dark:text-blue-500 dark:hover:text-white dark:hover:bg-blue-600 dark:focus:ring-blue-800',\n },\n light: {\n solid:\n 'text-gray-900 bg-white border border-gray-300 hover:bg-gray-100 focus:ring-4 focus:ring-blue-300 dark:bg-gray-600 dark:text-white dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-700 dark:focus:ring-gray-700',\n outline:\n 'text-gray-900 bg-transparent border border-gray-200 hover:bg-white focus:ring-4 focus:ring-blue-300 dark:bg-transparent dark:text-white dark:border-white dark:hover:text-gray-900 dark:hover:bg-white dark:hover:border-gray-700 dark:focus:ring-gray-700',\n },\n purple: {\n solid:\n 'text-white bg-purple-700 border border-transparent hover:bg-purple-800 focus:ring-4 focus:ring-purple-300 dark:bg-purple-600 dark:hover:bg-purple-700 dark:focus:ring-purple-900',\n outline:\n 'text-purple-700 hover:text-white border border-purple-700 hover:bg-purple-800 focus:ring-4 focus:outline-none focus:ring-purple-300 dark:border-purple-400 dark:text-purple-400 dark:hover:text-white dark:hover:bg-purple-500 dark:focus:ring-purple-900',\n },\n green: {\n solid:\n 'text-white bg-green-700 border border-transparent hover:bg-green-800 focus:ring-4 focus:ring-green-300 dark:bg-green-600 dark:hover:bg-green-700 dark:focus:ring-green-800',\n outline:\n 'text-green-700 hover:text-white border border-green-700 hover:bg-green-800 focus:ring-4 focus:outline-none focus:ring-green-300 dark:border-green-500 dark:text-green-500 dark:hover:text-white dark:hover:bg-green-600 dark:focus:ring-green-800',\n },\n yellow: {\n solid:\n 'text-white bg-yellow-400 border border-transparent hover:bg-yellow-500 focus:ring-4 focus:ring-yellow-300 dark:focus:ring-yellow-900',\n outline:\n 'text-yellow-400 hover:text-white border border-yellow-400 hover:bg-yellow-500 focus:ring-4 focus:outline-none focus:ring-yellow-300 dark:border-yellow-300 dark:text-yellow-300 dark:hover:text-white dark:hover:bg-yellow-400 dark:focus:ring-yellow-900',\n },\n },\n isDisabled: {\n enabled: 'cursor-not-allowed opacity-50',\n disabled: '',\n },\n gradientMonochrome: {\n cyan: 'text-white bg-gradient-to-r from-cyan-400 via-cyan-500 to-cyan-600 hover:bg-gradient-to-br focus:ring-4 focus:ring-cyan-300 dark:focus:ring-cyan-800',\n red: 'text-white bg-gradient-to-r from-red-400 via-red-500 to-red-600 hover:bg-gradient-to-br focus:ring-4 focus:ring-red-300 dark:focus:ring-red-800',\n blue: 'text-white bg-gradient-to-r from-blue-500 via-blue-600 to-blue-700 hover:bg-gradient-to-br focus:ring-4 focus:ring-blue-300 dark:focus:ring-blue-800',\n lime: 'text-gray-900 bg-gradient-to-r from-lime-200 via-lime-400 to-lime-500 hover:bg-gradient-to-br focus:ring-4 focus:ring-lime-300 dark:focus:ring-lime-800',\n pink: 'text-white bg-gradient-to-r from-pink-400 via-pink-500 to-pink-600 hover:bg-gradient-to-br focus:ring-4 focus:ring-pink-300 dark:focus:ring-pink-800',\n purple:\n 'text-white bg-gradient-to-r from-purple-500 via-purple-600 to-purple-700 hover:bg-gradient-to-br focus:ring-4 focus:ring-purple-300 dark:focus:ring-purple-800',\n green:\n 'text-white bg-gradient-to-r from-green-400 via-green-500 to-green-600 hover:bg-gradient-to-br focus:ring-4 focus:ring-green-300 dark:focus:ring-green-800',\n teal: 'text-white bg-gradient-to-r from-teal-400 via-teal-500 to-teal-600 hover:bg-gradient-to-br focus:ring-4 focus:ring-teal-300 dark:focus:ring-teal-800',\n },\n gradientDuoTone: {\n purpleToBlue: {\n solid:\n 'text-white bg-gradient-to-br from-purple-600 to-blue-500 hover:bg-gradient-to-bl focus:ring-4 focus:outline-none focus:ring-blue-300 dark:focus:ring-blue-800',\n outline:\n 'text-gray-900 bg-gradient-to-br from-purple-600 to-blue-500 group-hover:from-purple-600 group-hover:to-blue-500 hover:text-white dark:text-white focus:ring-4 focus:outline-none focus:ring-blue-300 dark:focus:ring-blue-800',\n },\n cyanToBlue: {\n solid:\n 'text-white bg-gradient-to-r from-cyan-500 to-blue-500 hover:bg-gradient-to-bl focus:ring-4 focus:outline-none focus:ring-cyan-300 dark:focus:ring-cyan-800',\n outline:\n 'text-gray-900 bg-gradient-to-br from-cyan-500 to-blue-500 group-hover:from-cyan-500 group-hover:to-blue-500 hover:text-white dark:text-white focus:ring-4 focus:outline-none focus:ring-cyan-200 dark:focus:ring-cyan-800',\n },\n greenToBlue: {\n solid:\n 'text-white bg-gradient-to-br from-green-400 to-blue-600 hover:bg-gradient-to-bl focus:ring-4 focus:outline-none focus:ring-green-200 dark:focus:ring-green-800',\n outline:\n 'text-gray-900 bg-gradient-to-br from-green-400 to-blue-600 group-hover:from-green-400 group-hover:to-blue-600 hover:text-white dark:text-white focus:ring-4 focus:outline-none focus:ring-green-200 dark:focus:ring-green-800',\n },\n purpleToPink: {\n solid:\n 'text-white bg-gradient-to-r from-purple-500 to-pink-500 hover:bg-gradient-to-l focus:ring-4 focus:outline-none focus:ring-purple-200 dark:focus:ring-purple-800',\n outline:\n 'text-gray-900 bg-gradient-to-br from-purple-500 to-pink-500 group-hover:from-purple-500 group-hover:to-pink-500 hover:text-white dark:text-white focus:ring-4 focus:outline-none focus:ring-purple-200 dark:focus:ring-purple-800',\n },\n pinkToOrange: {\n solid:\n 'text-white bg-gradient-to-br from-pink-500 to-orange-400 hover:bg-gradient-to-bl focus:ring-4 focus:outline-none focus:ring-pink-200 dark:focus:ring-pink-800',\n outline:\n 'text-gray-900 bg-gradient-to-br from-pink-500 to-orange-400 group-hover:from-pink-500 group-hover:to-orange-400 hover:text-white dark:text-white focus:ring-4 focus:outline-none focus:ring-pink-200 dark:focus:ring-pink-800',\n },\n tealToLime: {\n solid:\n 'text-gray-900 bg-gradient-to-r from-teal-200 to-lime-200 hover:bg-gradient-to-l hover:from-teal-200 hover:to-lime-200 focus:ring-4 focus:outline-none focus:ring-lime-200 dark:focus:ring-teal-700',\n outline:\n 'text-gray-900 bg-gradient-to-br from-teal-300 to-lime-300 group-hover:from-teal-300 group-hover:to-lime-300 dark:text-white dark:hover:text-gray-900 focus:ring-4 focus:outline-none focus:ring-lime-200 dark:focus:ring-lime-800',\n },\n redToYellow: {\n solid:\n 'text-gray-900 bg-gradient-to-r from-red-200 via-red-300 to-yellow-200 hover:bg-gradient-to-bl focus:ring-4 focus:outline-none focus:ring-red-100 dark:focus:ring-red-400',\n outline:\n 'text-gray-900 bg-gradient-to-br from-red-200 via-red-300 to-yellow-200 group-hover:from-red-200 group-hover:via-red-300 group-hover:to-yellow-200 dark:text-white dark:hover:text-gray-900 focus:ring-4 focus:outline-none focus:ring-red-100 dark:focus:ring-red-400',\n },\n },\n size: {\n xs: 'text-xs py-2 px-3',\n sm: 'text-sm py-2 px-3',\n md: 'text-sm px-5 py-2.5',\n lg: 'text-base py-3 px-5',\n xl: 'text-base px-6 py-3.5',\n },\n isPill: {\n enabled: 'rounded-full',\n disabled: 'rounded-lg',\n },\n },\n span: {\n base: 'cursor-pointer relative inline-flex items-center bg-white transition-all duration-75 ease-in group-hover:bg-opacity-0 dark:bg-gray-900',\n isPill: {\n enabled: 'rounded-full',\n disabled: 'rounded-md',\n },\n size: {\n xs: 'text-xs py-2 px-3',\n sm: 'text-sm py-2 px-3',\n md: 'text-sm px-5 py-2.5',\n lg: 'text-base py-3 px-5',\n xl: 'text-base px-6 py-3.5',\n },\n },\n});\n\nexport interface ButtonClass extends FlowbiteClass {\n spanClass: string;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|