@brightspot/ui 1.10.0 → 3.0.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/dist/components/action-bar/ActionBar.d.ts +163 -0
- package/dist/components/action-bar/ActionBar.d.ts.map +1 -0
- package/dist/components/action-bar/ActionBar.js +479 -0
- package/dist/components/action-bar/ActionBar.js.map +1 -0
- package/dist/components/action-bar/ActionItem.d.ts +103 -0
- package/dist/components/action-bar/ActionItem.d.ts.map +1 -0
- package/dist/components/action-bar/ActionItem.js +237 -0
- package/dist/components/action-bar/ActionItem.js.map +1 -0
- package/dist/components/avatar/AvatarGroup.d.ts +3 -0
- package/dist/components/avatar/AvatarGroup.d.ts.map +1 -1
- package/dist/components/avatar/AvatarGroup.js +3 -0
- package/dist/components/avatar/AvatarGroup.js.map +1 -1
- package/dist/components/badge/Badge.d.ts +3 -1
- package/dist/components/badge/Badge.d.ts.map +1 -1
- package/dist/components/badge/Badge.js +2 -0
- package/dist/components/badge/Badge.js.map +1 -1
- package/dist/components/button-group/ButtonGroup.d.ts +138 -0
- package/dist/components/button-group/ButtonGroup.d.ts.map +1 -0
- package/dist/components/button-group/ButtonGroup.js +436 -0
- package/dist/components/button-group/ButtonGroup.js.map +1 -0
- package/dist/components/checkbox/Checkbox.d.ts +107 -0
- package/dist/components/checkbox/Checkbox.d.ts.map +1 -0
- package/dist/components/checkbox/Checkbox.js +224 -0
- package/dist/components/checkbox/Checkbox.js.map +1 -0
- package/dist/components/circular-progress/CircularProgress.d.ts +2 -2
- package/dist/components/circular-progress/CircularProgress.js +2 -2
- package/dist/components/copy-to-clipboard/CopyToClipboard.d.ts +7 -2
- package/dist/components/copy-to-clipboard/CopyToClipboard.d.ts.map +1 -1
- package/dist/components/copy-to-clipboard/CopyToClipboard.js +10 -5
- package/dist/components/copy-to-clipboard/CopyToClipboard.js.map +1 -1
- package/dist/components/dropdown/Dropdown.d.ts +8 -6
- package/dist/components/dropdown/Dropdown.d.ts.map +1 -1
- package/dist/components/dropdown/Dropdown.js +33 -22
- package/dist/components/dropdown/Dropdown.js.map +1 -1
- package/dist/components/dropdown/DropdownItem.d.ts +28 -7
- package/dist/components/dropdown/DropdownItem.d.ts.map +1 -1
- package/dist/components/dropdown/DropdownItem.js +41 -16
- package/dist/components/dropdown/DropdownItem.js.map +1 -1
- package/dist/components/dropdown/DropdownMenu.d.ts +6 -8
- package/dist/components/dropdown/DropdownMenu.d.ts.map +1 -1
- package/dist/components/dropdown/DropdownMenu.js +22 -37
- package/dist/components/dropdown/DropdownMenu.js.map +1 -1
- package/dist/components/empty-state/EmptyState.css +4 -0
- package/dist/components/empty-state/EmptyState.d.ts +103 -0
- package/dist/components/empty-state/EmptyState.d.ts.map +1 -0
- package/dist/components/empty-state/EmptyState.js +209 -0
- package/dist/components/empty-state/EmptyState.js.map +1 -0
- package/dist/components/icon/Icon.d.ts +23 -10
- package/dist/components/icon/Icon.d.ts.map +1 -1
- package/dist/components/icon/Icon.js +40 -9
- package/dist/components/icon/Icon.js.map +1 -1
- package/dist/components/icon-button/IconButton.d.ts +7 -21
- package/dist/components/icon-button/IconButton.d.ts.map +1 -1
- package/dist/components/icon-button/IconButton.js +12 -18
- package/dist/components/icon-button/IconButton.js.map +1 -1
- package/dist/components/linear-progress/LinearProgress.d.ts +2 -2
- package/dist/components/linear-progress/LinearProgress.js +2 -2
- package/dist/components/pagination/Pagination.d.ts +33 -4
- package/dist/components/pagination/Pagination.d.ts.map +1 -1
- package/dist/components/pagination/Pagination.js +88 -24
- package/dist/components/pagination/Pagination.js.map +1 -1
- package/dist/components/popover/Popover.d.ts +6 -0
- package/dist/components/popover/Popover.d.ts.map +1 -1
- package/dist/components/popover/Popover.js +6 -0
- package/dist/components/popover/Popover.js.map +1 -1
- package/dist/components/switch/Switch.d.ts +5 -1
- package/dist/components/switch/Switch.d.ts.map +1 -1
- package/dist/components/switch/Switch.js +10 -6
- package/dist/components/switch/Switch.js.map +1 -1
- package/dist/components/tabs/Tab.d.ts +108 -0
- package/dist/components/tabs/Tab.d.ts.map +1 -0
- package/dist/components/tabs/Tab.js +152 -0
- package/dist/components/tabs/Tab.js.map +1 -0
- package/dist/components/tabs/Tabs.d.ts +126 -0
- package/dist/components/tabs/Tabs.d.ts.map +1 -0
- package/dist/components/tabs/Tabs.js +390 -0
- package/dist/components/tabs/Tabs.js.map +1 -0
- package/dist/components/upload/Upload.d.ts +157 -0
- package/dist/components/upload/Upload.d.ts.map +1 -0
- package/dist/components/upload/Upload.js +538 -0
- package/dist/components/upload/Upload.js.map +1 -0
- package/dist/components/upload/UploadItem.d.ts +73 -0
- package/dist/components/upload/UploadItem.d.ts.map +1 -0
- package/dist/components/upload/UploadItem.js +180 -0
- package/dist/components/upload/UploadItem.js.map +1 -0
- package/dist/components/widget/Widget.d.ts +1 -6
- package/dist/components/widget/Widget.d.ts.map +1 -1
- package/dist/components/widget/Widget.js +1 -6
- package/dist/components/widget/Widget.js.map +1 -1
- package/dist/custom-elements.json +8445 -1989
- package/dist/storybook/assets/ActionBar.stories-DRIVI-W2.js +408 -0
- package/dist/storybook/assets/ActionItem.stories-5qlgxYNB.js +203 -0
- package/dist/storybook/assets/{Avatar.stories-B26mRkkZ.js → Avatar.stories-B3VkhRhP.js} +2 -2
- package/dist/storybook/assets/{AvatarGroup.stories-J7lVGsMY.js → AvatarGroup.stories-DOfim2NY.js} +5 -5
- package/dist/storybook/assets/{Badge.stories-BpTIV61M.js → Badge.stories-B04VNAcc.js} +2 -2
- package/dist/storybook/assets/{Button-Dg-fIrzT.js → Button-CILTcGRT.js} +1 -1
- package/dist/storybook/assets/{Button.stories-gPKRVbxk.js → Button.stories-CzWAltrX.js} +1 -1
- package/dist/storybook/assets/ButtonGroup.stories-1uAJf79o.js +588 -0
- package/dist/storybook/assets/{Celebrate.stories-DbY-sKEe.js → Celebrate.stories-BEqj0VnW.js} +7 -7
- package/dist/storybook/assets/Checkbox.stories-DXAGFS0M.js +141 -0
- package/dist/storybook/assets/{CircularProgress.stories-DeH5JYX_.js → CircularProgress.stories-D4rftw22.js} +7 -7
- package/dist/storybook/assets/{ClipboardMixin.stories-C-lZ4uuw.js → ClipboardMixin.stories-z2n2HWt1.js} +31 -28
- package/dist/storybook/assets/{Color-6BZIO3FS-Cu6zVIuG.js → Color-6BZIO3FS-C6KyMgZz.js} +1 -1
- package/dist/storybook/assets/{Colors.stories-D6XYMrTD.js → Colors.stories-CX-Ny3B_.js} +1 -1
- package/dist/storybook/assets/{CombinedEffects.stories-jFekKTYg.js → CombinedEffects.stories-BkqtiVHp.js} +33 -33
- package/dist/storybook/assets/{ComponentStatesMixin-g50hRCPT.js → ComponentStatesMixin-DLd0feFg.js} +1 -1
- package/dist/storybook/assets/{ComponentStatesMixin.stories-D3Q5pR38.js → ComponentStatesMixin.stories-D6Yc5Jgl.js} +3 -3
- package/dist/storybook/assets/{CopyToClipboard.stories-COZZ1VC2.js → CopyToClipboard.stories-B-omwDDJ.js} +16 -16
- package/dist/storybook/assets/{Debounce.stories-Dl10LAnx.js → Debounce.stories-B2vE5QIx.js} +9 -9
- package/dist/storybook/assets/{DocsRenderer-LL677BLK-CFLtMbUx.js → DocsRenderer-LL677BLK-DNUlRvMg.js} +3 -3
- package/dist/storybook/assets/{Dropdown.stories-Drwq-0Z2.js → Dropdown.stories-_bx4WDLr.js} +95 -68
- package/dist/storybook/assets/EmptyState.stories-CGMbmo77.js +318 -0
- package/dist/storybook/assets/{Events.stories-dODeR-g-.js → Events.stories-CkQYKcoZ.js} +1 -1
- package/dist/storybook/assets/{Heading.stories-CH7_-_q3.js → Heading.stories-BU5Do_od.js} +1 -1
- package/dist/storybook/assets/{HueRipple.stories-CH1Y739k.js → HueRipple.stories-Di2zmxo3.js} +11 -11
- package/dist/storybook/assets/Icon.stories-Dk4ZXhhJ.js +441 -0
- package/dist/storybook/assets/{IconButton.stories-DuzqvcnN.js → IconButton.stories-BSCiXPXa.js} +126 -146
- package/dist/storybook/assets/{LinearProgress.stories-C7IdnJd3.js → LinearProgress.stories-BGxPZuni.js} +7 -7
- package/dist/storybook/assets/Pagination.stories-z3Zq8b4f.js +252 -0
- package/dist/storybook/assets/{Popover.stories-Ca1F-wrI.js → Popover.stories-C9GxWcax.js} +33 -62
- package/dist/storybook/assets/ReadyMixin-CQw8N6P9.js +1 -0
- package/dist/storybook/assets/RovingTabindexMixin.stories-ByxLBi6m.js +192 -0
- package/dist/storybook/assets/{Rtc.stories-BVJc1vCA.js → Rtc.stories-DQJlCXWR.js} +3 -3
- package/dist/storybook/assets/ScrollShadow.stories-gjTIAbUA.js +17 -0
- package/dist/storybook/assets/{Switch.stories-BEEHP8mD.js → Switch.stories-BEeqPZiP.js} +21 -21
- package/dist/storybook/assets/Tab.stories-DpB3I-WZ.js +218 -0
- package/dist/storybook/assets/Tabs.stories-C6mG6Xi7.js +211 -0
- package/dist/storybook/assets/{Throttle.stories-C4xsYeAb.js → Throttle.stories-x9tpGeQh.js} +10 -10
- package/dist/storybook/assets/{Tooltip.stories-Ccm4AnSv.js → Tooltip.stories-CqcLqdmc.js} +2 -2
- package/dist/storybook/assets/Upload.stories-CMaAbCSH.js +447 -0
- package/dist/storybook/assets/UploadItem.stories-GB98L3JQ.js +167 -0
- package/dist/storybook/assets/{Welcome.stories-Degjk-M0.js → Welcome.stories-6h9cUZ7v.js} +1 -1
- package/dist/storybook/assets/{Widget.stories-OKnZ9sDs.js → Widget.stories-DiA1PR6Y.js} +13 -13
- package/dist/storybook/assets/{WithTooltip-65CFNBJE-CXL3TyJ2.js → WithTooltip-65CFNBJE-DTsHhBb_.js} +2 -2
- package/dist/storybook/assets/{blocks-DLdUKG_W.js → blocks-IXdn9TGW.js} +5 -5
- package/dist/storybook/assets/{formatter-EIJCOSYU-29NCxjfM.js → formatter-EIJCOSYU-Cum4J6N4.js} +1 -1
- package/dist/storybook/assets/if-defined-CgfCxQoV.js +1 -0
- package/dist/storybook/assets/iframe-BgFj0b5u.css +1 -0
- package/dist/storybook/assets/{iframe-BqvwP3or.js → iframe-Sf9RHZFu.js} +200 -200
- package/dist/storybook/assets/{index-BIyTv1BF.js → index-D605PvQH.js} +1 -1
- package/dist/storybook/assets/onFind-C41m8c_a.js +1 -0
- package/dist/storybook/assets/{onFind.stories-D64-QZqf.js → onFind.stories-MOTfGlJd.js} +53 -77
- package/dist/storybook/assets/{onRemove.stories-BICsnIJL.js → onRemove.stories-DX58Bf6f.js} +6 -10
- package/dist/storybook/assets/{onVisible.stories-DpDZP9_5.js → onVisible.stories-NNFeFeD8.js} +3 -3
- package/dist/storybook/assets/style-map-B99QiqCo.js +1 -0
- package/dist/storybook/assets/{syntaxhighlighter-ED5Y7EFY-Bz_DuQj8.js → syntaxhighlighter-ED5Y7EFY-BqQ-o9mS.js} +1 -1
- package/dist/storybook/box-illustration.svg +51 -0
- package/dist/storybook/cloud-illustration.svg +49 -0
- package/dist/storybook/docs-illustration.svg +92 -0
- package/dist/storybook/iframe.html +2 -2
- package/dist/storybook/index.json +1 -1
- package/dist/storybook/project.json +1 -1
- package/dist/tailwind-plugin-action-bar.d.ts +2 -0
- package/dist/tailwind-plugin-action-bar.d.ts.map +1 -0
- package/dist/tailwind-plugin-action-bar.js +120 -0
- package/dist/tailwind-plugin-action-bar.js.map +1 -0
- package/dist/tailwind-plugin-action-bar.ts +134 -0
- package/dist/tailwind-plugin-badge.js +5 -6
- package/dist/tailwind-plugin-badge.js.map +1 -1
- package/dist/tailwind-plugin-badge.ts +5 -6
- package/dist/tailwind-plugin-button-group.d.ts +2 -0
- package/dist/tailwind-plugin-button-group.d.ts.map +1 -0
- package/dist/tailwind-plugin-button-group.js +215 -0
- package/dist/tailwind-plugin-button-group.js.map +1 -0
- package/dist/tailwind-plugin-button-group.ts +238 -0
- package/dist/tailwind-plugin-button.js +2 -1
- package/dist/tailwind-plugin-button.js.map +1 -1
- package/dist/tailwind-plugin-button.ts +2 -1
- package/dist/tailwind-plugin-checkbox.d.ts +2 -0
- package/dist/tailwind-plugin-checkbox.d.ts.map +1 -0
- package/dist/tailwind-plugin-checkbox.js +246 -0
- package/dist/tailwind-plugin-checkbox.js.map +1 -0
- package/dist/tailwind-plugin-checkbox.ts +281 -0
- package/dist/tailwind-plugin-empty-state.d.ts +2 -0
- package/dist/tailwind-plugin-empty-state.d.ts.map +1 -0
- package/dist/tailwind-plugin-empty-state.js +113 -0
- package/dist/tailwind-plugin-empty-state.js.map +1 -0
- package/dist/tailwind-plugin-empty-state.ts +124 -0
- package/dist/tailwind-plugin-icon.js +122 -18
- package/dist/tailwind-plugin-icon.js.map +1 -1
- package/dist/tailwind-plugin-icon.ts +131 -18
- package/dist/tailwind-plugin-loader.js +3 -3
- package/dist/tailwind-plugin-loader.ts +3 -3
- package/dist/tailwind-plugin-pagination.js +13 -23
- package/dist/tailwind-plugin-pagination.js.map +1 -1
- package/dist/tailwind-plugin-pagination.ts +15 -25
- package/dist/tailwind-plugin-tabs.d.ts +2 -0
- package/dist/tailwind-plugin-tabs.d.ts.map +1 -0
- package/dist/tailwind-plugin-tabs.js +158 -0
- package/dist/tailwind-plugin-tabs.js.map +1 -0
- package/dist/tailwind-plugin-tabs.ts +169 -0
- package/dist/tailwind-plugin-upload.d.ts +2 -0
- package/dist/tailwind-plugin-upload.d.ts.map +1 -0
- package/dist/tailwind-plugin-upload.js +322 -0
- package/dist/tailwind-plugin-upload.js.map +1 -0
- package/dist/tailwind-plugin-upload.ts +362 -0
- package/dist/tailwind.config.d.ts.map +1 -1
- package/dist/tailwind.config.js +1 -0
- package/dist/tailwind.config.js.map +1 -1
- package/dist/tailwind.config.ts +1 -0
- package/dist/util/ClipboardMixin.d.ts +7 -2
- package/dist/util/ClipboardMixin.d.ts.map +1 -1
- package/dist/util/ClipboardMixin.js +15 -13
- package/dist/util/ClipboardMixin.js.map +1 -1
- package/dist/util/ComponentStatesMixin.d.ts +2 -1
- package/dist/util/ComponentStatesMixin.d.ts.map +1 -1
- package/dist/util/ComponentStatesMixin.js +4 -0
- package/dist/util/ComponentStatesMixin.js.map +1 -1
- package/dist/util/EventEmitterMixin.d.ts +58 -4
- package/dist/util/EventEmitterMixin.d.ts.map +1 -1
- package/dist/util/EventEmitterMixin.js +5 -2
- package/dist/util/EventEmitterMixin.js.map +1 -1
- package/dist/util/ProgressMixin.d.ts +9 -2
- package/dist/util/ProgressMixin.d.ts.map +1 -1
- package/dist/util/ProgressMixin.js +22 -18
- package/dist/util/ProgressMixin.js.map +1 -1
- package/dist/util/RovingTabindexMixin.d.ts +46 -0
- package/dist/util/RovingTabindexMixin.d.ts.map +1 -0
- package/dist/util/RovingTabindexMixin.js +83 -0
- package/dist/util/RovingTabindexMixin.js.map +1 -0
- package/dist/util/TetherLayout.d.ts.map +1 -1
- package/dist/util/TetherLayout.js +3 -0
- package/dist/util/TetherLayout.js.map +1 -1
- package/dist/util/TooltipMixin.d.ts.map +1 -1
- package/dist/util/TooltipMixin.js +5 -4
- package/dist/util/TooltipMixin.js.map +1 -1
- package/dist/util/upload.d.ts +53 -0
- package/dist/util/upload.d.ts.map +1 -0
- package/dist/util/upload.js +113 -0
- package/dist/util/upload.js.map +1 -0
- package/docs/components/ActionBar.md +77 -0
- package/docs/components/ActionItem.md +101 -0
- package/docs/components/Avatar.md +42 -12
- package/docs/components/AvatarGroup.md +4 -3
- package/docs/components/Badge.md +13 -1
- package/docs/components/ButtonGroup.md +91 -0
- package/docs/components/Checkbox.md +91 -0
- package/docs/components/CircularProgress.md +41 -12
- package/docs/components/CopyToClipboard.md +13 -11
- package/docs/components/Dropdown.md +51 -26
- package/docs/components/DropdownItem.md +44 -27
- package/docs/components/DropdownMenu.md +14 -14
- package/docs/components/EmptyState.md +75 -0
- package/docs/components/Icon.md +22 -14
- package/docs/components/IconButton.md +46 -21
- package/docs/components/LinearProgress.md +43 -4
- package/docs/components/Pagination.md +38 -34
- package/docs/components/Popover.md +16 -0
- package/docs/components/README.md +9 -0
- package/docs/components/Switch.md +21 -16
- package/docs/components/Tab.md +79 -0
- package/docs/components/Tabs.md +85 -0
- package/docs/components/Upload.md +112 -0
- package/docs/components/UploadItem.md +61 -0
- package/docs/components/Widget.md +12 -6
- package/package.json +4 -2
- package/dist/storybook/assets/Icon.stories-CPjM-jTU.js +0 -264
- package/dist/storybook/assets/Pagination.stories-C4cLjS_9.js +0 -272
- package/dist/storybook/assets/ReadyMixin-DNZ5dCsZ.js +0 -1
- package/dist/storybook/assets/ScrollShadow.stories-C3W5o9ZW.js +0 -17
- package/dist/storybook/assets/if-defined-BZFPaJjl.js +0 -1
- package/dist/storybook/assets/iframe-C5bIZMJ5.css +0 -1
- package/dist/storybook/assets/onFind-1l3EPW-I.js +0 -1
- package/dist/storybook/assets/style-map-CBrSnxRe.js +0 -1
|
@@ -0,0 +1,436 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
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
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { LitElement, html } from 'lit';
|
|
8
|
+
import { property } from 'lit/decorators.js';
|
|
9
|
+
import { ComponentStatesMixin } from '../../util/ComponentStatesMixin.js';
|
|
10
|
+
import { EventEmitterMixin } from '../../util/EventEmitterMixin.js';
|
|
11
|
+
import { ReadyMixin } from '../../util/ReadyMixin.js';
|
|
12
|
+
import { RovingTabindexMixin } from '../../util/RovingTabindexMixin.js';
|
|
13
|
+
import onFind from '../../util/onFind.js';
|
|
14
|
+
const COMPONENT_TAGS = new Set(['BTU-ICON-BUTTON', 'BTU-DROPDOWN']);
|
|
15
|
+
const SELECTABLE_TAGS = new Set(['BTU-ICON-BUTTON']);
|
|
16
|
+
/**
|
|
17
|
+
* A semantic container for grouping related buttons together.
|
|
18
|
+
*
|
|
19
|
+
* Supports connected (joined) and spaced layouts, horizontal and vertical
|
|
20
|
+
* orientation, group-level size and disabled propagation, and optional
|
|
21
|
+
* toggle/selection modes (single-select or multi-select).
|
|
22
|
+
*
|
|
23
|
+
* @element btu-button-group
|
|
24
|
+
*
|
|
25
|
+
* @fires {CustomEvent} btu-button-group-ready - Fired after first render and initialization
|
|
26
|
+
* @fires {CustomEvent<{value: string}>} btu-button-group-change - Fired when selection changes (single/multiple modes only)
|
|
27
|
+
* @fires {CustomEvent<{name: string | undefined}>} btu-icon-button-click - Bubbles from child btu-icon-button elements when clicked
|
|
28
|
+
*
|
|
29
|
+
* @slot - One or more btu-button or btu-icon-button elements to display in the group
|
|
30
|
+
* @slot end - Pushes the child to the end of the group via auto-margin (vertical: bottom, horizontal: right)
|
|
31
|
+
*
|
|
32
|
+
* @cssprop --button-group-gap - Space between buttons when variant="spaced" (default: spacing.sm)
|
|
33
|
+
* @cssprop --button-group-border-radius - Corner radius of outer edges when variant="connected" (default: 0.5rem)
|
|
34
|
+
* @cssprop --button-group-border-color - Internal divider color between connected buttons (default: gray-300)
|
|
35
|
+
* @cssprop --button-group-selection-bg - Background of a toggled/selected child (default: primary-50)
|
|
36
|
+
* @cssprop --button-group-selection-color - Text/icon color of a toggled/selected child (default: primary-700)
|
|
37
|
+
* @cssprop --button-group-shimmer-highlight - Highlight color of the selection shimmer effect (default: primary-200)
|
|
38
|
+
*
|
|
39
|
+
* @cssstate btu-connected - Applied when variant="connected", targetable via :state(btu-connected)
|
|
40
|
+
* @cssstate btu-spaced - Applied when variant="spaced", targetable via :state(btu-spaced)
|
|
41
|
+
* @cssstate btu-horizontal - Applied when orientation="horizontal", targetable via :state(btu-horizontal)
|
|
42
|
+
* @cssstate btu-vertical - Applied when orientation="vertical", targetable via :state(btu-vertical)
|
|
43
|
+
* @cssstate btu-disabled - Applied when the group is disabled, targetable via :state(btu-disabled)
|
|
44
|
+
*/
|
|
45
|
+
export default class ButtonGroup extends RovingTabindexMixin(ComponentStatesMixin(EventEmitterMixin(ReadyMixin(LitElement)))) {
|
|
46
|
+
constructor() {
|
|
47
|
+
super(...arguments);
|
|
48
|
+
/**
|
|
49
|
+
* Accessible name for the group, announced by assistive devices via aria-label.
|
|
50
|
+
* @attr
|
|
51
|
+
*/
|
|
52
|
+
this.label = '';
|
|
53
|
+
/**
|
|
54
|
+
* Layout direction of the buttons.
|
|
55
|
+
* @attr
|
|
56
|
+
*/
|
|
57
|
+
this.orientation = 'horizontal';
|
|
58
|
+
/**
|
|
59
|
+
* `connected` collapses shared borders for a joined appearance.
|
|
60
|
+
* `spaced` renders buttons with a gap.
|
|
61
|
+
* @attr
|
|
62
|
+
*/
|
|
63
|
+
this.variant = 'connected';
|
|
64
|
+
/**
|
|
65
|
+
* Propagates a uniform size to all child buttons.
|
|
66
|
+
* @attr
|
|
67
|
+
*/
|
|
68
|
+
this.size = 'md';
|
|
69
|
+
/**
|
|
70
|
+
* When true, disables all child buttons as a group.
|
|
71
|
+
* @attr
|
|
72
|
+
*/
|
|
73
|
+
this.disabled = false;
|
|
74
|
+
/**
|
|
75
|
+
* Enables toggle/selection behavior.
|
|
76
|
+
* `single` allows one active button; `multiple` allows many.
|
|
77
|
+
* @attr
|
|
78
|
+
*/
|
|
79
|
+
this.selection = 'none';
|
|
80
|
+
/**
|
|
81
|
+
* Reflects the currently selected button value(s).
|
|
82
|
+
* For `single`, the value of the active button.
|
|
83
|
+
* For `multiple`, a comma-delimited list of active values.
|
|
84
|
+
* @attr
|
|
85
|
+
*/
|
|
86
|
+
this.value = '';
|
|
87
|
+
/**
|
|
88
|
+
* When set, creates hidden input(s) for native form participation.
|
|
89
|
+
* @attr
|
|
90
|
+
*/
|
|
91
|
+
this.name = '';
|
|
92
|
+
/** @internal */
|
|
93
|
+
this.initialClasses = [];
|
|
94
|
+
/** @internal */
|
|
95
|
+
this.boundHandleClick = this.handleClick.bind(this);
|
|
96
|
+
/** @internal */
|
|
97
|
+
this.boundHandleKeyDown = this.handleKeyDown.bind(this);
|
|
98
|
+
}
|
|
99
|
+
static get tagName() {
|
|
100
|
+
return 'BTU-BUTTON-GROUP';
|
|
101
|
+
}
|
|
102
|
+
/** @internal */
|
|
103
|
+
_getRovingTargets() {
|
|
104
|
+
if (this.selection === 'none')
|
|
105
|
+
return [];
|
|
106
|
+
const targets = [];
|
|
107
|
+
for (const child of Array.from(this.children)) {
|
|
108
|
+
if (!(child instanceof HTMLElement))
|
|
109
|
+
continue;
|
|
110
|
+
if (child.hasAttribute('hidden') || child.getAttribute('type') === 'hidden')
|
|
111
|
+
continue;
|
|
112
|
+
if (SELECTABLE_TAGS.has(child.tagName)) {
|
|
113
|
+
const inner = child.querySelector('button');
|
|
114
|
+
if (inner)
|
|
115
|
+
targets.push(inner);
|
|
116
|
+
}
|
|
117
|
+
else if (child.matches('.btu-button') || child.matches('button') || child.tabIndex >= 0) {
|
|
118
|
+
targets.push(child);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return targets;
|
|
122
|
+
}
|
|
123
|
+
connectedCallback() {
|
|
124
|
+
super.connectedCallback();
|
|
125
|
+
if (this.className) {
|
|
126
|
+
this.initialClasses = this.className.split(' ').filter(c => c.trim());
|
|
127
|
+
}
|
|
128
|
+
this.setAttribute('role', 'group');
|
|
129
|
+
this.addEventListener('click', this.boundHandleClick);
|
|
130
|
+
this.addEventListener('keydown', this.boundHandleKeyDown);
|
|
131
|
+
}
|
|
132
|
+
disconnectedCallback() {
|
|
133
|
+
super.disconnectedCallback();
|
|
134
|
+
this.removeEventListener('click', this.boundHandleClick);
|
|
135
|
+
this.removeEventListener('keydown', this.boundHandleKeyDown);
|
|
136
|
+
}
|
|
137
|
+
createRenderRoot() {
|
|
138
|
+
return this;
|
|
139
|
+
}
|
|
140
|
+
willUpdate() {
|
|
141
|
+
this.className = [...this.initialClasses, 'btu-button-group'].filter(Boolean).join(' ');
|
|
142
|
+
this.syncStates();
|
|
143
|
+
if (this.label)
|
|
144
|
+
this.setAttribute('aria-label', this.label);
|
|
145
|
+
else
|
|
146
|
+
this.removeAttribute('aria-label');
|
|
147
|
+
if (this.orientation === 'vertical') {
|
|
148
|
+
this.setAttribute('aria-orientation', 'vertical');
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
this.removeAttribute('aria-orientation');
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
firstUpdated() {
|
|
155
|
+
onFind(this, '.btu-button', (button) => {
|
|
156
|
+
const el = button;
|
|
157
|
+
if (!this.contains(el))
|
|
158
|
+
return;
|
|
159
|
+
const wrapper = el.closest('btu-icon-button, btu-dropdown');
|
|
160
|
+
if (wrapper && this.contains(wrapper)) {
|
|
161
|
+
this.syncChild(wrapper);
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
this.syncChild(el);
|
|
165
|
+
}
|
|
166
|
+
this.syncRovingTabindex();
|
|
167
|
+
});
|
|
168
|
+
this.emit('btu-button-group-ready');
|
|
169
|
+
}
|
|
170
|
+
updated(changedProperties) {
|
|
171
|
+
if (changedProperties.has('size') ||
|
|
172
|
+
changedProperties.has('disabled') ||
|
|
173
|
+
changedProperties.has('selection') ||
|
|
174
|
+
changedProperties.has('value')) {
|
|
175
|
+
this.syncAllChildren();
|
|
176
|
+
}
|
|
177
|
+
if (changedProperties.has('name') || changedProperties.has('value') || changedProperties.has('selection')) {
|
|
178
|
+
this.syncHiddenInputs();
|
|
179
|
+
}
|
|
180
|
+
if (changedProperties.has('selection')) {
|
|
181
|
+
this.syncRovingTabindex();
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// ─── Child sync ───────────────────────────────────────────────────
|
|
185
|
+
/** @internal Sync size, disabled, and selection on a direct child */
|
|
186
|
+
syncChild(child) {
|
|
187
|
+
if (COMPONENT_TAGS.has(child.tagName)) {
|
|
188
|
+
child.setAttribute('size', this.size);
|
|
189
|
+
if (this.disabled)
|
|
190
|
+
child.setAttribute('disabled', '');
|
|
191
|
+
else
|
|
192
|
+
child.removeAttribute('disabled');
|
|
193
|
+
if (SELECTABLE_TAGS.has(child.tagName))
|
|
194
|
+
this.syncSelection(child);
|
|
195
|
+
}
|
|
196
|
+
else if (child.classList.contains('btu-button')) {
|
|
197
|
+
child.setAttribute('type', 'button');
|
|
198
|
+
// Size is handled by CSS: btu-button-group[size="..."] .btu-button
|
|
199
|
+
if (this.disabled) {
|
|
200
|
+
child.setAttribute('disabled', '');
|
|
201
|
+
child.setAttribute('aria-disabled', 'true');
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
child.removeAttribute('disabled');
|
|
205
|
+
child.removeAttribute('aria-disabled');
|
|
206
|
+
}
|
|
207
|
+
this.syncSelection(child);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
/** @internal Set aria-pressed on the interactive button element */
|
|
211
|
+
syncSelection(item) {
|
|
212
|
+
const button = SELECTABLE_TAGS.has(item.tagName) ? item.querySelector('button') : item;
|
|
213
|
+
if (!button)
|
|
214
|
+
return;
|
|
215
|
+
if (this.selection === 'none') {
|
|
216
|
+
button.removeAttribute('aria-pressed');
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
const val = this.resolveButtonValue(item);
|
|
220
|
+
const selected = val !== '' && this.selectedValues.includes(val);
|
|
221
|
+
button.setAttribute('aria-pressed', String(selected));
|
|
222
|
+
}
|
|
223
|
+
/** @internal Re-sync all children */
|
|
224
|
+
syncAllChildren() {
|
|
225
|
+
for (const child of Array.from(this.children)) {
|
|
226
|
+
if (child instanceof HTMLElement)
|
|
227
|
+
this.syncChild(child);
|
|
228
|
+
}
|
|
229
|
+
this.syncAllSelected();
|
|
230
|
+
}
|
|
231
|
+
/** @internal Set data-all-selected when every selectable button is pressed */
|
|
232
|
+
syncAllSelected() {
|
|
233
|
+
if (this.selection === 'none' || !this.value) {
|
|
234
|
+
this.removeAttribute('data-all-selected');
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
const buttons = Array.from(this.querySelectorAll('.btu-button[aria-pressed]'));
|
|
238
|
+
if (buttons.length === 0) {
|
|
239
|
+
this.removeAttribute('data-all-selected');
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
const allSelected = buttons.every(b => b.getAttribute('aria-pressed') === 'true');
|
|
243
|
+
if (allSelected) {
|
|
244
|
+
this.setAttribute('data-all-selected', '');
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
this.removeAttribute('data-all-selected');
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
/** @internal Initialize roving tabindex: selected button gets tabindex=0, others -1 */
|
|
251
|
+
syncRovingTabindex() {
|
|
252
|
+
const targets = this._getRovingTargets();
|
|
253
|
+
if (targets.length === 0)
|
|
254
|
+
return;
|
|
255
|
+
let focusIndex = 0;
|
|
256
|
+
if (this.selection === 'single' && this.value) {
|
|
257
|
+
const idx = targets.findIndex(t => {
|
|
258
|
+
const item = (t.closest('btu-icon-button') ?? t);
|
|
259
|
+
return this.resolveButtonValue(item) === this.value;
|
|
260
|
+
});
|
|
261
|
+
if (idx >= 0)
|
|
262
|
+
focusIndex = idx;
|
|
263
|
+
}
|
|
264
|
+
this._rovingFocus(focusIndex, false);
|
|
265
|
+
}
|
|
266
|
+
/** @internal Parsed list of currently selected values, filtering empty segments */
|
|
267
|
+
get selectedValues() {
|
|
268
|
+
return this.value ? this.value.split(',').filter(Boolean) : [];
|
|
269
|
+
}
|
|
270
|
+
// ─── Value resolution ─────────────────────────────────────────────
|
|
271
|
+
/** @internal Resolve value: value attr → textContent fallback */
|
|
272
|
+
resolveButtonValue(el) {
|
|
273
|
+
if (el.hasAttribute('value'))
|
|
274
|
+
return el.getAttribute('value') ?? '';
|
|
275
|
+
const text = el.textContent?.trim() ?? '';
|
|
276
|
+
if (!text && this.selection !== 'none') {
|
|
277
|
+
console.warn('[btu-button-group] Button has no resolvable value. Add a value attribute.', el);
|
|
278
|
+
}
|
|
279
|
+
return text;
|
|
280
|
+
}
|
|
281
|
+
/** @internal Resolve the value-holding element from a click target */
|
|
282
|
+
resolveGroupItem(target) {
|
|
283
|
+
const iconButton = target.closest('btu-icon-button');
|
|
284
|
+
if (iconButton && this.contains(iconButton))
|
|
285
|
+
return iconButton;
|
|
286
|
+
const button = target.closest('.btu-button');
|
|
287
|
+
if (button && this.contains(button))
|
|
288
|
+
return button;
|
|
289
|
+
return null;
|
|
290
|
+
}
|
|
291
|
+
// ─── Form participation ───────────────────────────────────────────
|
|
292
|
+
/** @internal Create/update/remove hidden inputs */
|
|
293
|
+
syncHiddenInputs() {
|
|
294
|
+
for (const input of Array.from(this.querySelectorAll('input[type="hidden"][data-btu-form]'))) {
|
|
295
|
+
input.remove();
|
|
296
|
+
}
|
|
297
|
+
if (!this.name || this.selection === 'none' || !this.value)
|
|
298
|
+
return;
|
|
299
|
+
for (const val of this.selectedValues) {
|
|
300
|
+
const input = document.createElement('input');
|
|
301
|
+
input.type = 'hidden';
|
|
302
|
+
input.name = this.name;
|
|
303
|
+
input.value = val;
|
|
304
|
+
input.setAttribute('data-btu-form', '');
|
|
305
|
+
this.appendChild(input);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
// ─── Selection ────────────────────────────────────────────────────
|
|
309
|
+
/** @internal Update value and fire change event */
|
|
310
|
+
setSelection(newValue) {
|
|
311
|
+
this.value = newValue;
|
|
312
|
+
this.emit('btu-button-group-change', { value: this.value });
|
|
313
|
+
}
|
|
314
|
+
/** @internal Handle click events for selection */
|
|
315
|
+
handleClick(event) {
|
|
316
|
+
if (this.selection === 'none' || this.disabled)
|
|
317
|
+
return;
|
|
318
|
+
const target = event.target;
|
|
319
|
+
if (!(target instanceof Element))
|
|
320
|
+
return;
|
|
321
|
+
const item = this.resolveGroupItem(target);
|
|
322
|
+
if (!item || item.hasAttribute('disabled'))
|
|
323
|
+
return;
|
|
324
|
+
const buttonValue = this.resolveButtonValue(item);
|
|
325
|
+
if (!buttonValue)
|
|
326
|
+
return;
|
|
327
|
+
if (this.selection === 'single') {
|
|
328
|
+
this.setSelection(this.value === buttonValue ? '' : buttonValue);
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
const values = this.selectedValues;
|
|
332
|
+
const index = values.indexOf(buttonValue);
|
|
333
|
+
if (index >= 0)
|
|
334
|
+
values.splice(index, 1);
|
|
335
|
+
else
|
|
336
|
+
values.push(buttonValue);
|
|
337
|
+
this.setSelection(values.join(','));
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
// ─── Keyboard ─────────────────────────────────────────────────────
|
|
341
|
+
/** @internal */
|
|
342
|
+
handleKeyDown(event) {
|
|
343
|
+
if (this.selection === 'none')
|
|
344
|
+
return;
|
|
345
|
+
const nav = (fn) => {
|
|
346
|
+
event.preventDefault();
|
|
347
|
+
fn();
|
|
348
|
+
if (this.selection === 'single')
|
|
349
|
+
this.activateFocusedButton();
|
|
350
|
+
};
|
|
351
|
+
switch (event.key) {
|
|
352
|
+
case 'ArrowRight':
|
|
353
|
+
case 'ArrowDown':
|
|
354
|
+
nav(() => this._rovingNext());
|
|
355
|
+
break;
|
|
356
|
+
case 'ArrowLeft':
|
|
357
|
+
case 'ArrowUp':
|
|
358
|
+
nav(() => this._rovingPrev());
|
|
359
|
+
break;
|
|
360
|
+
case 'Home':
|
|
361
|
+
nav(() => this._rovingFirst());
|
|
362
|
+
break;
|
|
363
|
+
case 'End':
|
|
364
|
+
nav(() => this._rovingLast());
|
|
365
|
+
break;
|
|
366
|
+
case ' ':
|
|
367
|
+
case 'Enter':
|
|
368
|
+
if (this.selection === 'multiple') {
|
|
369
|
+
event.preventDefault();
|
|
370
|
+
this._getRovingTargets()[this._rovingCurrentIndex()]?.click();
|
|
371
|
+
}
|
|
372
|
+
break;
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
/** @internal Activate the currently focused button (single-select arrow nav) */
|
|
376
|
+
activateFocusedButton() {
|
|
377
|
+
const focused = this._getRovingTargets()[this._rovingCurrentIndex()];
|
|
378
|
+
if (!focused)
|
|
379
|
+
return;
|
|
380
|
+
const item = (focused.closest('btu-icon-button') ?? focused);
|
|
381
|
+
if (item.hasAttribute('disabled'))
|
|
382
|
+
return;
|
|
383
|
+
const val = this.resolveButtonValue(item);
|
|
384
|
+
if (!val)
|
|
385
|
+
return;
|
|
386
|
+
this.setSelection(val);
|
|
387
|
+
}
|
|
388
|
+
// ─── Custom states ────────────────────────────────────────────────
|
|
389
|
+
/** @internal */
|
|
390
|
+
syncStates() {
|
|
391
|
+
const stateMap = {
|
|
392
|
+
'btu-connected': this.variant === 'connected',
|
|
393
|
+
'btu-spaced': this.variant === 'spaced',
|
|
394
|
+
'btu-horizontal': this.orientation === 'horizontal',
|
|
395
|
+
'btu-vertical': this.orientation === 'vertical',
|
|
396
|
+
'btu-disabled': this.disabled,
|
|
397
|
+
};
|
|
398
|
+
for (const [state, active] of Object.entries(stateMap)) {
|
|
399
|
+
if (active)
|
|
400
|
+
this.states.add(state);
|
|
401
|
+
else
|
|
402
|
+
this.states.delete(state);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
render() {
|
|
406
|
+
return html ``;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
__decorate([
|
|
410
|
+
property({ type: String })
|
|
411
|
+
], ButtonGroup.prototype, "label", void 0);
|
|
412
|
+
__decorate([
|
|
413
|
+
property({ type: String, reflect: true })
|
|
414
|
+
], ButtonGroup.prototype, "orientation", void 0);
|
|
415
|
+
__decorate([
|
|
416
|
+
property({ type: String, reflect: true })
|
|
417
|
+
], ButtonGroup.prototype, "variant", void 0);
|
|
418
|
+
__decorate([
|
|
419
|
+
property({ type: String, reflect: true })
|
|
420
|
+
], ButtonGroup.prototype, "size", void 0);
|
|
421
|
+
__decorate([
|
|
422
|
+
property({ type: Boolean })
|
|
423
|
+
], ButtonGroup.prototype, "disabled", void 0);
|
|
424
|
+
__decorate([
|
|
425
|
+
property({ type: String, reflect: true })
|
|
426
|
+
], ButtonGroup.prototype, "selection", void 0);
|
|
427
|
+
__decorate([
|
|
428
|
+
property({ type: String, reflect: true })
|
|
429
|
+
], ButtonGroup.prototype, "value", void 0);
|
|
430
|
+
__decorate([
|
|
431
|
+
property({ type: String })
|
|
432
|
+
], ButtonGroup.prototype, "name", void 0);
|
|
433
|
+
if (!customElements.get('btu-button-group')) {
|
|
434
|
+
customElements.define('btu-button-group', ButtonGroup);
|
|
435
|
+
}
|
|
436
|
+
//# sourceMappingURL=ButtonGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonGroup.js","sourceRoot":"","sources":["../../../src/components/button-group/ButtonGroup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import '../icon/Icon.js';
|
|
3
|
+
declare const Checkbox_base: (new (...args: any[]) => import("../../util/EventEmitterMixin.js").EventEmitterMixinInterface) & (new (...args: any[]) => import("../../util/ReadyMixin.js").ReadyMixinInterface) & typeof LitElement;
|
|
4
|
+
/**
|
|
5
|
+
* A checkbox component for selecting one or more options from a set.
|
|
6
|
+
*
|
|
7
|
+
* Uses a hidden native checkbox internally for accessibility and form
|
|
8
|
+
* participation. Styled via the `btu-checkbox` Tailwind plugin classes.
|
|
9
|
+
* The component manages its own `className` — do not modify it externally
|
|
10
|
+
* after initialization (classes present at connection time are preserved).
|
|
11
|
+
*
|
|
12
|
+
* @element btu-checkbox
|
|
13
|
+
*
|
|
14
|
+
* @fires {CustomEvent} btu-checkbox-ready - Fired after the checkbox is first rendered and initialized
|
|
15
|
+
* @fires {CustomEvent<{ checked: boolean }>} btu-checkbox-change - Fired when the user toggles the checked state
|
|
16
|
+
*
|
|
17
|
+
* @cssprop --checkbox-color-primary - Background and border color when checked or indeterminate, and tinted background/border on unchecked hover (default: oklch(var(--btu-theme-primary-700)))
|
|
18
|
+
* @cssprop --checkbox-color-border - Border color in the unchecked state (default: oklch(var(--btu-theme-gray-300)))
|
|
19
|
+
* @cssprop --checkbox-color-error - Border and text color in the error state (default: oklch(var(--btu-theme-error-600)))
|
|
20
|
+
* @cssprop --checkbox-border-radius - Corner rounding of the checkbox square (default: 4px)
|
|
21
|
+
* @cssprop --checkbox-label-spacing - Distance between the checkbox and the label (default: 0.75rem)
|
|
22
|
+
* @cssprop --checkbox-box-size - [Internal] Width and height of the checkbox square, set by the size variant (sm: 1rem, md: 1.25rem). Use the `size` attribute instead of overriding directly — the icon must scale in tandem.
|
|
23
|
+
* @cssprop --checkbox-icon-size - [Internal] Width and height of the icon inside the box, set by the size variant (sm: 0.75rem, md: 0.875rem). Use the `size` attribute instead of overriding directly.
|
|
24
|
+
*/
|
|
25
|
+
export default class Checkbox extends Checkbox_base {
|
|
26
|
+
/**
|
|
27
|
+
* The text label displayed next to the checkbox.
|
|
28
|
+
* @attr
|
|
29
|
+
*/
|
|
30
|
+
label: string | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* Optional helper text displayed below the label.
|
|
33
|
+
* @attr
|
|
34
|
+
*/
|
|
35
|
+
description: string | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* Controls the scale of the checkbox and associated typography.
|
|
38
|
+
* @attr
|
|
39
|
+
*/
|
|
40
|
+
size: 'sm' | 'md';
|
|
41
|
+
/**
|
|
42
|
+
* Whether the checkbox is currently selected.
|
|
43
|
+
* @attr
|
|
44
|
+
*/
|
|
45
|
+
checked: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Whether the checkbox is in a partially selected state. Sets `aria-checked='mixed'`
|
|
48
|
+
* and activates the native `:indeterminate` pseudo-class. Cleared automatically when
|
|
49
|
+
* the user clicks the checkbox.
|
|
50
|
+
* @attr
|
|
51
|
+
*/
|
|
52
|
+
indeterminate: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* If true, the checkbox is non-interactive and visually muted.
|
|
55
|
+
* @attr
|
|
56
|
+
*/
|
|
57
|
+
disabled: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* If true, displays error styling on the checkbox.
|
|
60
|
+
* @attr
|
|
61
|
+
*/
|
|
62
|
+
invalid: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Error message text displayed below the checkbox when validation fails.
|
|
65
|
+
* Setting this also activates error styling without needing to set invalid.
|
|
66
|
+
* @attr
|
|
67
|
+
*/
|
|
68
|
+
error: string | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* Marks the field as mandatory for form submission.
|
|
71
|
+
* @attr
|
|
72
|
+
*/
|
|
73
|
+
required: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Name of the form control submitted with the form data.
|
|
76
|
+
* @attr
|
|
77
|
+
*/
|
|
78
|
+
name: string | undefined;
|
|
79
|
+
/**
|
|
80
|
+
* Value associated with the checkbox when submitted.
|
|
81
|
+
* @attr
|
|
82
|
+
*/
|
|
83
|
+
value: string;
|
|
84
|
+
private _userInitiated;
|
|
85
|
+
private _initialClasses;
|
|
86
|
+
private _initialClassesCaptured;
|
|
87
|
+
private _descId;
|
|
88
|
+
private _errorId;
|
|
89
|
+
connectedCallback(): void;
|
|
90
|
+
disconnectedCallback(): void;
|
|
91
|
+
createRenderRoot(): this;
|
|
92
|
+
willUpdate(changedProperties: Map<string | number | symbol, unknown>): void;
|
|
93
|
+
firstUpdated(changedProperties: Map<string | number | symbol, unknown>): void;
|
|
94
|
+
updated(changedProperties: Map<string | number | symbol, unknown>): void;
|
|
95
|
+
private _onInputChange;
|
|
96
|
+
private _handleClick;
|
|
97
|
+
private get _describedBy();
|
|
98
|
+
private get _iconSymbol();
|
|
99
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
100
|
+
}
|
|
101
|
+
declare global {
|
|
102
|
+
interface HTMLElementTagNameMap {
|
|
103
|
+
'btu-checkbox': Checkbox;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
export {};
|
|
107
|
+
//# sourceMappingURL=Checkbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/checkbox/Checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,KAAK,CAAA;AAK/C,OAAO,iBAAiB,CAAA;;AAExB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,aAAyC;IAC7E;;;OAGG;IAEH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IAEzB;;;OAGG;IAEH,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAE/B;;;OAGG;IAEH,IAAI,EAAE,IAAI,GAAG,IAAI,CAAO;IAExB;;;OAGG;IAEH,OAAO,UAAQ;IAEf;;;;;OAKG;IAEH,aAAa,UAAQ;IAErB;;;OAGG;IAEH,QAAQ,UAAQ;IAEhB;;;OAGG;IAEH,OAAO,UAAQ;IAEf;;;;OAIG;IAEH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IAEzB;;;OAGG;IAEH,QAAQ,UAAQ;IAEhB;;;OAGG;IAEH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IAExB;;;OAGG;IAEH,KAAK,EAAE,MAAM,CAAO;IAEpB,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,eAAe,CAAe;IACtC,OAAO,CAAC,uBAAuB,CAAQ;IACvC,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,QAAQ,CAA0C;IAE1D,iBAAiB,IAAI,IAAI;IASzB,oBAAoB,IAAI,IAAI;IAK5B,gBAAgB;IAIhB,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAW3E,YAAY,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAK7E,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAiBxE,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,YAAY,CAKnB;IAED,OAAO,KAAK,YAAY,GAKvB;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,MAAM;CAoCP;AAMD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,QAAQ,CAAA;KACzB;CACF"}
|