@brightspot/ui 1.9.0 → 1.11.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/copy-to-clipboard/CopyToClipboard.d.ts.map +1 -1
- package/dist/components/copy-to-clipboard/CopyToClipboard.js +4 -0
- package/dist/components/copy-to-clipboard/CopyToClipboard.js.map +1 -1
- package/dist/components/dropdown/Dropdown.d.ts +3 -1
- package/dist/components/dropdown/Dropdown.d.ts.map +1 -1
- package/dist/components/dropdown/Dropdown.js +22 -6
- package/dist/components/dropdown/Dropdown.js.map +1 -1
- package/dist/components/dropdown/DropdownItem.d.ts +14 -1
- package/dist/components/dropdown/DropdownItem.d.ts.map +1 -1
- package/dist/components/dropdown/DropdownItem.js +20 -1
- package/dist/components/dropdown/DropdownItem.js.map +1 -1
- package/dist/components/dropdown/DropdownMenu.d.ts +3 -5
- package/dist/components/dropdown/DropdownMenu.d.ts.map +1 -1
- package/dist/components/dropdown/DropdownMenu.js +17 -32
- package/dist/components/dropdown/DropdownMenu.js.map +1 -1
- 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 +80 -16
- package/dist/components/pagination/Pagination.js.map +1 -1
- package/dist/components/switch/Switch.d.ts +92 -0
- package/dist/components/switch/Switch.d.ts.map +1 -0
- package/dist/components/switch/Switch.js +189 -0
- package/dist/components/switch/Switch.js.map +1 -0
- 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/custom-elements.json +2736 -1390
- package/dist/effects/celebrate.d.ts +18 -0
- package/dist/effects/celebrate.d.ts.map +1 -0
- package/dist/effects/celebrate.js +81 -0
- package/dist/effects/celebrate.js.map +1 -0
- package/dist/effects/ripple.d.ts +31 -0
- package/dist/effects/ripple.d.ts.map +1 -0
- package/dist/effects/ripple.js +131 -0
- package/dist/effects/ripple.js.map +1 -0
- package/dist/effects/sparkle-worklet.d.ts +7 -0
- package/dist/effects/sparkle-worklet.d.ts.map +1 -0
- package/dist/effects/sparkle-worklet.js +211 -0
- package/dist/effects/sparkle-worklet.js.map +1 -0
- package/dist/effects/sparkle.d.ts +6 -0
- package/dist/effects/sparkle.d.ts.map +1 -0
- package/dist/effects/sparkle.js +91 -0
- package/dist/effects/sparkle.js.map +1 -0
- package/dist/storybook/BSPLogoMark.svg +3 -0
- package/dist/storybook/WelcomeBG.svg +292 -0
- package/dist/storybook/assets/ActionBar.stories--nAeDC-G.js +408 -0
- package/dist/storybook/assets/ActionItem.stories-BHrGjk-P.js +203 -0
- package/dist/storybook/assets/{Avatar.stories-Du1qM73U.js → Avatar.stories-Da-mRj6_.js} +1 -1
- package/dist/storybook/assets/{AvatarGroup.stories-DxwZQE-q.js → AvatarGroup.stories-BQlaC_yl.js} +1 -1
- package/dist/storybook/assets/{Badge.stories-CfvkMIx2.js → Badge.stories-DnVnOrnF.js} +1 -1
- package/dist/storybook/assets/Button-CFLAI1H9.js +10 -0
- package/dist/storybook/assets/Button.stories-DxaBOjwv.js +54 -0
- package/dist/storybook/assets/Celebrate.stories-CuMm15Nr.js +184 -0
- package/dist/storybook/assets/{CircularProgress.stories-rPzKwQYD.js → CircularProgress.stories-DRN8Mtvj.js} +1 -1
- package/dist/storybook/assets/{ClipboardMixin.stories-BlUeYDSi.js → ClipboardMixin.stories-DR7Ou2Av.js} +1 -1
- package/dist/storybook/assets/Color-6BZIO3FS-Die62Y0Z.js +1 -0
- package/dist/storybook/assets/{Colors.stories-BspfjZ5q.js → Colors.stories-bIq_ssbI.js} +1 -1
- package/dist/storybook/assets/CombinedEffects.stories-CtKzOUZn.js +355 -0
- package/dist/storybook/assets/{ComponentStatesMixin-eTV7XXqB.js → ComponentStatesMixin-DMLCk9fE.js} +1 -1
- package/dist/storybook/assets/{ComponentStatesMixin.stories-BbLSY3df.js → ComponentStatesMixin.stories-D8UI9o-d.js} +1 -1
- package/dist/storybook/assets/{CopyToClipboard.stories-B2ailiFF.js → CopyToClipboard.stories-ti6CpJNp.js} +1 -1
- package/dist/storybook/assets/{Debounce.stories-DJmp4eNo.js → Debounce.stories-DzZUSvbk.js} +1 -1
- package/dist/storybook/assets/DocsRenderer-LL677BLK-CIRGv5IX.js +10 -0
- package/dist/storybook/assets/{Dropdown.stories-Dd6vKiDd.js → Dropdown.stories-Lt4cY0Re.js} +41 -14
- package/dist/storybook/assets/{Events.stories-Byj-VOM9.js → Events.stories-B1ddcgpT.js} +1 -1
- package/dist/storybook/assets/{Heading.stories-Dqw-wzpx.js → Heading.stories-DI4w61cf.js} +1 -1
- package/dist/storybook/assets/HueRipple.stories-DjhoxxEw.js +310 -0
- package/dist/storybook/assets/{Icon.stories-Bp1nvWER.js → Icon.stories-CpziAhae.js} +1 -1
- package/dist/storybook/assets/{IconButton.stories-o9g9mGdh.js → IconButton.stories-KjN28hfc.js} +1 -1
- package/dist/storybook/assets/{LinearProgress.stories-DnXQVpzX.js → LinearProgress.stories-DcIpdz6R.js} +1 -1
- package/dist/storybook/assets/Pagination.stories-BBkLEwoP.js +252 -0
- package/dist/storybook/assets/{Popover.stories-BvavsRfq.js → Popover.stories-DLv48c2h.js} +3 -11
- package/dist/storybook/assets/{ReadyMixin-6On1MFFr.js → ReadyMixin-Cw2Dfbu2.js} +1 -1
- package/dist/storybook/assets/RovingTabindexMixin.stories-BWaFx9mu.js +192 -0
- package/dist/storybook/assets/{Rtc.stories-Bb5Y-908.js → Rtc.stories-Ve7Bwo_l.js} +1 -1
- package/dist/storybook/assets/ScrollShadow.stories-C6XmrRLm.js +17 -0
- package/dist/storybook/assets/Switch.stories-Cf8WM1LG.js +312 -0
- package/dist/storybook/assets/Tab.stories-CEtdEtOx.js +218 -0
- package/dist/storybook/assets/Tabs.stories-CIAO1bPO.js +211 -0
- package/dist/storybook/assets/{Throttle.stories-DmP-yKke.js → Throttle.stories-BqxVIb-r.js} +1 -1
- package/dist/storybook/assets/{Tooltip.stories-Dl6xHBaM.js → Tooltip.stories-B6fw6875.js} +3 -7
- package/dist/storybook/assets/Welcome.stories-CfJtSM19.js +215 -0
- package/dist/storybook/assets/{Widget.stories-BjXfgNjZ.js → Widget.stories-CiOho7lO.js} +1 -1
- package/dist/storybook/assets/WithTooltip-65CFNBJE-PGcopp73.js +9 -0
- package/dist/storybook/assets/blocks-dP2DwISI.js +707 -0
- package/dist/storybook/assets/celebrate-KwPoF1K3.js +21 -0
- package/dist/storybook/assets/formatter-EIJCOSYU-CZSAC3tg.js +1 -0
- package/dist/storybook/assets/if-defined-B1RdczOE.js +1 -0
- package/dist/storybook/assets/iframe-DloIUNZz.js +1104 -0
- package/dist/storybook/assets/{iframe-CNxIA3cQ.css → iframe-bJgLXZKK.css} +1 -1
- package/dist/storybook/assets/index-DKF0ypu5.js +1 -0
- package/dist/storybook/assets/onFind-C0l4Gew0.js +1 -0
- package/dist/storybook/assets/{onFind.stories-B2GYLrjV.js → onFind.stories-DOTt9puO.js} +2 -2
- package/dist/storybook/assets/{onRemove.stories-CoLJFkWa.js → onRemove.stories-CQ9ZC5dm.js} +1 -1
- package/dist/storybook/assets/{onVisible.stories-DOeZx7wi.js → onVisible.stories-Cbj5_Vz0.js} +2 -2
- package/dist/storybook/assets/position-CFNQy3J6.js +1 -0
- package/dist/storybook/assets/ripple-DQbyyRUw.js +251 -0
- package/dist/storybook/assets/style-map-DLXysq3r.js +1 -0
- package/dist/storybook/assets/syntaxhighlighter-ED5Y7EFY-Bjjbl9ca.js +6 -0
- package/dist/storybook/brightspot-logo.svg +19 -0
- package/dist/storybook/iframe.html +23 -3
- package/dist/storybook/index.html +42 -1
- package/dist/storybook/index.json +1 -1
- package/dist/storybook/project.json +1 -1
- package/dist/storybook/sb-addons/storybook-3/manager-bundle.js +3 -0
- 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 +4 -5
- package/dist/tailwind-plugin-badge.js.map +1 -1
- package/dist/tailwind-plugin-badge.ts +4 -5
- package/dist/tailwind-plugin-button.js +1 -0
- package/dist/tailwind-plugin-button.js.map +1 -1
- package/dist/tailwind-plugin-button.ts +1 -0
- 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-switch.d.ts +2 -0
- package/dist/tailwind-plugin-switch.d.ts.map +1 -0
- package/dist/tailwind-plugin-switch.js +223 -0
- package/dist/tailwind-plugin-switch.js.map +1 -0
- package/dist/tailwind-plugin-switch.ts +252 -0
- 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 +151 -0
- package/dist/tailwind-plugin-tabs.js.map +1 -0
- package/dist/tailwind-plugin-tabs.ts +162 -0
- package/dist/util/EventEmitterMixin.d.ts +21 -0
- package/dist/util/EventEmitterMixin.d.ts.map +1 -1
- package/dist/util/EventEmitterMixin.js.map +1 -1
- package/dist/util/RovingTabindexMixin.d.ts +38 -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/position.d.ts +9 -0
- package/dist/util/position.d.ts.map +1 -0
- package/dist/util/position.js +11 -0
- package/dist/util/position.js.map +1 -0
- package/docs/components/ActionBar.md +71 -0
- package/docs/components/ActionItem.md +76 -0
- package/docs/components/Dropdown.md +7 -7
- package/docs/components/DropdownItem.md +9 -5
- package/docs/components/DropdownMenu.md +12 -12
- package/docs/components/Pagination.md +37 -34
- package/docs/components/README.md +5 -0
- package/docs/components/Switch.md +79 -0
- package/docs/components/Tab.md +73 -0
- package/docs/components/Tabs.md +77 -0
- package/package.json +2 -1
- package/dist/storybook/assets/Button.stories-hDMDDh81.js +0 -63
- package/dist/storybook/assets/Color-6BZIO3FS-C_nQSB2u.js +0 -1
- package/dist/storybook/assets/DocsRenderer-LL677BLK-56Pige1J.js +0 -758
- package/dist/storybook/assets/Pagination.stories-DQD8uvDc.js +0 -272
- package/dist/storybook/assets/ScrollShadow.stories-ZovRXpte.js +0 -17
- package/dist/storybook/assets/WithTooltip-65CFNBJE-CGB5q-AN.js +0 -9
- package/dist/storybook/assets/_commonjsHelpers-CqkleIqs.js +0 -1
- package/dist/storybook/assets/formatter-EIJCOSYU-BhNtSFM9.js +0 -1
- package/dist/storybook/assets/if-defined-BFyUeSVF.js +0 -1
- package/dist/storybook/assets/iframe-BeKreX-l.js +0 -1061
- package/dist/storybook/assets/index-Uz2kGy8J.js +0 -1
- package/dist/storybook/assets/onFind-DqriYjEB.js +0 -1
- package/dist/storybook/assets/style-map-CmHqpCu1.js +0 -1
- package/dist/storybook/assets/syntaxhighlighter-ED5Y7EFY-BqFfcc7x.js +0 -6
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
import plugin from 'tailwindcss/plugin'
|
|
2
|
+
import type { CSSRuleObject } from 'tailwindcss/types/config'
|
|
3
|
+
declare let module: any
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Switch component — a styled checkbox visually rendered as a sliding switch.
|
|
7
|
+
*
|
|
8
|
+
* Class Names:
|
|
9
|
+
*
|
|
10
|
+
* btu-switch - Wrapper element (use as <label>)
|
|
11
|
+
* btu-switch-input - The hidden <input type="checkbox">
|
|
12
|
+
* btu-switch-track - The pill/track element
|
|
13
|
+
* btu-switch-knob - The sliding circular handle (child of btu-switch-track)
|
|
14
|
+
* btu-switch-text - Optional container for label + description (flex column)
|
|
15
|
+
* btu-switch-label - Primary label text
|
|
16
|
+
* btu-switch-description - Secondary description text
|
|
17
|
+
* btu-switch-[md|lg] - Size variants (default: sm dimensions)
|
|
18
|
+
* btu-switch-label-start - Positions label/text before the track
|
|
19
|
+
* btu-switch-track-icon-on - Icon displayed on the track when checked (sm: 0.5rem, md: 0.625rem, lg: 0.75rem)
|
|
20
|
+
* btu-switch-track-icon-off - Icon displayed on the track when unchecked (sm: 0.5rem, md: 0.625rem, lg: 0.75rem)
|
|
21
|
+
*
|
|
22
|
+
* CSS Custom Properties:
|
|
23
|
+
*
|
|
24
|
+
* --switch-color-track-on - Track background when checked (default: primary-700)
|
|
25
|
+
* --switch-color-track-off - Track background when unchecked (default: gray-300)
|
|
26
|
+
* --switch-color-knob - Knob/handle color (default: white)
|
|
27
|
+
* --switch-label-spacing - Gap between track and label text (default: 0.75rem)
|
|
28
|
+
*
|
|
29
|
+
* Example Usage:
|
|
30
|
+
*
|
|
31
|
+
* <label class="btu-switch">
|
|
32
|
+
* <input type="checkbox" role="switch" class="btu-switch-input">
|
|
33
|
+
* <span class="btu-switch-track">
|
|
34
|
+
* <btu-icon class="btu-switch-track-icon-on" symbol="check"></btu-icon>
|
|
35
|
+
* <span class="btu-switch-knob"></span>
|
|
36
|
+
* <btu-icon class="btu-switch-track-icon-off" symbol="x"></btu-icon>
|
|
37
|
+
* </span>
|
|
38
|
+
* <span class="btu-switch-text">
|
|
39
|
+
* <span class="btu-switch-label">Enable notifications</span>
|
|
40
|
+
* <span class="btu-switch-description">Receive updates via email</span>
|
|
41
|
+
* </span>
|
|
42
|
+
* </label>
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
module.exports = plugin(function ({ addComponents, config, theme }) {
|
|
46
|
+
const components: CSSRuleObject = {
|
|
47
|
+
// -------------------------------------------------------------------------
|
|
48
|
+
// Wrapper
|
|
49
|
+
// -------------------------------------------------------------------------
|
|
50
|
+
'.btu-switch': {
|
|
51
|
+
'--switch-track-width': '1.75rem',
|
|
52
|
+
'--switch-track-height': '1rem',
|
|
53
|
+
'--switch-knob-size': '0.75rem',
|
|
54
|
+
'--switch-knob-padding': '0.125rem',
|
|
55
|
+
'--switch-track-icon-size': '0.5rem',
|
|
56
|
+
display: 'inline-flex',
|
|
57
|
+
alignItems: 'center',
|
|
58
|
+
gap: 'var(--switch-label-spacing, 0.75rem)',
|
|
59
|
+
cursor: 'pointer',
|
|
60
|
+
userSelect: 'none',
|
|
61
|
+
},
|
|
62
|
+
|
|
63
|
+
// -------------------------------------------------------------------------
|
|
64
|
+
// Hidden input (sr-only pattern)
|
|
65
|
+
// -------------------------------------------------------------------------
|
|
66
|
+
'.btu-switch-input': {
|
|
67
|
+
position: 'absolute',
|
|
68
|
+
width: '1px',
|
|
69
|
+
height: '1px',
|
|
70
|
+
padding: '0',
|
|
71
|
+
margin: '-1px',
|
|
72
|
+
overflow: 'hidden',
|
|
73
|
+
clipPath: 'inset(50%)',
|
|
74
|
+
whiteSpace: 'nowrap',
|
|
75
|
+
borderWidth: '0',
|
|
76
|
+
},
|
|
77
|
+
|
|
78
|
+
// -------------------------------------------------------------------------
|
|
79
|
+
// Track
|
|
80
|
+
// -------------------------------------------------------------------------
|
|
81
|
+
'.btu-switch-track': {
|
|
82
|
+
flexShrink: '0',
|
|
83
|
+
position: 'relative',
|
|
84
|
+
display: 'inline-flex',
|
|
85
|
+
alignItems: 'center',
|
|
86
|
+
width: 'var(--switch-track-width)',
|
|
87
|
+
height: 'var(--switch-track-height)',
|
|
88
|
+
padding: 'var(--switch-knob-padding)',
|
|
89
|
+
borderRadius: '999px',
|
|
90
|
+
background: 'var(--switch-color-track-off, oklch(var(--btu-theme-gray-300)))',
|
|
91
|
+
transition: 'background 150ms ease-in-out',
|
|
92
|
+
},
|
|
93
|
+
|
|
94
|
+
// -------------------------------------------------------------------------
|
|
95
|
+
// Knob
|
|
96
|
+
// -------------------------------------------------------------------------
|
|
97
|
+
'.btu-switch-knob': {
|
|
98
|
+
flexShrink: '0',
|
|
99
|
+
width: 'var(--switch-knob-size)',
|
|
100
|
+
height: 'var(--switch-knob-size)',
|
|
101
|
+
borderRadius: '50%',
|
|
102
|
+
background: 'var(--switch-color-knob, var(--btu-theme-white))',
|
|
103
|
+
boxShadow: theme('boxShadow.sm'),
|
|
104
|
+
transition: 'transform 170ms cubic-bezier(.895, .03, .685, .22)',
|
|
105
|
+
},
|
|
106
|
+
|
|
107
|
+
// -------------------------------------------------------------------------
|
|
108
|
+
// Track icons (on/off)
|
|
109
|
+
// -------------------------------------------------------------------------
|
|
110
|
+
'.btu-switch-track-icon-on, .btu-switch-track-icon-off': {
|
|
111
|
+
position: 'absolute',
|
|
112
|
+
top: '50%',
|
|
113
|
+
opacity: '0',
|
|
114
|
+
color: 'var(--switch-color-knob, var(--btu-theme-white))',
|
|
115
|
+
pointerEvents: 'none',
|
|
116
|
+
transition: 'opacity 150ms ease-in-out',
|
|
117
|
+
},
|
|
118
|
+
|
|
119
|
+
'.btu-switch-track-icon-on': {
|
|
120
|
+
left: 'calc((var(--switch-track-width) - var(--switch-knob-size) - var(--switch-knob-padding)) / 2)',
|
|
121
|
+
transform: 'translate(-50%, -50%)',
|
|
122
|
+
},
|
|
123
|
+
|
|
124
|
+
'.btu-switch-track-icon-off': {
|
|
125
|
+
right: 'calc((var(--switch-track-width) - var(--switch-knob-size) - var(--switch-knob-padding)) / 2)',
|
|
126
|
+
transform: 'translate(50%, -50%)',
|
|
127
|
+
},
|
|
128
|
+
|
|
129
|
+
'.btu-switch-input:not(:checked) ~ .btu-switch-track .btu-switch-track-icon-off': {
|
|
130
|
+
opacity: '1',
|
|
131
|
+
},
|
|
132
|
+
|
|
133
|
+
// -------------------------------------------------------------------------
|
|
134
|
+
// Checked state
|
|
135
|
+
// -------------------------------------------------------------------------
|
|
136
|
+
'.btu-switch-input:checked ~ .btu-switch-track': {
|
|
137
|
+
background: 'var(--switch-color-track-on, oklch(var(--btu-theme-primary-700)))',
|
|
138
|
+
},
|
|
139
|
+
|
|
140
|
+
'.btu-switch-input:checked ~ .btu-switch-track .btu-switch-track-icon-on': {
|
|
141
|
+
opacity: '1',
|
|
142
|
+
},
|
|
143
|
+
|
|
144
|
+
'.btu-switch-input:checked ~ .btu-switch-track .btu-switch-knob': {
|
|
145
|
+
transform:
|
|
146
|
+
'translateX(calc(var(--switch-track-width) - var(--switch-knob-size) - var(--switch-knob-padding) * 2))',
|
|
147
|
+
},
|
|
148
|
+
|
|
149
|
+
// -------------------------------------------------------------------------
|
|
150
|
+
// Hover state
|
|
151
|
+
// -------------------------------------------------------------------------
|
|
152
|
+
'.btu-switch:hover .btu-switch-input:not(:disabled) ~ .btu-switch-track': {
|
|
153
|
+
background: 'var(--switch-color-track-off, oklch(var(--btu-theme-gray-400)))',
|
|
154
|
+
},
|
|
155
|
+
|
|
156
|
+
'.btu-switch:hover .btu-switch-input:not(:disabled):checked ~ .btu-switch-track': {
|
|
157
|
+
background: 'var(--switch-color-track-on, oklch(var(--btu-theme-primary-800)))',
|
|
158
|
+
},
|
|
159
|
+
|
|
160
|
+
// -------------------------------------------------------------------------
|
|
161
|
+
// Focus visible — ring on the track
|
|
162
|
+
// -------------------------------------------------------------------------
|
|
163
|
+
'.btu-switch-input:focus-visible ~ .btu-switch-track': {
|
|
164
|
+
outline: '3px solid oklch(var(--btu-theme-primary-200))',
|
|
165
|
+
outlineOffset: '0px',
|
|
166
|
+
},
|
|
167
|
+
|
|
168
|
+
// -------------------------------------------------------------------------
|
|
169
|
+
// Disabled state
|
|
170
|
+
// -------------------------------------------------------------------------
|
|
171
|
+
'.btu-switch-input:disabled ~ .btu-switch-track': {
|
|
172
|
+
opacity: '0.5',
|
|
173
|
+
pointerEvents: 'none',
|
|
174
|
+
},
|
|
175
|
+
|
|
176
|
+
'.btu-switch-input:disabled:checked ~ .btu-switch-track': {
|
|
177
|
+
background: 'oklch(var(--btu-theme-primary-200))',
|
|
178
|
+
opacity: '1',
|
|
179
|
+
},
|
|
180
|
+
|
|
181
|
+
'.btu-switch-input:disabled ~ .btu-switch-text': {
|
|
182
|
+
color: 'oklch(var(--btu-theme-gray-300))',
|
|
183
|
+
},
|
|
184
|
+
|
|
185
|
+
'.btu-switch:has(.btu-switch-input:disabled)': {
|
|
186
|
+
pointerEvents: 'none',
|
|
187
|
+
},
|
|
188
|
+
|
|
189
|
+
// -------------------------------------------------------------------------
|
|
190
|
+
// Text elements
|
|
191
|
+
// -------------------------------------------------------------------------
|
|
192
|
+
'.btu-switch-text': {
|
|
193
|
+
display: 'flex',
|
|
194
|
+
flexDirection: 'column',
|
|
195
|
+
gap: '0.125rem',
|
|
196
|
+
},
|
|
197
|
+
|
|
198
|
+
'.btu-switch-label': {
|
|
199
|
+
fontSize: config('theme.fontSize.sm')?.[0] ?? '0.875rem',
|
|
200
|
+
lineHeight: config('theme.fontSize.sm')?.[1] ?? '1.25rem',
|
|
201
|
+
fontWeight: '500',
|
|
202
|
+
color: 'oklch(var(--btu-theme-gray-700))',
|
|
203
|
+
},
|
|
204
|
+
|
|
205
|
+
'.btu-switch-description': {
|
|
206
|
+
fontSize: config('theme.fontSize.xs')?.[0] ?? '0.75rem',
|
|
207
|
+
lineHeight: config('theme.fontSize.xs')?.[1] ?? '1.125rem',
|
|
208
|
+
color: 'oklch(var(--btu-theme-gray-500))',
|
|
209
|
+
},
|
|
210
|
+
|
|
211
|
+
// -------------------------------------------------------------------------
|
|
212
|
+
// Label position: start (label/text before track)
|
|
213
|
+
// -------------------------------------------------------------------------
|
|
214
|
+
'.btu-switch-label-start': {
|
|
215
|
+
flexDirection: 'row-reverse',
|
|
216
|
+
},
|
|
217
|
+
|
|
218
|
+
// -------------------------------------------------------------------------
|
|
219
|
+
// Size variants
|
|
220
|
+
// -------------------------------------------------------------------------
|
|
221
|
+
'.btu-switch-md': {
|
|
222
|
+
'--switch-track-width': '2.25rem',
|
|
223
|
+
'--switch-track-height': '1.25rem',
|
|
224
|
+
'--switch-knob-size': '1rem',
|
|
225
|
+
'--switch-track-icon-size': '0.625rem',
|
|
226
|
+
},
|
|
227
|
+
|
|
228
|
+
'.btu-switch-lg': {
|
|
229
|
+
'--switch-track-width': '2.75rem',
|
|
230
|
+
'--switch-track-height': '1.5rem',
|
|
231
|
+
'--switch-knob-size': '1.25rem',
|
|
232
|
+
'--switch-track-icon-size': '0.75rem',
|
|
233
|
+
},
|
|
234
|
+
|
|
235
|
+
// -------------------------------------------------------------------------
|
|
236
|
+
// Reduced motion
|
|
237
|
+
// -------------------------------------------------------------------------
|
|
238
|
+
'@media (prefers-reduced-motion: reduce)': {
|
|
239
|
+
'.btu-switch-track': {
|
|
240
|
+
transition: 'background 0.01ms ease',
|
|
241
|
+
},
|
|
242
|
+
'.btu-switch-knob': {
|
|
243
|
+
transition: 'transform 0.01ms ease',
|
|
244
|
+
},
|
|
245
|
+
'.btu-switch-track-icon-on, .btu-switch-track-icon-off': {
|
|
246
|
+
transition: 'opacity 0.01ms ease',
|
|
247
|
+
},
|
|
248
|
+
},
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
addComponents(components)
|
|
252
|
+
})
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tailwind-plugin-tabs.d.ts","sourceRoot":"","sources":["../src/tailwind-plugin-tabs.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import plugin from 'tailwindcss/plugin';
|
|
2
|
+
/**
|
|
3
|
+
* Tabs component styles.
|
|
4
|
+
*
|
|
5
|
+
* Class Names:
|
|
6
|
+
*
|
|
7
|
+
* btu-tabs - Root container
|
|
8
|
+
* btu-tabs-xs - Extra small container padding
|
|
9
|
+
* btu-tabs-sm - Small container padding
|
|
10
|
+
* btu-tabs-md - Medium container padding (default)
|
|
11
|
+
* btu-tabs-lg - Large container padding
|
|
12
|
+
* btu-tab - Individual tab wrapper
|
|
13
|
+
* btu-tab-button - Inner tab button
|
|
14
|
+
* btu-tab-button-xs - Extra small button height/text
|
|
15
|
+
* btu-tab-button-sm - Small button height/text
|
|
16
|
+
* btu-tab-button-md - Medium button height/text (default)
|
|
17
|
+
* btu-tab-button-lg - Large button height/text
|
|
18
|
+
* btu-tab-indicator - Active tab underline indicator
|
|
19
|
+
* btu-tabs-menu-mode - Menu variant overflow override
|
|
20
|
+
* btu-tab-menu-wrapper - Menu variant wrapper for label and dropdown
|
|
21
|
+
* btu-tab-menu-label - Menu variant active tab label
|
|
22
|
+
*
|
|
23
|
+
* CSS Custom Properties:
|
|
24
|
+
*
|
|
25
|
+
* --tabs-active-color - Text and icon color of the active tab (default: gray-700)
|
|
26
|
+
* --tabs-active-indicator-color - Color of the active tab underline indicator (default: primary gradient)
|
|
27
|
+
* --tabs-border-color - Bottom border divider color (default: gray-200)
|
|
28
|
+
* --tabs-color - Text and icon color for all tabs (default: gray-500)
|
|
29
|
+
* --tabs-background - Background color for all tab buttons (default: transparent)
|
|
30
|
+
* --tabs-container-background - Background color of the tabs container (default: theme white)
|
|
31
|
+
* --tabs-hover-background - Background color of a tab on hover (default: gray-100)
|
|
32
|
+
* --tabs-hover-color - Text and icon color of a tab on hover (default: gray-700)
|
|
33
|
+
* --tabs-gap - Spacing between tabs (default: 1rem)
|
|
34
|
+
*/
|
|
35
|
+
module.exports = plugin(function ({ addComponents, addBase, config, theme }) {
|
|
36
|
+
const fontSize_xs = config('theme.fontSize.xs')?.[0] ?? '0.75rem';
|
|
37
|
+
const fontSize_sm = config('theme.fontSize.sm')?.[0] ?? '0.875rem';
|
|
38
|
+
const fontSize_base = config('theme.fontSize.base')?.[0] ?? '1rem';
|
|
39
|
+
addBase({
|
|
40
|
+
'@keyframes btu-tab-draw': {
|
|
41
|
+
from: { transform: 'scaleX(0)' },
|
|
42
|
+
to: { transform: 'scaleX(1)' },
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
addComponents({
|
|
46
|
+
'.btu-tabs': {
|
|
47
|
+
display: 'flex',
|
|
48
|
+
alignItems: 'center',
|
|
49
|
+
gap: 'var(--tabs-gap, 1rem)',
|
|
50
|
+
position: 'relative',
|
|
51
|
+
borderBottom: '1px solid var(--tabs-border-color, oklch(var(--btu-theme-gray-200)))',
|
|
52
|
+
backgroundColor: 'var(--tabs-container-background, var(--btu-theme-white))',
|
|
53
|
+
overflowX: 'auto',
|
|
54
|
+
overflowY: 'clip',
|
|
55
|
+
},
|
|
56
|
+
// In menu mode, disable scrolling so the dropdown can extend beyond the container
|
|
57
|
+
'.btu-tabs-menu-mode': {
|
|
58
|
+
overflowX: 'visible',
|
|
59
|
+
overflowY: 'visible',
|
|
60
|
+
},
|
|
61
|
+
'.btu-tabs-xs': { paddingInline: '1rem' },
|
|
62
|
+
'.btu-tabs-sm': { paddingInline: '1rem' },
|
|
63
|
+
'.btu-tabs-md': { paddingInline: '1.5rem' },
|
|
64
|
+
'.btu-tabs-lg': { paddingInline: '1.5rem' },
|
|
65
|
+
'.btu-tab': {
|
|
66
|
+
display: 'inline-flex',
|
|
67
|
+
flexDirection: 'column',
|
|
68
|
+
alignItems: 'center',
|
|
69
|
+
flexShrink: '0',
|
|
70
|
+
},
|
|
71
|
+
'.btu-tab-button': {
|
|
72
|
+
position: 'relative',
|
|
73
|
+
display: 'inline-flex',
|
|
74
|
+
alignItems: 'center',
|
|
75
|
+
justifyContent: 'center',
|
|
76
|
+
gap: '0.5rem',
|
|
77
|
+
paddingInline: '0.5rem',
|
|
78
|
+
cursor: 'pointer',
|
|
79
|
+
whiteSpace: 'nowrap',
|
|
80
|
+
boxSizing: 'border-box',
|
|
81
|
+
backgroundColor: 'var(--tabs-background, transparent)',
|
|
82
|
+
color: 'var(--tabs-color, oklch(var(--btu-theme-gray-500)))',
|
|
83
|
+
transitionProperty: 'color, background-color',
|
|
84
|
+
transitionDuration: '150ms',
|
|
85
|
+
transitionTimingFunction: 'ease',
|
|
86
|
+
'&:hover:not([aria-disabled="true"])': {
|
|
87
|
+
backgroundColor: 'var(--tabs-hover-background, oklch(var(--btu-theme-gray-100)))',
|
|
88
|
+
color: 'var(--tabs-hover-color, oklch(var(--btu-theme-gray-700)))',
|
|
89
|
+
},
|
|
90
|
+
'&[aria-selected="true"]:not([aria-disabled="true"])': {
|
|
91
|
+
color: 'var(--tabs-active-color, oklch(var(--btu-theme-gray-700)))',
|
|
92
|
+
},
|
|
93
|
+
'&[aria-disabled="true"]': {
|
|
94
|
+
color: 'oklch(var(--btu-theme-gray-300))',
|
|
95
|
+
cursor: 'not-allowed',
|
|
96
|
+
},
|
|
97
|
+
'&:focus-visible': {
|
|
98
|
+
outline: 'none',
|
|
99
|
+
boxShadow: 'inset 0 0 0 3px oklch(var(--btu-theme-primary-100)), inset 0 0 0 4px oklch(var(--btu-theme-primary-600))',
|
|
100
|
+
},
|
|
101
|
+
'@media (prefers-reduced-motion: reduce)': {
|
|
102
|
+
transitionDuration: '0.01ms',
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
'.btu-tab-button-xs': {
|
|
106
|
+
height: '2.25rem',
|
|
107
|
+
fontSize: fontSize_xs,
|
|
108
|
+
fontWeight: '400',
|
|
109
|
+
},
|
|
110
|
+
'.btu-tab-button-sm': {
|
|
111
|
+
height: '2.75rem',
|
|
112
|
+
fontSize: fontSize_sm,
|
|
113
|
+
fontWeight: '500',
|
|
114
|
+
},
|
|
115
|
+
'.btu-tab-button-md': {
|
|
116
|
+
height: '3.25rem',
|
|
117
|
+
fontSize: fontSize_sm,
|
|
118
|
+
fontWeight: '500',
|
|
119
|
+
},
|
|
120
|
+
'.btu-tab-button-lg': {
|
|
121
|
+
height: '3.5rem',
|
|
122
|
+
fontSize: fontSize_base,
|
|
123
|
+
fontWeight: '500',
|
|
124
|
+
},
|
|
125
|
+
'.btu-tab-indicator': {
|
|
126
|
+
position: 'absolute',
|
|
127
|
+
bottom: '0',
|
|
128
|
+
left: '0',
|
|
129
|
+
right: '0',
|
|
130
|
+
height: '0.125rem',
|
|
131
|
+
background: `var(--tabs-active-indicator-color, ${theme('backgroundImage.primary-gradient')})`,
|
|
132
|
+
transformOrigin: 'left',
|
|
133
|
+
animation: 'btu-tab-draw 200ms ease-out',
|
|
134
|
+
'@media (prefers-reduced-motion: reduce)': {
|
|
135
|
+
animationDuration: '0.01ms',
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
'.btu-tab-menu-wrapper': {
|
|
139
|
+
display: 'inline-flex',
|
|
140
|
+
alignItems: 'center',
|
|
141
|
+
gap: '0.5rem',
|
|
142
|
+
},
|
|
143
|
+
'.btu-tab-menu-label': {
|
|
144
|
+
fontSize: fontSize_sm,
|
|
145
|
+
fontWeight: '500',
|
|
146
|
+
color: 'var(--tabs-active-color, oklch(var(--btu-theme-gray-700)))',
|
|
147
|
+
whiteSpace: 'nowrap',
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
//# sourceMappingURL=tailwind-plugin-tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tailwind-plugin-tabs.js","sourceRoot":"","sources":["../src/tailwind-plugin-tabs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import plugin from 'tailwindcss/plugin'
|
|
2
|
+
declare let module: any
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Tabs component styles.
|
|
6
|
+
*
|
|
7
|
+
* Class Names:
|
|
8
|
+
*
|
|
9
|
+
* btu-tabs - Root container
|
|
10
|
+
* btu-tabs-xs - Extra small container padding
|
|
11
|
+
* btu-tabs-sm - Small container padding
|
|
12
|
+
* btu-tabs-md - Medium container padding (default)
|
|
13
|
+
* btu-tabs-lg - Large container padding
|
|
14
|
+
* btu-tab - Individual tab wrapper
|
|
15
|
+
* btu-tab-button - Inner tab button
|
|
16
|
+
* btu-tab-button-xs - Extra small button height/text
|
|
17
|
+
* btu-tab-button-sm - Small button height/text
|
|
18
|
+
* btu-tab-button-md - Medium button height/text (default)
|
|
19
|
+
* btu-tab-button-lg - Large button height/text
|
|
20
|
+
* btu-tab-indicator - Active tab underline indicator
|
|
21
|
+
* btu-tabs-menu-mode - Menu variant overflow override
|
|
22
|
+
* btu-tab-menu-wrapper - Menu variant wrapper for label and dropdown
|
|
23
|
+
* btu-tab-menu-label - Menu variant active tab label
|
|
24
|
+
*
|
|
25
|
+
* CSS Custom Properties:
|
|
26
|
+
*
|
|
27
|
+
* --tabs-active-color - Text and icon color of the active tab (default: gray-700)
|
|
28
|
+
* --tabs-active-indicator-color - Color of the active tab underline indicator (default: primary gradient)
|
|
29
|
+
* --tabs-border-color - Bottom border divider color (default: gray-200)
|
|
30
|
+
* --tabs-color - Text and icon color for all tabs (default: gray-500)
|
|
31
|
+
* --tabs-background - Background color for all tab buttons (default: transparent)
|
|
32
|
+
* --tabs-container-background - Background color of the tabs container (default: theme white)
|
|
33
|
+
* --tabs-hover-background - Background color of a tab on hover (default: gray-100)
|
|
34
|
+
* --tabs-hover-color - Text and icon color of a tab on hover (default: gray-700)
|
|
35
|
+
* --tabs-gap - Spacing between tabs (default: 1rem)
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
module.exports = plugin(function ({ addComponents, addBase, config, theme }) {
|
|
39
|
+
const fontSize_xs = config('theme.fontSize.xs')?.[0] ?? '0.75rem'
|
|
40
|
+
const fontSize_sm = config('theme.fontSize.sm')?.[0] ?? '0.875rem'
|
|
41
|
+
const fontSize_base = config('theme.fontSize.base')?.[0] ?? '1rem'
|
|
42
|
+
|
|
43
|
+
addBase({
|
|
44
|
+
'@keyframes btu-tab-draw': {
|
|
45
|
+
from: { transform: 'scaleX(0)' },
|
|
46
|
+
to: { transform: 'scaleX(1)' },
|
|
47
|
+
},
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
addComponents({
|
|
51
|
+
'.btu-tabs': {
|
|
52
|
+
display: 'flex',
|
|
53
|
+
alignItems: 'center',
|
|
54
|
+
gap: 'var(--tabs-gap, 1rem)',
|
|
55
|
+
position: 'relative',
|
|
56
|
+
borderBottom: '1px solid var(--tabs-border-color, oklch(var(--btu-theme-gray-200)))',
|
|
57
|
+
backgroundColor: 'var(--tabs-container-background, var(--btu-theme-white))',
|
|
58
|
+
overflowX: 'auto',
|
|
59
|
+
overflowY: 'clip',
|
|
60
|
+
},
|
|
61
|
+
// In menu mode, disable scrolling so the dropdown can extend beyond the container
|
|
62
|
+
'.btu-tabs-menu-mode': {
|
|
63
|
+
overflowX: 'visible',
|
|
64
|
+
overflowY: 'visible',
|
|
65
|
+
},
|
|
66
|
+
'.btu-tabs-xs': { paddingInline: '1rem' },
|
|
67
|
+
'.btu-tabs-sm': { paddingInline: '1rem' },
|
|
68
|
+
'.btu-tabs-md': { paddingInline: '1.5rem' },
|
|
69
|
+
'.btu-tabs-lg': { paddingInline: '1.5rem' },
|
|
70
|
+
|
|
71
|
+
'.btu-tab': {
|
|
72
|
+
display: 'inline-flex',
|
|
73
|
+
flexDirection: 'column',
|
|
74
|
+
alignItems: 'center',
|
|
75
|
+
flexShrink: '0',
|
|
76
|
+
},
|
|
77
|
+
|
|
78
|
+
'.btu-tab-button': {
|
|
79
|
+
position: 'relative',
|
|
80
|
+
display: 'inline-flex',
|
|
81
|
+
alignItems: 'center',
|
|
82
|
+
justifyContent: 'center',
|
|
83
|
+
gap: '0.5rem',
|
|
84
|
+
paddingInline: '0.5rem',
|
|
85
|
+
cursor: 'pointer',
|
|
86
|
+
whiteSpace: 'nowrap',
|
|
87
|
+
boxSizing: 'border-box',
|
|
88
|
+
backgroundColor: 'var(--tabs-background, transparent)',
|
|
89
|
+
color: 'var(--tabs-color, oklch(var(--btu-theme-gray-500)))',
|
|
90
|
+
transitionProperty: 'color, background-color',
|
|
91
|
+
transitionDuration: '150ms',
|
|
92
|
+
transitionTimingFunction: 'ease',
|
|
93
|
+
'&:hover:not([aria-disabled="true"])': {
|
|
94
|
+
backgroundColor: 'var(--tabs-hover-background, oklch(var(--btu-theme-gray-100)))',
|
|
95
|
+
color: 'var(--tabs-hover-color, oklch(var(--btu-theme-gray-700)))',
|
|
96
|
+
},
|
|
97
|
+
'&[aria-selected="true"]:not([aria-disabled="true"])': {
|
|
98
|
+
color: 'var(--tabs-active-color, oklch(var(--btu-theme-gray-700)))',
|
|
99
|
+
},
|
|
100
|
+
'&[aria-disabled="true"]': {
|
|
101
|
+
color: 'oklch(var(--btu-theme-gray-300))',
|
|
102
|
+
cursor: 'not-allowed',
|
|
103
|
+
},
|
|
104
|
+
'&:focus-visible': {
|
|
105
|
+
outline: 'none',
|
|
106
|
+
boxShadow:
|
|
107
|
+
'inset 0 0 0 3px oklch(var(--btu-theme-primary-100)), inset 0 0 0 4px oklch(var(--btu-theme-primary-600))',
|
|
108
|
+
},
|
|
109
|
+
'@media (prefers-reduced-motion: reduce)': {
|
|
110
|
+
transitionDuration: '0.01ms',
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
|
|
114
|
+
'.btu-tab-button-xs': {
|
|
115
|
+
height: '2.25rem',
|
|
116
|
+
fontSize: fontSize_xs,
|
|
117
|
+
fontWeight: '400',
|
|
118
|
+
},
|
|
119
|
+
'.btu-tab-button-sm': {
|
|
120
|
+
height: '2.75rem',
|
|
121
|
+
fontSize: fontSize_sm,
|
|
122
|
+
fontWeight: '500',
|
|
123
|
+
},
|
|
124
|
+
'.btu-tab-button-md': {
|
|
125
|
+
height: '3.25rem',
|
|
126
|
+
fontSize: fontSize_sm,
|
|
127
|
+
fontWeight: '500',
|
|
128
|
+
},
|
|
129
|
+
'.btu-tab-button-lg': {
|
|
130
|
+
height: '3.5rem',
|
|
131
|
+
fontSize: fontSize_base,
|
|
132
|
+
fontWeight: '500',
|
|
133
|
+
},
|
|
134
|
+
|
|
135
|
+
'.btu-tab-indicator': {
|
|
136
|
+
position: 'absolute',
|
|
137
|
+
bottom: '0',
|
|
138
|
+
left: '0',
|
|
139
|
+
right: '0',
|
|
140
|
+
height: '0.125rem',
|
|
141
|
+
background: `var(--tabs-active-indicator-color, ${theme('backgroundImage.primary-gradient')})`,
|
|
142
|
+
transformOrigin: 'left',
|
|
143
|
+
animation: 'btu-tab-draw 200ms ease-out',
|
|
144
|
+
'@media (prefers-reduced-motion: reduce)': {
|
|
145
|
+
animationDuration: '0.01ms',
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
|
|
149
|
+
'.btu-tab-menu-wrapper': {
|
|
150
|
+
display: 'inline-flex',
|
|
151
|
+
alignItems: 'center',
|
|
152
|
+
gap: '0.5rem',
|
|
153
|
+
},
|
|
154
|
+
|
|
155
|
+
'.btu-tab-menu-label': {
|
|
156
|
+
fontSize: fontSize_sm,
|
|
157
|
+
fontWeight: '500',
|
|
158
|
+
color: 'var(--tabs-active-color, oklch(var(--btu-theme-gray-700)))',
|
|
159
|
+
whiteSpace: 'nowrap',
|
|
160
|
+
},
|
|
161
|
+
})
|
|
162
|
+
})
|
|
@@ -60,12 +60,33 @@ export interface CustomEventMap {
|
|
|
60
60
|
'btu-dropdown-item-ready': CustomEvent<unknown>;
|
|
61
61
|
'btu-dropdown-item-select': CustomEvent<{
|
|
62
62
|
label: string;
|
|
63
|
+
value: string;
|
|
63
64
|
selected: boolean;
|
|
64
65
|
}>;
|
|
65
66
|
'btu-dropdown-item-favorite': CustomEvent<{
|
|
66
67
|
label: string;
|
|
67
68
|
favorited: boolean;
|
|
68
69
|
}>;
|
|
70
|
+
'btu-tabs-ready': CustomEvent<unknown>;
|
|
71
|
+
'btu-tab-ready': CustomEvent<unknown>;
|
|
72
|
+
'btu-tab-change': CustomEvent<{
|
|
73
|
+
name: string;
|
|
74
|
+
}>;
|
|
75
|
+
'btu-tabs-show': CustomEvent<{
|
|
76
|
+
name: string;
|
|
77
|
+
}>;
|
|
78
|
+
'btu-tabs-hide': CustomEvent<{
|
|
79
|
+
name: string;
|
|
80
|
+
}>;
|
|
81
|
+
'btu-switch-ready': CustomEvent<unknown>;
|
|
82
|
+
'btu-switch-change': CustomEvent<{
|
|
83
|
+
checked: boolean;
|
|
84
|
+
}>;
|
|
85
|
+
'btu-switch-focus': CustomEvent<unknown>;
|
|
86
|
+
'btu-action-bar-ready': CustomEvent<unknown>;
|
|
87
|
+
'btu-action-item-click': CustomEvent<{
|
|
88
|
+
label: string;
|
|
89
|
+
}>;
|
|
69
90
|
}
|
|
70
91
|
interface CombinedEventMap extends HTMLElementEventMap, CustomEventMap {
|
|
71
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventEmitterMixin.d.ts","sourceRoot":"","sources":["../../src/util/EventEmitterMixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAEhC,KAAK,WAAW,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AACxD,KAAK,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAEtE;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,uBAAuB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC7C,0BAA0B,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAChD,mBAAmB,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAA;IAClD,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,yBAAyB,EAAE,WAAW,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACvD,wBAAwB,EAAE,WAAW,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAA;IACpE,wBAAwB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC9C,2BAA2B,EAAE,WAAW,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC5D,iBAAiB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACvC,sBAAsB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC5C,qBAAqB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC3C,gBAAgB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACtC,oBAAoB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC1C,uBAAuB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC7C,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,6BAA6B,EAAE,WAAW,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IAClE,+BAA+B,EAAE,WAAW,CAAC;QAAE,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IACrE,sBAAsB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC5C,uBAAuB,EAAE,WAAW,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACxE,iCAAiC,EAAE,WAAW,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClF,uBAAuB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC7C,uBAAuB,EAAE,WAAW,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC,CAAA;IAClE,oBAAoB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC1C,mBAAmB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACzC,mBAAmB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACzC,yBAAyB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC/C,yBAAyB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC/C,0BAA0B,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"EventEmitterMixin.d.ts","sourceRoot":"","sources":["../../src/util/EventEmitterMixin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventEmitterMixin.js","sourceRoot":"","sources":["../../src/util/EventEmitterMixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"EventEmitterMixin.js","sourceRoot":"","sources":["../../src/util/EventEmitterMixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AA2EhC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAoC,UAAa,EAAE,EAAE;IACpF,MAAM,sBAAuB,SAAQ,UAAU;QAC7C;;;;WAIG;QACH,iBAAiB;YACf,KAAK,CAAC,iBAAiB,EAAE,CAAA;YACzB,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CACpB,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC,EAC5C,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,CAAC,CACnD,CAAA;QACH,CAAC;QAED;;;;WAIG;QACH,oBAAoB;YAClB,KAAK,CAAC,oBAAoB,EAAE,CAAA;YAC5B,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;QACvC,CAAC;QAED;;;;;;;;;;;;;;;;WAgBG;QACH,IAAI,CAAiC,IAAO,EAAE,MAA6C;YACzF,OAAO,IAAI,CAAC,aAAa,CACvB,IAAI,WAAW,CAAC,IAAI,EAAE;gBACpB,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,IAAI;gBACd,MAAM;aACP,CAAC,CACH,CAAA;QACH,CAAC;KACF;IACD,OAAO,sBAAqE,CAAA;AAC9E,CAAC,CAAA"}
|