flowbite-angular 1.3.0 → 20.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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/{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 +137 -42
- 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,321 +1,240 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createStateToken, createStateProvider, createStateInjector, createState } from 'ng-primitives/state';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { InjectionToken, inject,
|
|
3
|
+
import { InjectionToken, inject, input, booleanAttribute, Directive, computed } from '@angular/core';
|
|
4
|
+
import { createTheme, mergeDeep, colorToTheme } from 'flowbite-angular';
|
|
5
|
+
import * as i1 from 'ng-primitives/button';
|
|
6
|
+
import { NgpButton } from 'ng-primitives/button';
|
|
7
|
+
import * as i2 from 'ng-primitives/interactions';
|
|
8
|
+
import { NgpFocus } from 'ng-primitives/interactions';
|
|
4
9
|
import { twMerge } from 'tailwind-merge';
|
|
5
|
-
import { BaseComponent, booleanToFlowbiteBoolean } from 'flowbite-angular';
|
|
6
|
-
import { NgTemplateOutlet } from '@angular/common';
|
|
7
10
|
|
|
11
|
+
const FlowbiteBaseButtonStateToken = createStateToken('Flowbite BaseButton');
|
|
12
|
+
const provideFlowbiteBaseButtonState = createStateProvider(FlowbiteBaseButtonStateToken);
|
|
13
|
+
const injectFlowbiteBaseButtonState = createStateInjector(FlowbiteBaseButtonStateToken);
|
|
14
|
+
const flowbiteBaseButtonState = createState(FlowbiteBaseButtonStateToken);
|
|
15
|
+
|
|
16
|
+
const defaultFlowbiteBaseButtonConfig = {
|
|
17
|
+
color: 'default',
|
|
18
|
+
size: 'md',
|
|
19
|
+
pill: false,
|
|
20
|
+
outline: false,
|
|
21
|
+
};
|
|
22
|
+
const FlowbiteBaseButtonConfigToken = new InjectionToken('FlowbiteBaseButtonConfigToken');
|
|
8
23
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* @
|
|
12
|
-
* ```
|
|
13
|
-
* var theme = inject(FLOWBITE_BUTTON_THEME_TOKEN)
|
|
14
|
-
* ```
|
|
24
|
+
* Provide the default BaseButton configuration
|
|
25
|
+
* @param config The BaseButton configuration
|
|
26
|
+
* @returns The provider
|
|
15
27
|
*/
|
|
16
|
-
const
|
|
17
|
-
class ButtonThemeService {
|
|
18
|
-
constructor() {
|
|
19
|
-
this.baseTheme = inject(FLOWBITE_BUTTON_THEME_TOKEN);
|
|
20
|
-
}
|
|
21
|
-
getClasses(properties) {
|
|
22
|
-
const theme = mergeTheme(this.baseTheme, properties.customStyle);
|
|
23
|
-
const output = {
|
|
24
|
-
rootClass: twMerge(properties.gradientDuoTone && properties.fill == 'outline'
|
|
25
|
-
? theme.root.base['span']
|
|
26
|
-
: `${theme.root.base['default']} ${theme.root.size[properties.size]}`, properties.gradientDuoTone
|
|
27
|
-
? theme.root.gradientDuoTone[properties.gradientDuoTone][properties.fill]
|
|
28
|
-
: properties.gradientMonochrome
|
|
29
|
-
? theme.root.gradientMonochrome[properties.gradientMonochrome]
|
|
30
|
-
: theme.root.color[properties.color][properties.fill], theme.root.isPill[properties.isPill], theme.root.isDisabled[properties.isDisabled]),
|
|
31
|
-
spanClass: twMerge(theme.span.base, theme.span.isPill[properties.isPill], theme.span.size[properties.size]),
|
|
32
|
-
};
|
|
33
|
-
return output;
|
|
34
|
-
}
|
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ButtonThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
36
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ButtonThemeService, providedIn: 'root' }); }
|
|
37
|
-
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ButtonThemeService, decorators: [{
|
|
39
|
-
type: Injectable,
|
|
40
|
-
args: [{
|
|
41
|
-
providedIn: 'root',
|
|
42
|
-
}]
|
|
43
|
-
}] });
|
|
44
|
-
|
|
45
|
-
const FLOWBITE_BUTTON_COLOR_DEFAULT_VALUE = new InjectionToken('FLOWBITE_BUTTON_COLOR_DEFAULT_VALUE');
|
|
46
|
-
const FLOWBITE_BUTTON_SIZE_DEFAULT_VALUE = new InjectionToken('FLOWBITE_BUTTON_SIZE_DEFAULT_VALUE');
|
|
47
|
-
const FLOWBITE_BUTTON_IS_PILL_DEFAULT_VALUE = new InjectionToken('FLOWBITE_BUTTON_IS_PILL_DEFAULT_VALUE');
|
|
48
|
-
const FLOWBITE_BUTTON_FILL_DEFAULT_VALUE = new InjectionToken('FLOWBITE_BUTTON_FILL_DEFAULT_VALUE');
|
|
49
|
-
const FLOWBITE_BUTTON_IS_DISABLED_DEFAULT_VALUE = new InjectionToken('FLOWBITE_BUTTON_IS_DISABLED_DEFAULT_VALUE');
|
|
50
|
-
const FLOWBITE_BUTTON_GRADIENT_MONOCHROME_DEFAULT_VALUE = new InjectionToken('FLOWBITE_BUTTON_GRADIENT_MONOCHROME_DEFAULT_VALUE');
|
|
51
|
-
const FLOWBITE_BUTTON_GRADIENT_DUOTONE_DEFAULT_VALUE = new InjectionToken('FLOWBITE_BUTTON_GRADIENT_DUOTONE_DEFAULT_VALUE');
|
|
52
|
-
const FLOWBITE_BUTTON_CUSTOM_STYLE_DEFAULT_VALUE = new InjectionToken('FLOWBITE_BUTTON_CUSTOM_STYLE_DEFAULT_VALUE');
|
|
53
|
-
const buttonDefaultValueProvider = makeEnvironmentProviders([
|
|
54
|
-
{
|
|
55
|
-
provide: FLOWBITE_BUTTON_COLOR_DEFAULT_VALUE,
|
|
56
|
-
useValue: 'primary',
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
provide: FLOWBITE_BUTTON_SIZE_DEFAULT_VALUE,
|
|
60
|
-
useValue: 'md',
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
provide: FLOWBITE_BUTTON_IS_PILL_DEFAULT_VALUE,
|
|
64
|
-
useValue: false,
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
provide: FLOWBITE_BUTTON_FILL_DEFAULT_VALUE,
|
|
68
|
-
useValue: 'solid',
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
provide: FLOWBITE_BUTTON_IS_DISABLED_DEFAULT_VALUE,
|
|
72
|
-
useValue: false,
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
provide: FLOWBITE_BUTTON_GRADIENT_MONOCHROME_DEFAULT_VALUE,
|
|
76
|
-
useValue: undefined,
|
|
77
|
-
},
|
|
28
|
+
const provideFlowbiteBaseButtonConfig = (config) => [
|
|
78
29
|
{
|
|
79
|
-
provide:
|
|
80
|
-
useValue:
|
|
30
|
+
provide: FlowbiteBaseButtonConfigToken,
|
|
31
|
+
useValue: { ...defaultFlowbiteBaseButtonConfig, ...config },
|
|
81
32
|
},
|
|
82
|
-
|
|
83
|
-
provide: FLOWBITE_BUTTON_CUSTOM_STYLE_DEFAULT_VALUE,
|
|
84
|
-
useValue: {},
|
|
85
|
-
},
|
|
86
|
-
]);
|
|
33
|
+
];
|
|
87
34
|
/**
|
|
88
|
-
*
|
|
35
|
+
* Inject the BaseButton configuration
|
|
36
|
+
* @see {@link defaultFlowbiteBaseButtonConfig}
|
|
37
|
+
* @returns The configuration
|
|
89
38
|
*/
|
|
90
|
-
|
|
39
|
+
const injectFlowbiteBaseButtonConfig = () => inject(FlowbiteBaseButtonConfigToken, { optional: true }) ?? defaultFlowbiteBaseButtonConfig;
|
|
40
|
+
|
|
41
|
+
class BaseButton {
|
|
91
42
|
constructor() {
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Service injected used to generate class
|
|
95
|
-
*/
|
|
96
|
-
this.themeService = inject(ButtonThemeService);
|
|
97
|
-
//#region properties
|
|
98
|
-
/**
|
|
99
|
-
* Set the button color
|
|
100
|
-
*
|
|
101
|
-
* @default primary
|
|
102
|
-
*/
|
|
103
|
-
this.color = model(inject(FLOWBITE_BUTTON_COLOR_DEFAULT_VALUE));
|
|
104
|
-
/**
|
|
105
|
-
* Set the button size
|
|
106
|
-
*
|
|
107
|
-
* @default md
|
|
108
|
-
*/
|
|
109
|
-
this.size = model(inject(FLOWBITE_BUTTON_SIZE_DEFAULT_VALUE));
|
|
110
|
-
/**
|
|
111
|
-
* Set if the button is pill
|
|
112
|
-
*
|
|
113
|
-
* @default false
|
|
114
|
-
*/
|
|
115
|
-
this.isPill = model(inject(FLOWBITE_BUTTON_IS_PILL_DEFAULT_VALUE));
|
|
43
|
+
this.config = injectFlowbiteBaseButtonConfig();
|
|
116
44
|
/**
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
* @default solid
|
|
45
|
+
* @see {@link injectFlowbiteBaseButtonConfig}
|
|
120
46
|
*/
|
|
121
|
-
this.
|
|
47
|
+
this.color = input(this.config.color);
|
|
122
48
|
/**
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
* @default false
|
|
49
|
+
* @see {@link injectFlowbiteBaseButtonConfig}
|
|
126
50
|
*/
|
|
127
|
-
this.
|
|
51
|
+
this.size = input(this.config.size);
|
|
128
52
|
/**
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
* @default undefined
|
|
53
|
+
* @see {@link injectFlowbiteBaseButtonConfig}
|
|
132
54
|
*/
|
|
133
|
-
this.
|
|
55
|
+
this.pill = input(this.config.pill, { transform: booleanAttribute });
|
|
134
56
|
/**
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
* @default undefined
|
|
57
|
+
* @see {@link injectFlowbiteBaseButtonConfig}
|
|
138
58
|
*/
|
|
139
|
-
this.
|
|
59
|
+
this.outline = input(this.config.outline, { transform: booleanAttribute });
|
|
140
60
|
/**
|
|
141
|
-
*
|
|
61
|
+
* @internal
|
|
142
62
|
*/
|
|
143
|
-
this.
|
|
144
|
-
}
|
|
145
|
-
//#endregion
|
|
146
|
-
//#region BaseComponent implementation
|
|
147
|
-
fetchClass() {
|
|
148
|
-
return this.themeService.getClasses({
|
|
149
|
-
color: this.color(),
|
|
150
|
-
isDisabled: booleanToFlowbiteBoolean(this.isDisabled()),
|
|
151
|
-
fill: this.fill(),
|
|
152
|
-
isPill: booleanToFlowbiteBoolean(this.isPill()),
|
|
153
|
-
size: this.size(),
|
|
154
|
-
gradientMonochrome: this.gradientMonochrome(),
|
|
155
|
-
gradientDuoTone: this.gradientDuoTone(),
|
|
156
|
-
customStyle: this.customStyle(),
|
|
157
|
-
});
|
|
63
|
+
this.state = flowbiteBaseButtonState(this);
|
|
158
64
|
}
|
|
159
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
160
|
-
static { this.ɵ
|
|
161
|
-
@if (gradientDuoTone() && fill() === 'outline') {
|
|
162
|
-
<span [class]="contentClasses().spanClass">
|
|
163
|
-
<ng-content *ngTemplateOutlet="content" />
|
|
164
|
-
</span>
|
|
165
|
-
} @else {
|
|
166
|
-
<ng-content *ngTemplateOutlet="content" />
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
<ng-template #content>
|
|
170
|
-
<ng-content />
|
|
171
|
-
</ng-template>
|
|
172
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BaseButton, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
66
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: BaseButton, isStandalone: true, inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, pill: { classPropertyName: "pill", publicName: "pill", isSignal: true, isRequired: false, transformFunction: null }, outline: { classPropertyName: "outline", publicName: "outline", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideFlowbiteBaseButtonState()], ngImport: i0 }); }
|
|
173
67
|
}
|
|
174
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
175
|
-
type:
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BaseButton, decorators: [{
|
|
69
|
+
type: Directive,
|
|
176
70
|
args: [{
|
|
177
71
|
standalone: true,
|
|
178
|
-
|
|
179
|
-
selector: 'flowbite-button',
|
|
180
|
-
template: `
|
|
181
|
-
@if (gradientDuoTone() && fill() === 'outline') {
|
|
182
|
-
<span [class]="contentClasses().spanClass">
|
|
183
|
-
<ng-content *ngTemplateOutlet="content" />
|
|
184
|
-
</span>
|
|
185
|
-
} @else {
|
|
186
|
-
<ng-content *ngTemplateOutlet="content" />
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
<ng-template #content>
|
|
190
|
-
<ng-content />
|
|
191
|
-
</ng-template>
|
|
192
|
-
`,
|
|
193
|
-
host: {
|
|
194
|
-
'[attr.type]': 'button',
|
|
195
|
-
},
|
|
196
|
-
encapsulation: ViewEncapsulation.None,
|
|
197
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
72
|
+
providers: [provideFlowbiteBaseButtonState()],
|
|
198
73
|
}]
|
|
199
74
|
}] });
|
|
200
75
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
76
|
+
const flowbiteButtonTheme = createTheme({
|
|
77
|
+
host: {
|
|
78
|
+
base: 'flex cursor-pointer items-center justify-center border text-center font-medium',
|
|
79
|
+
transition: '',
|
|
80
|
+
focus: 'data-focus:ring-2',
|
|
81
|
+
disabled: 'data-disabled:cursor-not-allowed data-disabled:opacity-75',
|
|
82
|
+
size: {
|
|
83
|
+
xs: 'px-3 py-2 text-xs',
|
|
84
|
+
sm: 'px-3 py-2 text-sm',
|
|
85
|
+
md: 'px-5 py-2.5 text-sm',
|
|
86
|
+
lg: 'px-5 py-3 text-base',
|
|
87
|
+
xl: 'px-6 py-3.5 text-base',
|
|
88
|
+
},
|
|
89
|
+
pill: {
|
|
90
|
+
on: 'rounded-full',
|
|
91
|
+
off: 'rounded-lg',
|
|
209
92
|
},
|
|
210
93
|
color: {
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
},
|
|
215
|
-
primary: {
|
|
216
|
-
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',
|
|
217
|
-
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',
|
|
218
|
-
},
|
|
219
|
-
red: {
|
|
220
|
-
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',
|
|
221
|
-
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',
|
|
94
|
+
default: {
|
|
95
|
+
light: 'border-gray-200 bg-gray-100 text-gray-700 data-hover:bg-gray-200',
|
|
96
|
+
dark: 'dark:border-gray-900 dark:bg-gray-800 dark:text-gray-100 dark:data-hover:bg-gray-700',
|
|
222
97
|
},
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
98
|
+
info: {
|
|
99
|
+
light: 'border-blue-700 bg-blue-600 text-gray-100 data-hover:bg-blue-700',
|
|
100
|
+
dark: 'dark:border-blue-900 dark:bg-blue-800 dark:text-blue-100 dark:data-hover:bg-blue-900',
|
|
226
101
|
},
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
102
|
+
failure: {
|
|
103
|
+
light: 'border-red-700 bg-red-600 text-gray-100 data-hover:bg-red-700',
|
|
104
|
+
dark: 'dark:border-red-900 dark:bg-red-800 dark:text-red-100 dark:data-hover:bg-red-900',
|
|
230
105
|
},
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
106
|
+
success: {
|
|
107
|
+
light: 'border-green-700 bg-green-600 text-gray-100 data-hover:bg-green-700',
|
|
108
|
+
dark: 'dark:border-green-900 dark:bg-green-800 dark:text-green-100 dark:data-hover:bg-green-900',
|
|
234
109
|
},
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
110
|
+
warning: {
|
|
111
|
+
light: 'border-yellow-700 bg-yellow-600 text-gray-100 data-hover:bg-yellow-700',
|
|
112
|
+
dark: 'dark:border-yellow-900 dark:bg-yellow-800 dark:text-yellow-100 dark:data-hover:bg-yellow-900',
|
|
238
113
|
},
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
114
|
+
primary: {
|
|
115
|
+
light: 'border-primary-800 bg-primary-700 data-hover:bg-primary-800 text-gray-100',
|
|
116
|
+
dark: 'dark:border-primary-900 dark:bg-primary-800 dark:text-primary-100 dark:data-hover:bg-primary-900',
|
|
242
117
|
},
|
|
243
118
|
},
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
gradientMonochrome: {
|
|
249
|
-
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',
|
|
250
|
-
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',
|
|
251
|
-
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',
|
|
252
|
-
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',
|
|
253
|
-
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',
|
|
254
|
-
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',
|
|
255
|
-
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',
|
|
256
|
-
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',
|
|
257
|
-
},
|
|
258
|
-
gradientDuoTone: {
|
|
259
|
-
purpleToBlue: {
|
|
260
|
-
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',
|
|
261
|
-
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',
|
|
119
|
+
colorOutline: {
|
|
120
|
+
default: {
|
|
121
|
+
light: 'border-gray-700 text-gray-700 data-hover:bg-gray-700 data-hover:text-gray-100',
|
|
122
|
+
dark: 'dark:border-gray-300 dark:text-gray-300 dark:data-hover:bg-gray-300 dark:data-hover:text-gray-700',
|
|
262
123
|
},
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
124
|
+
info: {
|
|
125
|
+
light: 'border-blue-700 text-blue-700 data-hover:bg-blue-700 data-hover:text-gray-100',
|
|
126
|
+
dark: 'dark:border-blue-700 dark:text-blue-600 dark:data-hover:bg-blue-700 dark:data-hover:text-gray-100',
|
|
266
127
|
},
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
128
|
+
failure: {
|
|
129
|
+
light: 'border-red-700 text-red-700 data-hover:bg-red-700 data-hover:text-red-100',
|
|
130
|
+
dark: 'dark:border-red-700 dark:text-red-600 dark:data-hover:bg-red-700 dark:data-hover:text-gray-100',
|
|
270
131
|
},
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
132
|
+
success: {
|
|
133
|
+
light: 'border-green-700 text-green-700 data-hover:bg-green-700 data-hover:text-green-100',
|
|
134
|
+
dark: 'dark:border-green-700 dark:text-green-600 dark:data-hover:bg-green-700 dark:data-hover:text-gray-100',
|
|
274
135
|
},
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
136
|
+
warning: {
|
|
137
|
+
light: 'border-yellow-700 text-yellow-700 data-hover:bg-yellow-700 data-hover:text-yellow-100',
|
|
138
|
+
dark: 'dark:border-yellow-700 dark:text-yellow-600 dark:data-hover:bg-yellow-700 dark:data-hover:text-gray-100',
|
|
278
139
|
},
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
},
|
|
283
|
-
redToYellow: {
|
|
284
|
-
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',
|
|
285
|
-
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',
|
|
140
|
+
primary: {
|
|
141
|
+
light: 'border-primary-700 text-primary-700 data-hover:bg-primary-700 data-hover:text-primary-100',
|
|
142
|
+
dark: 'dark:border-primary-700 dark:text-primary-600 dark:data-hover:bg-primary-700 dark:data-hover:text-gray-100',
|
|
286
143
|
},
|
|
287
144
|
},
|
|
288
|
-
size: {
|
|
289
|
-
xs: 'text-xs py-2 px-3',
|
|
290
|
-
sm: 'text-sm py-2 px-3',
|
|
291
|
-
md: 'text-sm px-5 py-2.5',
|
|
292
|
-
lg: 'text-base py-3 px-5',
|
|
293
|
-
xl: 'text-base px-6 py-3.5',
|
|
294
|
-
},
|
|
295
|
-
isPill: {
|
|
296
|
-
enabled: 'rounded-full',
|
|
297
|
-
disabled: 'rounded-lg',
|
|
298
|
-
},
|
|
299
|
-
},
|
|
300
|
-
span: {
|
|
301
|
-
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',
|
|
302
|
-
isPill: {
|
|
303
|
-
enabled: 'rounded-full',
|
|
304
|
-
disabled: 'rounded-md',
|
|
305
|
-
},
|
|
306
|
-
size: {
|
|
307
|
-
xs: 'text-xs py-2 px-3',
|
|
308
|
-
sm: 'text-sm py-2 px-3',
|
|
309
|
-
md: 'text-sm px-5 py-2.5',
|
|
310
|
-
lg: 'text-base py-3 px-5',
|
|
311
|
-
xl: 'text-base px-6 py-3.5',
|
|
312
|
-
},
|
|
313
145
|
},
|
|
314
146
|
});
|
|
315
147
|
|
|
148
|
+
const defaultFlowbiteButtonConfig = {
|
|
149
|
+
baseTheme: flowbiteButtonTheme,
|
|
150
|
+
customTheme: {},
|
|
151
|
+
};
|
|
152
|
+
const FlowbiteButtonConfigToken = new InjectionToken('FlowbiteButtonConfigToken');
|
|
153
|
+
/**
|
|
154
|
+
* Provide the default Button configuration
|
|
155
|
+
* @param config The Button configuration
|
|
156
|
+
* @returns The provider
|
|
157
|
+
*/
|
|
158
|
+
const provideFlowbiteButtonConfig = (config) => [
|
|
159
|
+
{
|
|
160
|
+
provide: FlowbiteButtonConfigToken,
|
|
161
|
+
useValue: { ...defaultFlowbiteButtonConfig, ...config },
|
|
162
|
+
},
|
|
163
|
+
];
|
|
164
|
+
/**
|
|
165
|
+
* Inject the Button configuration
|
|
166
|
+
* @see {@link defaultFlowbiteButtonConfig}
|
|
167
|
+
* @returns The configuration
|
|
168
|
+
*/
|
|
169
|
+
const injectFlowbiteButtonConfig = () => inject(FlowbiteButtonConfigToken, { optional: true }) ?? defaultFlowbiteButtonConfig;
|
|
170
|
+
|
|
171
|
+
const FlowbiteButtonStateToken = createStateToken('Flowbite Button');
|
|
172
|
+
const provideFlowbiteButtonState = createStateProvider(FlowbiteButtonStateToken);
|
|
173
|
+
const injectFlowbiteButtonState = createStateInjector(FlowbiteButtonStateToken);
|
|
174
|
+
const flowbiteButtonState = createState(FlowbiteButtonStateToken);
|
|
175
|
+
|
|
176
|
+
class Button {
|
|
177
|
+
constructor() {
|
|
178
|
+
this.config = injectFlowbiteButtonConfig();
|
|
179
|
+
this.baseButtonState = injectFlowbiteBaseButtonState();
|
|
180
|
+
/**
|
|
181
|
+
* @see {@link injectFlowbiteButtonConfig}
|
|
182
|
+
*/
|
|
183
|
+
this.customTheme = input(this.config.customTheme);
|
|
184
|
+
/**
|
|
185
|
+
* @internal
|
|
186
|
+
*/
|
|
187
|
+
this.state = flowbiteButtonState(this);
|
|
188
|
+
this.theme = computed(() => {
|
|
189
|
+
const mergedTheme = mergeDeep(this.config.baseTheme, this.state.customTheme());
|
|
190
|
+
return {
|
|
191
|
+
host: {
|
|
192
|
+
root: twMerge(mergedTheme.host.base, mergedTheme.host.transition, mergedTheme.host.focus, mergedTheme.host.disabled, mergedTheme.host.size[this.baseButtonState().size()], mergedTheme.host.pill[this.baseButtonState().pill() ? 'on' : 'off'], this.baseButtonState().outline()
|
|
193
|
+
? colorToTheme(mergedTheme.host.colorOutline, this.baseButtonState().color())
|
|
194
|
+
: colorToTheme(mergedTheme.host.color, this.baseButtonState().color())),
|
|
195
|
+
},
|
|
196
|
+
};
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: Button, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
200
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: Button, isStandalone: true, selector: "\n button[flowbiteButton],\n a[flowbiteButton]\n ", inputs: { customTheme: { classPropertyName: "customTheme", publicName: "customTheme", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "theme().host.root" } }, providers: [provideFlowbiteButtonState()], exportAs: ["flowbiteButton"], hostDirectives: [{ directive: i1.NgpButton, inputs: ["disabled", "disabled"] }, { directive: i2.NgpFocus, inputs: ["ngpFocusDisabled", "focusDisabled"], outputs: ["ngpFocus", "ngpFocus"] }, { directive: BaseButton, inputs: ["color", "color", "size", "size", "pill", "pill", "outline", "outline"] }], ngImport: i0 }); }
|
|
201
|
+
}
|
|
202
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: Button, decorators: [{
|
|
203
|
+
type: Directive,
|
|
204
|
+
args: [{
|
|
205
|
+
standalone: true,
|
|
206
|
+
selector: `
|
|
207
|
+
button[flowbiteButton],
|
|
208
|
+
a[flowbiteButton]
|
|
209
|
+
`,
|
|
210
|
+
exportAs: 'flowbiteButton',
|
|
211
|
+
hostDirectives: [
|
|
212
|
+
{
|
|
213
|
+
directive: NgpButton,
|
|
214
|
+
inputs: ['disabled:disabled'],
|
|
215
|
+
outputs: [],
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
directive: NgpFocus,
|
|
219
|
+
inputs: ['ngpFocusDisabled:focusDisabled'],
|
|
220
|
+
outputs: ['ngpFocus'],
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
directive: BaseButton,
|
|
224
|
+
inputs: ['color', 'size', 'pill', 'outline'],
|
|
225
|
+
outputs: [],
|
|
226
|
+
},
|
|
227
|
+
],
|
|
228
|
+
providers: [provideFlowbiteButtonState()],
|
|
229
|
+
host: { '[class]': `theme().host.root` },
|
|
230
|
+
}]
|
|
231
|
+
}] });
|
|
232
|
+
|
|
233
|
+
/* Button */
|
|
234
|
+
|
|
316
235
|
/**
|
|
317
236
|
* Generated bundle index. Do not edit.
|
|
318
237
|
*/
|
|
319
238
|
|
|
320
|
-
export {
|
|
239
|
+
export { BaseButton, Button, FlowbiteBaseButtonConfigToken, FlowbiteBaseButtonStateToken, FlowbiteButtonConfigToken, FlowbiteButtonStateToken, defaultFlowbiteBaseButtonConfig, defaultFlowbiteButtonConfig, flowbiteBaseButtonState, flowbiteButtonState, flowbiteButtonTheme, injectFlowbiteBaseButtonConfig, injectFlowbiteBaseButtonState, injectFlowbiteButtonConfig, injectFlowbiteButtonState, provideFlowbiteBaseButtonConfig, provideFlowbiteBaseButtonState, provideFlowbiteButtonConfig, provideFlowbiteButtonState };
|
|
321
240
|
//# sourceMappingURL=flowbite-angular-button.mjs.map
|