@brightspot/ui 1.4.1 → 1.6.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/README.md +12 -0
- package/dist/components/avatar/Avatar.d.ts +1 -1
- package/dist/components/avatar/Avatar.d.ts.map +1 -1
- package/dist/components/avatar/Avatar.js +3 -1
- package/dist/components/avatar/Avatar.js.map +1 -1
- package/dist/components/pagination/Pagination.d.ts +109 -0
- package/dist/components/pagination/Pagination.d.ts.map +1 -0
- package/dist/components/pagination/Pagination.js +351 -0
- package/dist/components/pagination/Pagination.js.map +1 -0
- package/dist/components/popover/Popover.d.ts +161 -0
- package/dist/components/popover/Popover.d.ts.map +1 -0
- package/dist/components/popover/Popover.js +436 -0
- package/dist/components/popover/Popover.js.map +1 -0
- package/dist/components/widget/Widget.css +104 -0
- package/dist/components/widget/Widget.d.ts +170 -0
- package/dist/components/widget/Widget.d.ts.map +1 -0
- package/dist/components/widget/Widget.js +434 -0
- package/dist/components/widget/Widget.js.map +1 -0
- package/dist/custom-elements.json +1151 -184
- package/dist/global.d.ts +5 -0
- package/dist/storybook/assets/{Avatar.stories-QxWs-YfX.js → Avatar.stories-CafEcy4T.js} +37 -32
- package/dist/storybook/assets/AvatarGroup.stories-BBkQuFKk.js +225 -0
- package/dist/storybook/assets/{Badge.stories-BpaApWbR.js → Badge.stories-mFZsls7i.js} +1 -1
- package/dist/storybook/assets/{Button.stories-C5h2usmd.js → Button.stories-CAWX17L1.js} +1 -1
- package/dist/storybook/assets/{CircularProgress.stories-DlPOiGja.js → CircularProgress.stories-DBVt4Cg2.js} +1 -1
- package/dist/storybook/assets/{ClipboardMixin.stories-Bb45-UOM.js → ClipboardMixin.stories-BH9E-OI6.js} +7 -7
- package/dist/storybook/assets/Color-6BZIO3FS-CVnTzq2p.js +1 -0
- package/dist/storybook/assets/{Colors.stories-DP2JKWUJ.js → Colors.stories-BFYmP0LL.js} +1 -1
- package/dist/storybook/assets/ComponentStatesMixin-Cu7YXkU8.js +1 -0
- package/dist/storybook/assets/{ComponentStatesMixin.stories-CyQ2aSTu.js → ComponentStatesMixin.stories-CAvyYt0H.js} +3 -3
- package/dist/storybook/assets/{CopyToClipboard.stories-DR7pckeV.js → CopyToClipboard.stories-DbJZsp_L.js} +1 -1
- package/dist/storybook/assets/{Debounce.stories-hkqyvqmg.js → Debounce.stories-BiFiH1K9.js} +1 -1
- package/dist/storybook/assets/{DocsRenderer-LL677BLK-Dtw9GMer.js → DocsRenderer-LL677BLK-Bq6G4eeC.js} +6 -6
- package/dist/storybook/assets/{Events.stories-BAgDzdyl.js → Events.stories-BsDBxh8_.js} +1 -1
- package/dist/storybook/assets/{Heading.stories-CN_fPsRf.js → Heading.stories-zGzWgHVO.js} +1 -1
- package/dist/storybook/assets/{Icon.stories-CSx_2K8V.js → Icon.stories-B4T6sSwf.js} +1 -1
- package/dist/storybook/assets/{LinearProgress.stories-In48DY2g.js → LinearProgress.stories-qzqmUUwY.js} +1 -1
- package/dist/storybook/assets/Pagination.stories-B6Q-7taJ.js +272 -0
- package/dist/storybook/assets/Popover.stories-CGkU0SGv.js +431 -0
- package/dist/storybook/assets/ReadyMixin-3YCzoG6W.js +1 -0
- package/dist/storybook/assets/{Rtc.stories-19d7WXe4.js → Rtc.stories-Y1MYTWAt.js} +1 -1
- package/dist/storybook/assets/{ScrollShadow.stories-BFjracVd.js → ScrollShadow.stories-B9kSpLT1.js} +1 -1
- package/dist/storybook/assets/{Throttle.stories-DD6ydiVq.js → Throttle.stories-BgvLDrS3.js} +1 -1
- package/dist/storybook/assets/Tooltip.stories-POo1M-ew.js +143 -0
- package/dist/storybook/assets/Widget.stories--JpqVyJe.js +233 -0
- package/dist/storybook/assets/{WithTooltip-65CFNBJE-Be1dKqOF.js → WithTooltip-65CFNBJE-DNbD9hAX.js} +2 -2
- package/dist/storybook/assets/custom-element-UsVr97OX.js +1 -0
- package/dist/storybook/assets/{formatter-EIJCOSYU-anC2P5HS.js → formatter-EIJCOSYU-Cy8KIxab.js} +1 -1
- package/dist/storybook/assets/if-defined-CngSGyRu.js +1 -0
- package/dist/storybook/assets/iframe-DiT9Iz2T.css +1 -0
- package/dist/storybook/assets/{iframe-Bl9oHz5c.js → iframe-Dz6CxatW.js} +95 -95
- package/dist/storybook/assets/{index-Cn5E5A3G.js → index-CebChkmF.js} +1 -1
- package/dist/storybook/assets/{onFind.stories-BMDLUk0l.js → onFind.stories-nHDImx0x.js} +1 -1
- package/dist/storybook/assets/{onRemove.stories-C3FcxtYh.js → onRemove.stories-CBxYVPwd.js} +1 -1
- package/dist/storybook/assets/{onVisible.stories-B8Zyu0Th.js → onVisible.stories-D4Qewc9Y.js} +1 -1
- package/dist/storybook/assets/style-map-BgW9piaW.js +1 -0
- package/dist/storybook/assets/{syntaxhighlighter-ED5Y7EFY-BfTKsIVL.js → syntaxhighlighter-ED5Y7EFY-CROW1475.js} +1 -1
- 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-pagination.d.ts +2 -0
- package/dist/tailwind-plugin-pagination.d.ts.map +1 -0
- package/dist/tailwind-plugin-pagination.js +164 -0
- package/dist/tailwind-plugin-pagination.js.map +1 -0
- package/dist/tailwind-plugin-pagination.ts +179 -0
- package/dist/tailwind-plugin-popover.d.ts +2 -0
- package/dist/tailwind-plugin-popover.d.ts.map +1 -0
- package/dist/tailwind-plugin-popover.js +177 -0
- package/dist/tailwind-plugin-popover.js.map +1 -0
- package/dist/tailwind-plugin-popover.ts +202 -0
- package/dist/tailwind-plugin-tooltip.d.ts +2 -0
- package/dist/tailwind-plugin-tooltip.d.ts.map +1 -0
- package/dist/tailwind-plugin-tooltip.js +184 -0
- package/dist/tailwind-plugin-tooltip.js.map +1 -0
- package/dist/tailwind-plugin-tooltip.ts +209 -0
- package/dist/tailwind.config.d.ts +1 -4
- 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/EventEmitterMixin.d.ts +20 -0
- package/dist/util/EventEmitterMixin.d.ts.map +1 -1
- package/dist/util/EventEmitterMixin.js +1 -1
- package/dist/util/EventEmitterMixin.js.map +1 -1
- package/dist/util/TooltipController.d.ts +37 -0
- package/dist/util/TooltipController.d.ts.map +1 -0
- package/dist/util/TooltipController.js +133 -0
- package/dist/util/TooltipController.js.map +1 -0
- package/dist/util/TooltipMixin.d.ts +42 -0
- package/dist/util/TooltipMixin.d.ts.map +1 -0
- package/dist/util/TooltipMixin.js +401 -0
- package/dist/util/TooltipMixin.js.map +1 -0
- package/dist/util/aria.d.ts.map +1 -1
- package/dist/util/aria.js +2 -1
- package/dist/util/aria.js.map +1 -1
- package/dist/util/i18n.d.ts +13 -0
- package/dist/util/i18n.d.ts.map +1 -0
- package/dist/util/i18n.js +21 -0
- package/dist/util/i18n.js.map +1 -0
- package/package.json +2 -2
- package/dist/storybook/assets/AvatarGroup.stories-Cy_Bvn7E.js +0 -211
- package/dist/storybook/assets/Color-6BZIO3FS-CcgGYVAo.js +0 -1
- package/dist/storybook/assets/ComponentStatesMixin-B7ci0thi.js +0 -1
- package/dist/storybook/assets/iframe-B4njXYq6.css +0 -1
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import plugin from 'tailwindcss/plugin';
|
|
2
|
+
/**
|
|
3
|
+
* Popover plugin using CSS anchor positioning and the native Popover API.
|
|
4
|
+
*
|
|
5
|
+
* Uses the HTML popover attribute for top-layer rendering, light dismiss,
|
|
6
|
+
* and focus management. Animations use @starting-style for entry and
|
|
7
|
+
* transition-behavior: allow-discrete for exit.
|
|
8
|
+
*
|
|
9
|
+
* Class Names:
|
|
10
|
+
*
|
|
11
|
+
* btu-popover - Base popover styles (hidden by default via popover)
|
|
12
|
+
* btu-popover-top - Position above trigger
|
|
13
|
+
* btu-popover-bottom - Position below trigger (default)
|
|
14
|
+
* btu-popover-left - Position left of trigger
|
|
15
|
+
* btu-popover-right - Position right of trigger
|
|
16
|
+
* btu-popover-no-arrow - Hide the arrow pseudo-element
|
|
17
|
+
*
|
|
18
|
+
* Offset Sizes:
|
|
19
|
+
*
|
|
20
|
+
* btu-popover-offset-sm - 4px offset
|
|
21
|
+
* btu-popover-offset-md - 8px offset (same as default)
|
|
22
|
+
* btu-popover-offset-lg - 12px offset
|
|
23
|
+
* btu-popover-offset-xl - 16px offset
|
|
24
|
+
*
|
|
25
|
+
* CSS Custom Properties:
|
|
26
|
+
*
|
|
27
|
+
* --popover-color-background - Background color (default: var(--btu-theme-white, #fff))
|
|
28
|
+
* --popover-color-title - Title text color (consumer-applied on title elements; not set by plugin)
|
|
29
|
+
* --popover-color-content - Base text color (default: oklch(var(--btu-theme-gray-900)))
|
|
30
|
+
* --popover-border-radius - Border radius (default: theme borderRadius.lg)
|
|
31
|
+
*/
|
|
32
|
+
module.exports = plugin(function ({ addComponents, theme, config }) {
|
|
33
|
+
addComponents({
|
|
34
|
+
// Base popover styles — exit state (applied when closing, before display:none)
|
|
35
|
+
'.btu-popover': {
|
|
36
|
+
// Structural custom properties — kept as declarations since they're
|
|
37
|
+
// controlled by component props, not external CSS on parent elements.
|
|
38
|
+
'--popover-offset': '8px',
|
|
39
|
+
'--popover-arrow-size': '8px',
|
|
40
|
+
padding: '12px 16px',
|
|
41
|
+
backgroundColor: `var(--popover-color-background, var(--btu-theme-white, #fff))`,
|
|
42
|
+
color: 'var(--popover-color-content, oklch(var(--btu-theme-gray-900)))',
|
|
43
|
+
borderRadius: `var(--popover-border-radius, ${theme('borderRadius.lg')})`,
|
|
44
|
+
boxShadow: theme('boxShadow.lg'),
|
|
45
|
+
// theme('fontSize.sm') returns only the size string; config() gives the raw tuple
|
|
46
|
+
fontSize: config('theme.fontSize.sm')?.[0] ?? '0.875rem',
|
|
47
|
+
lineHeight: config('theme.fontSize.sm')?.[1] ?? '1.25rem',
|
|
48
|
+
fontWeight: '400',
|
|
49
|
+
whiteSpace: 'normal',
|
|
50
|
+
textAlign: 'left',
|
|
51
|
+
maxWidth: '20rem',
|
|
52
|
+
pointerEvents: 'auto',
|
|
53
|
+
overflow: 'visible',
|
|
54
|
+
isolation: 'isolate',
|
|
55
|
+
margin: '0',
|
|
56
|
+
inset: 'unset',
|
|
57
|
+
border: 'none',
|
|
58
|
+
opacity: '0',
|
|
59
|
+
translate: '0 0',
|
|
60
|
+
transition: 'opacity 150ms ease, translate 150ms ease, display 150ms ease allow-discrete, overlay 150ms ease allow-discrete',
|
|
61
|
+
'position-visibility': 'anchors-visible',
|
|
62
|
+
// Native popover reset — browser defaults override otherwise
|
|
63
|
+
'&:popover-open': {
|
|
64
|
+
overflow: 'visible',
|
|
65
|
+
opacity: '1',
|
|
66
|
+
translate: '0 0',
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
// Position: top
|
|
70
|
+
'.btu-popover-top': {
|
|
71
|
+
'position-area': 'top',
|
|
72
|
+
bottom: 'var(--popover-offset)',
|
|
73
|
+
marginTop: 'var(--popover-offset)',
|
|
74
|
+
'position-try-fallbacks': 'flip-block',
|
|
75
|
+
translate: '0 4px',
|
|
76
|
+
'&:popover-open': {
|
|
77
|
+
translate: '0 0',
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
// Position: bottom (default)
|
|
81
|
+
'.btu-popover-bottom': {
|
|
82
|
+
'position-area': 'bottom',
|
|
83
|
+
top: 'var(--popover-offset)',
|
|
84
|
+
marginBottom: 'var(--popover-offset)',
|
|
85
|
+
'position-try-fallbacks': 'flip-block',
|
|
86
|
+
translate: '0 -4px',
|
|
87
|
+
'&:popover-open': {
|
|
88
|
+
translate: '0 0',
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
// Position: left
|
|
92
|
+
'.btu-popover-left': {
|
|
93
|
+
'position-area': 'left',
|
|
94
|
+
right: 'var(--popover-offset)',
|
|
95
|
+
marginLeft: 'var(--popover-offset)',
|
|
96
|
+
'position-try-fallbacks': 'flip-inline',
|
|
97
|
+
translate: '4px 0',
|
|
98
|
+
'&:popover-open': {
|
|
99
|
+
translate: '0 0',
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
// Position: right
|
|
103
|
+
'.btu-popover-right': {
|
|
104
|
+
'position-area': 'right',
|
|
105
|
+
left: 'var(--popover-offset)',
|
|
106
|
+
marginRight: 'var(--popover-offset)',
|
|
107
|
+
'position-try-fallbacks': 'flip-inline',
|
|
108
|
+
translate: '-4px 0',
|
|
109
|
+
'&:popover-open': {
|
|
110
|
+
translate: '0 0',
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
// Offset sizes
|
|
114
|
+
'.btu-popover-offset-sm': { '--popover-offset': '4px' },
|
|
115
|
+
'.btu-popover-offset-md': { '--popover-offset': '8px' },
|
|
116
|
+
'.btu-popover-offset-lg': { '--popover-offset': '12px' },
|
|
117
|
+
'.btu-popover-offset-xl': { '--popover-offset': '16px' },
|
|
118
|
+
// @starting-style for entry animations
|
|
119
|
+
'@starting-style': {
|
|
120
|
+
'.btu-popover:popover-open': {
|
|
121
|
+
opacity: '0',
|
|
122
|
+
},
|
|
123
|
+
'.btu-popover-top:popover-open': {
|
|
124
|
+
translate: '0 4px',
|
|
125
|
+
},
|
|
126
|
+
'.btu-popover-bottom:popover-open': {
|
|
127
|
+
translate: '0 -4px',
|
|
128
|
+
},
|
|
129
|
+
'.btu-popover-left:popover-open': {
|
|
130
|
+
translate: '4px 0',
|
|
131
|
+
},
|
|
132
|
+
'.btu-popover-right:popover-open': {
|
|
133
|
+
translate: '-4px 0',
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
// Arrow for vertical popovers (top/bottom)
|
|
137
|
+
// Centered at 50% of the popover panel. This aligns with the trigger center
|
|
138
|
+
// because position-area centers the popover on the anchor element.
|
|
139
|
+
'.btu-popover-top::before, .btu-popover-bottom::before': {
|
|
140
|
+
content: '""',
|
|
141
|
+
position: 'absolute',
|
|
142
|
+
zIndex: '-1',
|
|
143
|
+
width: 'var(--popover-arrow-size)',
|
|
144
|
+
top: 'calc(-1 * var(--popover-offset))',
|
|
145
|
+
bottom: 'calc(-1 * var(--popover-offset))',
|
|
146
|
+
left: 'calc(50% - var(--popover-arrow-size) / 2)',
|
|
147
|
+
clipPath: 'polygon(50% calc(var(--popover-offset) - var(--popover-arrow-size)), 100% var(--popover-offset), 100% calc(100% - var(--popover-offset)), 50% calc(100% - var(--popover-offset) + var(--popover-arrow-size)), 0 calc(100% - var(--popover-offset)), 0 var(--popover-offset))',
|
|
148
|
+
background: 'inherit',
|
|
149
|
+
margin: 'inherit',
|
|
150
|
+
},
|
|
151
|
+
// Arrow for horizontal popovers (left/right)
|
|
152
|
+
'.btu-popover-left::before, .btu-popover-right::before': {
|
|
153
|
+
content: '""',
|
|
154
|
+
position: 'absolute',
|
|
155
|
+
zIndex: '-1',
|
|
156
|
+
height: 'var(--popover-arrow-size)',
|
|
157
|
+
left: 'calc(-1 * var(--popover-offset))',
|
|
158
|
+
right: 'calc(-1 * var(--popover-offset))',
|
|
159
|
+
top: 'calc(50% - var(--popover-arrow-size) / 2)',
|
|
160
|
+
clipPath: 'polygon(calc(var(--popover-offset) - var(--popover-arrow-size)) 50%, var(--popover-offset) 0, calc(100% - var(--popover-offset)) 0, calc(100% - var(--popover-offset) + var(--popover-arrow-size)) 50%, calc(100% - var(--popover-offset)) 100%, var(--popover-offset) 100%)',
|
|
161
|
+
background: 'inherit',
|
|
162
|
+
margin: 'inherit',
|
|
163
|
+
},
|
|
164
|
+
// Hide arrow when opted out
|
|
165
|
+
'.btu-popover-no-arrow::before': {
|
|
166
|
+
content: 'none',
|
|
167
|
+
},
|
|
168
|
+
// Reduced motion: disable translate animation, keep opacity fade
|
|
169
|
+
'@media (prefers-reduced-motion: reduce)': {
|
|
170
|
+
'.btu-popover': {
|
|
171
|
+
translate: 'none !important',
|
|
172
|
+
transition: 'opacity 150ms ease, display 150ms ease allow-discrete, overlay 150ms ease allow-discrete',
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
//# sourceMappingURL=tailwind-plugin-popover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tailwind-plugin-popover.js","sourceRoot":"","sources":["../src/tailwind-plugin-popover.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import plugin from 'tailwindcss/plugin'
|
|
2
|
+
declare let module: any
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Popover plugin using CSS anchor positioning and the native Popover API.
|
|
6
|
+
*
|
|
7
|
+
* Uses the HTML popover attribute for top-layer rendering, light dismiss,
|
|
8
|
+
* and focus management. Animations use @starting-style for entry and
|
|
9
|
+
* transition-behavior: allow-discrete for exit.
|
|
10
|
+
*
|
|
11
|
+
* Class Names:
|
|
12
|
+
*
|
|
13
|
+
* btu-popover - Base popover styles (hidden by default via popover)
|
|
14
|
+
* btu-popover-top - Position above trigger
|
|
15
|
+
* btu-popover-bottom - Position below trigger (default)
|
|
16
|
+
* btu-popover-left - Position left of trigger
|
|
17
|
+
* btu-popover-right - Position right of trigger
|
|
18
|
+
* btu-popover-no-arrow - Hide the arrow pseudo-element
|
|
19
|
+
*
|
|
20
|
+
* Offset Sizes:
|
|
21
|
+
*
|
|
22
|
+
* btu-popover-offset-sm - 4px offset
|
|
23
|
+
* btu-popover-offset-md - 8px offset (same as default)
|
|
24
|
+
* btu-popover-offset-lg - 12px offset
|
|
25
|
+
* btu-popover-offset-xl - 16px offset
|
|
26
|
+
*
|
|
27
|
+
* CSS Custom Properties:
|
|
28
|
+
*
|
|
29
|
+
* --popover-color-background - Background color (default: var(--btu-theme-white, #fff))
|
|
30
|
+
* --popover-color-title - Title text color (consumer-applied on title elements; not set by plugin)
|
|
31
|
+
* --popover-color-content - Base text color (default: oklch(var(--btu-theme-gray-900)))
|
|
32
|
+
* --popover-border-radius - Border radius (default: theme borderRadius.lg)
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
module.exports = plugin(function ({ addComponents, theme, config }) {
|
|
36
|
+
addComponents({
|
|
37
|
+
// Base popover styles — exit state (applied when closing, before display:none)
|
|
38
|
+
'.btu-popover': {
|
|
39
|
+
// Structural custom properties — kept as declarations since they're
|
|
40
|
+
// controlled by component props, not external CSS on parent elements.
|
|
41
|
+
'--popover-offset': '8px',
|
|
42
|
+
'--popover-arrow-size': '8px',
|
|
43
|
+
|
|
44
|
+
padding: '12px 16px',
|
|
45
|
+
|
|
46
|
+
backgroundColor: `var(--popover-color-background, var(--btu-theme-white, #fff))`,
|
|
47
|
+
color: 'var(--popover-color-content, oklch(var(--btu-theme-gray-900)))',
|
|
48
|
+
borderRadius: `var(--popover-border-radius, ${theme('borderRadius.lg')})`,
|
|
49
|
+
boxShadow: theme('boxShadow.lg'),
|
|
50
|
+
|
|
51
|
+
// theme('fontSize.sm') returns only the size string; config() gives the raw tuple
|
|
52
|
+
fontSize: config('theme.fontSize.sm')?.[0] ?? '0.875rem',
|
|
53
|
+
lineHeight: config('theme.fontSize.sm')?.[1] ?? '1.25rem',
|
|
54
|
+
fontWeight: '400',
|
|
55
|
+
whiteSpace: 'normal',
|
|
56
|
+
textAlign: 'left',
|
|
57
|
+
maxWidth: '20rem',
|
|
58
|
+
|
|
59
|
+
pointerEvents: 'auto',
|
|
60
|
+
overflow: 'visible',
|
|
61
|
+
isolation: 'isolate',
|
|
62
|
+
margin: '0',
|
|
63
|
+
inset: 'unset',
|
|
64
|
+
border: 'none',
|
|
65
|
+
opacity: '0',
|
|
66
|
+
translate: '0 0',
|
|
67
|
+
transition:
|
|
68
|
+
'opacity 150ms ease, translate 150ms ease, display 150ms ease allow-discrete, overlay 150ms ease allow-discrete',
|
|
69
|
+
|
|
70
|
+
'position-visibility': 'anchors-visible',
|
|
71
|
+
|
|
72
|
+
// Native popover reset — browser defaults override otherwise
|
|
73
|
+
'&:popover-open': {
|
|
74
|
+
overflow: 'visible',
|
|
75
|
+
opacity: '1',
|
|
76
|
+
translate: '0 0',
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
|
|
80
|
+
// Position: top
|
|
81
|
+
'.btu-popover-top': {
|
|
82
|
+
'position-area': 'top',
|
|
83
|
+
bottom: 'var(--popover-offset)',
|
|
84
|
+
marginTop: 'var(--popover-offset)',
|
|
85
|
+
'position-try-fallbacks': 'flip-block',
|
|
86
|
+
translate: '0 4px',
|
|
87
|
+
|
|
88
|
+
'&:popover-open': {
|
|
89
|
+
translate: '0 0',
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
// Position: bottom (default)
|
|
94
|
+
'.btu-popover-bottom': {
|
|
95
|
+
'position-area': 'bottom',
|
|
96
|
+
top: 'var(--popover-offset)',
|
|
97
|
+
marginBottom: 'var(--popover-offset)',
|
|
98
|
+
'position-try-fallbacks': 'flip-block',
|
|
99
|
+
translate: '0 -4px',
|
|
100
|
+
|
|
101
|
+
'&:popover-open': {
|
|
102
|
+
translate: '0 0',
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
|
|
106
|
+
// Position: left
|
|
107
|
+
'.btu-popover-left': {
|
|
108
|
+
'position-area': 'left',
|
|
109
|
+
right: 'var(--popover-offset)',
|
|
110
|
+
marginLeft: 'var(--popover-offset)',
|
|
111
|
+
'position-try-fallbacks': 'flip-inline',
|
|
112
|
+
translate: '4px 0',
|
|
113
|
+
|
|
114
|
+
'&:popover-open': {
|
|
115
|
+
translate: '0 0',
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
|
|
119
|
+
// Position: right
|
|
120
|
+
'.btu-popover-right': {
|
|
121
|
+
'position-area': 'right',
|
|
122
|
+
left: 'var(--popover-offset)',
|
|
123
|
+
marginRight: 'var(--popover-offset)',
|
|
124
|
+
'position-try-fallbacks': 'flip-inline',
|
|
125
|
+
translate: '-4px 0',
|
|
126
|
+
|
|
127
|
+
'&:popover-open': {
|
|
128
|
+
translate: '0 0',
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
|
|
132
|
+
// Offset sizes
|
|
133
|
+
'.btu-popover-offset-sm': { '--popover-offset': '4px' },
|
|
134
|
+
'.btu-popover-offset-md': { '--popover-offset': '8px' },
|
|
135
|
+
'.btu-popover-offset-lg': { '--popover-offset': '12px' },
|
|
136
|
+
'.btu-popover-offset-xl': { '--popover-offset': '16px' },
|
|
137
|
+
|
|
138
|
+
// @starting-style for entry animations
|
|
139
|
+
'@starting-style': {
|
|
140
|
+
'.btu-popover:popover-open': {
|
|
141
|
+
opacity: '0',
|
|
142
|
+
},
|
|
143
|
+
'.btu-popover-top:popover-open': {
|
|
144
|
+
translate: '0 4px',
|
|
145
|
+
},
|
|
146
|
+
'.btu-popover-bottom:popover-open': {
|
|
147
|
+
translate: '0 -4px',
|
|
148
|
+
},
|
|
149
|
+
'.btu-popover-left:popover-open': {
|
|
150
|
+
translate: '4px 0',
|
|
151
|
+
},
|
|
152
|
+
'.btu-popover-right:popover-open': {
|
|
153
|
+
translate: '-4px 0',
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
|
|
157
|
+
// Arrow for vertical popovers (top/bottom)
|
|
158
|
+
// Centered at 50% of the popover panel. This aligns with the trigger center
|
|
159
|
+
// because position-area centers the popover on the anchor element.
|
|
160
|
+
'.btu-popover-top::before, .btu-popover-bottom::before': {
|
|
161
|
+
content: '""',
|
|
162
|
+
position: 'absolute',
|
|
163
|
+
zIndex: '-1',
|
|
164
|
+
width: 'var(--popover-arrow-size)',
|
|
165
|
+
top: 'calc(-1 * var(--popover-offset))',
|
|
166
|
+
bottom: 'calc(-1 * var(--popover-offset))',
|
|
167
|
+
left: 'calc(50% - var(--popover-arrow-size) / 2)',
|
|
168
|
+
clipPath:
|
|
169
|
+
'polygon(50% calc(var(--popover-offset) - var(--popover-arrow-size)), 100% var(--popover-offset), 100% calc(100% - var(--popover-offset)), 50% calc(100% - var(--popover-offset) + var(--popover-arrow-size)), 0 calc(100% - var(--popover-offset)), 0 var(--popover-offset))',
|
|
170
|
+
background: 'inherit',
|
|
171
|
+
margin: 'inherit',
|
|
172
|
+
},
|
|
173
|
+
|
|
174
|
+
// Arrow for horizontal popovers (left/right)
|
|
175
|
+
'.btu-popover-left::before, .btu-popover-right::before': {
|
|
176
|
+
content: '""',
|
|
177
|
+
position: 'absolute',
|
|
178
|
+
zIndex: '-1',
|
|
179
|
+
height: 'var(--popover-arrow-size)',
|
|
180
|
+
left: 'calc(-1 * var(--popover-offset))',
|
|
181
|
+
right: 'calc(-1 * var(--popover-offset))',
|
|
182
|
+
top: 'calc(50% - var(--popover-arrow-size) / 2)',
|
|
183
|
+
clipPath:
|
|
184
|
+
'polygon(calc(var(--popover-offset) - var(--popover-arrow-size)) 50%, var(--popover-offset) 0, calc(100% - var(--popover-offset)) 0, calc(100% - var(--popover-offset) + var(--popover-arrow-size)) 50%, calc(100% - var(--popover-offset)) 100%, var(--popover-offset) 100%)',
|
|
185
|
+
background: 'inherit',
|
|
186
|
+
margin: 'inherit',
|
|
187
|
+
},
|
|
188
|
+
|
|
189
|
+
// Hide arrow when opted out
|
|
190
|
+
'.btu-popover-no-arrow::before': {
|
|
191
|
+
content: 'none',
|
|
192
|
+
},
|
|
193
|
+
|
|
194
|
+
// Reduced motion: disable translate animation, keep opacity fade
|
|
195
|
+
'@media (prefers-reduced-motion: reduce)': {
|
|
196
|
+
'.btu-popover': {
|
|
197
|
+
translate: 'none !important',
|
|
198
|
+
transition: 'opacity 150ms ease, display 150ms ease allow-discrete, overlay 150ms ease allow-discrete',
|
|
199
|
+
},
|
|
200
|
+
},
|
|
201
|
+
})
|
|
202
|
+
})
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tailwind-plugin-tooltip.d.ts","sourceRoot":"","sources":["../src/tailwind-plugin-tooltip.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import plugin from 'tailwindcss/plugin';
|
|
2
|
+
/**
|
|
3
|
+
* Tooltip plugin using CSS anchor positioning and the native Popover API.
|
|
4
|
+
*
|
|
5
|
+
* Uses the HTML popover attribute for top-layer rendering. Animations use
|
|
6
|
+
* @starting-style for entry and transition-behavior: allow-discrete for exit.
|
|
7
|
+
*
|
|
8
|
+
* Class Names:
|
|
9
|
+
*
|
|
10
|
+
* btu-tooltip - Base tooltip styles (hidden by default via popover)
|
|
11
|
+
* btu-tooltip-top - Position above trigger (default)
|
|
12
|
+
* btu-tooltip-bottom - Position below trigger
|
|
13
|
+
* btu-tooltip-left - Position left of trigger
|
|
14
|
+
* btu-tooltip-right - Position right of trigger
|
|
15
|
+
* btu-tooltip-no-arrow - Hide the arrow pseudo-element
|
|
16
|
+
*
|
|
17
|
+
* Offset Sizes:
|
|
18
|
+
*
|
|
19
|
+
* btu-tooltip-offset-sm - 4px offset
|
|
20
|
+
* btu-tooltip-offset-md - 8px offset (same as default)
|
|
21
|
+
* btu-tooltip-offset-lg - 12px offset
|
|
22
|
+
* btu-tooltip-offset-xl - 16px offset
|
|
23
|
+
*
|
|
24
|
+
* CSS Custom Properties:
|
|
25
|
+
*
|
|
26
|
+
* --tooltip-color-background - Background color (default: var(--btu-theme-white, #fff))
|
|
27
|
+
* --tooltip-color-text - Text color (default: oklch(var(--btu-theme-gray-900)))
|
|
28
|
+
* --tooltip-border-radius - Border radius (default: theme borderRadius.lg)
|
|
29
|
+
*/
|
|
30
|
+
module.exports = plugin(function ({ addComponents, theme, config }) {
|
|
31
|
+
addComponents({
|
|
32
|
+
// Base tooltip styles — exit state (applied when closing, before display:none)
|
|
33
|
+
'.btu-tooltip': {
|
|
34
|
+
// Structural custom properties — kept as declarations since they're
|
|
35
|
+
// controlled by component props, not external CSS on parent elements.
|
|
36
|
+
'--tooltip-offset': '8px',
|
|
37
|
+
'--tooltip-arrow-size': '8px',
|
|
38
|
+
padding: '8px 12px',
|
|
39
|
+
backgroundColor: 'var(--tooltip-color-background, var(--btu-theme-white, #fff))',
|
|
40
|
+
color: `var(--tooltip-color-text, oklch(var(--btu-theme-gray-900)))`,
|
|
41
|
+
borderRadius: `var(--tooltip-border-radius, ${theme('borderRadius.lg')})`,
|
|
42
|
+
boxShadow: theme('boxShadow.lg'),
|
|
43
|
+
// theme('fontSize.xs') returns only the size string; config() gives the raw tuple
|
|
44
|
+
fontSize: config('theme.fontSize.xs')?.[0] ?? '0.75rem',
|
|
45
|
+
lineHeight: config('theme.fontSize.xs')?.[1] ?? '1.125rem',
|
|
46
|
+
fontWeight: '500',
|
|
47
|
+
whiteSpace: 'nowrap',
|
|
48
|
+
textAlign: 'left',
|
|
49
|
+
pointerEvents: 'none',
|
|
50
|
+
overflow: 'visible',
|
|
51
|
+
isolation: 'isolate',
|
|
52
|
+
margin: '0',
|
|
53
|
+
inset: 'unset',
|
|
54
|
+
border: 'none',
|
|
55
|
+
opacity: '0',
|
|
56
|
+
translate: '0 0',
|
|
57
|
+
transition: 'opacity 150ms ease, translate 150ms ease, display 150ms ease allow-discrete, overlay 150ms ease allow-discrete',
|
|
58
|
+
'position-visibility': 'anchors-visible',
|
|
59
|
+
// Native popover reset — browser defaults override otherwise
|
|
60
|
+
'&:popover-open': {
|
|
61
|
+
overflow: 'visible',
|
|
62
|
+
opacity: '1',
|
|
63
|
+
translate: '0 0',
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
// Position: top (default)
|
|
67
|
+
// Gap via inset `bottom`; margin-top drives the arrow flip via `margin: inherit`
|
|
68
|
+
'.btu-tooltip-top': {
|
|
69
|
+
'position-area': 'top',
|
|
70
|
+
bottom: 'var(--tooltip-offset)',
|
|
71
|
+
marginTop: 'var(--tooltip-offset)',
|
|
72
|
+
'position-try-fallbacks': 'flip-block',
|
|
73
|
+
translate: '0 4px',
|
|
74
|
+
'&:popover-open': {
|
|
75
|
+
translate: '0 0',
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
// Position: bottom
|
|
79
|
+
// Gap via inset `top`; margin-bottom drives the arrow flip
|
|
80
|
+
'.btu-tooltip-bottom': {
|
|
81
|
+
'position-area': 'bottom',
|
|
82
|
+
top: 'var(--tooltip-offset)',
|
|
83
|
+
marginBottom: 'var(--tooltip-offset)',
|
|
84
|
+
'position-try-fallbacks': 'flip-block',
|
|
85
|
+
translate: '0 -4px',
|
|
86
|
+
'&:popover-open': {
|
|
87
|
+
translate: '0 0',
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
// Position: left
|
|
91
|
+
// Gap via inset `right`; margin-left drives the arrow flip
|
|
92
|
+
'.btu-tooltip-left': {
|
|
93
|
+
'position-area': 'left',
|
|
94
|
+
right: 'var(--tooltip-offset)',
|
|
95
|
+
marginLeft: 'var(--tooltip-offset)',
|
|
96
|
+
'position-try-fallbacks': 'flip-inline',
|
|
97
|
+
translate: '4px 0',
|
|
98
|
+
'&:popover-open': {
|
|
99
|
+
translate: '0 0',
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
// Position: right
|
|
103
|
+
// Gap via inset `left`; margin-right drives the arrow flip
|
|
104
|
+
'.btu-tooltip-right': {
|
|
105
|
+
'position-area': 'right',
|
|
106
|
+
left: 'var(--tooltip-offset)',
|
|
107
|
+
marginRight: 'var(--tooltip-offset)',
|
|
108
|
+
'position-try-fallbacks': 'flip-inline',
|
|
109
|
+
translate: '-4px 0',
|
|
110
|
+
'&:popover-open': {
|
|
111
|
+
translate: '0 0',
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
// Offset sizes
|
|
115
|
+
'.btu-tooltip-offset-sm': { '--tooltip-offset': '4px' },
|
|
116
|
+
'.btu-tooltip-offset-md': { '--tooltip-offset': '8px' },
|
|
117
|
+
'.btu-tooltip-offset-lg': { '--tooltip-offset': '12px' },
|
|
118
|
+
'.btu-tooltip-offset-xl': { '--tooltip-offset': '16px' },
|
|
119
|
+
// @starting-style for entry animations
|
|
120
|
+
'@starting-style': {
|
|
121
|
+
'.btu-tooltip:popover-open': {
|
|
122
|
+
opacity: '0',
|
|
123
|
+
},
|
|
124
|
+
'.btu-tooltip-top:popover-open': {
|
|
125
|
+
translate: '0 4px',
|
|
126
|
+
},
|
|
127
|
+
'.btu-tooltip-bottom:popover-open': {
|
|
128
|
+
translate: '0 -4px',
|
|
129
|
+
},
|
|
130
|
+
'.btu-tooltip-left:popover-open': {
|
|
131
|
+
translate: '4px 0',
|
|
132
|
+
},
|
|
133
|
+
'.btu-tooltip-right:popover-open': {
|
|
134
|
+
translate: '-4px 0',
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
// Arrow for vertical tooltips (top/bottom).
|
|
138
|
+
// Extends beyond both tooltip edges via negative inset. A hexagonal
|
|
139
|
+
// clip-path creates arrow tips on both ends; margin: inherit auto-flips
|
|
140
|
+
// the visible tip when position-try-fallbacks: flip-block activates.
|
|
141
|
+
// See: https://frontendmasters.com/blog/perfectly-pointed-tooltips-a-foundation/
|
|
142
|
+
// Arrow for vertical tooltips (top/bottom).
|
|
143
|
+
// Centered at 50% of the tooltip panel. This aligns with the trigger center
|
|
144
|
+
// because position-area centers the tooltip on the anchor element.
|
|
145
|
+
'.btu-tooltip-top::before, .btu-tooltip-bottom::before': {
|
|
146
|
+
content: '""',
|
|
147
|
+
position: 'absolute',
|
|
148
|
+
zIndex: '-1',
|
|
149
|
+
width: 'var(--tooltip-arrow-size)',
|
|
150
|
+
top: 'calc(-1 * var(--tooltip-offset))',
|
|
151
|
+
bottom: 'calc(-1 * var(--tooltip-offset))',
|
|
152
|
+
left: 'calc(50% - var(--tooltip-arrow-size) / 2)',
|
|
153
|
+
clipPath: 'polygon(50% calc(var(--tooltip-offset) - var(--tooltip-arrow-size)), 100% var(--tooltip-offset), 100% calc(100% - var(--tooltip-offset)), 50% calc(100% - var(--tooltip-offset) + var(--tooltip-arrow-size)), 0 calc(100% - var(--tooltip-offset)), 0 var(--tooltip-offset))',
|
|
154
|
+
background: 'inherit',
|
|
155
|
+
margin: 'inherit',
|
|
156
|
+
},
|
|
157
|
+
// Arrow for horizontal tooltips (left/right).
|
|
158
|
+
// Same technique rotated 90° for flip-inline.
|
|
159
|
+
'.btu-tooltip-left::before, .btu-tooltip-right::before': {
|
|
160
|
+
content: '""',
|
|
161
|
+
position: 'absolute',
|
|
162
|
+
zIndex: '-1',
|
|
163
|
+
height: 'var(--tooltip-arrow-size)',
|
|
164
|
+
left: 'calc(-1 * var(--tooltip-offset))',
|
|
165
|
+
right: 'calc(-1 * var(--tooltip-offset))',
|
|
166
|
+
top: 'calc(50% - var(--tooltip-arrow-size) / 2)',
|
|
167
|
+
clipPath: 'polygon(calc(var(--tooltip-offset) - var(--tooltip-arrow-size)) 50%, var(--tooltip-offset) 0, calc(100% - var(--tooltip-offset)) 0, calc(100% - var(--tooltip-offset) + var(--tooltip-arrow-size)) 50%, calc(100% - var(--tooltip-offset)) 100%, var(--tooltip-offset) 100%)',
|
|
168
|
+
background: 'inherit',
|
|
169
|
+
margin: 'inherit',
|
|
170
|
+
},
|
|
171
|
+
// Hide arrow when opted out
|
|
172
|
+
'.btu-tooltip-no-arrow::before': {
|
|
173
|
+
content: 'none',
|
|
174
|
+
},
|
|
175
|
+
// Reduced motion: disable translate animation, keep opacity fade
|
|
176
|
+
'@media (prefers-reduced-motion: reduce)': {
|
|
177
|
+
'.btu-tooltip': {
|
|
178
|
+
translate: 'none !important',
|
|
179
|
+
transition: 'opacity 150ms ease, display 150ms ease allow-discrete, overlay 150ms ease allow-discrete',
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
//# sourceMappingURL=tailwind-plugin-tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tailwind-plugin-tooltip.js","sourceRoot":"","sources":["../src/tailwind-plugin-tooltip.ts"],"names":[],"mappings":"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"}
|