@allxsmith/bestax-bulma 5.29.0 → 5.31.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.
Files changed (67) hide show
  1. package/dist/bestax.css +1 -1
  2. package/dist/bestax.css.map +1 -1
  3. package/dist/esm/components/ContextMenu.js +244 -0
  4. package/dist/esm/components/ContextMenu.js.map +1 -0
  5. package/dist/esm/components/Dropdown.js +37 -85
  6. package/dist/esm/components/Dropdown.js.map +1 -1
  7. package/dist/esm/components/HoverCard.js +3 -10
  8. package/dist/esm/components/HoverCard.js.map +1 -1
  9. package/dist/esm/components/Tooltip.js +88 -63
  10. package/dist/esm/components/Tooltip.js.map +1 -1
  11. package/dist/esm/elements/Button.js.map +1 -1
  12. package/dist/esm/elements/Buttons.js +2 -0
  13. package/dist/esm/elements/Buttons.js.map +1 -1
  14. package/dist/esm/elements/ToggleButton.js +68 -0
  15. package/dist/esm/elements/ToggleButton.js.map +1 -0
  16. package/dist/esm/form/DateTimeInputBase.js.map +1 -1
  17. package/dist/esm/form/TimeInputBase.js.map +1 -1
  18. package/dist/esm/form/_pickerInternals/pickerTypes.js +14 -6
  19. package/dist/esm/form/_pickerInternals/pickerTypes.js.map +1 -1
  20. package/dist/esm/helpers/useContextMenuTrigger.js +166 -0
  21. package/dist/esm/helpers/useContextMenuTrigger.js.map +1 -0
  22. package/dist/esm/helpers/useHoverOpen.js +40 -6
  23. package/dist/esm/helpers/useHoverOpen.js.map +1 -1
  24. package/dist/esm/helpers/useMenuKeys.js +182 -0
  25. package/dist/esm/helpers/useMenuKeys.js.map +1 -0
  26. package/dist/extras.css +1 -1
  27. package/dist/extras.css.map +1 -1
  28. package/dist/index.cjs +1896 -1261
  29. package/dist/index.cjs.map +1 -1
  30. package/dist/index.esm.js +2 -0
  31. package/dist/index.esm.js.map +1 -1
  32. package/dist/types/components/ContextMenu.d.ts +66 -0
  33. package/dist/types/components/Tooltip.d.ts +63 -9
  34. package/dist/types/elements/Button.d.ts +1 -1
  35. package/dist/types/elements/Buttons.d.ts +1 -0
  36. package/dist/types/elements/ToggleButton.d.ts +100 -0
  37. package/dist/types/form/DateTimeInputBase.d.ts +4 -1
  38. package/dist/types/form/TimeInputBase.d.ts +5 -2
  39. package/dist/types/form/_pickerInternals/pickerTypes.d.ts +16 -1
  40. package/dist/types/helpers/useContextMenuTrigger.d.ts +67 -0
  41. package/dist/types/helpers/useHoverOpen.d.ts +19 -3
  42. package/dist/types/helpers/useMenuKeys.d.ts +57 -0
  43. package/dist/types/index.d.ts +2 -0
  44. package/dist/types-cjs/components/ContextMenu.d.ts +66 -0
  45. package/dist/types-cjs/components/Tooltip.d.ts +63 -9
  46. package/dist/types-cjs/elements/Button.d.ts +1 -1
  47. package/dist/types-cjs/elements/Buttons.d.ts +1 -0
  48. package/dist/types-cjs/elements/ToggleButton.d.ts +100 -0
  49. package/dist/types-cjs/form/DateTimeInputBase.d.ts +4 -1
  50. package/dist/types-cjs/form/TimeInputBase.d.ts +5 -2
  51. package/dist/types-cjs/form/_pickerInternals/pickerTypes.d.ts +16 -1
  52. package/dist/types-cjs/helpers/useContextMenuTrigger.d.ts +67 -0
  53. package/dist/types-cjs/helpers/useHoverOpen.d.ts +19 -3
  54. package/dist/types-cjs/helpers/useMenuKeys.d.ts +57 -0
  55. package/dist/types-cjs/index.d.ts +2 -0
  56. package/dist/versions/bestax-no-dark-mode.css +1 -1
  57. package/dist/versions/bestax-no-dark-mode.css.map +1 -1
  58. package/dist/versions/bestax-no-helpers-prefixed.css +1 -1
  59. package/dist/versions/bestax-no-helpers-prefixed.css.map +1 -1
  60. package/dist/versions/bestax-no-helpers.css +1 -1
  61. package/dist/versions/bestax-no-helpers.css.map +1 -1
  62. package/dist/versions/bestax-prefixed.css +1 -1
  63. package/dist/versions/bestax-prefixed.css.map +1 -1
  64. package/package.json +1 -1
  65. package/src/scss/components/_contextmenu.scss +50 -0
  66. package/src/scss/components/_index.scss +1 -0
  67. package/src/scss/components/_tooltip.scss +76 -1
@@ -86,15 +86,19 @@ $tooltip-large-arrow-size: 7px !default;
86
86
  background-color: cv.getVar("tooltip-background");
87
87
  color: cv.getVar("tooltip-color");
88
88
  border-radius: cv.getVar("tooltip-radius");
89
+ // A hidden tooltip, or one only `active` shows, lets the pointer through
90
+ // to what's under it.
89
91
  pointer-events: none;
90
92
  opacity: 0;
91
93
  visibility: hidden;
92
94
 
93
- // Arrow
95
+ // Arrow. Its box is taller than the gap the bridge covers, so taking the
96
+ // pointer it would reach over the trigger, and the bridge covers the gap.
94
97
  &::before {
95
98
  content: '';
96
99
  position: absolute;
97
100
  border: cv.getVar("tooltip-arrow-size") solid transparent;
101
+ pointer-events: none;
98
102
  }
99
103
 
100
104
  // Animation styles
@@ -108,6 +112,11 @@ $tooltip-large-arrow-size: 7px !default;
108
112
  visibility: visible;
109
113
  }
110
114
 
115
+ // Open by the pointer, focus or a tap: the pointer can move onto it
116
+ .#{iv.$class-prefix}tooltip.#{iv.$class-prefix}is-open & {
117
+ pointer-events: auto;
118
+ }
119
+
111
120
  // Square corners
112
121
  .#{iv.$class-prefix}tooltip.#{iv.$class-prefix}is-square & {
113
122
  border-radius: 0;
@@ -178,6 +187,72 @@ $tooltip-large-arrow-size: 7px !default;
178
187
  }
179
188
  }
180
189
 
190
+ // Bridge: while the pointer, focus or a tap has it open, the gap between
191
+ // the trigger and the tooltip, as wide as the trigger, belongs to the
192
+ // wrapper, so the pointer crossing it never leaves. The gap's size is
193
+ // declared on `.tooltip-content`, out of the wrapper's reach, so the bridge
194
+ // takes the same defaults for each size.
195
+ @mixin tooltip-bridge-size($arrow-size) {
196
+ $gap: calc(#{$arrow-size} + #{$tooltip-arrow-margin});
197
+
198
+ &.#{iv.$class-prefix}is-top::after,
199
+ &:not(.#{iv.$class-prefix}is-bottom):not(.#{iv.$class-prefix}is-left):not(.#{iv.$class-prefix}is-right)::after,
200
+ &.#{iv.$class-prefix}is-bottom::after {
201
+ height: $gap;
202
+ }
203
+
204
+ &.#{iv.$class-prefix}is-left::after,
205
+ &.#{iv.$class-prefix}is-right::after {
206
+ width: $gap;
207
+ }
208
+ }
209
+
210
+ .#{iv.$class-prefix}tooltip.#{iv.$class-prefix}is-open {
211
+ &::after {
212
+ content: '';
213
+ position: absolute;
214
+ }
215
+
216
+ &.#{iv.$class-prefix}is-top::after,
217
+ &:not(.#{iv.$class-prefix}is-bottom):not(.#{iv.$class-prefix}is-left):not(.#{iv.$class-prefix}is-right)::after {
218
+ bottom: 100%;
219
+ left: 0;
220
+ right: 0;
221
+ }
222
+
223
+ &.#{iv.$class-prefix}is-bottom::after {
224
+ top: 100%;
225
+ left: 0;
226
+ right: 0;
227
+ }
228
+
229
+ &.#{iv.$class-prefix}is-left::after {
230
+ right: 100%;
231
+ top: 0;
232
+ bottom: 0;
233
+ }
234
+
235
+ &.#{iv.$class-prefix}is-right::after {
236
+ left: 100%;
237
+ top: 0;
238
+ bottom: 0;
239
+ }
240
+
241
+ @include tooltip-bridge-size($tooltip-arrow-size);
242
+
243
+ &.#{iv.$class-prefix}is-small {
244
+ @include tooltip-bridge-size($tooltip-small-arrow-size);
245
+ }
246
+
247
+ &.#{iv.$class-prefix}is-medium {
248
+ @include tooltip-bridge-size($tooltip-medium-arrow-size);
249
+ }
250
+
251
+ &.#{iv.$class-prefix}is-large {
252
+ @include tooltip-bridge-size($tooltip-large-arrow-size);
253
+ }
254
+ }
255
+
181
256
  // Color variants
182
257
  // Uses Bulma's -invert-l pattern for text contrast (same approach as buttons)
183
258
  @mixin tooltip-color($name) {