@sesamehr/react-design-system 3.4.0 → 3.5.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 (68) hide show
  1. package/dist/Button/index.d.ts +1 -1
  2. package/dist/Display/AiTag/AiTag.d.ts +33 -0
  3. package/dist/Display/AiTag/index.d.ts +21 -0
  4. package/dist/Display/Avatar/index.d.ts +2 -2
  5. package/dist/Display/Badge/index.d.ts +1 -1
  6. package/dist/Display/BrandLogo/BrandLogo.d.ts +53 -0
  7. package/dist/Display/BrandLogo/brandLogoArt.d.ts +29 -0
  8. package/dist/Display/BrandLogo/index.d.ts +17 -0
  9. package/dist/Display/FileCard/FileCard.d.ts +102 -41
  10. package/dist/Display/FileCard/index.d.ts +31 -0
  11. package/dist/Display/ImageAttachment/ImageAttachment.d.ts +58 -0
  12. package/dist/Display/ImageAttachment/index.d.ts +2 -0
  13. package/dist/Display/LinkPreview/LinkPreview.d.ts +65 -0
  14. package/dist/Display/LinkPreview/index.d.ts +1 -0
  15. package/dist/Display/LocationAttachment/LocationAttachment.d.ts +71 -0
  16. package/dist/Display/LocationAttachment/index.d.ts +1 -0
  17. package/dist/Display/VideoAttachment/VideoAttachment.d.ts +78 -0
  18. package/dist/Display/VideoAttachment/index.d.ts +1 -0
  19. package/dist/Display/VoiceMessage/VoiceMessage.d.ts +103 -0
  20. package/dist/Display/VoiceMessage/index.d.ts +2 -0
  21. package/dist/Display/VoiceMessage/toWaveformPeaks.d.ts +58 -0
  22. package/dist/Display/VoiceMessage/useVoiceWaveform.d.ts +90 -0
  23. package/dist/Feedback/Dialog/Dialog.d.ts +13 -1
  24. package/dist/Feedback/Dialog/DialogOverlay.d.ts +12 -1
  25. package/dist/Feedback/Drawer/Drawer.d.ts +68 -0
  26. package/dist/Feedback/Drawer/DrawerBody.d.ts +18 -0
  27. package/dist/Feedback/Drawer/DrawerContent.d.ts +36 -0
  28. package/dist/Feedback/Drawer/DrawerDescription.d.ts +10 -0
  29. package/dist/Feedback/Drawer/DrawerExpand.d.ts +23 -0
  30. package/dist/Feedback/Drawer/DrawerTitle.d.ts +13 -0
  31. package/dist/Feedback/Drawer/index.d.ts +7 -0
  32. package/dist/Feedback/Drawer/useDrawer.d.ts +30 -0
  33. package/dist/Feedback/Progress/index.d.ts +1 -1
  34. package/dist/Forms/Inputs/AiSearch/AiSearch.d.ts +67 -0
  35. package/dist/Forms/Inputs/AiSearch/AiSearchAsk.d.ts +34 -0
  36. package/dist/Forms/Inputs/AiSearch/AiSearchPanel.d.ts +50 -0
  37. package/dist/Forms/Inputs/AiSearch/AiSearchSend.d.ts +30 -0
  38. package/dist/Forms/Inputs/AiSearch/AiSearchShortcut.d.ts +23 -0
  39. package/dist/Forms/Inputs/AiSearch/AiSearchSuggestion.d.ts +27 -0
  40. package/dist/Forms/Inputs/AiSearch/index.d.ts +6 -0
  41. package/dist/Forms/Inputs/AiSearch/useAiSearch.d.ts +37 -0
  42. package/dist/Forms/Inputs/TimePicker/TimePicker.d.ts +64 -0
  43. package/dist/Forms/Inputs/TimePicker/TimePickerField.d.ts +35 -0
  44. package/dist/Forms/Inputs/TimePicker/TimePickerList.d.ts +23 -0
  45. package/dist/Forms/Inputs/TimePicker/TimePickerWheel.d.ts +26 -0
  46. package/dist/Forms/Inputs/TimePicker/TimePickerWheelColumn.d.ts +23 -0
  47. package/dist/Forms/Inputs/TimePicker/index.d.ts +6 -0
  48. package/dist/Forms/Inputs/TimePicker/time.d.ts +41 -0
  49. package/dist/Forms/Inputs/TimePicker/useTimeField.d.ts +62 -0
  50. package/dist/Forms/Inputs/TimePicker/useTimeList.d.ts +53 -0
  51. package/dist/Forms/Inputs/TimePicker/useTimePicker.d.ts +35 -0
  52. package/dist/Forms/Inputs/TimePicker/useWheelColumn.d.ts +71 -0
  53. package/dist/Forms/Inputs/index.d.ts +1 -0
  54. package/dist/Navigation/Tabs/Tabs.d.ts +18 -0
  55. package/dist/Navigation/Tabs/TabsContent.d.ts +7 -0
  56. package/dist/Navigation/Tabs/TabsList.d.ts +10 -0
  57. package/dist/Navigation/Tabs/TabsTrigger.d.ts +20 -0
  58. package/dist/Navigation/Tabs/index.d.ts +4 -0
  59. package/dist/internal/AttachmentMedia/AttachmentMedia.d.ts +38 -0
  60. package/dist/internal/AttachmentMedia/index.d.ts +36 -0
  61. package/dist/internal/index.d.ts +1 -0
  62. package/dist/main.d.ts +12 -2
  63. package/dist/react-design-system.css +1 -1
  64. package/dist/react-design-system.js +12581 -10218
  65. package/dist/react-design-system.umd.cjs +108 -74
  66. package/package.json +3 -2
  67. package/src/assets/styles/theme-v3.css +99 -2
  68. package/src/assets/styles/theme-v3.test.ts +5 -5
@@ -0,0 +1,35 @@
1
+ import { Time } from '@internationalized/date';
2
+ import { TimeFormat, TimePart } from './time.ts';
3
+ /**
4
+ * What `<OxTimePicker>` hands to the field and to whichever body is mounted
5
+ * inside it.
6
+ *
7
+ * The value lives here and nowhere else. A wheel column and a 15-minute row
8
+ * are two ways of writing the same three numbers, so neither of them holds a
9
+ * value of its own — they read `time` and call `setPart` / `setTime`, and the
10
+ * field reads the same `time` back. That is what keeps the format handling and
11
+ * the empty-segment state in one file instead of two.
12
+ */
13
+ export interface TimePickerContextValue {
14
+ format: TimeFormat;
15
+ /** The chosen time, or `undefined` while any segment is still empty. */
16
+ time: Time | undefined;
17
+ /** Replace the whole value. `undefined` empties every segment. */
18
+ setTime: (next: Time | undefined) => void;
19
+ /** Replace one part and keep the others. See `withPart` for the empty case. */
20
+ setPart: (part: TimePart, value: number) => void;
21
+ disabled: boolean;
22
+ dataTestid: string;
23
+ /** Shut the dropdown. A list row closes on a pick; a wheel never does. */
24
+ close: () => void;
25
+ }
26
+ export declare const TimePickerContext: import('react').Context<TimePickerContextValue | null>;
27
+ /**
28
+ * Throws outside `<OxTimePicker>`, unlike `useFieldGroup`: a bare field or a
29
+ * bare wheel has no value to read and nothing to write to, so it is not a
30
+ * degraded component — it is a mistake.
31
+ *
32
+ * The Vue original reaches the same state through `provide`/`inject`, and the
33
+ * message is deliberately identical: the two ports fail the same way.
34
+ */
35
+ export declare function useTimePicker(): TimePickerContextValue;
@@ -0,0 +1,71 @@
1
+ /**
2
+ * One row, in pixels. The board draws 40 and the arithmetic below depends on
3
+ * the number being the same here and in the stylesheet, so the component
4
+ * publishes both of these as custom properties rather than the CSS repeating
5
+ * them.
6
+ */
7
+ export declare const WHEEL_ROW_HEIGHT = 40;
8
+ /** Rows visible at once: the centre plus two either side. Must stay odd. */
9
+ export declare const WHEEL_VISIBLE_ROWS = 5;
10
+ export interface WheelColumnOptions {
11
+ /** The values this column cycles, in order. */
12
+ values: number[];
13
+ /** The chosen one, or `undefined` while nothing is chosen. */
14
+ value: number | undefined;
15
+ /** Called with a value whenever the column settles on one. */
16
+ onPick: (value: number) => void;
17
+ disabled: boolean;
18
+ }
19
+ export interface WheelColumn {
20
+ /** The scrolling element. Put `role="spinbutton"` on it. */
21
+ viewport: React.RefObject<HTMLDivElement | null>;
22
+ /** The value list repeated, so the column can be scrolled past either end. */
23
+ rows: number[];
24
+ /** Rounded distance from the centred row: 0, 1, 2, … Drives the fade. */
25
+ distanceOf: (index: number) => number;
26
+ /** Jump to a row and take its value. What a click on a row does. */
27
+ pick: (index: number) => void;
28
+ /** Put the chosen value back under the band without animating. */
29
+ recentre: () => void;
30
+ onScroll: () => void;
31
+ onPointerDown: (event: React.PointerEvent) => void;
32
+ onKeyDown: (event: React.KeyboardEvent) => void;
33
+ }
34
+ /**
35
+ * The scrolling, snapping, endlessly looping column. Port of
36
+ * `core/src/Forms/Inputs/TimePicker/useWheelColumn.ts`, which was itself ported
37
+ * from `HrWheelPicker.vue` in `sesame-v2-front`.
38
+ *
39
+ * Neither reka nor Radix has a wheel primitive, so this is the behaviour
40
+ * itself and not a translation of a primitive call. Three parts of it are not
41
+ * obvious and all three are load-bearing:
42
+ *
43
+ * - **The endless list** is the values rendered three times — one spare copy
44
+ * each side — with a silent, un-animated jump back to the middle copy the
45
+ * moment the centred row leaves it.
46
+ * - **Settling happens after the gesture**, not during it, so a wheel notch or
47
+ * a fling is followed to wherever it lands and only then snapped to the
48
+ * nearest row.
49
+ * - **A click is told apart from a drag that ended where it started** by the
50
+ * 3px threshold below, and the flag is cleared a frame *after* the release so
51
+ * that the click the release produces does not also count as a pick.
52
+ *
53
+ * The geometry is one line rather than four helpers: pad the content by exactly
54
+ * `(visible − 1) / 2` rows and the centred row is `scrollTop / rowHeight`, so
55
+ * every helper over container height and half-heights becomes a multiply.
56
+ *
57
+ * **Two things differ from the Vue original, both forced by React.**
58
+ *
59
+ * `scrollTop` is tracked in a ref *and* in state. The ref is what the
60
+ * arithmetic reads — a wheel gesture moves it before the browser has scrolled,
61
+ * and the fade has to follow the gesture and not the paint — and the state is
62
+ * only there to make the fade re-render.
63
+ *
64
+ * The `wheel` listener is attached imperatively, non-passive. React registers
65
+ * its own `onWheel` as a passive listener on the root container, so
66
+ * `preventDefault()` inside a JSX `onWheel` is ignored with a console warning
67
+ * and the page scrolls behind the panel. Vue binds to the element directly and
68
+ * has no such problem, which is exactly the kind of difference a re-derivation
69
+ * would have shipped.
70
+ */
71
+ export declare function useWheelColumn(options: WheelColumnOptions): WheelColumn;
@@ -12,5 +12,6 @@ export * from './DatePicker/index.ts';
12
12
  export * from './SearchBar/index.ts';
13
13
  export * from './SearchPanel/index.ts';
14
14
  export * from './Select/index.ts';
15
+ export * from './TimePicker/index.ts';
15
16
  export * from './Textarea/index.ts';
16
17
  export * from './Toggle/index.ts';
@@ -0,0 +1,18 @@
1
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
2
+ export interface TabsProps extends React.ComponentPropsWithoutRef<typeof TabsPrimitive.Root> {
3
+ dataTestid?: string;
4
+ }
5
+ /**
6
+ * A tab strip: labels in a row over a hairline, with a 2px brand indicator
7
+ * under the active one and the active label in brand.
8
+ *
9
+ * Built on `@radix-ui/react-tabs`: the root owns the open value and provides it
10
+ * to every `OxTabsTrigger` and `OxTabsContent` below it.
11
+ *
12
+ * Radix's root is controlled-only, where the Vue original's `defineModel` keeps
13
+ * driving itself from a `model-value` nobody listens to. Both paths are kept,
14
+ * gated on the **handler** and not on the value: a strip given a `value` and no
15
+ * `onValueChange` still opens the tab that was pressed, instead of being pinned
16
+ * to the one it started on.
17
+ */
18
+ export declare const Tabs: import('react').ForwardRefExoticComponent<TabsProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,7 @@
1
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
2
+ export type TabsContentProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>;
3
+ /**
4
+ * The panel a trigger opens. Rendered only while its `value` is the active one,
5
+ * so it decides its own visibility rather than being conditioned by the parent.
6
+ */
7
+ export declare const TabsContent: import('react').ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,10 @@
1
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
2
+ export type TabsListProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>;
3
+ /**
4
+ * The row of triggers, and the hairline they sit on.
5
+ *
6
+ * Nothing here draws or moves the selection — each trigger carries its own
7
+ * indicator. See the note in `TabsTrigger.tsx` for why that is a
8
+ * pseudo-element rather than a measured one.
9
+ */
10
+ export declare const TabsList: import('react').ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,20 @@
1
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
2
+ export type TabsTriggerProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>;
3
+ /**
4
+ * One tab, and the indicator under it.
5
+ *
6
+ * **Why the indicator is a pseudo-element and not a measured one.** The board
7
+ * draws it per tab: a 2px rectangle stretched across the tab it belongs to,
8
+ * shown on the active one and hidden on the rest. Nothing travels between
9
+ * triggers, so there is nothing to measure, and `::after` with `inset-x-0` is
10
+ * already the full width of whatever the tab turns out to be — including after
11
+ * the label changes with the data or a webfont swaps in. A measured element
12
+ * would need a `ResizeObserver` per trigger and a `requestAnimationFrame` to
13
+ * reproduce what one declaration does.
14
+ *
15
+ * Children: the label, optionally an `<Icon data-slot="icon">` before it and a
16
+ * `<span data-slot="count">` after it. Both are plain caller-written elements
17
+ * this file styles, rather than components of their own — neither has logic,
18
+ * state or context, which is the bar for splitting one out.
19
+ */
20
+ export declare const TabsTrigger: import('react').ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & import('react').RefAttributes<HTMLButtonElement>, "ref"> & import('react').RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,4 @@
1
+ export { Tabs, type TabsProps } from './Tabs.tsx';
2
+ export { TabsList, type TabsListProps } from './TabsList.tsx';
3
+ export { TabsTrigger, type TabsTriggerProps } from './TabsTrigger.tsx';
4
+ export { TabsContent, type TabsContentProps } from './TabsContent.tsx';
@@ -0,0 +1,38 @@
1
+ import { ReactNode } from 'react';
2
+ import { AttachmentImage, AttachmentMediaVariants } from './index.ts';
3
+ /**
4
+ * The tinted rectangle every chat attachment draws its picture in.
5
+ * Port of `core/src/internal/AttachmentMedia`.
6
+ *
7
+ * Internal, and not a wrapper for the sake of one: it owns the only piece of
8
+ * behaviour the five attachments share. A thumbnail has three states and none
9
+ * of them is a prop — **nothing to show** is the tint plus a glyph, **loading**
10
+ * is the same tint showing through until the bytes land, and **failed** swaps
11
+ * the `<img>` back out, because the browser's broken-image icon is neither
12
+ * styleable nor meaningful and dropping the element is the only way to be rid
13
+ * of it. A new `src` clears the flag, so one bad URL does not poison the next.
14
+ *
15
+ * Its two dimensions and its tint are **variables it reads, not values it
16
+ * declares**, for the reason `Surface` sets out: written in the owning
17
+ * component they would land on that component's own module class and weigh
18
+ * exactly what the rule here weighs, so which one won would come down to the
19
+ * order the bundler emitted two files in. Only this file reads them and only
20
+ * the owner declares them, so there is no contest to lose.
21
+ *
22
+ * `children` is the layer over the picture — a play button, a duration, a "+N"
23
+ * count. `placeholder` replaces the glyph for an attachment that is not of a
24
+ * photograph.
25
+ */
26
+ export interface AttachmentMediaProps extends React.ComponentPropsWithoutRef<'span'> {
27
+ /** The picture, if there is one. Omitted leaves the tint and the glyph. */
28
+ image?: AttachmentImage;
29
+ /** Which side of the bubble this is in. */
30
+ surface?: AttachmentMediaVariants['surface'];
31
+ /**
32
+ * Replaces the photo glyph for an attachment whose content is not a
33
+ * photograph — the pin behind a location. Ports the Vue `#placeholder` slot.
34
+ */
35
+ placeholder?: ReactNode;
36
+ dataTestid: string;
37
+ }
38
+ export declare const AttachmentMedia: import('react').ForwardRefExoticComponent<AttachmentMediaProps & import('react').RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1,36 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ export { AttachmentMedia, type AttachmentMediaProps, } from './AttachmentMedia.tsx';
3
+ /**
4
+ * A picture an attachment shows, as data rather than as markup.
5
+ *
6
+ * One object and not two props, for the same reason `ChatBubbleDelivery` is
7
+ * one: the two halves are meaningless apart, and spending a prop each would put
8
+ * a two-field component against the five-prop cap for nothing.
9
+ *
10
+ * `alt` has no default and is not optional. The design system ships no strings
11
+ * and only the caller knows what the picture is of; pass `''` when it genuinely
12
+ * is decoration — the Figma boards say the map behind a location and the header
13
+ * of a link preview are — and that is then a decision somebody made rather than
14
+ * one nobody noticed.
15
+ */
16
+ export interface AttachmentImage {
17
+ src: string;
18
+ alt: string;
19
+ }
20
+ /**
21
+ * Which side of a chat bubble the box is sitting in.
22
+ *
23
+ * `Default` is a neutral tint, for an attachment in somebody else's bubble;
24
+ * `Brand` is the brand ramp, for one in the reader's own. Figma's axis is
25
+ * spelled `Surface` and holds exactly these two values on all five
26
+ * attachments.
27
+ */
28
+ export declare const attachmentMediaVariants: (props?: ({
29
+ surface?: "default" | "brand" | null | undefined;
30
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
31
+ export type AttachmentMediaVariants = VariantProps<typeof attachmentMediaVariants>;
32
+ /**
33
+ * The `Surface` axis as a public name, so the five attachments spell it once
34
+ * and a caller can hold it in a variable.
35
+ */
36
+ export type AttachmentSurface = NonNullable<AttachmentMediaVariants['surface']>;
@@ -6,6 +6,7 @@
6
6
  * `OxSearchPanel` or `OxDropdownMenu`, each of which pairs these with its own
7
7
  * primitive.
8
8
  */
9
+ export { AttachmentMedia, type AttachmentMediaProps, } from './AttachmentMedia/AttachmentMedia.tsx';
9
10
  export { Surface, type SurfaceProps } from './Surface/Surface.tsx';
10
11
  export { ListboxEmpty, type ListboxEmptyProps, } from './Listbox/ListboxEmpty.tsx';
11
12
  export { ListboxItem, type ListboxItemProps } from './Listbox/ListboxItem.tsx';
package/dist/main.d.ts CHANGED
@@ -30,7 +30,12 @@ export { CalendarDate as OxCalendarDate, calendarDateVariants, type CalendarDate
30
30
  export { NumberFlow as OxNumberFlow, resolveNumberFlowPreset, NUMBER_FLOW_PRESETS, type NumberFlowConfig, type NumberFlowPreset, } from './Display/NumberFlow/index.ts';
31
31
  export { PixelArt as OxPixelArt, type PixelArtOrder, } from './Display/PixelArt/index.ts';
32
32
  export { PaymentCard as OxPaymentCard, paymentCardVariants, type PaymentCardVariants, type BadgeType, type CardData, } from './Display/PaymentCard/index.ts';
33
- export { FileCard as OxFileCard } from './Display/FileCard/index.ts';
33
+ export { FileCard as OxFileCard, fileCardVariants, type FileCardVariants, } from './Display/FileCard/index.ts';
34
+ export { ImageAttachment as OxImageAttachment, type AttachmentImage, type AttachmentSurface, } from './Display/ImageAttachment/index.ts';
35
+ export { VideoAttachment as OxVideoAttachment } from './Display/VideoAttachment/index.ts';
36
+ export { LinkPreview as OxLinkPreview } from './Display/LinkPreview/index.ts';
37
+ export { LocationAttachment as OxLocationAttachment } from './Display/LocationAttachment/index.ts';
38
+ export { VoiceMessage as OxVoiceMessage, type AudiowaveformJson, type WaveformSource, toWaveformPeaks, } from './Display/VoiceMessage/index.ts';
34
39
  export { FilePreviewCard as OxFilePreviewCard } from './Display/FilePreviewCard/index.ts';
35
40
  export { ChatBubble as OxChatBubble, chatBubbleVariants, type ChatBubbleDelivery, type ChatBubbleVariants, } from './Display/ChatBubble/index.ts';
36
41
  export { ChatBubbleStatus as OxChatBubbleStatus, chatBubbleStatusVariants, type ChatBubbleStatusVariants, } from './Display/ChatBubble/ChatBubbleStatus/index.ts';
@@ -39,6 +44,8 @@ export { Chip as OxChip, chipVariants, type ChipVariants, } from './Display/Chip
39
44
  export { PlayerPill as OxPlayerPill, PlayerPillAction as OxPlayerPillAction, PlayerPillStatus as OxPlayerPillStatus, PlayerPillTime as OxPlayerPillTime, playerPillVariants, type PlayerPillActionName, type PlayerPillState, type PlayerPillVariants, } from './Display/PlayerPill/index.ts';
40
45
  export { PointMarker as OxPointMarker, pointMarkerVariants, type PointMarkerVariants, } from './Display/PointMarker/index.ts';
41
46
  export { Tag as OxTag, tagVariants, type TagVariants, } from './Display/Tag/index.ts';
47
+ export { AiTag as OxAiTag, aiTagVariants, type AiTagVariants, } from './Display/AiTag/index.ts';
48
+ export { BrandLogo as OxBrandLogo, brandLogoVariants, type BrandLogoArt, type BrandLogoVariants, } from './Display/BrandLogo/index.ts';
42
49
  export { StatusBadge as OxStatusBadge, statusBadgeVariants, type StatusBadgeVariants, } from './Feedback/StatusBadge/index.ts';
43
50
  export { Bullet as OxBullet, bulletVariants, type BulletVariants, } from './Feedback/Bullet/index.ts';
44
51
  export { EmptyState as OxEmptyState, emptyStateVariants, type EmptyStateVariants, } from './Feedback/EmptyState/index.ts';
@@ -48,10 +55,12 @@ export { Progress as OxProgress } from './Feedback/Progress/index.ts';
48
55
  export { Skeleton as OxSkeleton } from './Feedback/Skeleton/index.ts';
49
56
  export { Alert as OxAlert, AlertClose as OxAlertClose, AlertDescription as OxAlertDescription, AlertIcon as OxAlertIcon, AlertTitle as OxAlertTitle, AlertToggle as OxAlertToggle, } from './Feedback/Alert/index.ts';
50
57
  export { Dialog as OxDialog, DialogContent as OxDialogContent, DialogBody as OxDialogBody, DialogTitle as OxDialogTitle, DialogDescription as OxDialogDescription, DialogOverlay as OxDialogOverlay, DialogTwoPanelContent as OxDialogTwoPanelContent, DialogFullScreenContent as OxDialogFullScreenContent, DialogTrigger as OxDialogTrigger, DialogClose as OxDialogClose, } from './Feedback/Dialog/index.ts';
58
+ export { Drawer as OxDrawer, DrawerContent as OxDrawerContent, DrawerBody as OxDrawerBody, DrawerTitle as OxDrawerTitle, DrawerDescription as OxDrawerDescription, DrawerExpand as OxDrawerExpand, DrawerTrigger as OxDrawerTrigger, DrawerClose as OxDrawerClose, } from './Feedback/Drawer/index.ts';
51
59
  export { Tooltip as OxTooltip, TooltipContent as OxTooltipContent, } from './Feedback/Tooltip/index.ts';
52
60
  export { Popover as OxPopover, PopoverContent as OxPopoverContent, PopoverClose as OxPopoverClose, } from './Feedback/Popover/index.ts';
53
61
  export { Toaster as OxToaster, Toast as OxToast, ToastIcon as OxToastIcon, ToastTitle as OxToastTitle, ToastDescription as OxToastDescription, ToastAction as OxToastAction, ToastClose as OxToastClose, TOAST_POSITIONS, type ToastPosition, type ToastType, type ToastOptions, type ToastEntry, type ToastActionDescriptor, type UseToastReturn, type ToastVariants, type ToastViewportVariants, toastVariants, toastViewportVariants, toastSwipeDirection, dismissAllToasts, dismissToast, toast, useToast, } from './Feedback/Toast/index.ts';
54
62
  export { Accordion as OxAccordion, AccordionItem as OxAccordionItem, AccordionTrigger as OxAccordionTrigger, AccordionContent as OxAccordionContent, } from './Navigation/Accordion/index.ts';
63
+ export { Tabs as OxTabs, TabsList as OxTabsList, TabsTrigger as OxTabsTrigger, TabsContent as OxTabsContent, } from './Navigation/Tabs/index.ts';
55
64
  export { ToggleTabs as OxToggleTabs, ToggleTabsList as OxToggleTabsList, ToggleTabsTrigger as OxToggleTabsTrigger, ToggleTabsContent as OxToggleTabsContent, } from './Navigation/ToggleTabs/index.ts';
56
65
  export { Stepper as OxStepper, StepperItem as OxStepperItem, StepperSubsteps as OxStepperSubsteps, isStepNavigable, stepperState, useStepper, type StepperContextValue, type StepperOrientation, type StepperState, } from './Navigation/Stepper/index.ts';
57
66
  export { PageControl as OxPageControl, pageControlDots, PAGE_CONTROL_WINDOW, type PageControlDot, type PageControlDotSize, } from './Navigation/PageControl/index.ts';
@@ -59,6 +68,7 @@ export { DropdownMenu as OxDropdownMenu, DropdownMenuTrigger as OxDropdownMenuTr
59
68
  export { Breadcrumb as OxBreadcrumb, BreadcrumbList as OxBreadcrumbList, BreadcrumbItem as OxBreadcrumbItem, BreadcrumbLink as OxBreadcrumbLink, BreadcrumbPage as OxBreadcrumbPage, BreadcrumbSeparator as OxBreadcrumbSeparator, BreadcrumbEllipsis as OxBreadcrumbEllipsis, } from './Navigation/Breadcrumb/index.ts';
60
69
  export { Counter as OxCounter, counterVariants, type CounterVariants, } from './Forms/Field/Counter/index.ts';
61
70
  export { FieldGroup as OxFieldGroup, FieldLabel as OxFieldLabel, FieldMessage as OxFieldMessage, useFieldControl, useFieldControlGroup, type FieldControlAttrs, type FieldControlGroupAttrs, type FieldGroupProps, type FieldVariant, } from './Forms/Field/index.ts';
62
- export { InputGroup as OxInputGroup, InputText as OxInputText, InputNumber as OxInputNumber, InputNumberContent as OxInputNumberContent, InputNumberDecrement as OxInputNumberDecrement, InputNumberIncrement as OxInputNumberIncrement, InputNumberInput as OxInputNumberInput, InputPassword as OxInputPassword, InputPasswordInput as OxInputPasswordInput, InputPasswordToggle as OxInputPasswordToggle, useInputPassword, InputOtp as OxInputOtp, InputOtpGroup as OxInputOtpGroup, InputOtpSlot as OxInputOtpSlot, InputOtpSeparator as OxInputOtpSeparator, useInputOtp, Calendar as OxCalendar, CalendarRange as OxCalendarRange, CalendarDay as OxCalendarDay, calendarDayVariants, Combobox as OxCombobox, ComboboxCancel as OxComboboxCancel, ComboboxInput as OxComboboxInput, ComboboxChipsInput as OxComboboxChipsInput, ComboboxContent as OxComboboxContent, ComboboxItem as OxComboboxItem, ComboboxItemEdit as OxComboboxItemEdit, ComboboxEmpty as OxComboboxEmpty, ComboboxGroup as OxComboboxGroup, ComboboxSeparator as OxComboboxSeparator, ChatInput as OxChatInput, ColorPicker as OxColorPicker, ColorPickerTrigger as OxColorPickerTrigger, ColorPickerContent as OxColorPickerContent, ColorPickerSwatch as OxColorPickerSwatch, useColorPicker, IconPicker as OxIconPicker, IconPickerTrigger as OxIconPickerTrigger, IconPickerContent as OxIconPickerContent, IconPickerItem as OxIconPickerItem, useIconPicker, DatePicker as OxDatePicker, DateRangePicker as OxDateRangePicker, DatePickerTrigger as OxDatePickerTrigger, DatePickerHeader as OxDatePickerHeader, DatePickerMonthSelect as OxDatePickerMonthSelect, DatePickerYearSelect as OxDatePickerYearSelect, SearchBar as OxSearchBar, searchBarVariants, SearchPanel as OxSearchPanel, SearchPanelInput as OxSearchPanelInput, SearchPanelList as OxSearchPanelList, SearchPanelGroup as OxSearchPanelGroup, SearchPanelItem as OxSearchPanelItem, SearchPanelEmpty as OxSearchPanelEmpty, Select as OxSelect, SelectTrigger as OxSelectTrigger, SelectContent as OxSelectContent, SelectItem as OxSelectItem, SelectGroup as OxSelectGroup, SelectSeparator as OxSelectSeparator, Textarea as OxTextarea, Switch as OxSwitch, Checkbox as OxCheckbox, RadioButton as OxRadioButton, RadioGroup as OxRadioGroup, ToggleGroup as OxToggleGroup, ToggleLabel as OxToggleLabel, ToggleDescription as OxToggleDescription, SWITCH_SIZES, type InputNumberProps, type InputPasswordProps, type InputPasswordContext, type InputOtpProps, type InputOtpSlotProps, type InputOtpContext, type CalendarProps, type CalendarRangeProps, type CalendarDateRange, type CalendarDayProps, type CalendarDayState, type CalendarDayVariants, type CalendarConstraints, type CalendarNav, type ComboboxProps, type ChatInputActionLabels, type ChatInputState, type ColorPickerProps, type ColorPickerContext, type IconPickerProps, type IconPickerContext, type DatePickerProps, type DateRangePickerProps, type DatePickerTriggerProps, type DatePickerHeaderProps, type DatePickerMonthSelectProps, type DatePickerYearSelectProps, type SearchBarVariants, type SelectProps, type TextareaCounterState, type RadioGroupProps, type ToggleGroupProps, type ToggleLabelProps, type ToggleDescriptionProps, } from './Forms/Inputs/index.ts';
71
+ export { AiSearch as OxAiSearch, AiSearchAsk as OxAiSearchAsk, AiSearchPanel as OxAiSearchPanel, AiSearchSend as OxAiSearchSend, AiSearchShortcut as OxAiSearchShortcut, AiSearchSuggestion as OxAiSearchSuggestion, } from './Forms/Inputs/AiSearch/index.ts';
72
+ export { InputGroup as OxInputGroup, InputText as OxInputText, InputNumber as OxInputNumber, InputNumberContent as OxInputNumberContent, InputNumberDecrement as OxInputNumberDecrement, InputNumberIncrement as OxInputNumberIncrement, InputNumberInput as OxInputNumberInput, InputPassword as OxInputPassword, InputPasswordInput as OxInputPasswordInput, InputPasswordToggle as OxInputPasswordToggle, useInputPassword, InputOtp as OxInputOtp, InputOtpGroup as OxInputOtpGroup, InputOtpSlot as OxInputOtpSlot, InputOtpSeparator as OxInputOtpSeparator, useInputOtp, Calendar as OxCalendar, CalendarRange as OxCalendarRange, CalendarDay as OxCalendarDay, calendarDayVariants, Combobox as OxCombobox, ComboboxCancel as OxComboboxCancel, ComboboxInput as OxComboboxInput, ComboboxChipsInput as OxComboboxChipsInput, ComboboxContent as OxComboboxContent, ComboboxItem as OxComboboxItem, ComboboxItemEdit as OxComboboxItemEdit, ComboboxEmpty as OxComboboxEmpty, ComboboxGroup as OxComboboxGroup, ComboboxSeparator as OxComboboxSeparator, ChatInput as OxChatInput, ColorPicker as OxColorPicker, ColorPickerTrigger as OxColorPickerTrigger, ColorPickerContent as OxColorPickerContent, ColorPickerSwatch as OxColorPickerSwatch, useColorPicker, IconPicker as OxIconPicker, IconPickerTrigger as OxIconPickerTrigger, IconPickerContent as OxIconPickerContent, IconPickerItem as OxIconPickerItem, useIconPicker, DatePicker as OxDatePicker, DateRangePicker as OxDateRangePicker, DatePickerTrigger as OxDatePickerTrigger, DatePickerHeader as OxDatePickerHeader, DatePickerMonthSelect as OxDatePickerMonthSelect, DatePickerYearSelect as OxDatePickerYearSelect, SearchBar as OxSearchBar, searchBarVariants, SearchPanel as OxSearchPanel, SearchPanelInput as OxSearchPanelInput, SearchPanelList as OxSearchPanelList, SearchPanelGroup as OxSearchPanelGroup, SearchPanelItem as OxSearchPanelItem, SearchPanelEmpty as OxSearchPanelEmpty, Select as OxSelect, SelectTrigger as OxSelectTrigger, SelectContent as OxSelectContent, SelectItem as OxSelectItem, SelectGroup as OxSelectGroup, SelectSeparator as OxSelectSeparator, TimePicker as OxTimePicker, TimePickerField as OxTimePickerField, TimePickerList as OxTimePickerList, TimePickerWheel as OxTimePickerWheel, TimePickerWheelColumn as OxTimePickerWheelColumn, Textarea as OxTextarea, Switch as OxSwitch, Checkbox as OxCheckbox, RadioButton as OxRadioButton, RadioGroup as OxRadioGroup, ToggleGroup as OxToggleGroup, ToggleLabel as OxToggleLabel, ToggleDescription as OxToggleDescription, SWITCH_SIZES, type InputNumberProps, type InputPasswordProps, type InputPasswordContext, type InputOtpProps, type InputOtpSlotProps, type InputOtpContext, type CalendarProps, type CalendarRangeProps, type CalendarDateRange, type CalendarDayProps, type CalendarDayState, type CalendarDayVariants, type CalendarConstraints, type CalendarNav, type ComboboxProps, type ChatInputActionLabels, type ChatInputState, type ColorPickerProps, type ColorPickerContext, type IconPickerProps, type IconPickerContext, type DatePickerProps, type DateRangePickerProps, type DatePickerTriggerProps, type DatePickerHeaderProps, type DatePickerMonthSelectProps, type DatePickerYearSelectProps, type SearchBarVariants, type SelectProps, type TimePickerProps, type TimeFormat, type TimePart, type TextareaCounterState, type RadioGroupProps, type ToggleGroupProps, type ToggleLabelProps, type ToggleDescriptionProps, } from './Forms/Inputs/index.ts';
63
73
  export { Table as OxTable, TableVirtualized as OxTableVirtualized, TableHead as OxTableHead, TableBody as OxTableBody, TableRow as OxTableRow, TableCell as OxTableCell, TableHeaderCell as OxTableHeaderCell, TableSelectCell as OxTableSelectCell, TableDragCell as OxTableDragCell, TableBulkHeader as OxTableBulkHeader, TablePagination as OxTablePagination, TableEmpty as OxTableEmpty, TableRowExpanded as OxTableRowExpanded, TableExpandCell as OxTableExpandCell, TableColumnVisibility as OxTableColumnVisibility, useTable, useTableSelection, useTableSorting, useTablePagination, useTableDetailRow, useTablePinning, useTableColumns, useScrollShadow, useDragToScroll, useFixedColumns, useTableVirtual, } from './Data/Table/index.ts';
64
74
  export type { UseTableOptions, UseTableReturn, UseTableSelectionReturn, UseTableSortingReturn, UseTablePaginationOptions, UseTablePaginationReturn, DetailRowInstance, DetailRowOptions, DetailRowPluginDef, UseTablePinningOptions, UseTablePinningReturn, CellInfo, HeaderInfo, UseTableVirtualOptions, UseTableVirtualReturn, UseTableColumnsOptions, UseTableColumnsReturn, UseScrollShadowOptions, UseScrollShadowReturn, UseDragToScrollOptions, UseDragToScrollReturn, UseFixedColumnsOptions, TableProps, TableMode, ColumnDef, ColumnAlign, CellContext, SortingState, PaginationState, PaginationChangePayload, SortingChangePayload, SelectionChangePayload, FilterChangePayload, ColumnResizeMode, ColumnVisibilityState, ColumnOrderState, ExpandedState, ColumnVisibilityChangePayload, ColumnOrderChangePayload, RowExpandChangePayload, ColumnResizePayload, ColumnPinningState, } from './Data/Table/index.ts';