flowbite-angular 1.2.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 +340 -479
- package/fesm2022/flowbite-angular-accordion.mjs.map +1 -1
- package/fesm2022/flowbite-angular-alert.mjs +309 -240
- package/fesm2022/flowbite-angular-alert.mjs.map +1 -1
- package/fesm2022/flowbite-angular-badge.mjs +334 -136
- package/fesm2022/flowbite-angular-badge.mjs.map +1 -1
- package/fesm2022/flowbite-angular-breadcrumb.mjs +263 -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 +190 -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 +273 -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 +338 -486
- package/fesm2022/flowbite-angular-modal.mjs.map +1 -1
- package/fesm2022/flowbite-angular-navbar.mjs +601 -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 +403 -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 -122
- package/badge/badge.theme.d.ts +0 -45
- 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 -138
- 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 -192
- 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,320 +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
|
-
},
|
|
78
|
-
{
|
|
79
|
-
provide: FLOWBITE_BUTTON_GRADIENT_DUOTONE_DEFAULT_VALUE,
|
|
80
|
-
useValue: undefined,
|
|
81
|
-
},
|
|
28
|
+
const provideFlowbiteBaseButtonConfig = (config) => [
|
|
82
29
|
{
|
|
83
|
-
provide:
|
|
84
|
-
useValue: {},
|
|
30
|
+
provide: FlowbiteBaseButtonConfigToken,
|
|
31
|
+
useValue: { ...defaultFlowbiteBaseButtonConfig, ...config },
|
|
85
32
|
},
|
|
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));
|
|
43
|
+
this.config = injectFlowbiteBaseButtonConfig();
|
|
110
44
|
/**
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
* @default false
|
|
45
|
+
* @see {@link injectFlowbiteBaseButtonConfig}
|
|
114
46
|
*/
|
|
115
|
-
this.
|
|
47
|
+
this.color = input(this.config.color);
|
|
116
48
|
/**
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
* @default solid
|
|
49
|
+
* @see {@link injectFlowbiteBaseButtonConfig}
|
|
120
50
|
*/
|
|
121
|
-
this.
|
|
51
|
+
this.size = input(this.config.size);
|
|
122
52
|
/**
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
* @default false
|
|
53
|
+
* @see {@link injectFlowbiteBaseButtonConfig}
|
|
126
54
|
*/
|
|
127
|
-
this.
|
|
55
|
+
this.pill = input(this.config.pill, { transform: booleanAttribute });
|
|
128
56
|
/**
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
* @default undefined
|
|
57
|
+
* @see {@link injectFlowbiteBaseButtonConfig}
|
|
132
58
|
*/
|
|
133
|
-
this.
|
|
59
|
+
this.outline = input(this.config.outline, { transform: booleanAttribute });
|
|
134
60
|
/**
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
* @default undefined
|
|
61
|
+
* @internal
|
|
138
62
|
*/
|
|
139
|
-
this.
|
|
140
|
-
/**
|
|
141
|
-
* Set the custom style for this button
|
|
142
|
-
*/
|
|
143
|
-
this.customStyle = model(inject(FLOWBITE_BUTTON_CUSTOM_STYLE_DEFAULT_VALUE));
|
|
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
|
-
});
|
|
158
|
-
}
|
|
159
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
160
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", 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: `
|
|
161
|
-
@if (gradientDuoTone() && fill() === 'outline') {
|
|
162
|
-
<span [class]="contentClasses().spanClass">
|
|
163
|
-
<ng-content *ngTemplateOutlet="content" />
|
|
164
|
-
</span>
|
|
165
|
-
} @else {
|
|
166
|
-
<ng-content *ngTemplateOutlet="content" />
|
|
63
|
+
this.state = flowbiteBaseButtonState(this);
|
|
167
64
|
}
|
|
168
|
-
|
|
169
|
-
|
|
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
|
-
|
|
178
|
-
|
|
179
|
-
template: `
|
|
180
|
-
@if (gradientDuoTone() && fill() === 'outline') {
|
|
181
|
-
<span [class]="contentClasses().spanClass">
|
|
182
|
-
<ng-content *ngTemplateOutlet="content" />
|
|
183
|
-
</span>
|
|
184
|
-
} @else {
|
|
185
|
-
<ng-content *ngTemplateOutlet="content" />
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
<ng-template #content>
|
|
189
|
-
<ng-content />
|
|
190
|
-
</ng-template>
|
|
191
|
-
`,
|
|
192
|
-
host: {
|
|
193
|
-
'[attr.type]': 'button',
|
|
194
|
-
},
|
|
195
|
-
encapsulation: ViewEncapsulation.None,
|
|
196
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
71
|
+
standalone: true,
|
|
72
|
+
providers: [provideFlowbiteBaseButtonState()],
|
|
197
73
|
}]
|
|
198
74
|
}] });
|
|
199
75
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
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',
|
|
208
92
|
},
|
|
209
93
|
color: {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
},
|
|
214
|
-
primary: {
|
|
215
|
-
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',
|
|
216
|
-
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',
|
|
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',
|
|
217
97
|
},
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
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',
|
|
221
101
|
},
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
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',
|
|
225
105
|
},
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
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',
|
|
229
109
|
},
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
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',
|
|
233
113
|
},
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
},
|
|
238
|
-
yellow: {
|
|
239
|
-
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',
|
|
240
|
-
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',
|
|
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',
|
|
241
117
|
},
|
|
242
118
|
},
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
gradientMonochrome: {
|
|
248
|
-
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',
|
|
249
|
-
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',
|
|
250
|
-
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',
|
|
251
|
-
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',
|
|
252
|
-
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',
|
|
253
|
-
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',
|
|
254
|
-
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',
|
|
255
|
-
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',
|
|
256
|
-
},
|
|
257
|
-
gradientDuoTone: {
|
|
258
|
-
purpleToBlue: {
|
|
259
|
-
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',
|
|
260
|
-
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',
|
|
261
|
-
},
|
|
262
|
-
cyanToBlue: {
|
|
263
|
-
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',
|
|
264
|
-
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',
|
|
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',
|
|
265
123
|
},
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
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',
|
|
269
127
|
},
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
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',
|
|
273
131
|
},
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
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',
|
|
277
135
|
},
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
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',
|
|
281
139
|
},
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
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',
|
|
285
143
|
},
|
|
286
144
|
},
|
|
287
|
-
size: {
|
|
288
|
-
xs: 'text-xs py-2 px-3',
|
|
289
|
-
sm: 'text-sm py-2 px-3',
|
|
290
|
-
md: 'text-sm px-5 py-2.5',
|
|
291
|
-
lg: 'text-base py-3 px-5',
|
|
292
|
-
xl: 'text-base px-6 py-3.5',
|
|
293
|
-
},
|
|
294
|
-
isPill: {
|
|
295
|
-
enabled: 'rounded-full',
|
|
296
|
-
disabled: 'rounded-lg',
|
|
297
|
-
},
|
|
298
|
-
},
|
|
299
|
-
span: {
|
|
300
|
-
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',
|
|
301
|
-
isPill: {
|
|
302
|
-
enabled: 'rounded-full',
|
|
303
|
-
disabled: 'rounded-md',
|
|
304
|
-
},
|
|
305
|
-
size: {
|
|
306
|
-
xs: 'text-xs py-2 px-3',
|
|
307
|
-
sm: 'text-sm py-2 px-3',
|
|
308
|
-
md: 'text-sm px-5 py-2.5',
|
|
309
|
-
lg: 'text-base py-3 px-5',
|
|
310
|
-
xl: 'text-base px-6 py-3.5',
|
|
311
|
-
},
|
|
312
145
|
},
|
|
313
146
|
});
|
|
314
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
|
+
|
|
315
235
|
/**
|
|
316
236
|
* Generated bundle index. Do not edit.
|
|
317
237
|
*/
|
|
318
238
|
|
|
319
|
-
export {
|
|
239
|
+
export { BaseButton, Button, FlowbiteBaseButtonConfigToken, FlowbiteBaseButtonStateToken, FlowbiteButtonConfigToken, FlowbiteButtonStateToken, defaultFlowbiteBaseButtonConfig, defaultFlowbiteButtonConfig, flowbiteBaseButtonState, flowbiteButtonState, flowbiteButtonTheme, injectFlowbiteBaseButtonConfig, injectFlowbiteBaseButtonState, injectFlowbiteButtonConfig, injectFlowbiteButtonState, provideFlowbiteBaseButtonConfig, provideFlowbiteBaseButtonState, provideFlowbiteButtonConfig, provideFlowbiteButtonState };
|
|
320
240
|
//# sourceMappingURL=flowbite-angular-button.mjs.map
|