flowbite-angular 1.3.0 → 20.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -39
- package/accordion/index.d.ts +569 -16
- package/alert/index.d.ts +602 -4
- package/badge/index.d.ts +636 -4
- package/breadcrumb/index.d.ts +452 -8
- package/button/index.d.ts +335 -4
- package/button-group/README.md +4 -0
- package/button-group/index.d.ts +85 -0
- package/{core → card}/README.md +2 -2
- package/card/index.d.ts +640 -0
- package/{accordion → clipboard}/README.md +2 -2
- package/clipboard/index.d.ts +103 -0
- package/dropdown/index.d.ts +536 -16
- package/fesm2022/flowbite-angular-accordion.mjs +339 -479
- package/fesm2022/flowbite-angular-accordion.mjs.map +1 -1
- package/fesm2022/flowbite-angular-alert.mjs +308 -240
- package/fesm2022/flowbite-angular-alert.mjs.map +1 -1
- package/fesm2022/flowbite-angular-badge.mjs +332 -238
- package/fesm2022/flowbite-angular-badge.mjs.map +1 -1
- package/fesm2022/flowbite-angular-breadcrumb.mjs +262 -191
- package/fesm2022/flowbite-angular-breadcrumb.mjs.map +1 -1
- package/fesm2022/flowbite-angular-button-group.mjs +86 -0
- package/fesm2022/flowbite-angular-button-group.mjs.map +1 -0
- package/fesm2022/flowbite-angular-button.mjs +189 -270
- package/fesm2022/flowbite-angular-button.mjs.map +1 -1
- package/fesm2022/flowbite-angular-card.mjs +344 -0
- package/fesm2022/flowbite-angular-card.mjs.map +1 -0
- package/fesm2022/flowbite-angular-clipboard.mjs +174 -0
- package/fesm2022/flowbite-angular-clipboard.mjs.map +1 -0
- package/fesm2022/flowbite-angular-dropdown.mjs +272 -459
- package/fesm2022/flowbite-angular-dropdown.mjs.map +1 -1
- package/fesm2022/flowbite-angular-form.mjs +444 -0
- package/fesm2022/flowbite-angular-form.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-brand.mjs +71 -0
- package/fesm2022/flowbite-angular-icon-brand.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-outline-arrows.mjs +51 -0
- package/fesm2022/flowbite-angular-icon-outline-arrows.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-outline-e-commerce.mjs +23 -0
- package/fesm2022/flowbite-angular-icon-outline-e-commerce.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-outline-emoji.mjs +13 -0
- package/fesm2022/flowbite-angular-icon-outline-emoji.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-outline-files-folders.mjs +42 -0
- package/fesm2022/flowbite-angular-icon-outline-files-folders.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-outline-general.mjs +145 -0
- package/fesm2022/flowbite-angular-icon-outline-general.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-outline-media.mjs +25 -0
- package/fesm2022/flowbite-angular-icon-outline-media.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-outline-text.mjs +20 -0
- package/fesm2022/flowbite-angular-icon-outline-text.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-outline-user.mjs +17 -0
- package/fesm2022/flowbite-angular-icon-outline-user.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-outline-weather.mjs +9 -0
- package/fesm2022/flowbite-angular-icon-outline-weather.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-outline.mjs +6 -0
- package/fesm2022/flowbite-angular-icon-outline.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-solid-arrows.mjs +17 -0
- package/fesm2022/flowbite-angular-icon-solid-arrows.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-solid-brands.mjs +33 -0
- package/fesm2022/flowbite-angular-icon-solid-brands.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-solid-e-commerce.mjs +21 -0
- package/fesm2022/flowbite-angular-icon-solid-e-commerce.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-solid-emoji.mjs +13 -0
- package/fesm2022/flowbite-angular-icon-solid-emoji.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-solid-files-folder.mjs +42 -0
- package/fesm2022/flowbite-angular-icon-solid-files-folder.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-solid-general.mjs +123 -0
- package/fesm2022/flowbite-angular-icon-solid-general.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-solid-media.mjs +24 -0
- package/fesm2022/flowbite-angular-icon-solid-media.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-solid-text.mjs +11 -0
- package/fesm2022/flowbite-angular-icon-solid-text.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-solid-user.mjs +17 -0
- package/fesm2022/flowbite-angular-icon-solid-user.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-solid-weather.mjs +9 -0
- package/fesm2022/flowbite-angular-icon-solid-weather.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon-solid.mjs +6 -0
- package/fesm2022/flowbite-angular-icon-solid.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon.mjs +318 -219
- package/fesm2022/flowbite-angular-icon.mjs.map +1 -1
- package/fesm2022/flowbite-angular-indicator.mjs +119 -231
- package/fesm2022/flowbite-angular-indicator.mjs.map +1 -1
- package/fesm2022/flowbite-angular-modal.mjs +337 -486
- package/fesm2022/flowbite-angular-modal.mjs.map +1 -1
- package/fesm2022/flowbite-angular-navbar.mjs +600 -604
- package/fesm2022/flowbite-angular-navbar.mjs.map +1 -1
- package/fesm2022/flowbite-angular-pagination.mjs +994 -0
- package/fesm2022/flowbite-angular-pagination.mjs.map +1 -0
- package/fesm2022/flowbite-angular-sidebar.mjs +400 -776
- package/fesm2022/flowbite-angular-sidebar.mjs.map +1 -1
- package/fesm2022/flowbite-angular-tab.mjs +465 -0
- package/fesm2022/flowbite-angular-tab.mjs.map +1 -0
- package/fesm2022/flowbite-angular-theme-toggle.mjs +263 -0
- package/fesm2022/flowbite-angular-theme-toggle.mjs.map +1 -0
- package/fesm2022/flowbite-angular-tooltip.mjs +117 -0
- package/fesm2022/flowbite-angular-tooltip.mjs.map +1 -0
- package/fesm2022/flowbite-angular.mjs +53 -66
- package/fesm2022/flowbite-angular.mjs.map +1 -1
- package/flowbite-angular.css +2 -0
- package/{alert → form}/README.md +2 -2
- package/form/index.d.ts +684 -0
- package/{breadcrumb → icon/brand}/README.md +2 -2
- package/icon/brand/index.d.ts +66 -0
- package/icon/index.d.ts +322 -5
- package/icon/outline/README.md +4 -0
- package/icon/outline/arrows/index.d.ts +46 -0
- package/icon/outline/e-commerce/index.d.ts +18 -0
- package/icon/outline/emoji/index.d.ts +8 -0
- package/icon/outline/files-folders/index.d.ts +37 -0
- package/icon/outline/general/index.d.ts +140 -0
- package/icon/outline/index.d.ts +2 -0
- package/icon/outline/media/index.d.ts +20 -0
- package/icon/outline/text/index.d.ts +15 -0
- package/icon/outline/user/index.d.ts +12 -0
- package/icon/outline/weather/index.d.ts +4 -0
- package/icon/solid/README.md +4 -0
- package/icon/solid/arrows/index.d.ts +12 -0
- package/icon/solid/brands/index.d.ts +28 -0
- package/icon/solid/e-commerce/index.d.ts +16 -0
- package/icon/solid/emoji/index.d.ts +8 -0
- package/icon/solid/files-folder/index.d.ts +37 -0
- package/icon/solid/general/index.d.ts +118 -0
- package/icon/solid/index.d.ts +2 -0
- package/icon/solid/media/index.d.ts +19 -0
- package/icon/solid/text/index.d.ts +6 -0
- package/icon/solid/user/index.d.ts +12 -0
- package/icon/solid/weather/index.d.ts +4 -0
- package/index.d.ts +126 -3
- package/indicator/index.d.ts +242 -4
- package/modal/index.d.ts +458 -16
- package/navbar/index.d.ts +1467 -24
- package/package.json +133 -38
- package/pagination/README.md +4 -0
- package/pagination/index.d.ts +1135 -0
- package/sidebar/index.d.ts +880 -24
- package/styles/flowbite-angular.css +8 -0
- package/styles/part/animation.css +0 -0
- package/styles/part/color.css +125 -0
- package/styles/part/font-size.css +67 -0
- package/styles/part/rounded.css +11 -0
- package/styles/part/shadow.css +9 -0
- package/styles/part/spacing.css +38 -0
- package/{badge → tab}/README.md +2 -2
- package/tab/index.d.ts +791 -0
- package/theme-toggle/README.md +4 -0
- package/theme-toggle/index.d.ts +342 -0
- package/{button → tooltip}/README.md +2 -2
- package/tooltip/index.d.ts +158 -0
- package/accordion/accordion-content.component.d.ts +0 -69
- package/accordion/accordion-content.theme.d.ts +0 -28
- package/accordion/accordion-content.theme.service.d.ts +0 -19
- package/accordion/accordion-panel.component.d.ts +0 -67
- package/accordion/accordion-panel.theme.d.ts +0 -23
- package/accordion/accordion-panel.theme.service.d.ts +0 -20
- package/accordion/accordion-title.component.d.ts +0 -106
- package/accordion/accordion-title.theme.d.ts +0 -35
- package/accordion/accordion-title.theme.service.d.ts +0 -19
- package/accordion/accordion.component.d.ts +0 -61
- package/accordion/accordion.theme.d.ts +0 -29
- package/accordion/accordion.theme.service.d.ts +0 -19
- package/alert/alert.component.d.ts +0 -150
- package/alert/alert.theme.d.ts +0 -39
- package/alert/alert.theme.service.d.ts +0 -19
- package/badge/badge.component.d.ts +0 -196
- package/badge/badge.theme.d.ts +0 -53
- package/badge/badge.theme.service.d.ts +0 -19
- package/base-component.directive.d.ts +0 -51
- package/breadcrumb/breadcrumb-item.component.d.ts +0 -84
- package/breadcrumb/breadcrumb-item.theme.d.ts +0 -33
- package/breadcrumb/breadcrumb-item.theme.service.d.ts +0 -19
- package/breadcrumb/breadcrumb.component.d.ts +0 -43
- package/breadcrumb/breadcrumb.theme.d.ts +0 -29
- package/breadcrumb/breadcrumb.theme.service.d.ts +0 -19
- package/button/button.component.d.ts +0 -250
- package/button/button.theme.d.ts +0 -79
- package/button/button.theme.service.d.ts +0 -19
- package/core/flowbite.theme.init.d.ts +0 -9
- package/core/index.d.ts +0 -1
- package/dark-theme-toggle/README.md +0 -4
- package/dark-theme-toggle/dark-theme-toggle.component.d.ts +0 -51
- package/dark-theme-toggle/dark-theme-toggle.theme.d.ts +0 -23
- package/dark-theme-toggle/dark-theme-toggle.theme.service.d.ts +0 -19
- package/dark-theme-toggle/index.d.ts +0 -3
- package/dropdown/README.md +0 -4
- package/dropdown/dropdown-divider.component.d.ts +0 -36
- package/dropdown/dropdown-divider.theme.d.ts +0 -23
- package/dropdown/dropdown-divider.theme.service.d.ts +0 -19
- package/dropdown/dropdown-header.component.d.ts +0 -42
- package/dropdown/dropdown-header.theme.d.ts +0 -28
- package/dropdown/dropdown-header.theme.service.d.ts +0 -19
- package/dropdown/dropdown-item.component.d.ts +0 -36
- package/dropdown/dropdown-item.theme.d.ts +0 -23
- package/dropdown/dropdown-item.theme.service.d.ts +0 -19
- package/dropdown/dropdown.component.d.ts +0 -136
- package/dropdown/dropdown.theme.d.ts +0 -56
- package/dropdown/dropdown.theme.service.d.ts +0 -19
- package/fesm2022/flowbite-angular-core.mjs +0 -322
- package/fesm2022/flowbite-angular-core.mjs.map +0 -1
- package/fesm2022/flowbite-angular-dark-theme-toggle.mjs +0 -139
- package/fesm2022/flowbite-angular-dark-theme-toggle.mjs.map +0 -1
- package/fesm2022/flowbite-angular-router-link-active.mjs +0 -68
- package/fesm2022/flowbite-angular-router-link-active.mjs.map +0 -1
- package/fesm2022/flowbite-angular-router-link.mjs +0 -73
- package/fesm2022/flowbite-angular-router-link.mjs.map +0 -1
- package/fesm2022/flowbite-angular-sanitize-html.mjs +0 -39
- package/fesm2022/flowbite-angular-sanitize-html.mjs.map +0 -1
- package/fesm2022/flowbite-angular-scroll-top.mjs +0 -193
- package/fesm2022/flowbite-angular-scroll-top.mjs.map +0 -1
- package/fesm2022/flowbite-angular-theme.mjs +0 -78
- package/fesm2022/flowbite-angular-theme.mjs.map +0 -1
- package/fesm2022/flowbite-angular-utils.mjs +0 -210
- package/fesm2022/flowbite-angular-utils.mjs.map +0 -1
- package/flowbite.theme.service.d.ts +0 -12
- package/icon/icon-registry.d.ts +0 -45
- package/icon/icon.component.d.ts +0 -22
- package/icon/trusted-types.d.ts +0 -15
- package/indicator/indicators.component.d.ts +0 -224
- package/indicator/indicators.theme.d.ts +0 -59
- package/indicator/indicators.theme.service.d.ts +0 -19
- package/modal/modal-body.component.d.ts +0 -36
- package/modal/modal-body.theme.d.ts +0 -23
- package/modal/modal-body.theme.service.d.ts +0 -19
- package/modal/modal-footer.component.d.ts +0 -36
- package/modal/modal-footer.theme.d.ts +0 -23
- package/modal/modal-footer.theme.service.d.ts +0 -19
- package/modal/modal-header.component.d.ts +0 -60
- package/modal/modal-header.theme.d.ts +0 -32
- package/modal/modal-header.theme.service.d.ts +0 -19
- package/modal/modal.component.d.ts +0 -146
- package/modal/modal.theme.d.ts +0 -35
- package/modal/modal.theme.service.d.ts +0 -19
- package/navbar/navbar-brand.component.d.ts +0 -36
- package/navbar/navbar-brand.theme.d.ts +0 -23
- package/navbar/navbar-brand.theme.service.d.ts +0 -19
- package/navbar/navbar-content.component.d.ts +0 -50
- package/navbar/navbar-content.theme.d.ts +0 -28
- package/navbar/navbar-content.theme.service.d.ts +0 -19
- package/navbar/navbar-icon-button.component.d.ts +0 -59
- package/navbar/navbar-icon-button.theme.d.ts +0 -26
- package/navbar/navbar-icon-button.theme.service.d.ts +0 -19
- package/navbar/navbar-item.component.d.ts +0 -67
- package/navbar/navbar-item.theme.d.ts +0 -26
- package/navbar/navbar-item.theme.service.d.ts +0 -19
- package/navbar/navbar-toggle.component.d.ts +0 -51
- package/navbar/navbar-toggle.theme.d.ts +0 -23
- package/navbar/navbar-toggle.theme.service.d.ts +0 -19
- package/navbar/navbar.component.d.ts +0 -121
- package/navbar/navbar.theme.d.ts +0 -21
- package/navbar/navbar.theme.service.d.ts +0 -19
- package/router-link/README.md +0 -4
- package/router-link/flowbite-router-link.directive.d.ts +0 -28
- package/router-link/index.d.ts +0 -1
- package/router-link-active/README.md +0 -4
- package/router-link-active/flowbite-router-link-active.directive.d.ts +0 -37
- package/router-link-active/index.d.ts +0 -1
- package/sanitize-html/README.md +0 -4
- package/sanitize-html/index.d.ts +0 -1
- package/sanitize-html/sanitize-html.pipe.d.ts +0 -20
- package/scroll-top/README.md +0 -4
- package/scroll-top/index.d.ts +0 -4
- package/scroll-top/scroll-top.component.d.ts +0 -114
- package/scroll-top/scroll-top.theme.d.ts +0 -39
- package/scroll-top/scroll-top.theme.service.d.ts +0 -19
- package/sidebar/sidebar-item-group.component.d.ts +0 -100
- package/sidebar/sidebar-item-group.theme.d.ts +0 -31
- package/sidebar/sidebar-item-group.theme.service.d.ts +0 -19
- package/sidebar/sidebar-item.component.d.ts +0 -101
- package/sidebar/sidebar-item.theme.d.ts +0 -33
- package/sidebar/sidebar-item.theme.service.d.ts +0 -19
- package/sidebar/sidebar-menu.component.d.ts +0 -93
- package/sidebar/sidebar-menu.theme.d.ts +0 -30
- package/sidebar/sidebar-menu.theme.service.d.ts +0 -19
- package/sidebar/sidebar-page-content.component.d.ts +0 -46
- package/sidebar/sidebar-page-content.theme.d.ts +0 -27
- package/sidebar/sidebar-page-content.theme.service.d.ts +0 -19
- package/sidebar/sidebar-toggle.component.d.ts +0 -95
- package/sidebar/sidebar-toggle.theme.d.ts +0 -34
- package/sidebar/sidebar-toggle.theme.service.d.ts +0 -19
- package/sidebar/sidebar.component.d.ts +0 -84
- package/sidebar/sidebar.theme.d.ts +0 -22
- package/sidebar/sidebar.theme.service.d.ts +0 -19
- package/tailwind.config.js +0 -303
- package/theme/README.md +0 -4
- package/theme/flowbite-theme.directive.d.ts +0 -36
- package/theme/index.d.ts +0 -1
- package/type-definitions/colors/flowbite.colors.d.ts +0 -19
- package/type-definitions/colors/flowbite.gradient-colors.d.ts +0 -11
- package/type-definitions/colors/flowbite.gradient-duo-tone-colors.d.ts +0 -12
- package/type-definitions/colors/index.d.ts +0 -3
- package/type-definitions/flowbite.boolean.d.ts +0 -14
- package/type-definitions/flowbite.class.d.ts +0 -6
- package/type-definitions/flowbite.combination.d.ts +0 -8
- package/type-definitions/flowbite.content-positions.d.ts +0 -6
- package/type-definitions/flowbite.deep-partial.d.ts +0 -6
- package/type-definitions/flowbite.heading-levels.d.ts +0 -4
- package/type-definitions/flowbite.positions.d.ts +0 -14
- package/type-definitions/flowbite.router-link-parameter.d.ts +0 -5
- package/type-definitions/flowbite.sizes.d.ts +0 -10
- package/type-definitions/flowbite.themes.d.ts +0 -4
- package/type-definitions/index.d.ts +0 -12
- package/utils/README.md +0 -4
- package/utils/icon.list.d.ts +0 -7
- package/utils/id.generator.d.ts +0 -59
- package/utils/index.d.ts +0 -8
- package/utils/theme/clone-deep.d.ts +0 -7
- package/utils/theme/create-class.d.ts +0 -7
- package/utils/theme/create-theme.d.ts +0 -7
- package/utils/theme/is-object.d.ts +0 -7
- package/utils/theme/merge-theme.d.ts +0 -8
- package/utils/theme/to-string.d.ts +0 -7
|
@@ -1,282 +1,376 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createTheme, mergeDeep, colorToTheme } from 'flowbite-angular';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { InjectionToken, inject,
|
|
3
|
+
import { InjectionToken, inject, input, booleanAttribute, computed, Directive } from '@angular/core';
|
|
4
|
+
import { createStateToken, createStateProvider, createStateInjector, createState } from 'ng-primitives/state';
|
|
4
5
|
import { twMerge } from 'tailwind-merge';
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
6
|
+
import * as i2 from 'ng-primitives/button';
|
|
7
|
+
import { NgpButton } from 'ng-primitives/button';
|
|
8
|
+
import * as i3 from 'ng-primitives/interactions';
|
|
9
|
+
import { NgpFocus } from 'ng-primitives/interactions';
|
|
9
10
|
|
|
11
|
+
const flowbiteBadgeTheme = createTheme({
|
|
12
|
+
host: {
|
|
13
|
+
base: 'inline-flex items-center justify-center font-medium',
|
|
14
|
+
transition: '',
|
|
15
|
+
border: {
|
|
16
|
+
on: 'border',
|
|
17
|
+
off: 'border-0',
|
|
18
|
+
},
|
|
19
|
+
color: {
|
|
20
|
+
default: {
|
|
21
|
+
light: 'border-gray-300 bg-gray-100 text-gray-800',
|
|
22
|
+
dark: 'dark:border-gray-900 dark:bg-gray-800 dark:text-gray-100',
|
|
23
|
+
},
|
|
24
|
+
info: {
|
|
25
|
+
light: 'border-blue-300 bg-blue-100 text-blue-800',
|
|
26
|
+
dark: 'dark:border-blue-900 dark:bg-blue-800 dark:text-blue-100',
|
|
27
|
+
},
|
|
28
|
+
failure: {
|
|
29
|
+
light: 'border-red-300 bg-red-100 text-red-800',
|
|
30
|
+
dark: 'dark:border-red-900 dark:bg-red-800 dark:text-red-100',
|
|
31
|
+
},
|
|
32
|
+
success: {
|
|
33
|
+
light: 'border-green-300 bg-green-100 text-green-800',
|
|
34
|
+
dark: 'dark:border-green-900 dark:bg-green-800 dark:text-green-100',
|
|
35
|
+
},
|
|
36
|
+
warning: {
|
|
37
|
+
light: 'border-yellow-300 bg-yellow-100 text-yellow-800',
|
|
38
|
+
dark: 'dark:border-yellow-900 dark:bg-yellow-800 dark:text-yellow-100',
|
|
39
|
+
},
|
|
40
|
+
primary: {
|
|
41
|
+
light: 'bg-primary-100 text-primary-800 border-primary-300',
|
|
42
|
+
dark: 'dark:text-primary-100 dark:bg-primary-800 dark:border-primary-900',
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
pill: {
|
|
46
|
+
on: 'rounded-full',
|
|
47
|
+
off: 'rounded',
|
|
48
|
+
},
|
|
49
|
+
size: {
|
|
50
|
+
xs: 'p-1 text-xs',
|
|
51
|
+
sm: 'p-1.5 text-sm',
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
const defaultFlowbiteBadgeConfig = {
|
|
57
|
+
baseTheme: flowbiteBadgeTheme,
|
|
58
|
+
color: 'default',
|
|
59
|
+
border: false,
|
|
60
|
+
pill: false,
|
|
61
|
+
size: 'sm',
|
|
62
|
+
customTheme: {},
|
|
63
|
+
};
|
|
64
|
+
const FlowbiteBadgeConfigToken = new InjectionToken('FlowbiteBadgeConfigToken');
|
|
10
65
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* @
|
|
14
|
-
* ```
|
|
15
|
-
* var theme = inject(FLOWBITE_BADGE_THEME_TOKEN)
|
|
16
|
-
* ```
|
|
66
|
+
* Provide the default Badge configuration
|
|
67
|
+
* @param config The Badge configuration
|
|
68
|
+
* @returns The provider
|
|
17
69
|
*/
|
|
18
|
-
const
|
|
19
|
-
class BadgeThemeService {
|
|
20
|
-
constructor() {
|
|
21
|
-
this.baseTheme = inject(FLOWBITE_BADGE_THEME_TOKEN);
|
|
22
|
-
}
|
|
23
|
-
getClasses(properties) {
|
|
24
|
-
const theme = mergeTheme(this.baseTheme, properties.customStyle);
|
|
25
|
-
const output = {
|
|
26
|
-
rootClass: twMerge(theme.root.base, theme.root.color[properties.color], theme.root.hasBorder[properties.hasBorder], theme.root.size[properties.size], theme.root.isPill[properties.isPill == 'enabled' || properties.isIconOnly == 'enabled'
|
|
27
|
-
? 'enabled'
|
|
28
|
-
: properties.isPill], theme.root.isIconOnly[properties.isIconOnly], theme.root.link[properties.link ? 'enabled' : 'disabled']),
|
|
29
|
-
closeButtonClass: twMerge(theme.closeButton.base, theme.closeButton.color[properties.color]),
|
|
30
|
-
};
|
|
31
|
-
return output;
|
|
32
|
-
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BadgeThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
34
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BadgeThemeService, providedIn: 'root' }); }
|
|
35
|
-
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BadgeThemeService, decorators: [{
|
|
37
|
-
type: Injectable,
|
|
38
|
-
args: [{
|
|
39
|
-
providedIn: 'root',
|
|
40
|
-
}]
|
|
41
|
-
}] });
|
|
42
|
-
|
|
43
|
-
const FLOWBITE_BADGE_COLOR_DEFAULT_VALUE = new InjectionToken('FLOWBITE_BADGE_COLOR_DEFAULT_VALUE');
|
|
44
|
-
const FLOWBITE_BADGE_HAS_BORDER_DEFAULT_VALUE = new InjectionToken('FLOWBITE_BADGE_HAS_BORDER_DEFAULT_VALUE');
|
|
45
|
-
const FLOWBITE_BADGE_SIZE_DEFAULT_VALUE = new InjectionToken('FLOWBITE_BADGE_SIZE_DEFAULT_VALUE');
|
|
46
|
-
const FLOWBITE_BADGE_IS_ICON_ONLY_DEFAULT_VALUE = new InjectionToken('FLOWBITE_BADGE_IS_ICON_ONLY_DEFAULT_VALUE');
|
|
47
|
-
const FLOWBITE_BADGE_IS_PILL_DEFAULT_VALUE = new InjectionToken('FLOWBITE_BADGE_IS_PILL_DEFAULT_VALUE');
|
|
48
|
-
const FLOWBITE_BADGE_CUSTOM_STYLE_DEFAULT_VALUE = new InjectionToken('FLOWBITE_BADGE_CUSTOM_STYLE_DEFAULT_VALUE');
|
|
49
|
-
const FLOWBITE_BADGE_IS_DISMISSABLE_DEFAULT_VALUE = new InjectionToken('FLOWBITE_BADGE_IS_DISMISSABLE_DEFAULT_VALUE');
|
|
50
|
-
const FLOWBITE_BADGE_ON_DISMISS_DEFAULT_VALUE = new InjectionToken('FLOWBITE_BADGE_ON_DISMISS_DEFAULT_VALUE');
|
|
51
|
-
const badgeDefaultValueProvider = makeEnvironmentProviders([
|
|
52
|
-
{
|
|
53
|
-
provide: FLOWBITE_BADGE_COLOR_DEFAULT_VALUE,
|
|
54
|
-
useValue: 'primary',
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
provide: FLOWBITE_BADGE_HAS_BORDER_DEFAULT_VALUE,
|
|
58
|
-
useValue: false,
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
provide: FLOWBITE_BADGE_SIZE_DEFAULT_VALUE,
|
|
62
|
-
useValue: 'xs',
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
provide: FLOWBITE_BADGE_IS_ICON_ONLY_DEFAULT_VALUE,
|
|
66
|
-
useValue: false,
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
provide: FLOWBITE_BADGE_IS_PILL_DEFAULT_VALUE,
|
|
70
|
-
useValue: false,
|
|
71
|
-
},
|
|
70
|
+
const provideFlowbiteBadgeConfig = (config) => [
|
|
72
71
|
{
|
|
73
|
-
provide:
|
|
74
|
-
useValue: {},
|
|
72
|
+
provide: FlowbiteBadgeConfigToken,
|
|
73
|
+
useValue: { ...defaultFlowbiteBadgeConfig, ...config },
|
|
75
74
|
},
|
|
76
|
-
|
|
77
|
-
provide: FLOWBITE_BADGE_IS_DISMISSABLE_DEFAULT_VALUE,
|
|
78
|
-
useValue: false,
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
provide: FLOWBITE_BADGE_ON_DISMISS_DEFAULT_VALUE,
|
|
82
|
-
useValue: undefined,
|
|
83
|
-
},
|
|
84
|
-
]);
|
|
75
|
+
];
|
|
85
76
|
/**
|
|
86
|
-
*
|
|
77
|
+
* Inject the Badge configuration
|
|
78
|
+
* @see {@link defaultFlowbiteBadgeConfig}
|
|
79
|
+
* @returns The configuration
|
|
87
80
|
*/
|
|
88
|
-
|
|
81
|
+
const injectFlowbiteBadgeConfig = () => inject(FlowbiteBadgeConfigToken, { optional: true }) ?? defaultFlowbiteBadgeConfig;
|
|
82
|
+
|
|
83
|
+
const FlowbiteBadgeStateToken = createStateToken('Flowbite Badge');
|
|
84
|
+
const provideFlowbiteBadgeState = createStateProvider(FlowbiteBadgeStateToken);
|
|
85
|
+
const injectFlowbiteBadgeState = createStateInjector(FlowbiteBadgeStateToken);
|
|
86
|
+
const flowbiteBadgeState = createState(FlowbiteBadgeStateToken);
|
|
87
|
+
|
|
88
|
+
class Badge {
|
|
89
89
|
constructor() {
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Optional `FlowbiteRouterLinkDirective` injected
|
|
93
|
-
*/
|
|
94
|
-
this.flowbiteRouterLink = inject(FlowbiteRouterLinkDirective, { optional: true });
|
|
95
|
-
/**
|
|
96
|
-
* Service injected used to generate class
|
|
97
|
-
*/
|
|
98
|
-
this.themeService = inject(BadgeThemeService);
|
|
99
|
-
/**
|
|
100
|
-
* `IcoRegistry` service
|
|
101
|
-
*/
|
|
102
|
-
this.iconRegistry = inject(IconRegistry);
|
|
103
|
-
/**
|
|
104
|
-
* `DomSanitizer` service
|
|
105
|
-
*/
|
|
106
|
-
this.domSanitizer = inject(DomSanitizer);
|
|
107
|
-
//#region properties
|
|
90
|
+
this.config = injectFlowbiteBadgeConfig();
|
|
108
91
|
/**
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
* @default primary
|
|
92
|
+
* @see {@link injectFlowbiteBadgeConfig}
|
|
112
93
|
*/
|
|
113
|
-
this.color =
|
|
94
|
+
this.color = input(this.config.color);
|
|
114
95
|
/**
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
* @default false
|
|
96
|
+
* @see {@link injectFlowbiteBadgeConfig}
|
|
118
97
|
*/
|
|
119
|
-
this.
|
|
98
|
+
this.border = input(this.config.border, { transform: booleanAttribute });
|
|
120
99
|
/**
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
* @default xs
|
|
100
|
+
* @see {@link injectFlowbiteBadgeConfig}
|
|
124
101
|
*/
|
|
125
|
-
this.
|
|
102
|
+
this.pill = input(this.config.pill, { transform: booleanAttribute });
|
|
126
103
|
/**
|
|
127
|
-
*
|
|
128
|
-
*
|
|
129
|
-
* @default false
|
|
104
|
+
* @see {@link injectFlowbiteBadgeConfig}
|
|
130
105
|
*/
|
|
131
|
-
this.
|
|
106
|
+
this.size = input(this.config.size);
|
|
132
107
|
/**
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
* @default false
|
|
108
|
+
* @see {@link injectFlowbiteBadgeConfig}
|
|
136
109
|
*/
|
|
137
|
-
this.
|
|
110
|
+
this.customTheme = input(this.config.customTheme);
|
|
111
|
+
this.theme = computed(() => {
|
|
112
|
+
const mergedTheme = mergeDeep(this.config.baseTheme, this.state.customTheme());
|
|
113
|
+
return {
|
|
114
|
+
host: {
|
|
115
|
+
root: twMerge(mergedTheme.host.base, mergedTheme.host.transition, colorToTheme(mergedTheme.host.color, this.state.color()), mergedTheme.host.border[this.state.border() ? 'on' : 'off'], mergedTheme.host.pill[this.state.pill() ? 'on' : 'off'], mergedTheme.host.size[this.state.size()]),
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
});
|
|
138
119
|
/**
|
|
139
|
-
*
|
|
120
|
+
* @internal
|
|
140
121
|
*/
|
|
141
|
-
this.
|
|
122
|
+
this.state = flowbiteBadgeState(this);
|
|
123
|
+
}
|
|
124
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: Badge, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
125
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: Badge, isStandalone: true, selector: "\n span[flowbiteBadge]\n ", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, border: { classPropertyName: "border", publicName: "border", isSignal: true, isRequired: false, transformFunction: null }, pill: { classPropertyName: "pill", publicName: "pill", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, customTheme: { classPropertyName: "customTheme", publicName: "customTheme", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "theme().host.root" } }, providers: [provideFlowbiteBadgeState()], exportAs: ["flowbiteBadge"], ngImport: i0 }); }
|
|
126
|
+
}
|
|
127
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: Badge, decorators: [{
|
|
128
|
+
type: Directive,
|
|
129
|
+
args: [{
|
|
130
|
+
standalone: true,
|
|
131
|
+
selector: `
|
|
132
|
+
span[flowbiteBadge]
|
|
133
|
+
`,
|
|
134
|
+
exportAs: 'flowbiteBadge',
|
|
135
|
+
hostDirectives: [],
|
|
136
|
+
providers: [provideFlowbiteBadgeState()],
|
|
137
|
+
host: {
|
|
138
|
+
'[class]': `theme().host.root`,
|
|
139
|
+
},
|
|
140
|
+
}]
|
|
141
|
+
}] });
|
|
142
|
+
|
|
143
|
+
const flowbiteBadgeLinkTheme = createTheme({
|
|
144
|
+
host: {
|
|
145
|
+
base: 'data-hover:cursor-pointer',
|
|
146
|
+
transition: '',
|
|
147
|
+
color: {
|
|
148
|
+
default: {
|
|
149
|
+
light: 'data-hover:bg-gray-200',
|
|
150
|
+
dark: 'dark:data-hover:bg-gray-700',
|
|
151
|
+
},
|
|
152
|
+
info: {
|
|
153
|
+
light: 'data-hover:bg-blue-200',
|
|
154
|
+
dark: 'dark:data-hover:bg-blue-900',
|
|
155
|
+
},
|
|
156
|
+
failure: {
|
|
157
|
+
light: 'data-hover:bg-red-200',
|
|
158
|
+
dark: 'dark:data-hover:bg-red-900',
|
|
159
|
+
},
|
|
160
|
+
success: {
|
|
161
|
+
light: 'data-hover:bg-green-200',
|
|
162
|
+
dark: 'dark:data-hover:bg-green-900',
|
|
163
|
+
},
|
|
164
|
+
warning: {
|
|
165
|
+
light: 'data-hover:bg-yellow-200',
|
|
166
|
+
dark: 'dark:data-hover:bg-yellow-900',
|
|
167
|
+
},
|
|
168
|
+
primary: {
|
|
169
|
+
light: 'data-hover:bg-primary-200',
|
|
170
|
+
dark: 'dark:data-hover:bg-primary-900',
|
|
171
|
+
},
|
|
172
|
+
},
|
|
173
|
+
},
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
const defaultFlowbiteBadgeLinkConfig = {
|
|
177
|
+
baseTheme: flowbiteBadgeLinkTheme,
|
|
178
|
+
customTheme: {},
|
|
179
|
+
};
|
|
180
|
+
const FlowbiteBadgeLinkConfigToken = new InjectionToken('FlowbiteBadgeLinkConfigToken');
|
|
181
|
+
/**
|
|
182
|
+
* Provide the default BadgeLink configuration
|
|
183
|
+
* @param config The BadgeLink configuration
|
|
184
|
+
* @returns The provider
|
|
185
|
+
*/
|
|
186
|
+
const provideFlowbiteBadgeLinkConfig = (config) => [
|
|
187
|
+
{
|
|
188
|
+
provide: FlowbiteBadgeLinkConfigToken,
|
|
189
|
+
useValue: { ...defaultFlowbiteBadgeLinkConfig, ...config },
|
|
190
|
+
},
|
|
191
|
+
];
|
|
192
|
+
/**
|
|
193
|
+
* Inject the BadgeLink configuration
|
|
194
|
+
* @see {@link defaultFlowbiteBadgeLinkConfig}
|
|
195
|
+
* @returns The configuration
|
|
196
|
+
*/
|
|
197
|
+
const injectFlowbiteBadgeLinkConfig = () => inject(FlowbiteBadgeLinkConfigToken, { optional: true }) ?? defaultFlowbiteBadgeLinkConfig;
|
|
198
|
+
|
|
199
|
+
const FlowbiteBadgeLinkStateToken = createStateToken('Flowbite BadgeLink');
|
|
200
|
+
const provideFlowbiteBadgeLinkState = createStateProvider(FlowbiteBadgeLinkStateToken);
|
|
201
|
+
const injectFlowbiteBadgeLinkState = createStateInjector(FlowbiteBadgeLinkStateToken);
|
|
202
|
+
const flowbiteBadgeLinkState = createState(FlowbiteBadgeLinkStateToken);
|
|
203
|
+
|
|
204
|
+
class BadgeLink {
|
|
205
|
+
constructor() {
|
|
206
|
+
this.config = injectFlowbiteBadgeLinkConfig();
|
|
207
|
+
this.badgeState = injectFlowbiteBadgeState();
|
|
142
208
|
/**
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
* @default false
|
|
209
|
+
* @see {@link injectFlowbiteBadgeLinkConfig}
|
|
146
210
|
*/
|
|
147
|
-
this.
|
|
211
|
+
this.customTheme = input(this.config.customTheme);
|
|
212
|
+
this.theme = computed(() => {
|
|
213
|
+
const mergedTheme = mergeDeep(this.config.baseTheme, this.state.customTheme());
|
|
214
|
+
return {
|
|
215
|
+
host: {
|
|
216
|
+
root: twMerge(mergedTheme.host.base, mergedTheme.host.transition, colorToTheme(mergedTheme.host.color, this.badgeState().color())),
|
|
217
|
+
},
|
|
218
|
+
};
|
|
219
|
+
});
|
|
148
220
|
/**
|
|
149
|
-
*
|
|
150
|
-
*
|
|
151
|
-
* @default undefined
|
|
221
|
+
* @internal
|
|
152
222
|
*/
|
|
153
|
-
this.
|
|
154
|
-
}
|
|
155
|
-
//#endregion
|
|
156
|
-
//#region BaseComponent implementation
|
|
157
|
-
fetchClass() {
|
|
158
|
-
return this.themeService.getClasses({
|
|
159
|
-
color: this.color(),
|
|
160
|
-
hasBorder: booleanToFlowbiteBoolean(this.hasBorder()),
|
|
161
|
-
size: this.size(),
|
|
162
|
-
isIconOnly: booleanToFlowbiteBoolean(this.isIconOnly()),
|
|
163
|
-
isPill: booleanToFlowbiteBoolean(this.isPill()),
|
|
164
|
-
link: this.flowbiteRouterLink?.routerLink.urlTree ?? null,
|
|
165
|
-
customStyle: this.customStyle(),
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
init() {
|
|
169
|
-
this.iconRegistry.addRawSvgIconInNamepsace('flowbite-angular', 'close', this.domSanitizer.bypassSecurityTrustHtml(CLOSE_SVG_ICON));
|
|
170
|
-
}
|
|
171
|
-
//#endregion
|
|
172
|
-
/**
|
|
173
|
-
* Call the onDismiss function if it's not undefined
|
|
174
|
-
*/
|
|
175
|
-
onDismissClick() {
|
|
176
|
-
const func = this.onDismiss();
|
|
177
|
-
if (func)
|
|
178
|
-
func();
|
|
179
|
-
}
|
|
180
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BadgeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
181
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: BadgeComponent, isStandalone: true, selector: "flowbite-badge", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, hasBorder: { classPropertyName: "hasBorder", publicName: "hasBorder", 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 }, isDismissable: { classPropertyName: "isDismissable", publicName: "isDismissable", isSignal: true, isRequired: false, transformFunction: null }, onDismiss: { classPropertyName: "onDismiss", publicName: "onDismiss", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { color: "colorChange", hasBorder: "hasBorderChange", size: "sizeChange", isIconOnly: "isIconOnlyChange", isPill: "isPillChange", customStyle: "customStyleChange", isDismissable: "isDismissableChange", onDismiss: "onDismissChange" }, usesInheritance: true, ngImport: i0, template: `
|
|
182
|
-
<ng-content />
|
|
183
|
-
@if (isDismissable()) {
|
|
184
|
-
<button
|
|
185
|
-
type="button"
|
|
186
|
-
[class]="contentClasses()!.closeButtonClass"
|
|
187
|
-
aria-label="Close"
|
|
188
|
-
(click)="onDismissClick()">
|
|
189
|
-
<span class="sr-only">Close</span>
|
|
190
|
-
<flowbite-icon
|
|
191
|
-
svgIcon="flowbite-angular:close"
|
|
192
|
-
class="h-3 w-3" />
|
|
193
|
-
</button>
|
|
223
|
+
this.state = flowbiteBadgeLinkState(this);
|
|
194
224
|
}
|
|
195
|
-
|
|
225
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BadgeLink, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
226
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: BadgeLink, isStandalone: true, selector: "\n button[flowbiteBadgeLink],\n a[flowbiteBadgeLink]\n ", inputs: { customTheme: { classPropertyName: "customTheme", publicName: "customTheme", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "theme().host.root" } }, providers: [provideFlowbiteBadgeLinkState()], exportAs: ["flowbiteBadgeLink"], hostDirectives: [{ directive: Badge, inputs: ["color", "color", "border", "border", "pill", "pill", "size", "size", "customTheme", "badgeCustomTheme"] }, { directive: i2.NgpButton, inputs: ["disabled", "disabled"] }, { directive: i3.NgpFocus }], ngImport: i0 }); }
|
|
196
227
|
}
|
|
197
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
198
|
-
type:
|
|
228
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BadgeLink, decorators: [{
|
|
229
|
+
type: Directive,
|
|
199
230
|
args: [{
|
|
200
231
|
standalone: true,
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
<ng-content />
|
|
205
|
-
@if (isDismissable()) {
|
|
206
|
-
<button
|
|
207
|
-
type="button"
|
|
208
|
-
[class]="contentClasses()!.closeButtonClass"
|
|
209
|
-
aria-label="Close"
|
|
210
|
-
(click)="onDismissClick()">
|
|
211
|
-
<span class="sr-only">Close</span>
|
|
212
|
-
<flowbite-icon
|
|
213
|
-
svgIcon="flowbite-angular:close"
|
|
214
|
-
class="h-3 w-3" />
|
|
215
|
-
</button>
|
|
216
|
-
}
|
|
232
|
+
selector: `
|
|
233
|
+
button[flowbiteBadgeLink],
|
|
234
|
+
a[flowbiteBadgeLink]
|
|
217
235
|
`,
|
|
218
|
-
|
|
219
|
-
|
|
236
|
+
exportAs: 'flowbiteBadgeLink',
|
|
237
|
+
hostDirectives: [
|
|
238
|
+
{
|
|
239
|
+
directive: Badge,
|
|
240
|
+
inputs: ['color', 'border', 'pill', 'size', 'customTheme:badgeCustomTheme'],
|
|
241
|
+
outputs: [],
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
directive: NgpButton,
|
|
245
|
+
inputs: ['disabled:disabled'],
|
|
246
|
+
outputs: [],
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
directive: NgpFocus,
|
|
250
|
+
inputs: [],
|
|
251
|
+
outputs: [],
|
|
252
|
+
},
|
|
253
|
+
],
|
|
254
|
+
providers: [provideFlowbiteBadgeLinkState()],
|
|
255
|
+
host: { '[class]': `theme().host.root` },
|
|
220
256
|
}]
|
|
221
257
|
}] });
|
|
222
258
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
const badgeTheme = createTheme({
|
|
227
|
-
root: {
|
|
228
|
-
base: 'flex h-fit items-center gap-1 font-semibold',
|
|
229
|
-
color: {
|
|
230
|
-
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 border-primary-300 dark:border-primary-800',
|
|
231
|
-
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 border-gray-300 dark:border-gray-600',
|
|
232
|
-
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 border-blue-300 dark:border-blue-800',
|
|
233
|
-
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 border-red-300 dark:border-red-800',
|
|
234
|
-
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 border-green-300 dark:border-green-800',
|
|
235
|
-
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 border-yellow-300 dark:border-yellow-800',
|
|
236
|
-
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 border-indigo-300 dark:border-indigo-800',
|
|
237
|
-
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 border-purple-300 dark:border-purple-800',
|
|
238
|
-
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 border-pink-300 dark:border-pink-800',
|
|
239
|
-
},
|
|
240
|
-
hasBorder: {
|
|
241
|
-
enabled: 'border',
|
|
242
|
-
disabled: 'border-0',
|
|
243
|
-
},
|
|
244
|
-
size: {
|
|
245
|
-
xs: 'text-xs p-1',
|
|
246
|
-
sm: 'text-sm p-1.5',
|
|
247
|
-
},
|
|
248
|
-
isPill: {
|
|
249
|
-
enabled: 'rounded-full',
|
|
250
|
-
disabled: 'rounded',
|
|
251
|
-
},
|
|
252
|
-
link: {
|
|
253
|
-
enabled: 'group cursor-pointer',
|
|
254
|
-
disabled: '',
|
|
255
|
-
},
|
|
256
|
-
isIconOnly: {
|
|
257
|
-
enabled: '',
|
|
258
|
-
disabled: 'px-2 py-0.5',
|
|
259
|
-
},
|
|
260
|
-
},
|
|
261
|
-
closeButton: {
|
|
262
|
-
base: 'ms-1 inline-flex items-center rounded-sm p-1 focus:ring-2',
|
|
259
|
+
const flowbiteBadgeButtonTheme = createTheme({
|
|
260
|
+
host: {
|
|
261
|
+
base: 'flex rounded-lg p-1 first:mr-2 last:ml-2 data-hover:cursor-pointer',
|
|
263
262
|
color: {
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
263
|
+
default: {
|
|
264
|
+
light: 'data-hover:bg-gray-300',
|
|
265
|
+
dark: 'dark:data-hover:bg-gray-700',
|
|
266
|
+
},
|
|
267
|
+
info: {
|
|
268
|
+
light: 'data-hover:bg-blue-300',
|
|
269
|
+
dark: 'dark:data-hover:bg-blue-400',
|
|
270
|
+
},
|
|
271
|
+
failure: {
|
|
272
|
+
light: 'data-hover:bg-red-300',
|
|
273
|
+
dark: 'dark:data-hover:bg-red-400',
|
|
274
|
+
},
|
|
275
|
+
success: {
|
|
276
|
+
light: 'data-hover:bg-green-300',
|
|
277
|
+
dark: 'dark:data-hover:bg-green-400',
|
|
278
|
+
},
|
|
279
|
+
warning: {
|
|
280
|
+
light: 'data-hover:bg-yellow-300',
|
|
281
|
+
dark: 'dark:data-hover:bg-yellow-400',
|
|
282
|
+
},
|
|
283
|
+
primary: {
|
|
284
|
+
light: 'data-hover:bg-primary-300',
|
|
285
|
+
dark: 'dark:data-hover:bg-primary-400',
|
|
286
|
+
},
|
|
273
287
|
},
|
|
274
288
|
},
|
|
275
289
|
});
|
|
276
290
|
|
|
291
|
+
const defaultFlowbiteBadgeButtonConfig = {
|
|
292
|
+
baseTheme: flowbiteBadgeButtonTheme,
|
|
293
|
+
customTheme: {},
|
|
294
|
+
};
|
|
295
|
+
const FlowbiteBadgeButtonConfigToken = new InjectionToken('FlowbiteBadgeButtonConfigToken');
|
|
296
|
+
/**
|
|
297
|
+
* Provide the default BadgeButton configuration
|
|
298
|
+
* @param config The BadgeButton configuration
|
|
299
|
+
* @returns The provider
|
|
300
|
+
*/
|
|
301
|
+
const provideFlowbiteBadgeButtonConfig = (config) => [
|
|
302
|
+
{
|
|
303
|
+
provide: FlowbiteBadgeButtonConfigToken,
|
|
304
|
+
useValue: { ...defaultFlowbiteBadgeButtonConfig, ...config },
|
|
305
|
+
},
|
|
306
|
+
];
|
|
307
|
+
/**
|
|
308
|
+
* Inject the BadgeButton configuration
|
|
309
|
+
* @see {@link defaultFlowbiteBadgeButtonConfig}
|
|
310
|
+
* @returns The configuration
|
|
311
|
+
*/
|
|
312
|
+
const injectFlowbiteBadgeButtonConfig = () => inject(FlowbiteBadgeButtonConfigToken, { optional: true }) ?? defaultFlowbiteBadgeButtonConfig;
|
|
313
|
+
|
|
314
|
+
const FlowbiteBadgeButtonStateToken = createStateToken('Flowbite BadgeButton');
|
|
315
|
+
const provideFlowbiteBadgeButtonState = createStateProvider(FlowbiteBadgeButtonStateToken);
|
|
316
|
+
const injectFlowbiteBadgeButtonState = createStateInjector(FlowbiteBadgeButtonStateToken);
|
|
317
|
+
const flowbiteBadgeButtonState = createState(FlowbiteBadgeButtonStateToken);
|
|
318
|
+
|
|
319
|
+
class BadgeButton {
|
|
320
|
+
constructor() {
|
|
321
|
+
this.config = injectFlowbiteBadgeButtonConfig();
|
|
322
|
+
this.badgeState = injectFlowbiteBadgeState();
|
|
323
|
+
/**
|
|
324
|
+
* @see {@link injectFlowbiteBadgeButtonConfig}
|
|
325
|
+
*/
|
|
326
|
+
this.customTheme = input(this.config.customTheme);
|
|
327
|
+
this.theme = computed(() => {
|
|
328
|
+
const mergedTheme = mergeDeep(this.config.baseTheme, this.state.customTheme());
|
|
329
|
+
return {
|
|
330
|
+
host: {
|
|
331
|
+
root: twMerge(mergedTheme.host.base, colorToTheme(mergedTheme.host.color, this.badgeState().color())),
|
|
332
|
+
},
|
|
333
|
+
};
|
|
334
|
+
});
|
|
335
|
+
/**
|
|
336
|
+
* @internal
|
|
337
|
+
*/
|
|
338
|
+
this.state = flowbiteBadgeButtonState(this);
|
|
339
|
+
}
|
|
340
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BadgeButton, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
341
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: BadgeButton, isStandalone: true, selector: "\n button[flowbiteBadgeButton],\n a[flowbiteBadgeButton]\n ", inputs: { customTheme: { classPropertyName: "customTheme", publicName: "customTheme", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "theme().host.root" } }, providers: [provideFlowbiteBadgeButtonState()], exportAs: ["flowbiteBadgeButton"], hostDirectives: [{ directive: i2.NgpButton, inputs: ["disabled", "disabled"] }, { directive: i3.NgpFocus }], ngImport: i0 }); }
|
|
342
|
+
}
|
|
343
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BadgeButton, decorators: [{
|
|
344
|
+
type: Directive,
|
|
345
|
+
args: [{
|
|
346
|
+
standalone: true,
|
|
347
|
+
selector: `
|
|
348
|
+
button[flowbiteBadgeButton],
|
|
349
|
+
a[flowbiteBadgeButton]
|
|
350
|
+
`,
|
|
351
|
+
exportAs: 'flowbiteBadgeButton',
|
|
352
|
+
hostDirectives: [
|
|
353
|
+
{
|
|
354
|
+
directive: NgpButton,
|
|
355
|
+
inputs: ['disabled:disabled'],
|
|
356
|
+
outputs: [],
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
directive: NgpFocus,
|
|
360
|
+
inputs: [],
|
|
361
|
+
outputs: [],
|
|
362
|
+
},
|
|
363
|
+
],
|
|
364
|
+
providers: [provideFlowbiteBadgeButtonState()],
|
|
365
|
+
host: { '[class]': `theme().host.root` },
|
|
366
|
+
}]
|
|
367
|
+
}] });
|
|
368
|
+
|
|
369
|
+
/* Badge */
|
|
370
|
+
|
|
277
371
|
/**
|
|
278
372
|
* Generated bundle index. Do not edit.
|
|
279
373
|
*/
|
|
280
374
|
|
|
281
|
-
export {
|
|
375
|
+
export { Badge, BadgeButton, BadgeLink, FlowbiteBadgeButtonConfigToken, FlowbiteBadgeButtonStateToken, FlowbiteBadgeConfigToken, FlowbiteBadgeLinkConfigToken, FlowbiteBadgeLinkStateToken, FlowbiteBadgeStateToken, defaultFlowbiteBadgeButtonConfig, defaultFlowbiteBadgeConfig, defaultFlowbiteBadgeLinkConfig, flowbiteBadgeButtonState, flowbiteBadgeButtonTheme, flowbiteBadgeLinkState, flowbiteBadgeLinkTheme, flowbiteBadgeState, flowbiteBadgeTheme, injectFlowbiteBadgeButtonConfig, injectFlowbiteBadgeButtonState, injectFlowbiteBadgeConfig, injectFlowbiteBadgeLinkConfig, injectFlowbiteBadgeLinkState, injectFlowbiteBadgeState, provideFlowbiteBadgeButtonConfig, provideFlowbiteBadgeButtonState, provideFlowbiteBadgeConfig, provideFlowbiteBadgeLinkConfig, provideFlowbiteBadgeLinkState, provideFlowbiteBadgeState };
|
|
282
376
|
//# sourceMappingURL=flowbite-angular-badge.mjs.map
|