beez-ui 2.7.1 → 3.0.1

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 (110) hide show
  1. package/CHANGELOG.md +78 -0
  2. package/README.md +43 -13
  3. package/THIRD_PARTY_NOTICES.md +1 -1
  4. package/dist/components/account-menu.d.ts +4 -3
  5. package/dist/components/account-menu.js +63 -54
  6. package/dist/components/alert.d.ts +15 -15
  7. package/dist/components/alert.js +289 -270
  8. package/dist/components/animated-theme-toggler.js +1 -1
  9. package/dist/components/avatar.d.ts +56 -31
  10. package/dist/components/avatar.js +394 -277
  11. package/dist/components/badge.d.ts +8 -28
  12. package/dist/components/badge.js +55 -108
  13. package/dist/components/calendar.d.ts +36 -26
  14. package/dist/components/calendar.js +132 -1227
  15. package/dist/components/card.d.ts +36 -25
  16. package/dist/components/card.js +895 -72
  17. package/dist/components/carousel.d.ts +63 -47
  18. package/dist/components/carousel.js +496 -777
  19. package/dist/components/data-table.d.ts +5 -4
  20. package/dist/components/data-table.js +7 -6
  21. package/dist/components/dialog-surface.d.ts +23 -1
  22. package/dist/components/dialog-surface.js +99 -3
  23. package/dist/components/dialog.d.ts +80 -45
  24. package/dist/components/dialog.js +258 -503
  25. package/dist/components/dropdown-menu.d.ts +56 -73
  26. package/dist/components/dropdown-menu.js +79 -714
  27. package/dist/components/field.d.ts +3 -1
  28. package/dist/components/field.js +49 -39
  29. package/dist/components/filter-presets-bar.js +2 -2
  30. package/dist/components/filter-query-bar.js +1 -1
  31. package/dist/components/hover-card.d.ts +42 -41
  32. package/dist/components/hover-card.js +57 -483
  33. package/dist/components/pagination.d.ts +53 -31
  34. package/dist/components/pagination.js +176 -412
  35. package/dist/components/popover.d.ts +11 -23
  36. package/dist/components/popover.js +19 -304
  37. package/dist/components/{alert-dialog.d.ts → primitives/alert-dialog.d.ts} +17 -5
  38. package/dist/components/{alert-dialog.js → primitives/alert-dialog.js} +102 -54
  39. package/dist/components/primitives/avatar.d.ts +46 -0
  40. package/dist/components/primitives/avatar.js +268 -0
  41. package/dist/components/primitives/calendar.d.ts +37 -0
  42. package/dist/components/primitives/calendar.js +1250 -0
  43. package/dist/components/primitives/carousel.d.ts +106 -0
  44. package/dist/components/primitives/carousel.js +928 -0
  45. package/dist/components/primitives/dialog.d.ts +62 -0
  46. package/dist/components/primitives/dialog.js +490 -0
  47. package/dist/components/primitives/dropdown-menu-items.d.ts +59 -0
  48. package/dist/components/primitives/dropdown-menu-items.js +265 -0
  49. package/dist/components/primitives/dropdown-menu.d.ts +64 -0
  50. package/dist/components/primitives/dropdown-menu.js +557 -0
  51. package/dist/components/primitives/hover-card.d.ts +50 -0
  52. package/dist/components/primitives/hover-card.js +507 -0
  53. package/dist/components/primitives/pagination.d.ts +65 -0
  54. package/dist/components/primitives/pagination.js +373 -0
  55. package/dist/components/primitives/popover.d.ts +22 -0
  56. package/dist/components/primitives/popover.js +213 -0
  57. package/dist/components/primitives/select.d.ts +36 -0
  58. package/dist/components/primitives/select.js +407 -0
  59. package/dist/components/primitives/tooltip.d.ts +30 -0
  60. package/dist/components/primitives/tooltip.js +277 -0
  61. package/dist/components/radio-group.d.ts +30 -17
  62. package/dist/components/radio-group.js +266 -315
  63. package/dist/components/rich-link-editor.js +1 -1
  64. package/dist/components/select.d.ts +51 -42
  65. package/dist/components/select.js +163 -495
  66. package/dist/components/skeleton.d.ts +16 -15
  67. package/dist/components/skeleton.js +99 -205
  68. package/dist/components/split-button.js +1 -1
  69. package/dist/components/switch.d.ts +3 -6
  70. package/dist/components/switch.js +163 -170
  71. package/dist/components/tabs.d.ts +3 -11
  72. package/dist/components/tabs.js +61 -75
  73. package/dist/components/themed-toaster.d.ts +1 -1
  74. package/dist/components/themed-toaster.js +1 -1
  75. package/dist/components/toaster.d.ts +1 -1
  76. package/dist/components/toaster.js +1 -1
  77. package/dist/components/tooltip.d.ts +36 -31
  78. package/dist/components/tooltip.js +44 -284
  79. package/dist/constants/alert.d.ts +5 -1
  80. package/dist/constants/alert.js +5 -1
  81. package/dist/constants/avatar.d.ts +29 -1
  82. package/dist/constants/avatar.js +25 -0
  83. package/dist/constants/calendar.d.ts +12 -0
  84. package/dist/constants/calendar.js +12 -0
  85. package/dist/constants/card.d.ts +23 -0
  86. package/dist/constants/card.js +20 -0
  87. package/dist/constants/carousel.d.ts +31 -13
  88. package/dist/constants/carousel.js +32 -11
  89. package/dist/constants/dialog.d.ts +6 -1
  90. package/dist/constants/dialog.js +5 -1
  91. package/dist/constants/dropdown-menu.d.ts +2 -2
  92. package/dist/constants/dropdown-menu.js +2 -2
  93. package/dist/constants/pagination.d.ts +13 -2
  94. package/dist/constants/pagination.js +13 -2
  95. package/dist/constants/select.d.ts +4 -2
  96. package/dist/constants/select.js +4 -2
  97. package/dist/constants/switch.d.ts +5 -16
  98. package/dist/constants/switch.js +6 -14
  99. package/dist/hooks/use-today.d.ts +7 -0
  100. package/dist/hooks/use-today.js +50 -0
  101. package/dist/hooks.d.ts +1 -0
  102. package/dist/hooks.js +1 -0
  103. package/dist/index.d.ts +0 -1
  104. package/dist/index.js +0 -1
  105. package/dist/motion/glide-indicator.d.ts +1 -1
  106. package/dist/motion/glide-indicator.js +1 -1
  107. package/dist/motion/presence.d.ts +0 -1
  108. package/dist/motion/presence.js +0 -1
  109. package/dist/styles.css +1 -1
  110. package/package.json +1 -6
@@ -1,55 +1,71 @@
1
1
  /**
2
- * Carousel on Embla with Arc's carousel design (https://uiarc.dev, MIT License, see THIRD_PARTY_NOTICES.md): round
3
- * outlined controls on the surface that answer hover on fine pointers and press in, a grab cursor while the track can
4
- * be dragged, Home and End to reach the edges, and optional Arc indicators whose pill stretches and travels with the
5
- * slides frame by frame. Embla keeps dragging, snapping, looping and plugins.
2
+ * Arc's Carousel (https://uiarc.dev, MIT License, see THIRD_PARTY_NOTICES.md) as a closed component: one child per
3
+ * slide, a centered slide row that is dragged, flicked or arrowed through, and a control row under it with an optional
4
+ * rotation control, the indicator tab list and the arrows. Embla runs inside and is never exposed; the beez-ui
5
+ * extensions (`loop`, `duration`, `watchFocus`, `onSettle`, deferred re-initialization, labels and visibility of the
6
+ * controls) cover media viewers that used Embla's API directly.
6
7
  */
7
8
  import * as React from "react";
8
- import useEmblaCarousel, { type UseEmblaCarouselType } from "embla-carousel-react";
9
- import { type CarouselOrientation } from "../constants/carousel.js";
10
- import { ControlButton } from "./control-button.js";
11
- type CarouselApi = UseEmblaCarouselType[1];
12
- type UseCarouselParameters = Parameters<typeof useEmblaCarousel>;
13
- type CarouselOptions = UseCarouselParameters[0];
14
- type CarouselPlugin = UseCarouselParameters[1];
9
+ /** Props of {@link Carousel}: Arc's carousel API plus the beez-ui extensions marked below. */
15
10
  type CarouselProps = {
16
- opts?: CarouselOptions;
17
- plugins?: CarouselPlugin;
18
- orientation?: CarouselOrientation;
19
- setApi?: (api: CarouselApi) => void;
20
- };
21
- type CarouselContextProps = {
22
- carouselRef: ReturnType<typeof useEmblaCarousel>[0];
23
- api: ReturnType<typeof useEmblaCarousel>[1];
24
- scrollPrev: () => void;
25
- scrollNext: () => void;
26
- canScrollPrev: boolean;
27
- canScrollNext: boolean;
28
- } & CarouselProps;
29
- declare function useCarousel(): CarouselContextProps;
30
- declare function Carousel({ orientation, opts, setApi, plugins, className, children, ...props }: React.ComponentProps<"div"> & CarouselProps): React.JSX.Element;
31
- /**
32
- * The clipped viewport and the slide track. While the track can be dragged it shows Arc's grab cursor on fine
33
- * pointers, and a grabbing cursor while a drag is held.
34
- */
35
- declare function CarouselContent({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
36
- declare function CarouselItem({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
37
- declare function CarouselPrevious({ className, variant, size, ...props }: React.ComponentProps<typeof ControlButton>): React.JSX.Element;
38
- declare function CarouselNext({ className, variant, size, ...props }: React.ComponentProps<typeof ControlButton>): React.JSX.Element;
39
- type CarouselIndicatorsProps = Omit<React.ComponentProps<"div">, "children"> & {
40
- /** Accessible name of the indicator list. Defaults to "Elegir una diapositiva". */
41
- label?: string;
42
- /** Names each indicator. Defaults to "Diapositiva 2 de 5". */
11
+ /** Names the carousel for assistive technology, for example "Fotos del encuentro". */
12
+ label: string;
13
+ /** One child per slide. Give each a stable `key` when the list can change. */
14
+ children: React.ReactNode;
15
+ /** Controlled active slide. Pair with `onIndexChange`. */
16
+ index?: number;
17
+ /** Initial slide when uncontrolled. Defaults to 0. */
18
+ defaultIndex?: number;
19
+ /** Called as soon as the active slide changes, when the scroll toward it starts. */
20
+ onIndexChange?: (index: number) => void;
21
+ /** Width of one slide as a CSS length; `cqw` is a share of the carousel width. Defaults to `min(80cqw, 340px)`. */
22
+ slideSize?: string;
23
+ /** Names each slide and its indicator. Defaults to "Diapositiva 2 de 5". */
43
24
  slideLabel?: (index: number, count: number) => string;
25
+ /**
26
+ * Milliseconds per slide. Adds a play control that rotates through the slides; rotation pauses on hover, keyboard
27
+ * focus, drag, offscreen and in hidden tabs; with reduced motion the control stays but is disabled.
28
+ */
29
+ interval?: number;
30
+ /** Starts rotating on mount. Off by default, so motion begins with the viewer. */
31
+ autoplay?: boolean;
32
+ /** Class of the root section. */
33
+ className?: string;
34
+ /** beez-ui: wraps from the last slide to the first and back. Defaults to `false`. */
35
+ loop?: boolean;
36
+ /** beez-ui: speed of a scroll between slides, in Embla's units (higher is slower). Defaults to Embla's 25. */
37
+ duration?: number;
38
+ /**
39
+ * beez-ui: scrolls to a slide when something inside it receives focus. Defaults to `true`; turn it off when a slide
40
+ * holds content that keeps focus, such as an embedded player, so it never pulls the carousel back.
41
+ */
42
+ watchFocus?: boolean;
43
+ /** beez-ui: called once a scroll has come to rest on a slide, the moment to mount heavy slide content. */
44
+ onSettle?: (index: number) => void;
45
+ /** beez-ui: accessible name of the previous arrow. Defaults to "Diapositiva anterior". */
46
+ previousLabel?: string;
47
+ /** beez-ui: accessible name of the next arrow. Defaults to "Diapositiva siguiente". */
48
+ nextLabel?: string;
49
+ /** beez-ui: shows the previous and next arrows. Defaults to `true`. */
50
+ showControls?: boolean;
51
+ /** beez-ui: shows the indicator tab list. Defaults to `true`. */
52
+ showIndicators?: boolean;
53
+ /** beez-ui: class added to every slide panel. */
54
+ slideClassName?: string;
55
+ /**
56
+ * beez-ui: class of the clipped, focusable viewport around the slide track, for example to give a media viewer a
57
+ * definite height.
58
+ */
59
+ viewportClassName?: string;
60
+ /** beez-ui: class of the slide track inside the viewport, which lays the slides out in a row. */
61
+ trackClassName?: string;
44
62
  };
45
63
  /**
46
- * Arc's page indicator for a carousel: one dot per snap point, where the current one stretches into a pill that
47
- * follows the track frame by frame while it is dragged or scrolled. The dots are buttons in a named group and the
48
- * current one carries `aria-current`; activating a dot scrolls to its slide, and when a dot has focus the carousel's
49
- * arrow, Home and End keys move the focus to the dot of the new slide. It renders
50
- * once Embla has measured the slides. Place it inside `Carousel`.
51
- * @param props - Optional accessible copy plus native attributes of the list.
52
- * @returns The indicator list, or nothing until there is more than one snap point.
64
+ * A centered row of slides browsed by drag, flick, the arrow keys, Home and End, the arrows or the indicator tabs, with
65
+ * optional rotation. Neighbouring slides stay in view as a hint that there is more, and are inert until selected.
66
+ * @param props - Arc's carousel props plus the beez-ui extensions.
67
+ * @returns The carousel section.
53
68
  */
54
- declare function CarouselIndicators({ className, label, slideLabel, ...props }: CarouselIndicatorsProps): React.JSX.Element | null;
55
- export { type CarouselApi, type CarouselIndicatorsProps, Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext, CarouselIndicators, useCarousel, };
69
+ declare function Carousel({ label, children, index: controlledIndex, defaultIndex, onIndexChange, slideSize, slideLabel, interval, autoplay, className, loop, duration, watchFocus, onSettle, previousLabel, nextLabel, showControls, showIndicators, slideClassName, viewportClassName, trackClassName, }: CarouselProps): React.JSX.Element;
70
+ export { Carousel };
71
+ export type { CarouselProps };