igniteui-webcomponents 6.1.0 → 6.1.1-alpha.0
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/components/accordion/accordion.js +3 -3
- package/components/accordion/accordion.js.map +1 -1
- package/components/avatar/avatar.d.ts +8 -10
- package/components/avatar/avatar.js +26 -26
- package/components/avatar/avatar.js.map +1 -1
- package/components/badge/badge.d.ts +3 -4
- package/components/badge/badge.js +13 -13
- package/components/badge/badge.js.map +1 -1
- package/components/banner/banner.d.ts +2 -3
- package/components/banner/banner.js +8 -4
- package/components/banner/banner.js.map +1 -1
- package/components/button/button-base.d.ts +4 -11
- package/components/button/button-base.js +14 -15
- package/components/button/button-base.js.map +1 -1
- package/components/button/button.js.map +1 -1
- package/components/button/icon-button.d.ts +2 -2
- package/components/button/icon-button.js +1 -1
- package/components/button/icon-button.js.map +1 -1
- package/components/button-group/button-group.js +2 -2
- package/components/button-group/button-group.js.map +1 -1
- package/components/button-group/toggle-button.d.ts +0 -6
- package/components/button-group/toggle-button.js +4 -6
- package/components/button-group/toggle-button.js.map +1 -1
- package/components/calendar/calendar.js +1 -1
- package/components/calendar/calendar.js.map +1 -1
- package/components/calendar/days-view/days-view.js +3 -3
- package/components/calendar/days-view/days-view.js.map +1 -1
- package/components/calendar/months-view/months-view.js +5 -5
- package/components/calendar/months-view/months-view.js.map +1 -1
- package/components/calendar/years-view/years-view.js +5 -5
- package/components/calendar/years-view/years-view.js.map +1 -1
- package/components/card/card.actions.js +1 -1
- package/components/card/card.actions.js.map +1 -1
- package/components/card/card.content.js +1 -1
- package/components/card/card.content.js.map +1 -1
- package/components/card/card.header.js +1 -1
- package/components/card/card.header.js.map +1 -1
- package/components/card/card.js +1 -1
- package/components/card/card.js.map +1 -1
- package/components/card/card.media.js +1 -1
- package/components/card/card.media.js.map +1 -1
- package/components/carousel/carousel-indicator-container.js +1 -1
- package/components/carousel/carousel-indicator-container.js.map +1 -1
- package/components/carousel/carousel-indicator.d.ts +5 -7
- package/components/carousel/carousel-indicator.js +19 -19
- package/components/carousel/carousel-indicator.js.map +1 -1
- package/components/carousel/carousel-slide.d.ts +2 -3
- package/components/carousel/carousel-slide.js +17 -11
- package/components/carousel/carousel-slide.js.map +1 -1
- package/components/carousel/carousel.d.ts +0 -1
- package/components/carousel/carousel.js +15 -11
- package/components/carousel/carousel.js.map +1 -1
- package/components/chat/chat-input.d.ts +41 -0
- package/components/chat/chat-input.js +254 -0
- package/components/chat/chat-input.js.map +1 -0
- package/components/chat/chat-message-list.d.ts +24 -0
- package/components/chat/chat-message-list.js +88 -0
- package/components/chat/chat-message-list.js.map +1 -0
- package/components/chat/chat-message.d.ts +21 -0
- package/components/chat/chat-message.js +52 -0
- package/components/chat/chat-message.js.map +1 -0
- package/components/chat/chat.d.ts +41 -0
- package/components/chat/chat.js +98 -0
- package/components/chat/chat.js.map +1 -0
- package/components/chat/markdown-util.d.ts +2 -0
- package/components/chat/markdown-util.js +22 -0
- package/components/chat/markdown-util.js.map +1 -0
- package/components/chat/message-attachments.d.ts +28 -0
- package/components/chat/message-attachments.js +168 -0
- package/components/chat/message-attachments.js.map +1 -0
- package/components/chat/themes/chat.base.css.d.ts +1 -0
- package/components/chat/themes/chat.base.css.js +3 -0
- package/components/chat/themes/chat.base.css.js.map +1 -0
- package/components/chat/themes/input.base.css.d.ts +1 -0
- package/components/chat/themes/input.base.css.js +3 -0
- package/components/chat/themes/input.base.css.js.map +1 -0
- package/components/chat/themes/message-attachments.base.css.d.ts +1 -0
- package/components/chat/themes/message-attachments.base.css.js +3 -0
- package/components/chat/themes/message-attachments.base.css.js.map +1 -0
- package/components/chat/themes/message-list.base.css.d.ts +1 -0
- package/components/chat/themes/message-list.base.css.js +3 -0
- package/components/chat/themes/message-list.base.css.js.map +1 -0
- package/components/chat/themes/message.base.css.d.ts +1 -0
- package/components/chat/themes/message.base.css.js +3 -0
- package/components/chat/themes/message.base.css.js.map +1 -0
- package/components/chat/types.d.ts +46 -0
- package/components/chat/types.js +8 -0
- package/components/chat/types.js.map +1 -0
- package/components/checkbox/checkbox-base.js.map +1 -1
- package/components/checkbox/checkbox.js +1 -1
- package/components/checkbox/checkbox.js.map +1 -1
- package/components/checkbox/switch.js +1 -1
- package/components/checkbox/switch.js.map +1 -1
- package/components/checkbox/validators.js.map +1 -1
- package/components/chip/chip.js +1 -1
- package/components/chip/chip.js.map +1 -1
- package/components/combo/combo-header.js +1 -1
- package/components/combo/combo-header.js.map +1 -1
- package/components/combo/combo-item.d.ts +4 -6
- package/components/combo/combo-item.js +20 -18
- package/components/combo/combo-item.js.map +1 -1
- package/components/combo/combo.d.ts +1 -1
- package/components/combo/combo.js +14 -14
- package/components/combo/combo.js.map +1 -1
- package/components/common/abort-handler.d.ts +39 -0
- package/components/common/abort-handler.js +19 -0
- package/components/common/abort-handler.js.map +1 -0
- package/components/common/context.d.ts +5 -1
- package/components/common/context.js +2 -1
- package/components/common/context.js.map +1 -1
- package/components/common/controllers/drag.d.ts +3 -2
- package/components/common/controllers/drag.js +7 -6
- package/components/common/controllers/drag.js.map +1 -1
- package/components/common/controllers/focus-ring.d.ts +1 -0
- package/components/common/controllers/focus-ring.js +5 -4
- package/components/common/controllers/focus-ring.js.map +1 -1
- package/components/common/controllers/gestures.d.ts +6 -2
- package/components/common/controllers/gestures.js +15 -11
- package/components/common/controllers/gestures.js.map +1 -1
- package/components/common/controllers/internals.d.ts +33 -0
- package/components/common/controllers/internals.js +25 -0
- package/components/common/controllers/internals.js.map +1 -0
- package/components/common/controllers/key-bindings.d.ts +1 -0
- package/components/common/controllers/key-bindings.js +6 -4
- package/components/common/controllers/key-bindings.js.map +1 -1
- package/components/common/controllers/mutation-observer.d.ts +25 -15
- package/components/common/controllers/mutation-observer.js +23 -12
- package/components/common/controllers/mutation-observer.js.map +1 -1
- package/components/common/controllers/resize-observer.js.map +1 -1
- package/components/common/controllers/root-click.d.ts +58 -13
- package/components/common/controllers/root-click.js +47 -35
- package/components/common/controllers/root-click.js.map +1 -1
- package/components/common/decorators/shadow-options.d.ts +10 -0
- package/components/common/decorators/shadow-options.js +10 -0
- package/components/common/decorators/shadow-options.js.map +1 -0
- package/components/common/definitions/defineAllComponents.js +14 -12
- package/components/common/definitions/defineAllComponents.js.map +1 -1
- package/components/common/mixins/alert.d.ts +1 -2
- package/components/common/mixins/alert.js +13 -9
- package/components/common/mixins/alert.js.map +1 -1
- package/components/common/mixins/combo-box.d.ts +2 -1
- package/components/common/mixins/combo-box.js +0 -2
- package/components/common/mixins/combo-box.js.map +1 -1
- package/components/common/mixins/forms/associated.js +2 -2
- package/components/common/mixins/forms/associated.js.map +1 -1
- package/components/common/mixins/option.d.ts +1 -2
- package/components/common/mixins/option.js +13 -11
- package/components/common/mixins/option.js.map +1 -1
- package/components/common/part-map.js +1 -1
- package/components/common/part-map.js.map +1 -1
- package/components/common/util.d.ts +9 -0
- package/components/common/util.js +9 -1
- package/components/common/util.js.map +1 -1
- package/components/date-picker/date-picker.d.ts +1 -6
- package/components/date-picker/date-picker.js +11 -10
- package/components/date-picker/date-picker.js.map +1 -1
- package/components/date-picker/validators.js.map +1 -1
- package/components/date-range-picker/date-range-picker.d.ts +2 -7
- package/components/date-range-picker/date-range-picker.js +11 -10
- package/components/date-range-picker/date-range-picker.js.map +1 -1
- package/components/date-range-picker/predefined-ranges-area.js +1 -1
- package/components/date-range-picker/predefined-ranges-area.js.map +1 -1
- package/components/date-time-input/date-time-input.js.map +1 -1
- package/components/date-time-input/validators.js.map +1 -1
- package/components/dialog/dialog.js +1 -1
- package/components/dialog/dialog.js.map +1 -1
- package/components/divider/divider.d.ts +5 -3
- package/components/divider/divider.js +17 -15
- package/components/divider/divider.js.map +1 -1
- package/components/dropdown/dropdown-group.d.ts +0 -1
- package/components/dropdown/dropdown-group.js +7 -3
- package/components/dropdown/dropdown-group.js.map +1 -1
- package/components/dropdown/dropdown-header.js +1 -1
- package/components/dropdown/dropdown-header.js.map +1 -1
- package/components/dropdown/dropdown.d.ts +2 -1
- package/components/dropdown/dropdown.js +5 -2
- package/components/dropdown/dropdown.js.map +1 -1
- package/components/expansion-panel/expansion-panel.js +1 -1
- package/components/expansion-panel/expansion-panel.js.map +1 -1
- package/components/file-input/file-input.js.map +1 -1
- package/components/file-input/validators.js.map +1 -1
- package/components/focus-trap/focus-trap.js +4 -4
- package/components/focus-trap/focus-trap.js.map +1 -1
- package/components/icon/icon.d.ts +1 -1
- package/components/icon/icon.js +7 -5
- package/components/icon/icon.js.map +1 -1
- package/components/input/input-base.d.ts +1 -7
- package/components/input/input-base.js +4 -6
- package/components/input/input-base.js.map +1 -1
- package/components/input/input.js.map +1 -1
- package/components/input/themes/shared/input.material.css.js +1 -1
- package/components/input/themes/shared/input.material.css.js.map +1 -1
- package/components/input/validators.js.map +1 -1
- package/components/list/list-header.d.ts +0 -1
- package/components/list/list-header.js +5 -3
- package/components/list/list-header.js.map +1 -1
- package/components/list/list-item.d.ts +0 -1
- package/components/list/list-item.js +7 -3
- package/components/list/list-item.js.map +1 -1
- package/components/list/list.d.ts +0 -1
- package/components/list/list.js +7 -3
- package/components/list/list.js.map +1 -1
- package/components/mask-input/mask-input.js.map +1 -1
- package/components/mask-input/validators.js.map +1 -1
- package/components/nav-drawer/nav-drawer-header-item.js +1 -1
- package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer-item.js +1 -1
- package/components/nav-drawer/nav-drawer-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer.js +1 -1
- package/components/nav-drawer/nav-drawer.js.map +1 -1
- package/components/navbar/navbar.js +1 -1
- package/components/navbar/navbar.js.map +1 -1
- package/components/popover/popover.js +1 -1
- package/components/popover/popover.js.map +1 -1
- package/components/progress/base.d.ts +1 -2
- package/components/progress/base.js +28 -26
- package/components/progress/base.js.map +1 -1
- package/components/radio/radio.js +1 -1
- package/components/radio/radio.js.map +1 -1
- package/components/radio/utils.js.map +1 -1
- package/components/radio-group/radio-group.d.ts +1 -1
- package/components/radio-group/radio-group.js +9 -8
- package/components/radio-group/radio-group.js.map +1 -1
- package/components/rating/rating-symbol.js +1 -1
- package/components/rating/rating-symbol.js.map +1 -1
- package/components/rating/rating.js +1 -1
- package/components/rating/rating.js.map +1 -1
- package/components/resize-container/resize-container.js +1 -1
- package/components/resize-container/resize-container.js.map +1 -1
- package/components/resize-container/resize-controller.d.ts +3 -2
- package/components/resize-container/resize-controller.js +6 -4
- package/components/resize-container/resize-controller.js.map +1 -1
- package/components/ripple/ripple.js +3 -2
- package/components/ripple/ripple.js.map +1 -1
- package/components/select/select-group.d.ts +1 -1
- package/components/select/select-group.js +9 -5
- package/components/select/select-group.js.map +1 -1
- package/components/select/select-header.js +1 -1
- package/components/select/select-header.js.map +1 -1
- package/components/select/select.d.ts +1 -0
- package/components/select/select.js +9 -6
- package/components/select/select.js.map +1 -1
- package/components/select/validators.js.map +1 -1
- package/components/slider/slider-base.js +6 -6
- package/components/slider/slider-base.js.map +1 -1
- package/components/slider/slider-label.js +1 -1
- package/components/slider/slider-label.js.map +1 -1
- package/components/slider/slider.js.map +1 -1
- package/components/snackbar/snackbar.js.map +1 -1
- package/components/stepper/step.js +1 -1
- package/components/stepper/step.js.map +1 -1
- package/components/stepper/stepper.js +1 -1
- package/components/stepper/stepper.js.map +1 -1
- package/components/tabs/tab.js +2 -2
- package/components/tabs/tab.js.map +1 -1
- package/components/tabs/tabs.js +4 -4
- package/components/tabs/tabs.js.map +1 -1
- package/components/textarea/textarea.d.ts +1 -7
- package/components/textarea/textarea.js +7 -9
- package/components/textarea/textarea.js.map +1 -1
- package/components/textarea/themes/shared/textarea.material.css.js +1 -1
- package/components/textarea/themes/shared/textarea.material.css.js.map +1 -1
- package/components/textarea/validators.js.map +1 -1
- package/components/tile-manager/position.d.ts +1 -1
- package/components/tile-manager/position.js.map +1 -1
- package/components/tile-manager/themes/container.js.map +1 -1
- package/components/tile-manager/tile-manager.d.ts +0 -1
- package/components/tile-manager/tile-manager.js +4 -6
- package/components/tile-manager/tile-manager.js.map +1 -1
- package/components/tile-manager/tile.js +1 -1
- package/components/tile-manager/tile.js.map +1 -1
- package/components/tooltip/controller.d.ts +2 -4
- package/components/tooltip/controller.js +11 -20
- package/components/tooltip/controller.js.map +1 -1
- package/components/tooltip/themes/themes.js +1 -1
- package/components/tooltip/themes/themes.js.map +1 -1
- package/components/tooltip/tooltip.d.ts +0 -1
- package/components/tooltip/tooltip.js +37 -33
- package/components/tooltip/tooltip.js.map +1 -1
- package/components/tree/tree-item.d.ts +1 -0
- package/components/tree/tree-item.js +24 -24
- package/components/tree/tree-item.js.map +1 -1
- package/components/tree/tree.d.ts +1 -1
- package/components/tree/tree.js +4 -3
- package/components/tree/tree.js.map +1 -1
- package/components/tree/tree.navigation.d.ts +1 -1
- package/components/tree/tree.navigation.js.map +1 -1
- package/components/tree/tree.selection.d.ts +1 -1
- package/components/tree/tree.selection.js.map +1 -1
- package/components/validation-container/themes/themes.js.map +1 -1
- package/components/validation-container/validation-container.d.ts +1 -1
- package/components/validation-container/validation-container.js +1 -1
- package/components/validation-container/validation-container.js.map +1 -1
- package/custom-elements.json +20068 -19253
- package/igniteui-webcomponents.css-data.json +1 -1
- package/igniteui-webcomponents.html-data.json +1 -1
- package/index.d.ts +7 -0
- package/index.js +5 -0
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/theming/theming-controller.d.ts +1 -1
- package/theming/theming-controller.js +1 -1
- package/theming/theming-controller.js.map +1 -1
- package/web-types.json +2 -2
|
@@ -4,11 +4,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import {
|
|
7
|
+
import { html, LitElement } from 'lit';
|
|
8
8
|
import { property, queryAssignedElements } from 'lit/decorators.js';
|
|
9
9
|
import { addKeybindings, altKey, arrowDown, arrowUp, endKey, homeKey, shiftKey, } from '../common/controllers/key-bindings.js';
|
|
10
10
|
import { registerComponent } from '../common/definitions/register.js';
|
|
11
|
-
import { first, last } from '../common/util.js';
|
|
11
|
+
import { addSafeEventListener, first, last } from '../common/util.js';
|
|
12
12
|
import IgcExpansionPanelComponent from '../expansion-panel/expansion-panel.js';
|
|
13
13
|
import { styles } from './themes/accordion.base.css.js';
|
|
14
14
|
class IgcAccordionComponent extends LitElement {
|
|
@@ -18,7 +18,7 @@ class IgcAccordionComponent extends LitElement {
|
|
|
18
18
|
constructor() {
|
|
19
19
|
super();
|
|
20
20
|
this.singleExpand = false;
|
|
21
|
-
this
|
|
21
|
+
addSafeEventListener(this, 'igcOpening', this.handlePanelOpening);
|
|
22
22
|
addKeybindings(this, {
|
|
23
23
|
skip: this.skipKeybinding,
|
|
24
24
|
bindingDefaults: { preventDefault: true },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property, queryAssignedElements } from 'lit/decorators.js';\n\nimport {\n addKeybindings,\n altKey,\n arrowDown,\n arrowUp,\n endKey,\n homeKey,\n shiftKey,\n} from '../common/controllers/key-bindings.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { addSafeEventListener, first, last } from '../common/util.js';\nimport IgcExpansionPanelComponent from '../expansion-panel/expansion-panel.js';\nimport { styles } from './themes/accordion.base.css.js';\n\n/**\n * The Accordion is a container-based component that can house multiple expansion panels\n * and offers keyboard navigation.\n *\n * @element igc-accordion\n *\n * @slot - Renders the expansion panels inside default slot.\n */\nexport default class IgcAccordionComponent extends LitElement {\n public static readonly tagName = 'igc-accordion';\n public static override styles = styles;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcAccordionComponent, IgcExpansionPanelComponent);\n }\n\n @queryAssignedElements({\n selector: `${IgcExpansionPanelComponent.tagName}:not([disabled])`,\n })\n private enabledPanels!: Array<IgcExpansionPanelComponent>;\n\n /**\n * Allows only one panel to be expanded at a time.\n * @attr single-expand\n */\n @property({ attribute: 'single-expand', reflect: true, type: Boolean })\n public singleExpand = false;\n\n /* blazorSuppress */\n /** Returns all of the accordions's direct igc-expansion-panel children. */\n @queryAssignedElements({ selector: IgcExpansionPanelComponent.tagName })\n public panels!: Array<IgcExpansionPanelComponent>;\n\n constructor() {\n super();\n\n addSafeEventListener(this, 'igcOpening' as any, this.handlePanelOpening);\n\n addKeybindings(this, {\n skip: this.skipKeybinding,\n bindingDefaults: { preventDefault: true },\n })\n .set(homeKey, () =>\n this.getPanelHeader(first(this.enabledPanels)).focus()\n )\n .set(endKey, () => this.getPanelHeader(last(this.enabledPanels)).focus())\n .set(arrowUp, this.navigatePrev)\n .set(arrowDown, this.navigateNext)\n .set([shiftKey, altKey, arrowDown], this.expandAll)\n .set([shiftKey, altKey, arrowUp], this.collapseAll);\n }\n\n private skipKeybinding(target: Element) {\n return !(\n target.matches(IgcExpansionPanelComponent.tagName) &&\n this.enabledPanels.includes(target as IgcExpansionPanelComponent)\n );\n }\n\n private navigatePrev(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this.getNextPanel(current, -1);\n\n if (next !== current) {\n this.getPanelHeader(next).focus();\n }\n }\n\n private navigateNext(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this.getNextPanel(current, 1);\n\n if (next !== current) {\n this.getPanelHeader(next).focus();\n }\n }\n\n private collapseAll() {\n for (const panel of this.enabledPanels) {\n this.closePanel(panel);\n }\n }\n\n private expandAll(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n\n for (const panel of this.enabledPanels) {\n if (this.singleExpand) {\n current === panel ? this.openPanel(panel) : this.closePanel(panel);\n } else {\n this.openPanel(panel);\n }\n }\n }\n\n private handlePanelOpening(event: Event) {\n const current = event.target as IgcExpansionPanelComponent;\n\n if (!(this.singleExpand && this.panels.includes(current))) {\n return;\n }\n\n for (const panel of this.enabledPanels) {\n if (panel.open && panel !== current) {\n this.closePanel(panel);\n }\n }\n }\n\n private getNextPanel(panel: IgcExpansionPanelComponent, dir: 1 | -1 = 1) {\n const idx = this.enabledPanels.indexOf(panel);\n return this.enabledPanels[idx + dir] || panel;\n }\n\n private getPanelHeader(panel: IgcExpansionPanelComponent) {\n return panel.renderRoot.querySelector('div[part=\"header\"]') as HTMLElement;\n }\n\n private async closePanel(panel: IgcExpansionPanelComponent) {\n if (\n !(\n panel.open &&\n panel.emitEvent('igcClosing', { cancelable: true, detail: panel })\n )\n ) {\n return;\n }\n\n await panel.hide();\n panel.emitEvent('igcClosed', { detail: panel });\n }\n\n private async openPanel(panel: IgcExpansionPanelComponent) {\n if (\n panel.open ||\n !panel.emitEvent('igcOpening', { cancelable: true, detail: panel })\n ) {\n return;\n }\n\n await panel.show();\n panel.emitEvent('igcOpened', { detail: panel });\n }\n\n /** Hides all of the child expansion panels' contents. */\n public async hideAll(): Promise<void> {\n await Promise.all(this.panels.map((panel) => panel.hide()));\n }\n\n /** Shows all of the child expansion panels' contents. */\n public async showAll(): Promise<void> {\n await Promise.all(this.panels.map((panel) => panel.show()));\n }\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-accordion': IgcAccordionComponent;\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
1
|
+
import { LitElement, type PropertyValues } from 'lit';
|
|
2
2
|
import type { AvatarShape } from '../types.js';
|
|
3
3
|
/**
|
|
4
4
|
* An avatar component is used as a representation of a user identity
|
|
@@ -17,32 +17,30 @@ export default class IgcAvatarComponent extends LitElement {
|
|
|
17
17
|
static readonly tagName = "igc-avatar";
|
|
18
18
|
static styles: import("lit").CSSResult[];
|
|
19
19
|
static register(): void;
|
|
20
|
-
private
|
|
21
|
-
private
|
|
20
|
+
private readonly _internals;
|
|
21
|
+
private _hasError;
|
|
22
22
|
/**
|
|
23
23
|
* The image source to use.
|
|
24
24
|
* @attr
|
|
25
25
|
*/
|
|
26
|
-
src
|
|
26
|
+
src?: string;
|
|
27
27
|
/**
|
|
28
28
|
* Alternative text for the image.
|
|
29
29
|
* @attr
|
|
30
30
|
*/
|
|
31
|
-
alt
|
|
31
|
+
alt?: string;
|
|
32
32
|
/**
|
|
33
33
|
* Initials to use as a fallback when no image is available.
|
|
34
34
|
* @attr
|
|
35
35
|
*/
|
|
36
|
-
initials
|
|
36
|
+
initials?: string;
|
|
37
37
|
/**
|
|
38
38
|
* The shape of the avatar.
|
|
39
39
|
* @attr
|
|
40
40
|
*/
|
|
41
41
|
shape: AvatarShape;
|
|
42
|
-
|
|
43
|
-
protected
|
|
44
|
-
protected handleErrorState(): void;
|
|
45
|
-
protected handleError(): void;
|
|
42
|
+
protected willUpdate(changedProperties: PropertyValues<this>): void;
|
|
43
|
+
protected _handleError(): void;
|
|
46
44
|
protected render(): import("lit-html").TemplateResult<1>;
|
|
47
45
|
}
|
|
48
46
|
declare global {
|
|
@@ -5,35 +5,42 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
var IgcAvatarComponent_1;
|
|
8
|
-
import {
|
|
8
|
+
import { html, LitElement, nothing } from 'lit';
|
|
9
9
|
import { property, state } from 'lit/decorators.js';
|
|
10
10
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
11
11
|
import { themes } from '../../theming/theming-decorator.js';
|
|
12
|
-
import {
|
|
12
|
+
import { addInternalsController } from '../common/controllers/internals.js';
|
|
13
13
|
import { registerComponent } from '../common/definitions/register.js';
|
|
14
14
|
import { styles } from './themes/avatar.base.css.js';
|
|
15
15
|
import { styles as shared } from './themes/shared/avatar.common.css.js';
|
|
16
16
|
import { all } from './themes/themes.js';
|
|
17
17
|
let IgcAvatarComponent = IgcAvatarComponent_1 = class IgcAvatarComponent extends LitElement {
|
|
18
|
-
static register() {
|
|
19
|
-
registerComponent(IgcAvatarComponent_1);
|
|
20
|
-
}
|
|
21
18
|
constructor() {
|
|
22
|
-
super();
|
|
23
|
-
this.
|
|
19
|
+
super(...arguments);
|
|
20
|
+
this._internals = addInternalsController(this, {
|
|
21
|
+
initialARIA: {
|
|
22
|
+
role: 'image',
|
|
23
|
+
ariaLabel: 'avatar',
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
this._hasError = false;
|
|
24
27
|
this.shape = 'square';
|
|
25
|
-
this.__internals = this.attachInternals();
|
|
26
|
-
this.__internals.role = 'img';
|
|
27
|
-
this.__internals.ariaLabel = 'avatar';
|
|
28
28
|
}
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
static register() {
|
|
30
|
+
registerComponent(IgcAvatarComponent_1);
|
|
31
31
|
}
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
willUpdate(changedProperties) {
|
|
33
|
+
if (changedProperties.has('initials') || changedProperties.has('alt')) {
|
|
34
|
+
this._internals.setARIA({
|
|
35
|
+
ariaRoleDescription: this.alt ?? this.initials,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
if (changedProperties.has('src')) {
|
|
39
|
+
this._hasError = false;
|
|
40
|
+
}
|
|
34
41
|
}
|
|
35
|
-
|
|
36
|
-
this.
|
|
42
|
+
_handleError() {
|
|
43
|
+
this._hasError = true;
|
|
37
44
|
}
|
|
38
45
|
render() {
|
|
39
46
|
return html `
|
|
@@ -41,13 +48,13 @@ let IgcAvatarComponent = IgcAvatarComponent_1 = class IgcAvatarComponent extends
|
|
|
41
48
|
${this.initials
|
|
42
49
|
? html `<span part="initials">${this.initials}</span>`
|
|
43
50
|
: html `<slot></slot>`}
|
|
44
|
-
${this.src && !this.
|
|
51
|
+
${this.src && !this._hasError
|
|
45
52
|
? html `
|
|
46
53
|
<img
|
|
47
54
|
part="image"
|
|
48
55
|
alt=${ifDefined(this.alt)}
|
|
49
56
|
src=${ifDefined(this.src)}
|
|
50
|
-
@error=${this.
|
|
57
|
+
@error=${this._handleError}
|
|
51
58
|
/>
|
|
52
59
|
`
|
|
53
60
|
: nothing}
|
|
@@ -59,7 +66,7 @@ IgcAvatarComponent.tagName = 'igc-avatar';
|
|
|
59
66
|
IgcAvatarComponent.styles = [styles, shared];
|
|
60
67
|
__decorate([
|
|
61
68
|
state()
|
|
62
|
-
], IgcAvatarComponent.prototype, "
|
|
69
|
+
], IgcAvatarComponent.prototype, "_hasError", void 0);
|
|
63
70
|
__decorate([
|
|
64
71
|
property()
|
|
65
72
|
], IgcAvatarComponent.prototype, "src", void 0);
|
|
@@ -72,13 +79,6 @@ __decorate([
|
|
|
72
79
|
__decorate([
|
|
73
80
|
property({ reflect: true })
|
|
74
81
|
], IgcAvatarComponent.prototype, "shape", void 0);
|
|
75
|
-
__decorate([
|
|
76
|
-
watch('initials'),
|
|
77
|
-
watch('alt')
|
|
78
|
-
], IgcAvatarComponent.prototype, "roleDescriptionChange", null);
|
|
79
|
-
__decorate([
|
|
80
|
-
watch('src')
|
|
81
|
-
], IgcAvatarComponent.prototype, "handleErrorState", null);
|
|
82
82
|
IgcAvatarComponent = IgcAvatarComponent_1 = __decorate([
|
|
83
83
|
themes(all)
|
|
84
84
|
], IgcAvatarComponent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../../src/components/avatar/avatar.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../../src/components/avatar/avatar.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAuB,MAAM,KAAK,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAgB1B,IAAM,kBAAkB,0BAAxB,MAAM,kBAAmB,SAAQ,UAAU;IAA3C;;QASI,eAAU,GAAG,sBAAsB,CAAC,IAAI,EAAE;YACzD,WAAW,EAAE;gBACX,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,QAAQ;aACpB;SACF,CAAC,CAAC;QAGK,cAAS,GAAG,KAAK,CAAC;QA4BnB,UAAK,GAAgB,QAAQ,CAAC;IAqCvC,CAAC;IA7EQ,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,oBAAkB,CAAC,CAAC;IACxC,CAAC;IAwCkB,UAAU,CAAC,iBAAuC;QACnE,IAAI,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBACtB,mBAAmB,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ;aAC/C,CAAC,CAAC;QACL,CAAC;QAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAES,YAAY;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,QAAQ;YACb,CAAC,CAAC,IAAI,CAAA,yBAAyB,IAAI,CAAC,QAAQ,SAAS;YACrD,CAAC,CAAC,IAAI,CAAA,eAAe;UACrB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS;YAC3B,CAAC,CAAC,IAAI,CAAA;;;sBAGM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;sBACnB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;yBAChB,IAAI,CAAC,YAAY;;aAE7B;YACH,CAAC,CAAC,OAAO;;KAEd,CAAC;IACJ,CAAC;;AAhFsB,0BAAO,GAAG,YAAY,AAAf,CAAgB;AACvB,yBAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;AAezC;IADP,KAAK,EAAE;qDACkB;AAOnB;IADN,QAAQ,EAAE;+CACS;AAOb;IADN,QAAQ,EAAE;+CACS;AAOb;IADN,QAAQ,EAAE;oDACc;AAOlB;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iDACS;AA7ClB,kBAAkB;IADtC,MAAM,CAAC,GAAG,CAAC;GACS,kBAAkB,CAkFtC;eAlFoB,kBAAkB","sourcesContent":["import { html, LitElement, nothing, type PropertyValues } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { addInternalsController } from '../common/controllers/internals.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { AvatarShape } from '../types.js';\nimport { styles } from './themes/avatar.base.css.js';\nimport { styles as shared } from './themes/shared/avatar.common.css.js';\nimport { all } from './themes/themes.js';\n\n/**\n * An avatar component is used as a representation of a user identity\n * typically in a user profile.\n *\n * @element igc-avatar\n *\n * @slot - Renders an icon inside the default slot.\n *\n * @csspart base - The base wrapper of the avatar.\n * @csspart initials - The initials wrapper of the avatar.\n * @csspart image - The image wrapper of the avatar.\n * @csspart icon - The icon wrapper of the avatar.\n */\n@themes(all)\nexport default class IgcAvatarComponent extends LitElement {\n public static readonly tagName = 'igc-avatar';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcAvatarComponent);\n }\n\n private readonly _internals = addInternalsController(this, {\n initialARIA: {\n role: 'image',\n ariaLabel: 'avatar',\n },\n });\n\n @state()\n private _hasError = false;\n\n /**\n * The image source to use.\n * @attr\n */\n @property()\n public src?: string;\n\n /**\n * Alternative text for the image.\n * @attr\n */\n @property()\n public alt?: string;\n\n /**\n * Initials to use as a fallback when no image is available.\n * @attr\n */\n @property()\n public initials?: string;\n\n /**\n * The shape of the avatar.\n * @attr\n */\n @property({ reflect: true })\n public shape: AvatarShape = 'square';\n\n protected override willUpdate(changedProperties: PropertyValues<this>): void {\n if (changedProperties.has('initials') || changedProperties.has('alt')) {\n this._internals.setARIA({\n ariaRoleDescription: this.alt ?? this.initials,\n });\n }\n\n if (changedProperties.has('src')) {\n this._hasError = false;\n }\n }\n\n protected _handleError(): void {\n this._hasError = true;\n }\n\n protected override render() {\n return html`\n <div part=\"base\">\n ${this.initials\n ? html`<span part=\"initials\">${this.initials}</span>`\n : html`<slot></slot>`}\n ${this.src && !this._hasError\n ? html`\n <img\n part=\"image\"\n alt=${ifDefined(this.alt)}\n src=${ifDefined(this.src)}\n @error=${this._handleError}\n />\n `\n : nothing}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-avatar': IgcAvatarComponent;\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
1
|
+
import { LitElement, type PropertyValues } from 'lit';
|
|
2
2
|
import type { BadgeShape, StyleVariant } from '../types.js';
|
|
3
3
|
/**
|
|
4
4
|
* The badge is a component indicating a status on a related item or an area
|
|
@@ -14,7 +14,7 @@ export default class IgcBadgeComponent extends LitElement {
|
|
|
14
14
|
static readonly tagName = "igc-badge";
|
|
15
15
|
static styles: import("lit").CSSResult[];
|
|
16
16
|
static register(): void;
|
|
17
|
-
private
|
|
17
|
+
private readonly _internals;
|
|
18
18
|
/**
|
|
19
19
|
* The type of badge.
|
|
20
20
|
* @attr
|
|
@@ -30,8 +30,7 @@ export default class IgcBadgeComponent extends LitElement {
|
|
|
30
30
|
* @attr
|
|
31
31
|
*/
|
|
32
32
|
shape: BadgeShape;
|
|
33
|
-
|
|
34
|
-
protected variantChange(): void;
|
|
33
|
+
protected willUpdate(changedProperties: PropertyValues<this>): void;
|
|
35
34
|
protected render(): import("lit-html").TemplateResult<1>;
|
|
36
35
|
}
|
|
37
36
|
declare global {
|
|
@@ -5,28 +5,31 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
var IgcBadgeComponent_1;
|
|
8
|
-
import {
|
|
8
|
+
import { html, LitElement } from 'lit';
|
|
9
9
|
import { property } from 'lit/decorators.js';
|
|
10
10
|
import { themes } from '../../theming/theming-decorator.js';
|
|
11
|
-
import {
|
|
11
|
+
import { addInternalsController } from '../common/controllers/internals.js';
|
|
12
12
|
import { registerComponent } from '../common/definitions/register.js';
|
|
13
13
|
import { styles } from './themes/badge.base.css.js';
|
|
14
14
|
import { styles as shared } from './themes/shared/badge.common.css.js';
|
|
15
15
|
import { all } from './themes/themes.js';
|
|
16
16
|
let IgcBadgeComponent = IgcBadgeComponent_1 = class IgcBadgeComponent extends LitElement {
|
|
17
|
-
static register() {
|
|
18
|
-
registerComponent(IgcBadgeComponent_1);
|
|
19
|
-
}
|
|
20
17
|
constructor() {
|
|
21
|
-
super();
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this._internals = addInternalsController(this, {
|
|
20
|
+
initialARIA: { role: 'status' },
|
|
21
|
+
});
|
|
22
22
|
this.variant = 'primary';
|
|
23
23
|
this.outlined = false;
|
|
24
24
|
this.shape = 'rounded';
|
|
25
|
-
this.__internals = this.attachInternals();
|
|
26
|
-
this.__internals.role = 'status';
|
|
27
25
|
}
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
static register() {
|
|
27
|
+
registerComponent(IgcBadgeComponent_1);
|
|
28
|
+
}
|
|
29
|
+
willUpdate(changedProperties) {
|
|
30
|
+
if (changedProperties.has('variant')) {
|
|
31
|
+
this._internals.setARIA({ ariaRoleDescription: `badge ${this.variant}` });
|
|
32
|
+
}
|
|
30
33
|
}
|
|
31
34
|
render() {
|
|
32
35
|
return html `
|
|
@@ -47,9 +50,6 @@ __decorate([
|
|
|
47
50
|
__decorate([
|
|
48
51
|
property({ reflect: true })
|
|
49
52
|
], IgcBadgeComponent.prototype, "shape", void 0);
|
|
50
|
-
__decorate([
|
|
51
|
-
watch('variant')
|
|
52
|
-
], IgcBadgeComponent.prototype, "variantChange", null);
|
|
53
53
|
IgcBadgeComponent = IgcBadgeComponent_1 = __decorate([
|
|
54
54
|
themes(all)
|
|
55
55
|
], IgcBadgeComponent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.js","sourceRoot":"","sources":["../../../src/components/badge/badge.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"badge.js","sourceRoot":"","sources":["../../../src/components/badge/badge.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAa1B,IAAM,iBAAiB,yBAAvB,MAAM,iBAAkB,SAAQ,UAAU;IAA1C;;QASI,eAAU,GAAG,sBAAsB,CAAC,IAAI,EAAE;YACzD,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAChC,CAAC,CAAC;QAOI,YAAO,GAAiB,SAAS,CAAC;QAOlC,aAAQ,GAAG,KAAK,CAAC;QAOjB,UAAK,GAAe,SAAS,CAAC;IAevC,CAAC;IA1CQ,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,mBAAiB,CAAC,CAAC;IACvC,CAAC;IA2BkB,UAAU,CAAC,iBAAuC;QACnE,IAAI,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,mBAAmB,EAAE,SAAS,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;;;KAIV,CAAC;IACJ,CAAC;;AA7CsB,yBAAO,GAAG,WAAW,AAAd,CAAe;AACtB,wBAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;AAgB1C;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;kDACa;AAOlC;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDACnB;AAOjB;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gDACS;AAhClB,iBAAiB;IADrC,MAAM,CAAC,GAAG,CAAC;GACS,iBAAiB,CA+CrC;eA/CoB,iBAAiB","sourcesContent":["import { html, LitElement, type PropertyValues } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { addInternalsController } from '../common/controllers/internals.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { BadgeShape, StyleVariant } from '../types.js';\nimport { styles } from './themes/badge.base.css.js';\nimport { styles as shared } from './themes/shared/badge.common.css.js';\nimport { all } from './themes/themes.js';\n\n/**\n * The badge is a component indicating a status on a related item or an area\n * where some active indication is required.\n *\n * @element igc-badge\n *\n * @slot - Default slot for the badge.\n *\n * @csspart base - The base wrapper of the badge.\n */\n@themes(all)\nexport default class IgcBadgeComponent extends LitElement {\n public static readonly tagName = 'igc-badge';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcBadgeComponent);\n }\n\n private readonly _internals = addInternalsController(this, {\n initialARIA: { role: 'status' },\n });\n\n /**\n * The type of badge.\n * @attr\n */\n @property({ reflect: true })\n public variant: StyleVariant = 'primary';\n\n /**\n * Sets whether to draw an outlined version of the badge.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public outlined = false;\n\n /**\n * The shape of the badge.\n * @attr\n */\n @property({ reflect: true })\n public shape: BadgeShape = 'rounded';\n\n protected override willUpdate(changedProperties: PropertyValues<this>): void {\n if (changedProperties.has('variant')) {\n this._internals.setARIA({ ariaRoleDescription: `badge ${this.variant}` });\n }\n }\n\n protected override render() {\n return html`\n <span part=\"base\">\n <slot></slot>\n </span>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-badge': IgcBadgeComponent;\n }\n}\n"]}
|
|
@@ -28,9 +28,8 @@ export default class IgcBannerComponent extends IgcBannerComponent_base {
|
|
|
28
28
|
static readonly tagName = "igc-banner";
|
|
29
29
|
static styles: import("lit").CSSResult[];
|
|
30
30
|
static register(): void;
|
|
31
|
-
private
|
|
32
|
-
private
|
|
33
|
-
private _animationPlayer;
|
|
31
|
+
private readonly _bannerRef;
|
|
32
|
+
private readonly _animationPlayer;
|
|
34
33
|
/**
|
|
35
34
|
* Determines whether the banner is being shown/hidden.
|
|
36
35
|
* @attr
|
|
@@ -5,13 +5,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
var IgcBannerComponent_1;
|
|
8
|
-
import {
|
|
8
|
+
import { html, LitElement } from 'lit';
|
|
9
9
|
import { property } from 'lit/decorators.js';
|
|
10
10
|
import { createRef, ref } from 'lit/directives/ref.js';
|
|
11
11
|
import { addAnimationController } from '../../animations/player.js';
|
|
12
12
|
import { growVerIn, growVerOut } from '../../animations/presets/grow/index.js';
|
|
13
13
|
import { themes } from '../../theming/theming-decorator.js';
|
|
14
14
|
import IgcButtonComponent from '../button/button.js';
|
|
15
|
+
import { addInternalsController } from '../common/controllers/internals.js';
|
|
15
16
|
import { registerComponent } from '../common/definitions/register.js';
|
|
16
17
|
import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
|
|
17
18
|
import { styles } from './themes/banner.base.css.js';
|
|
@@ -25,9 +26,12 @@ let IgcBannerComponent = IgcBannerComponent_1 = class IgcBannerComponent extends
|
|
|
25
26
|
this._bannerRef = createRef();
|
|
26
27
|
this._animationPlayer = addAnimationController(this, this._bannerRef);
|
|
27
28
|
this.open = false;
|
|
28
|
-
this
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
addInternalsController(this, {
|
|
30
|
+
initialARIA: {
|
|
31
|
+
role: 'status',
|
|
32
|
+
ariaLive: 'polite',
|
|
33
|
+
},
|
|
34
|
+
});
|
|
31
35
|
}
|
|
32
36
|
async show() {
|
|
33
37
|
if (this.open) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../../src/components/banner/banner.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../../src/components/banner/banner.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { createRef, type Ref, ref } from 'lit/directives/ref.js';\n\nimport { addAnimationController } from '../../animations/player.js';\nimport { growVerIn, growVerOut } from '../../animations/presets/grow/index.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport IgcButtonComponent from '../button/button.js';\nimport { addInternalsController } from '../common/controllers/internals.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { styles } from './themes/banner.base.css.js';\nimport { all } from './themes/themes.js';\n\nexport interface IgcBannerComponentEventMap {\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n}\n\n/**\n * The `igc-banner` component displays important and concise message(s) for a user to address, that is specific to a page or feature.\n *\n * @element igc-banner\n *\n * @slot - Renders the text content of the banner message.\n * @slot prefix - Renders additional content at the start of the message block.\n * @slot actions - Renders any action elements.\n *\n * @fires igcClosing - Emitted before closing the banner - when a user interacts (click) with the default action of the banner.\n * @fires igcClosed - Emitted after the banner is closed - when a user interacts (click) with the default action of the banner.\n *\n * @csspart base - The base wrapper of the banner component.\n * @csspart spacer - The inner wrapper that sets the space around the banner.\n * @csspart message - The part that holds the text and the illustration.\n * @csspart illustration - The part that holds the banner icon/illustration.\n * @csspart content - The part that holds the banner text content.\n * @csspart actions - The part that holds the banner action buttons.\n */\n\n@themes(all)\nexport default class IgcBannerComponent extends EventEmitterMixin<\n IgcBannerComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-banner';\n public static styles = [styles];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcBannerComponent, IgcButtonComponent);\n }\n\n private readonly _bannerRef: Ref<HTMLElement> = createRef();\n private readonly _animationPlayer = addAnimationController(\n this,\n this._bannerRef\n );\n\n /**\n * Determines whether the banner is being shown/hidden.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public open = false;\n\n constructor() {\n super();\n\n addInternalsController(this, {\n initialARIA: {\n role: 'status',\n ariaLive: 'polite',\n },\n });\n }\n\n /** Shows the banner if not already shown. Returns `true` when the animation has completed. */\n public async show(): Promise<boolean> {\n if (this.open) {\n return false;\n }\n\n this.open = true;\n return await this.toggleAnimation('open');\n }\n\n /** Hides the banner if not already hidden. Returns `true` when the animation has completed. */\n public async hide(): Promise<boolean> {\n if (!this.open) {\n return false;\n }\n\n await this.toggleAnimation('close');\n this.open = false;\n return true;\n }\n\n /** Toggles between shown/hidden state. Returns `true` when the animation has completed. */\n public async toggle(): Promise<boolean> {\n return this.open ? await this.hide() : await this.show();\n }\n\n private async toggleAnimation(dir: 'open' | 'close') {\n const animation = dir === 'open' ? growVerIn : growVerOut;\n\n const [_, event] = await Promise.all([\n this._animationPlayer.stopAll(),\n this._animationPlayer.play(animation()),\n ]);\n\n return event.type === 'finish';\n }\n\n private async handleClick() {\n if (this.emitEvent('igcClosing', { cancelable: true })) {\n await this.hide();\n this.emitEvent('igcClosed');\n }\n }\n\n protected override render() {\n return html`\n <div ${ref(this._bannerRef)} part=\"base\" .inert=${!this.open}>\n <div part=\"spacer\">\n <div part=\"message\">\n <div part=\"illustration\">\n <slot name=\"prefix\"></slot>\n </div>\n <div part=\"content\">\n <slot></slot>\n </div>\n </div>\n <div part=\"actions\">\n <slot name=\"actions\">\n <igc-button\n type=\"button\"\n variant=\"flat\"\n @click=${this.handleClick}\n >OK</igc-button\n >\n </slot>\n </div>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-banner': IgcBannerComponent;\n }\n}\n"]}
|
|
@@ -7,13 +7,7 @@ export interface IgcButtonEventMap {
|
|
|
7
7
|
declare const IgcButtonBaseComponent_base: Constructor<import("../common//mixins/event-emitter.js").EventEmitterInterface<IgcButtonEventMap>> & Constructor<LitElement>;
|
|
8
8
|
export declare abstract class IgcButtonBaseComponent extends IgcButtonBaseComponent_base {
|
|
9
9
|
static readonly formAssociated = true;
|
|
10
|
-
protected
|
|
11
|
-
delegatesFocus: boolean;
|
|
12
|
-
mode: ShadowRootMode;
|
|
13
|
-
serializable?: boolean;
|
|
14
|
-
slotAssignment?: SlotAssignmentMode;
|
|
15
|
-
};
|
|
16
|
-
protected readonly __internals: ElementInternals;
|
|
10
|
+
protected readonly _internals: import("../common/controllers/internals.js").ElementInternalsController;
|
|
17
11
|
private readonly _focusRingManager;
|
|
18
12
|
protected _disabled: boolean;
|
|
19
13
|
private readonly _nativeButton;
|
|
@@ -26,12 +20,12 @@ export declare abstract class IgcButtonBaseComponent extends IgcButtonBaseCompon
|
|
|
26
20
|
* The URL the button points to.
|
|
27
21
|
* @attr
|
|
28
22
|
*/
|
|
29
|
-
href
|
|
23
|
+
href?: string;
|
|
30
24
|
/**
|
|
31
25
|
* Prompts to save the linked URL instead of navigating to it.
|
|
32
26
|
* @attr
|
|
33
27
|
*/
|
|
34
|
-
download
|
|
28
|
+
download?: string;
|
|
35
29
|
/**
|
|
36
30
|
* Where to display the linked URL, as the name for a browsing context.
|
|
37
31
|
* @attr
|
|
@@ -42,7 +36,7 @@ export declare abstract class IgcButtonBaseComponent extends IgcButtonBaseCompon
|
|
|
42
36
|
* See https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types
|
|
43
37
|
* @attr
|
|
44
38
|
*/
|
|
45
|
-
rel
|
|
39
|
+
rel?: string;
|
|
46
40
|
/**
|
|
47
41
|
* The disabled state of the component
|
|
48
42
|
* @attr [disabled=false]
|
|
@@ -51,7 +45,6 @@ export declare abstract class IgcButtonBaseComponent extends IgcButtonBaseCompon
|
|
|
51
45
|
get disabled(): boolean;
|
|
52
46
|
/** Returns the HTMLFormElement associated with this element. */
|
|
53
47
|
get form(): HTMLFormElement | null;
|
|
54
|
-
constructor();
|
|
55
48
|
/** Sets focus in the button. */
|
|
56
49
|
focus(options?: FocusOptions): void;
|
|
57
50
|
/** Simulates a mouse click on the element */
|
|
@@ -4,14 +4,23 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import {
|
|
7
|
+
import { html, LitElement, nothing } from 'lit';
|
|
8
8
|
import { property, query } from 'lit/decorators.js';
|
|
9
9
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
10
|
-
import { EventEmitterMixin } from '../common//mixins/event-emitter.js';
|
|
11
10
|
import { addKeyboardFocusRing } from '../common/controllers/focus-ring.js';
|
|
11
|
+
import { addInternalsController } from '../common/controllers/internals.js';
|
|
12
12
|
import { blazorDeepImport } from '../common/decorators/blazorDeepImport.js';
|
|
13
|
+
import { shadowOptions } from '../common/decorators/shadow-options.js';
|
|
14
|
+
import { EventEmitterMixin } from '../common//mixins/event-emitter.js';
|
|
13
15
|
import { partMap } from '../common/part-map.js';
|
|
14
16
|
let IgcButtonBaseComponent = class IgcButtonBaseComponent extends EventEmitterMixin(LitElement) {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this._internals = addInternalsController(this);
|
|
20
|
+
this._focusRingManager = addKeyboardFocusRing(this);
|
|
21
|
+
this._disabled = false;
|
|
22
|
+
this.type = 'button';
|
|
23
|
+
}
|
|
15
24
|
set disabled(value) {
|
|
16
25
|
this._disabled = value;
|
|
17
26
|
this.toggleAttribute('disabled', Boolean(this._disabled));
|
|
@@ -20,14 +29,7 @@ let IgcButtonBaseComponent = class IgcButtonBaseComponent extends EventEmitterMi
|
|
|
20
29
|
return this._disabled;
|
|
21
30
|
}
|
|
22
31
|
get form() {
|
|
23
|
-
return this.
|
|
24
|
-
}
|
|
25
|
-
constructor() {
|
|
26
|
-
super();
|
|
27
|
-
this._focusRingManager = addKeyboardFocusRing(this);
|
|
28
|
-
this._disabled = false;
|
|
29
|
-
this.type = 'button';
|
|
30
|
-
this.__internals = this.attachInternals();
|
|
32
|
+
return this._internals.form;
|
|
31
33
|
}
|
|
32
34
|
focus(options) {
|
|
33
35
|
this._nativeButton.focus(options);
|
|
@@ -85,10 +87,6 @@ let IgcButtonBaseComponent = class IgcButtonBaseComponent extends EventEmitterMi
|
|
|
85
87
|
}
|
|
86
88
|
};
|
|
87
89
|
IgcButtonBaseComponent.formAssociated = true;
|
|
88
|
-
IgcButtonBaseComponent.shadowRootOptions = {
|
|
89
|
-
...LitElement.shadowRootOptions,
|
|
90
|
-
delegatesFocus: true,
|
|
91
|
-
};
|
|
92
90
|
__decorate([
|
|
93
91
|
query('[part="base"]', true)
|
|
94
92
|
], IgcButtonBaseComponent.prototype, "_nativeButton", void 0);
|
|
@@ -111,7 +109,8 @@ __decorate([
|
|
|
111
109
|
property({ type: Boolean, reflect: true })
|
|
112
110
|
], IgcButtonBaseComponent.prototype, "disabled", null);
|
|
113
111
|
IgcButtonBaseComponent = __decorate([
|
|
114
|
-
blazorDeepImport
|
|
112
|
+
blazorDeepImport,
|
|
113
|
+
shadowOptions({ delegatesFocus: true })
|
|
115
114
|
], IgcButtonBaseComponent);
|
|
116
115
|
export { IgcButtonBaseComponent };
|
|
117
116
|
//# sourceMappingURL=button-base.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button-base.js","sourceRoot":"","sources":["../../../src/components/button/button-base.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"button-base.js","sourceRoot":"","sources":["../../../src/components/button/button-base.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing, type TemplateResult } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { addKeyboardFocusRing } from '../common/controllers/focus-ring.js';\nimport { addInternalsController } from '../common/controllers/internals.js';\nimport { blazorDeepImport } from '../common/decorators/blazorDeepImport.js';\nimport { shadowOptions } from '../common/decorators/shadow-options.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common//mixins/event-emitter.js';\nimport { partMap } from '../common/part-map.js';\n\nexport interface IgcButtonEventMap {\n // For analyzer meta only:\n /* skipWCPrefix */\n focus: FocusEvent;\n /* skipWCPrefix */\n blur: FocusEvent;\n}\n\n@blazorDeepImport\n@shadowOptions({ delegatesFocus: true })\nexport abstract class IgcButtonBaseComponent extends EventEmitterMixin<\n IgcButtonEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly formAssociated = true;\n\n protected readonly _internals = addInternalsController(this);\n private readonly _focusRingManager = addKeyboardFocusRing(this);\n\n protected _disabled = false;\n\n @query('[part=\"base\"]', true)\n private readonly _nativeButton!: HTMLButtonElement;\n\n /* alternateName: displayType */\n /**\n * The type of the button. Defaults to `button`.\n * @attr\n */\n @property({ reflect: true })\n public type: 'button' | 'reset' | 'submit' = 'button';\n\n /**\n * The URL the button points to.\n * @attr\n */\n @property()\n public href?: string;\n\n /**\n * Prompts to save the linked URL instead of navigating to it.\n * @attr\n */\n @property()\n public download?: string;\n\n /**\n * Where to display the linked URL, as the name for a browsing context.\n * @attr\n */\n @property()\n public target?: '_blank' | '_parent' | '_self' | '_top';\n\n /**\n * The relationship of the linked URL.\n * See https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types\n * @attr\n */\n @property()\n public rel?: string;\n\n /**\n * The disabled state of the component\n * @attr [disabled=false]\n */\n @property({ type: Boolean, reflect: true })\n public set disabled(value: boolean) {\n this._disabled = value;\n this.toggleAttribute('disabled', Boolean(this._disabled));\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n /* blazorCSSuppress */\n /* alternateType: object */\n /** Returns the HTMLFormElement associated with this element. */\n public get form(): HTMLFormElement | null {\n return this._internals.form;\n }\n\n /* alternateName: focusComponent */\n /** Sets focus in the button. */\n public override focus(options?: FocusOptions): void {\n this._nativeButton.focus(options);\n }\n\n /** Simulates a mouse click on the element */\n public override click(): void {\n this._nativeButton.click();\n }\n\n /* alternateName: blurComponent */\n /** Removes focus from the button. */\n public override blur(): void {\n this._nativeButton.blur();\n }\n\n protected _handleClick(): void {\n if (this.type === 'submit') {\n this.form?.requestSubmit();\n } else if (this.type === 'reset') {\n this.form?.reset();\n }\n }\n\n protected formDisabledCallback(state: boolean): void {\n this._disabled = state;\n this.requestUpdate();\n }\n\n private renderButton() {\n return html`\n <button\n part=${partMap({ base: true, focused: this._focusRingManager.focused })}\n aria-label=${ifDefined(this.ariaLabel ?? nothing)}\n ?disabled=${this.disabled}\n type=${ifDefined(this.type)}\n @click=${this._handleClick}\n >\n ${this.renderContent()}\n </button>\n `;\n }\n\n private renderLinkButton() {\n return html`\n <a\n part=${partMap({ base: true, focused: this._focusRingManager.focused })}\n role=\"button\"\n aria-label=${ifDefined(this.ariaLabel ?? nothing)}\n aria-disabled=${this.disabled}\n href=${ifDefined(this.href)}\n target=${ifDefined(this.target)}\n download=${ifDefined(this.download)}\n rel=${ifDefined(this.rel)}\n >\n ${this.renderContent()}\n </a>\n `;\n }\n\n protected abstract renderContent(): TemplateResult;\n\n protected override render() {\n const link = this.href !== undefined;\n return link ? this.renderLinkButton() : this.renderButton();\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/components/button/button.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAiBjC,IAAM,kBAAkB,0BAAxB,MAAM,kBAAmB,SAAQ,sBAAsB;IAAvD;;QAcN,YAAO,GAAkB,WAAW,CAAC;IAS9C,CAAC;IAlBQ,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,oBAAkB,CAAC,CAAC;IACxC,CAAC;IASS,aAAa;QACrB,OAAO,IAAI,CAAA;;;;KAIV,CAAC;IACJ,CAAC;;AArBsB,0BAAO,GAAG,YAAY,AAAf,CAAgB;AAC7B,yBAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;AAYpC;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDACgB;AAdzB,kBAAkB;IADtC,MAAM,CAAC,GAAG,CAAC;GACS,kBAAkB,CAuBtC;eAvBoB,kBAAkB","sourcesContent":["import { html } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport { themes } from '../../theming/theming-decorator.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { ButtonVariant } from '../types.js';\nimport { IgcButtonBaseComponent } from './button-base.js';\nimport { styles } from './themes/button/button.base.css.js';\nimport { styles as shared } from './themes/button/shared/button.common.css.js';\nimport { all } from './themes/button/themes.js';\n\n/**\n * Represents a clickable button, used to submit forms or anywhere in a\n * document for accessible, standard button functionality.\n *\n * @element igc-button\n *\n * @slot - Renders the label of the button.\n * @slot prefix - Renders content before the label of the button.\n * @slot suffix - Renders content after the label of the button.\n *\n * @csspart base - The native button element of the igc-button component.\n * @csspart prefix - The prefix container of the igc-button component.\n * @csspart suffix - The suffix container of the igc-button component.\n */\n@themes(all)\nexport default class IgcButtonComponent extends IgcButtonBaseComponent {\n public static readonly tagName = 'igc-button';\n protected static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcButtonComponent);\n }\n\n /**\n * Sets the variant of the button.\n * @attr\n */\n @property({ reflect: true })\n public variant: ButtonVariant = 'contained';\n\n protected renderContent() {\n return html`\n <slot name=\"prefix\"></slot>\n <slot></slot>\n <slot name=\"suffix\"></slot>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-button': IgcButtonComponent;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/components/button/button.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAiBjC,IAAM,kBAAkB,0BAAxB,MAAM,kBAAmB,SAAQ,sBAAsB;IAAvD;;QAcN,YAAO,GAAkB,WAAW,CAAC;IAS9C,CAAC;IAlBQ,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,oBAAkB,CAAC,CAAC;IACxC,CAAC;IASS,aAAa;QACrB,OAAO,IAAI,CAAA;;;;KAIV,CAAC;IACJ,CAAC;;AArBsB,0BAAO,GAAG,YAAY,AAAf,CAAgB;AAC7B,yBAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;AAYpC;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDACgB;AAdzB,kBAAkB;IADtC,MAAM,CAAC,GAAG,CAAC;GACS,kBAAkB,CAuBtC;eAvBoB,kBAAkB","sourcesContent":["import { html } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport { themes } from '../../theming/theming-decorator.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { ButtonVariant } from '../types.js';\nimport { IgcButtonBaseComponent } from './button-base.js';\nimport { styles } from './themes/button/button.base.css.js';\nimport { styles as shared } from './themes/button/shared/button.common.css.js';\nimport { all } from './themes/button/themes.js';\n\n/**\n * Represents a clickable button, used to submit forms or anywhere in a\n * document for accessible, standard button functionality.\n *\n * @element igc-button\n *\n * @slot - Renders the label of the button.\n * @slot prefix - Renders content before the label of the button.\n * @slot suffix - Renders content after the label of the button.\n *\n * @csspart base - The native button element of the igc-button component.\n * @csspart prefix - The prefix container of the igc-button component.\n * @csspart suffix - The suffix container of the igc-button component.\n */\n@themes(all)\nexport default class IgcButtonComponent extends IgcButtonBaseComponent {\n public static readonly tagName = 'igc-button';\n protected static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcButtonComponent);\n }\n\n /**\n * Sets the variant of the button.\n * @attr\n */\n @property({ reflect: true })\n public variant: ButtonVariant = 'contained';\n\n protected renderContent() {\n return html`\n <slot name=\"prefix\"></slot>\n <slot></slot>\n <slot name=\"suffix\"></slot>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-button': IgcButtonComponent;\n }\n}\n"]}
|
|
@@ -14,12 +14,12 @@ export default class IgcIconButtonComponent extends IgcButtonBaseComponent {
|
|
|
14
14
|
* The name of the icon.
|
|
15
15
|
* @attr
|
|
16
16
|
*/
|
|
17
|
-
name
|
|
17
|
+
name?: string;
|
|
18
18
|
/**
|
|
19
19
|
* The name of the icon collection.
|
|
20
20
|
* @attr
|
|
21
21
|
*/
|
|
22
|
-
collection
|
|
22
|
+
collection?: string;
|
|
23
23
|
/**
|
|
24
24
|
* Whether to flip the icon button. Useful for RTL layouts.
|
|
25
25
|
* @attr
|