@l3mpire/ui 2.26.3 → 3.2.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.
package/USAGE.md CHANGED
@@ -210,12 +210,16 @@ import { faStarOutline } from "@l3mpire/icons";
210
210
  <Badge variant="solid" type="primary">New</Badge>
211
211
  <Badge variant="light" type="success" size="sm">Active</Badge>
212
212
  <Badge variant="outlined" type="critical" icon={faStarOutline}>99</Badge>
213
+
214
+ // Categorical tone — overrides variant/type
215
+ <Badge tone="indigo">SaaS</Badge>
213
216
  ```
214
217
 
215
218
  | Prop | Values |
216
219
  |---|---|
217
220
  | `variant` | `"solid"`, `"light"`, `"outlined"` |
218
221
  | `type` | `"primary"`, `"success"`, `"critical"`, `"warning"`, `"neutral"` |
222
+ | `tone` | `"indigo"`, `"rose"`, `"lime"`, `"violet"`, `"cyan"`, `"orange"`, `"emerald"`, `"fuchsia"`, `"amber"`, `"slate"` — categorical palette; overrides `variant`/`type` |
219
223
  | `size` | `"sm"`, `"md"`, `"lg"` |
220
224
  | `icon` | `IconDefinition` (optional) |
221
225
 
@@ -231,11 +235,15 @@ import { faPaperPlaneOutline } from "@l3mpire/icons";
231
235
  <Tag variant="neutral" icon={faPaperPlaneOutline} onClose={() => {}}>
232
236
  Campaign
233
237
  </Tag>
238
+
239
+ // Categorical tone — overrides variant
240
+ <Tag tone="emerald">Finance</Tag>
234
241
  ```
235
242
 
236
243
  | Prop | Values |
237
244
  |---|---|
238
245
  | `variant` | `"brand"`, `"neutral"` |
246
+ | `tone` | `"indigo"`, `"rose"`, `"lime"`, `"violet"`, `"cyan"`, `"orange"`, `"emerald"`, `"fuchsia"`, `"amber"`, `"slate"` — categorical palette; overrides `variant` |
239
247
  | `size` | `"sm"`, `"md"` |
240
248
  | `icon` | `IconDefinition` |
241
249
  | `onClose` | `() => void` (shows remove button when provided) |
@@ -315,11 +323,12 @@ const [values, setValues] = useState<string[]>([]);
315
323
  | `label` | `string` |
316
324
  | `error` | `boolean` |
317
325
  | `errorMessage` | `string` |
326
+ | `success` | `boolean` |
318
327
  | `disabled` | `boolean` |
319
328
  | `iconLeft` | `IconDefinition` |
320
329
  | `max` | `number` (max chips, 0 = unlimited) |
321
330
 
322
- Type a value and press Enter to create a chip. Backspace on empty input removes the last chip. Duplicate values are ignored.
331
+ Type a value and press Enter to create a chip. Backspace on empty input removes the last chip. Duplicate values are ignored. Each chip truncates at ~150px; when truncated, hovering shows the full value in a tooltip (auto-detected via `TruncatedText`).
323
332
 
324
333
  ---
325
334
 
@@ -545,7 +554,7 @@ import { Select } from "@l3mpire/ui";
545
554
  | `error` | `boolean` |
546
555
  | `errorMessage` | `string` |
547
556
  | `icon` | `IconDefinition` |
548
- | `tags` | `string[]` (shows selected values as chips with overflow +X) |
557
+ | `tags` | `string[]` (shows selected values as chips with overflow +X; chips truncate at ~100px and show the full tag in a tooltip on hover when clipped) |
549
558
  | `onTagRemove` | `(tag: string) => void` (remove chip callback) |
550
559
  | `multiCount` | `number` (shows "+N others" text, non-tags mode) |
551
560
  | `isOpen` | `boolean` (controlled) |
@@ -625,6 +634,79 @@ import { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from "@l3mpi
625
634
 
626
635
  ---
627
636
 
637
+ ### TruncatedText
638
+
639
+ A `<span>` that truncates with ellipsis and **auto-shows a tooltip with the full content on hover when actually clipped** (detected via `scrollWidth > clientWidth`, re-checked on resize). When the text fits, no tooltip is mounted.
640
+
641
+ ```tsx
642
+ import { TruncatedText } from "@l3mpire/ui";
643
+
644
+ <TruncatedText className="max-w-[150px] text-sm">
645
+ A very long string that probably won't fit
646
+ </TruncatedText>
647
+
648
+ {/* Custom tooltip body (display vs. tooltip differ) */}
649
+ <TruncatedText
650
+ className="max-w-[200px]"
651
+ tooltip={<span>+33 6 12 34 56 78</span>}
652
+ >
653
+ +33 6 12 34 56 78
654
+ </TruncatedText>
655
+ ```
656
+
657
+ | Prop | Values |
658
+ |---|---|
659
+ | `children` | `string` (the displayed text; also the default tooltip body) |
660
+ | `tooltip` | `React.ReactNode` (override the tooltip body) |
661
+ | `delayDuration` | `number` (ms, default 300) |
662
+ | `className` | `string` — must include a width constraint (`max-w-*` or a constrained flex parent), otherwise nothing is clipped and no tooltip appears |
663
+
664
+ Already wired into `ChipInput` chips, `Select` multi-value chips, and `FilterChipSegment` labels — use this directly when you need the same behavior elsewhere (e.g. a table cell, a sidebar label).
665
+
666
+ ---
667
+
668
+ ### EmojiPicker
669
+
670
+ Emoji picker built on top of [emoji-mart](https://github.com/missive/emoji-mart) with lemDS theming and dark-mode auto-detection. Ships as two exports:
671
+
672
+ ```tsx
673
+ import { EmojiPickerPopover, EmojiPicker, type EmojiSelection } from "@l3mpire/ui";
674
+
675
+ {/* Common usage — ghost icon-only button trigger */}
676
+ <EmojiPickerPopover onSelect={(e: EmojiSelection) => insert(e.native)} />
677
+
678
+ {/* Custom trigger */}
679
+ <EmojiPickerPopover onSelect={handleSelect}>
680
+ <Button appearance="outlined" intent="brand">Add emoji</Button>
681
+ </EmojiPickerPopover>
682
+
683
+ {/* Inline picker */}
684
+ <EmojiPicker onSelect={handleSelect} locale="fr" previewPosition="none" perLine={8} />
685
+ ```
686
+
687
+ | Prop (shared) | Values |
688
+ |---|---|
689
+ | `onSelect` | `(emoji: EmojiSelection) => void` — `{ id, name, native, unified, keywords, shortcodes, skin? }` |
690
+ | `locale` | `"en"` \| `"fr"` (default `"en"`) — translates search/categories/skin-tone labels |
691
+ | `theme` | `"light"` \| `"dark"` \| `"auto"` — defaults to auto-detect via `data-theme="dark"` on `<html>` |
692
+ | `skin` | `1`–`6` (skin tone) |
693
+ | `previewPosition` | `"top"` \| `"bottom"` \| `"none"` |
694
+ | `skinTonePosition` | `"preview"` \| `"search"` \| `"none"` |
695
+ | `searchPosition` | `"sticky"` \| `"static"` \| `"none"` |
696
+ | `navPosition` | `"top"` \| `"bottom"` \| `"none"` |
697
+ | `perLine` | `number` (per-row emoji count) |
698
+
699
+ | `EmojiPickerPopover` only | Values |
700
+ |---|---|
701
+ | `children` | `ReactNode` — custom trigger (defaults to ghost icon Button with face-smile icon) |
702
+ | `open` / `onOpenChange` | controlled popover state |
703
+ | `side` / `align` / `sideOffset` | Radix Popover placement |
704
+ | `triggerAriaLabel` | `string` — for the default trigger only |
705
+
706
+ emoji-mart's data bundle (~150 KB gz) is **dynamically imported** the first time a picker mounts; it's cached for subsequent mounts. The picker re-themes automatically when `data-theme` changes on `<html>`.
707
+
708
+ ---
709
+
628
710
  ### Toast
629
711
 
630
712
  ```tsx
@@ -1011,7 +1093,15 @@ import {
1011
1093
  filterState={filterState}
1012
1094
  onFilterStateChange={setFilterState}
1013
1095
  sortFields={SORT_FIELDS}
1014
- actions={<SaveViewButton />}
1096
+ // Row 1 (always): page-level actions
1097
+ actions={<Button appearance="solid" intent="brand">Start tasks</Button>}
1098
+ // Row 2 (while editing filters): view-related actions
1099
+ filterActions={
1100
+ <>
1101
+ <Button appearance="ghost" intent="brand">Discard changes</Button>
1102
+ <SaveViewButton />
1103
+ </>
1104
+ }
1015
1105
  >
1016
1106
  <SearchBar size="sm" className="w-[200px]" />
1017
1107
  </FilterSystem>
@@ -1044,7 +1134,7 @@ import {
1044
1134
  | `AdvancedRow` | Single condition row (property + operator + type-aware value popover + actions) |
1045
1135
  | `AdvancedGroup` | Nested group container with shared connector and inline property selector |
1046
1136
  | `FilterNodeActions` | Kebab menu shared by rows and groups (Duplicate / Turn into group↔filter / Delete) |
1047
- | `SaveViewButton` | Split button (Save view + dropdown chevron) |
1137
+ | `SaveViewButton` | Outlined split button (Save view + dropdown chevron for Save for me / everyone). Goes in the Row 2 `filterActions` slot. |
1048
1138
  | `SummaryChip` | Minimal mode: "Filters (N)" with interactive popover |
1049
1139
 
1050
1140
  **Responsive:** FilterSystem auto-detects container width via `ResizeObserver`:
@@ -1052,7 +1142,7 @@ import {
1052
1142
  - **Minimal** (≤breakpoint): SummaryChip "Filters (N)" with interactive popover, icon-only Sort/Filter buttons
1053
1143
  - The breakpoint is configurable via the `breakpoint` prop on `FilterSystem` (default: `600`).
1054
1144
 
1055
- **Built-in Clear:** appears inline after the last filter chip ("Clear" text in default, × icon in minimal). Separate from "Discard changes" which goes in `actions` (right side) to revert a saved view.
1145
+ **Built-in Clear:** appears inline after the last filter chip ("Clear" text in default, × icon in minimal). Separate from "Discard changes", which goes in the Row 2 `filterActions` slot (far right, next to `SaveViewButton`) to revert a saved view's unsaved edits. Page-level actions (Create / Import / Start tasks) belong in the Row 1 `actions` slot and stay visible at all times — `SaveViewButton` should **not** be placed there.
1056
1146
 
1057
1147
  **And/Or toggle:** each row in the advanced popover has an independent And/Or toggle button. The choice is **persisted on each `FilterCondition` as `logicOperator: "and" | "or"`** (defaults to `"and"` when undefined), so it survives remounts and can be serialized.
1058
1148
 
package/dist/index.d.mts CHANGED
@@ -114,6 +114,67 @@ interface TruncatedTextProps extends Omit<React.HTMLAttributes<HTMLSpanElement>,
114
114
  }
115
115
  declare const TruncatedText: React.ForwardRefExoticComponent<TruncatedTextProps & React.RefAttributes<HTMLSpanElement>>;
116
116
 
117
+ interface EmojiSelection {
118
+ id: string;
119
+ name: string;
120
+ native: string;
121
+ unified: string;
122
+ keywords: string[];
123
+ shortcodes: string;
124
+ skin?: number;
125
+ }
126
+ type EmojiPickerLocale = "en" | "fr";
127
+ interface CommonEmojiPickerProps {
128
+ /** Called with the selected emoji. */
129
+ onSelect: (emoji: EmojiSelection) => void;
130
+ /** Picker locale (defaults to `"en"`). */
131
+ locale?: EmojiPickerLocale;
132
+ /**
133
+ * Auto-tracks `data-theme="dark"` on `<html>` by default. Pass an explicit
134
+ * `"light"` or `"dark"` to override.
135
+ */
136
+ theme?: "light" | "dark" | "auto";
137
+ /** Pre-selected skin tone (1–6). */
138
+ skin?: 1 | 2 | 3 | 4 | 5 | 6;
139
+ /** Hide the search bar. */
140
+ searchPosition?: "sticky" | "static" | "none";
141
+ /** Hide the skin-tone selector button. */
142
+ skinTonePosition?: "preview" | "search" | "none";
143
+ /** Hide the bottom preview bar. */
144
+ previewPosition?: "top" | "bottom" | "none";
145
+ /** Hide the category navigation row. */
146
+ navPosition?: "top" | "bottom" | "none";
147
+ /** Per-row emoji count (default emoji-mart value: 9). */
148
+ perLine?: number;
149
+ /** Maximum number of recent emojis kept by emoji-mart (localStorage). */
150
+ maxFrequentRows?: number;
151
+ }
152
+ interface EmojiPickerProps extends CommonEmojiPickerProps {
153
+ className?: string;
154
+ }
155
+ declare const EmojiPicker: React.ForwardRefExoticComponent<EmojiPickerProps & React.RefAttributes<HTMLDivElement>>;
156
+ interface EmojiPickerPopoverProps extends CommonEmojiPickerProps {
157
+ /**
158
+ * Custom trigger element. Provide via `children` together with `asChild`-style
159
+ * composition (Radix passes the trigger props down). When omitted, a default
160
+ * ghost icon-only Button with the face-smile icon is rendered.
161
+ */
162
+ children?: React.ReactNode;
163
+ /** Controlled open state. */
164
+ open?: boolean;
165
+ /** Open-state change handler. */
166
+ onOpenChange?: (open: boolean) => void;
167
+ /** Popover side (default `"bottom"`). */
168
+ side?: "top" | "right" | "bottom" | "left";
169
+ /** Popover alignment (default `"start"`). */
170
+ align?: "start" | "center" | "end";
171
+ /** Distance from the trigger in px (default 6). */
172
+ sideOffset?: number;
173
+ /** `aria-label` for the default trigger (ignored when `children` is set). */
174
+ triggerAriaLabel?: string;
175
+ }
176
+ declare const EmojiPickerPopover: React.ForwardRefExoticComponent<EmojiPickerPopoverProps & React.RefAttributes<HTMLButtonElement>>;
177
+
117
178
  declare const linkVariants: (props?: ({
118
179
  intent?: "success" | "warning" | "neutral" | "alert" | "brand" | null | undefined;
119
180
  size?: "sm" | "md" | null | undefined;
@@ -200,6 +261,7 @@ declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAtt
200
261
  declare const badgeVariants: (props?: ({
201
262
  variant?: "solid" | "light" | "outlined" | null | undefined;
202
263
  type?: "primary" | "success" | "critical" | "warning" | "neutral" | null | undefined;
264
+ tone?: "indigo" | "rose" | "lime" | "violet" | "cyan" | "orange" | "emerald" | "fuchsia" | "amber" | "slate" | null | undefined;
203
265
  size?: "sm" | "md" | "lg" | null | undefined;
204
266
  } & class_variance_authority_types.ClassProp) | undefined) => string;
205
267
  interface BadgeProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "type">, VariantProps<typeof badgeVariants> {
@@ -351,6 +413,7 @@ declare const TabContent: React.ForwardRefExoticComponent<TabContentProps & Reac
351
413
 
352
414
  declare const tagVariants: (props?: ({
353
415
  variant?: "neutral" | "brand" | null | undefined;
416
+ tone?: "indigo" | "rose" | "lime" | "violet" | "cyan" | "orange" | "emerald" | "fuchsia" | "amber" | "slate" | null | undefined;
354
417
  size?: "sm" | "md" | null | undefined;
355
418
  } & class_variance_authority_types.ClassProp) | undefined) => string;
356
419
  interface TagProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "type">, VariantProps<typeof tagVariants> {
@@ -950,9 +1013,9 @@ interface SaveViewButtonProps extends React.HTMLAttributes<HTMLDivElement> {
950
1013
  onDropdown?: () => void;
951
1014
  }
952
1015
  /**
953
- * Split button for saving filtered views.
954
- * Left side: "Save view" (solid brand, rounded-left).
955
- * Right side: chevron-down (solid brand, rounded-right).
1016
+ * Split button for saving filtered views (outlined, neutral).
1017
+ * Left side: "Save view" (rounded-left).
1018
+ * Right side: chevron-down dropdown (e.g. Save for me / Save for everyone).
956
1019
  */
957
1020
  declare const SaveViewButton: React.ForwardRefExoticComponent<SaveViewButtonProps & React.RefAttributes<HTMLDivElement>>;
958
1021
 
@@ -1183,4 +1246,4 @@ declare const DatePickerTrigger: React.ForwardRefExoticComponent<PopoverPrimitiv
1183
1246
  declare const DatePickerPopover: React.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
1184
1247
  declare function getDefaultSuggestions(referenceDate?: Date): DatePickerSuggestion[];
1185
1248
 
1186
- export { AdvancedChip, type AdvancedChipProps, AdvancedPopover, type AdvancedPopoverProps, AdvancedRow, type AdvancedRowProps, Avatar, AvatarCell, type AvatarCellProps, type AvatarProps, Badge, type BadgeProps, type BooleanOperator, BrowserTab, BrowserTabItem, type BrowserTabItemProps, type BrowserTabProps, BulkAction, type BulkActionItem, type BulkActionProps, Button, ButtonCell, type ButtonCellProps, type ButtonProps, Checkbox, type CheckboxProps, ChipInput, type ChipInputProps, DEFAULT_OPERATOR_BY_TYPE, DataTable, DataTablePagination, type DataTablePaginationProps, type DataTableProps, DataTableSettingsModal, type DataTableSettingsModalProps, type DataType, DateCell, type DateCellProps, type DateOperator, DatePicker, DatePickerCalendar, type DatePickerCalendarProps, DatePickerFooter, type DatePickerFooterProps, type DatePickerMode, DatePickerPanel, type DatePickerPanelProps, DatePickerPopover, type DatePickerProps, DatePickerRoot, DatePickerSelects, type DatePickerSelectsProps, type DatePickerSuggestion, DatePickerSuggestions, type DatePickerSuggestionsProps, DatePickerTrigger, type DateRange, Dialog, type DialogProps, DropdownMenu, DropdownMenuClear, type DropdownMenuClearProps, DropdownMenuContent, DropdownMenuHeading, type DropdownMenuHeadingProps, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuList, type DropdownMenuListProps, type DropdownMenuProps, DropdownMenuRadixItem, type DropdownMenuRadixItemProps, DropdownMenuRoot, DropdownMenuTrigger, EditableCell, type EditableCellProps, EmailCell, type EmailCellProps, EmptyState, type EmptyStateProps, type EnumOperator, FilterBar, FilterBarButton, type FilterBarButtonProps, FilterBarLeft, type FilterBarLeftProps, type FilterBarMode, type FilterBarProps, FilterBarRight, type FilterBarRightProps, FilterChip, type FilterChipProps, FilterChipSegment, type FilterChipSegmentProps, type FilterCondition, FilterEditor, type FilterEditorProps, type FilterOperator, type FilterState, FilterSystem, type FilterSystemProps, type FilterValue, InfoMessage, type InfoMessageProps, InputLabel, type InputLabelProps, InteractiveFilterChip, type InteractiveFilterChipProps, KebabMenu, type KebabMenuProps, Link, LinkCell, type LinkCellProps, type LinkProps, Modal, ModalBody, ModalClose, ModalContent, type ModalContentProps, ModalDescription, ModalFooter, type ModalFooterProps, ModalHeader, type ModalHeaderProps, ModalOverlay, ModalTitle, ModalTrigger, NumberCell, type NumberCellProps, NumberInput, type NumberInputProps, type NumberOperator, OPERATORS_BY_TYPE, OperatorList, type OperatorListProps, OperatorSelector, type OperatorSelectorProps, type OperatorType, type Product, ProductLogo, type ProductLogoProps, type PropertyDefinition, PropertySelector, type PropertySelectorProps, RadioCard, RadioCardGroup, type RadioCardGroupProps, type RadioCardProps, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, type RelationOperator, RowActions, type RowActionsProps, SaveViewButton, type SaveViewButtonProps, SearchBar, type SearchBarProps, Select, type SelectProps, SidePanel, SidePanelClose, SidePanelContent, type SidePanelContentProps, SidePanelTrigger, Sidebar, SidebarFooter, type SidebarFooterProps, SidebarHeader, SidebarHeadingItem, type SidebarHeadingItemProps, SidebarItem, type SidebarItemProps, type SidebarProps, SidebarSection, type SidebarSectionProps, SortButton, type SortButtonProps, type SortField, StatusCell, type StatusCellProps, SummaryChip, type SummaryChipProps, Switch, SwitchCard, type SwitchCardProps, type SwitchProps, TabContent, type TabContentProps, TabList, type TabListProps, TabTrigger, type TabTriggerProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, type TabsProps, Tag, type TagProps, type TagsOperator, TextArea, type TextAreaProps, TextCell, type TextCellProps, TextInput, type TextInputProps, type TextOperator, Toast, type ToastProps, ToastProvider, ToastViewport, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, TooltipTrigger, TruncatedText, type TruncatedTextProps, Typography, type TypographyProps, UserMenu, UserMenuInfoRow, type UserMenuInfoRowProps, type UserMenuProps, UserMenuSection, type UserMenuSectionProps, ValueInput, type ValueInputProps, avatarVariants, badgeVariants, buttonVariants, chipInputVariants, cn, createFilterWithDefaults, emptyStateVariants, filterChipSegmentVariants, getDefaultOperator, getDefaultSuggestions, getValueInputType, infoMessageVariants, isNoValueOperator, linkVariants, modalVariants, productLogoVariants, searchBarVariants, selectVariants, sidebarItemVariants, tagVariants, textInputVariants, toastVariants, tooltipContentVariants, typographyVariants, useFilterBarMode, useSidebarContext };
1249
+ export { AdvancedChip, type AdvancedChipProps, AdvancedPopover, type AdvancedPopoverProps, AdvancedRow, type AdvancedRowProps, Avatar, AvatarCell, type AvatarCellProps, type AvatarProps, Badge, type BadgeProps, type BooleanOperator, BrowserTab, BrowserTabItem, type BrowserTabItemProps, type BrowserTabProps, BulkAction, type BulkActionItem, type BulkActionProps, Button, ButtonCell, type ButtonCellProps, type ButtonProps, Checkbox, type CheckboxProps, ChipInput, type ChipInputProps, DEFAULT_OPERATOR_BY_TYPE, DataTable, DataTablePagination, type DataTablePaginationProps, type DataTableProps, DataTableSettingsModal, type DataTableSettingsModalProps, type DataType, DateCell, type DateCellProps, type DateOperator, DatePicker, DatePickerCalendar, type DatePickerCalendarProps, DatePickerFooter, type DatePickerFooterProps, type DatePickerMode, DatePickerPanel, type DatePickerPanelProps, DatePickerPopover, type DatePickerProps, DatePickerRoot, DatePickerSelects, type DatePickerSelectsProps, type DatePickerSuggestion, DatePickerSuggestions, type DatePickerSuggestionsProps, DatePickerTrigger, type DateRange, Dialog, type DialogProps, DropdownMenu, DropdownMenuClear, type DropdownMenuClearProps, DropdownMenuContent, DropdownMenuHeading, type DropdownMenuHeadingProps, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuList, type DropdownMenuListProps, type DropdownMenuProps, DropdownMenuRadixItem, type DropdownMenuRadixItemProps, DropdownMenuRoot, DropdownMenuTrigger, EditableCell, type EditableCellProps, EmailCell, type EmailCellProps, EmojiPicker, type EmojiPickerLocale, EmojiPickerPopover, type EmojiPickerPopoverProps, type EmojiPickerProps, type EmojiSelection, EmptyState, type EmptyStateProps, type EnumOperator, FilterBar, FilterBarButton, type FilterBarButtonProps, FilterBarLeft, type FilterBarLeftProps, type FilterBarMode, type FilterBarProps, FilterBarRight, type FilterBarRightProps, FilterChip, type FilterChipProps, FilterChipSegment, type FilterChipSegmentProps, type FilterCondition, FilterEditor, type FilterEditorProps, type FilterOperator, type FilterState, FilterSystem, type FilterSystemProps, type FilterValue, InfoMessage, type InfoMessageProps, InputLabel, type InputLabelProps, InteractiveFilterChip, type InteractiveFilterChipProps, KebabMenu, type KebabMenuProps, Link, LinkCell, type LinkCellProps, type LinkProps, Modal, ModalBody, ModalClose, ModalContent, type ModalContentProps, ModalDescription, ModalFooter, type ModalFooterProps, ModalHeader, type ModalHeaderProps, ModalOverlay, ModalTitle, ModalTrigger, NumberCell, type NumberCellProps, NumberInput, type NumberInputProps, type NumberOperator, OPERATORS_BY_TYPE, OperatorList, type OperatorListProps, OperatorSelector, type OperatorSelectorProps, type OperatorType, type Product, ProductLogo, type ProductLogoProps, type PropertyDefinition, PropertySelector, type PropertySelectorProps, RadioCard, RadioCardGroup, type RadioCardGroupProps, type RadioCardProps, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, type RelationOperator, RowActions, type RowActionsProps, SaveViewButton, type SaveViewButtonProps, SearchBar, type SearchBarProps, Select, type SelectProps, SidePanel, SidePanelClose, SidePanelContent, type SidePanelContentProps, SidePanelTrigger, Sidebar, SidebarFooter, type SidebarFooterProps, SidebarHeader, SidebarHeadingItem, type SidebarHeadingItemProps, SidebarItem, type SidebarItemProps, type SidebarProps, SidebarSection, type SidebarSectionProps, SortButton, type SortButtonProps, type SortField, StatusCell, type StatusCellProps, SummaryChip, type SummaryChipProps, Switch, SwitchCard, type SwitchCardProps, type SwitchProps, TabContent, type TabContentProps, TabList, type TabListProps, TabTrigger, type TabTriggerProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, type TabsProps, Tag, type TagProps, type TagsOperator, TextArea, type TextAreaProps, TextCell, type TextCellProps, TextInput, type TextInputProps, type TextOperator, Toast, type ToastProps, ToastProvider, ToastViewport, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, TooltipTrigger, TruncatedText, type TruncatedTextProps, Typography, type TypographyProps, UserMenu, UserMenuInfoRow, type UserMenuInfoRowProps, type UserMenuProps, UserMenuSection, type UserMenuSectionProps, ValueInput, type ValueInputProps, avatarVariants, badgeVariants, buttonVariants, chipInputVariants, cn, createFilterWithDefaults, emptyStateVariants, filterChipSegmentVariants, getDefaultOperator, getDefaultSuggestions, getValueInputType, infoMessageVariants, isNoValueOperator, linkVariants, modalVariants, productLogoVariants, searchBarVariants, selectVariants, sidebarItemVariants, tagVariants, textInputVariants, toastVariants, tooltipContentVariants, typographyVariants, useFilterBarMode, useSidebarContext };
package/dist/index.d.ts CHANGED
@@ -114,6 +114,67 @@ interface TruncatedTextProps extends Omit<React.HTMLAttributes<HTMLSpanElement>,
114
114
  }
115
115
  declare const TruncatedText: React.ForwardRefExoticComponent<TruncatedTextProps & React.RefAttributes<HTMLSpanElement>>;
116
116
 
117
+ interface EmojiSelection {
118
+ id: string;
119
+ name: string;
120
+ native: string;
121
+ unified: string;
122
+ keywords: string[];
123
+ shortcodes: string;
124
+ skin?: number;
125
+ }
126
+ type EmojiPickerLocale = "en" | "fr";
127
+ interface CommonEmojiPickerProps {
128
+ /** Called with the selected emoji. */
129
+ onSelect: (emoji: EmojiSelection) => void;
130
+ /** Picker locale (defaults to `"en"`). */
131
+ locale?: EmojiPickerLocale;
132
+ /**
133
+ * Auto-tracks `data-theme="dark"` on `<html>` by default. Pass an explicit
134
+ * `"light"` or `"dark"` to override.
135
+ */
136
+ theme?: "light" | "dark" | "auto";
137
+ /** Pre-selected skin tone (1–6). */
138
+ skin?: 1 | 2 | 3 | 4 | 5 | 6;
139
+ /** Hide the search bar. */
140
+ searchPosition?: "sticky" | "static" | "none";
141
+ /** Hide the skin-tone selector button. */
142
+ skinTonePosition?: "preview" | "search" | "none";
143
+ /** Hide the bottom preview bar. */
144
+ previewPosition?: "top" | "bottom" | "none";
145
+ /** Hide the category navigation row. */
146
+ navPosition?: "top" | "bottom" | "none";
147
+ /** Per-row emoji count (default emoji-mart value: 9). */
148
+ perLine?: number;
149
+ /** Maximum number of recent emojis kept by emoji-mart (localStorage). */
150
+ maxFrequentRows?: number;
151
+ }
152
+ interface EmojiPickerProps extends CommonEmojiPickerProps {
153
+ className?: string;
154
+ }
155
+ declare const EmojiPicker: React.ForwardRefExoticComponent<EmojiPickerProps & React.RefAttributes<HTMLDivElement>>;
156
+ interface EmojiPickerPopoverProps extends CommonEmojiPickerProps {
157
+ /**
158
+ * Custom trigger element. Provide via `children` together with `asChild`-style
159
+ * composition (Radix passes the trigger props down). When omitted, a default
160
+ * ghost icon-only Button with the face-smile icon is rendered.
161
+ */
162
+ children?: React.ReactNode;
163
+ /** Controlled open state. */
164
+ open?: boolean;
165
+ /** Open-state change handler. */
166
+ onOpenChange?: (open: boolean) => void;
167
+ /** Popover side (default `"bottom"`). */
168
+ side?: "top" | "right" | "bottom" | "left";
169
+ /** Popover alignment (default `"start"`). */
170
+ align?: "start" | "center" | "end";
171
+ /** Distance from the trigger in px (default 6). */
172
+ sideOffset?: number;
173
+ /** `aria-label` for the default trigger (ignored when `children` is set). */
174
+ triggerAriaLabel?: string;
175
+ }
176
+ declare const EmojiPickerPopover: React.ForwardRefExoticComponent<EmojiPickerPopoverProps & React.RefAttributes<HTMLButtonElement>>;
177
+
117
178
  declare const linkVariants: (props?: ({
118
179
  intent?: "success" | "warning" | "neutral" | "alert" | "brand" | null | undefined;
119
180
  size?: "sm" | "md" | null | undefined;
@@ -200,6 +261,7 @@ declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAtt
200
261
  declare const badgeVariants: (props?: ({
201
262
  variant?: "solid" | "light" | "outlined" | null | undefined;
202
263
  type?: "primary" | "success" | "critical" | "warning" | "neutral" | null | undefined;
264
+ tone?: "indigo" | "rose" | "lime" | "violet" | "cyan" | "orange" | "emerald" | "fuchsia" | "amber" | "slate" | null | undefined;
203
265
  size?: "sm" | "md" | "lg" | null | undefined;
204
266
  } & class_variance_authority_types.ClassProp) | undefined) => string;
205
267
  interface BadgeProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "type">, VariantProps<typeof badgeVariants> {
@@ -351,6 +413,7 @@ declare const TabContent: React.ForwardRefExoticComponent<TabContentProps & Reac
351
413
 
352
414
  declare const tagVariants: (props?: ({
353
415
  variant?: "neutral" | "brand" | null | undefined;
416
+ tone?: "indigo" | "rose" | "lime" | "violet" | "cyan" | "orange" | "emerald" | "fuchsia" | "amber" | "slate" | null | undefined;
354
417
  size?: "sm" | "md" | null | undefined;
355
418
  } & class_variance_authority_types.ClassProp) | undefined) => string;
356
419
  interface TagProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "type">, VariantProps<typeof tagVariants> {
@@ -950,9 +1013,9 @@ interface SaveViewButtonProps extends React.HTMLAttributes<HTMLDivElement> {
950
1013
  onDropdown?: () => void;
951
1014
  }
952
1015
  /**
953
- * Split button for saving filtered views.
954
- * Left side: "Save view" (solid brand, rounded-left).
955
- * Right side: chevron-down (solid brand, rounded-right).
1016
+ * Split button for saving filtered views (outlined, neutral).
1017
+ * Left side: "Save view" (rounded-left).
1018
+ * Right side: chevron-down dropdown (e.g. Save for me / Save for everyone).
956
1019
  */
957
1020
  declare const SaveViewButton: React.ForwardRefExoticComponent<SaveViewButtonProps & React.RefAttributes<HTMLDivElement>>;
958
1021
 
@@ -1183,4 +1246,4 @@ declare const DatePickerTrigger: React.ForwardRefExoticComponent<PopoverPrimitiv
1183
1246
  declare const DatePickerPopover: React.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
1184
1247
  declare function getDefaultSuggestions(referenceDate?: Date): DatePickerSuggestion[];
1185
1248
 
1186
- export { AdvancedChip, type AdvancedChipProps, AdvancedPopover, type AdvancedPopoverProps, AdvancedRow, type AdvancedRowProps, Avatar, AvatarCell, type AvatarCellProps, type AvatarProps, Badge, type BadgeProps, type BooleanOperator, BrowserTab, BrowserTabItem, type BrowserTabItemProps, type BrowserTabProps, BulkAction, type BulkActionItem, type BulkActionProps, Button, ButtonCell, type ButtonCellProps, type ButtonProps, Checkbox, type CheckboxProps, ChipInput, type ChipInputProps, DEFAULT_OPERATOR_BY_TYPE, DataTable, DataTablePagination, type DataTablePaginationProps, type DataTableProps, DataTableSettingsModal, type DataTableSettingsModalProps, type DataType, DateCell, type DateCellProps, type DateOperator, DatePicker, DatePickerCalendar, type DatePickerCalendarProps, DatePickerFooter, type DatePickerFooterProps, type DatePickerMode, DatePickerPanel, type DatePickerPanelProps, DatePickerPopover, type DatePickerProps, DatePickerRoot, DatePickerSelects, type DatePickerSelectsProps, type DatePickerSuggestion, DatePickerSuggestions, type DatePickerSuggestionsProps, DatePickerTrigger, type DateRange, Dialog, type DialogProps, DropdownMenu, DropdownMenuClear, type DropdownMenuClearProps, DropdownMenuContent, DropdownMenuHeading, type DropdownMenuHeadingProps, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuList, type DropdownMenuListProps, type DropdownMenuProps, DropdownMenuRadixItem, type DropdownMenuRadixItemProps, DropdownMenuRoot, DropdownMenuTrigger, EditableCell, type EditableCellProps, EmailCell, type EmailCellProps, EmptyState, type EmptyStateProps, type EnumOperator, FilterBar, FilterBarButton, type FilterBarButtonProps, FilterBarLeft, type FilterBarLeftProps, type FilterBarMode, type FilterBarProps, FilterBarRight, type FilterBarRightProps, FilterChip, type FilterChipProps, FilterChipSegment, type FilterChipSegmentProps, type FilterCondition, FilterEditor, type FilterEditorProps, type FilterOperator, type FilterState, FilterSystem, type FilterSystemProps, type FilterValue, InfoMessage, type InfoMessageProps, InputLabel, type InputLabelProps, InteractiveFilterChip, type InteractiveFilterChipProps, KebabMenu, type KebabMenuProps, Link, LinkCell, type LinkCellProps, type LinkProps, Modal, ModalBody, ModalClose, ModalContent, type ModalContentProps, ModalDescription, ModalFooter, type ModalFooterProps, ModalHeader, type ModalHeaderProps, ModalOverlay, ModalTitle, ModalTrigger, NumberCell, type NumberCellProps, NumberInput, type NumberInputProps, type NumberOperator, OPERATORS_BY_TYPE, OperatorList, type OperatorListProps, OperatorSelector, type OperatorSelectorProps, type OperatorType, type Product, ProductLogo, type ProductLogoProps, type PropertyDefinition, PropertySelector, type PropertySelectorProps, RadioCard, RadioCardGroup, type RadioCardGroupProps, type RadioCardProps, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, type RelationOperator, RowActions, type RowActionsProps, SaveViewButton, type SaveViewButtonProps, SearchBar, type SearchBarProps, Select, type SelectProps, SidePanel, SidePanelClose, SidePanelContent, type SidePanelContentProps, SidePanelTrigger, Sidebar, SidebarFooter, type SidebarFooterProps, SidebarHeader, SidebarHeadingItem, type SidebarHeadingItemProps, SidebarItem, type SidebarItemProps, type SidebarProps, SidebarSection, type SidebarSectionProps, SortButton, type SortButtonProps, type SortField, StatusCell, type StatusCellProps, SummaryChip, type SummaryChipProps, Switch, SwitchCard, type SwitchCardProps, type SwitchProps, TabContent, type TabContentProps, TabList, type TabListProps, TabTrigger, type TabTriggerProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, type TabsProps, Tag, type TagProps, type TagsOperator, TextArea, type TextAreaProps, TextCell, type TextCellProps, TextInput, type TextInputProps, type TextOperator, Toast, type ToastProps, ToastProvider, ToastViewport, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, TooltipTrigger, TruncatedText, type TruncatedTextProps, Typography, type TypographyProps, UserMenu, UserMenuInfoRow, type UserMenuInfoRowProps, type UserMenuProps, UserMenuSection, type UserMenuSectionProps, ValueInput, type ValueInputProps, avatarVariants, badgeVariants, buttonVariants, chipInputVariants, cn, createFilterWithDefaults, emptyStateVariants, filterChipSegmentVariants, getDefaultOperator, getDefaultSuggestions, getValueInputType, infoMessageVariants, isNoValueOperator, linkVariants, modalVariants, productLogoVariants, searchBarVariants, selectVariants, sidebarItemVariants, tagVariants, textInputVariants, toastVariants, tooltipContentVariants, typographyVariants, useFilterBarMode, useSidebarContext };
1249
+ export { AdvancedChip, type AdvancedChipProps, AdvancedPopover, type AdvancedPopoverProps, AdvancedRow, type AdvancedRowProps, Avatar, AvatarCell, type AvatarCellProps, type AvatarProps, Badge, type BadgeProps, type BooleanOperator, BrowserTab, BrowserTabItem, type BrowserTabItemProps, type BrowserTabProps, BulkAction, type BulkActionItem, type BulkActionProps, Button, ButtonCell, type ButtonCellProps, type ButtonProps, Checkbox, type CheckboxProps, ChipInput, type ChipInputProps, DEFAULT_OPERATOR_BY_TYPE, DataTable, DataTablePagination, type DataTablePaginationProps, type DataTableProps, DataTableSettingsModal, type DataTableSettingsModalProps, type DataType, DateCell, type DateCellProps, type DateOperator, DatePicker, DatePickerCalendar, type DatePickerCalendarProps, DatePickerFooter, type DatePickerFooterProps, type DatePickerMode, DatePickerPanel, type DatePickerPanelProps, DatePickerPopover, type DatePickerProps, DatePickerRoot, DatePickerSelects, type DatePickerSelectsProps, type DatePickerSuggestion, DatePickerSuggestions, type DatePickerSuggestionsProps, DatePickerTrigger, type DateRange, Dialog, type DialogProps, DropdownMenu, DropdownMenuClear, type DropdownMenuClearProps, DropdownMenuContent, DropdownMenuHeading, type DropdownMenuHeadingProps, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuList, type DropdownMenuListProps, type DropdownMenuProps, DropdownMenuRadixItem, type DropdownMenuRadixItemProps, DropdownMenuRoot, DropdownMenuTrigger, EditableCell, type EditableCellProps, EmailCell, type EmailCellProps, EmojiPicker, type EmojiPickerLocale, EmojiPickerPopover, type EmojiPickerPopoverProps, type EmojiPickerProps, type EmojiSelection, EmptyState, type EmptyStateProps, type EnumOperator, FilterBar, FilterBarButton, type FilterBarButtonProps, FilterBarLeft, type FilterBarLeftProps, type FilterBarMode, type FilterBarProps, FilterBarRight, type FilterBarRightProps, FilterChip, type FilterChipProps, FilterChipSegment, type FilterChipSegmentProps, type FilterCondition, FilterEditor, type FilterEditorProps, type FilterOperator, type FilterState, FilterSystem, type FilterSystemProps, type FilterValue, InfoMessage, type InfoMessageProps, InputLabel, type InputLabelProps, InteractiveFilterChip, type InteractiveFilterChipProps, KebabMenu, type KebabMenuProps, Link, LinkCell, type LinkCellProps, type LinkProps, Modal, ModalBody, ModalClose, ModalContent, type ModalContentProps, ModalDescription, ModalFooter, type ModalFooterProps, ModalHeader, type ModalHeaderProps, ModalOverlay, ModalTitle, ModalTrigger, NumberCell, type NumberCellProps, NumberInput, type NumberInputProps, type NumberOperator, OPERATORS_BY_TYPE, OperatorList, type OperatorListProps, OperatorSelector, type OperatorSelectorProps, type OperatorType, type Product, ProductLogo, type ProductLogoProps, type PropertyDefinition, PropertySelector, type PropertySelectorProps, RadioCard, RadioCardGroup, type RadioCardGroupProps, type RadioCardProps, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, type RelationOperator, RowActions, type RowActionsProps, SaveViewButton, type SaveViewButtonProps, SearchBar, type SearchBarProps, Select, type SelectProps, SidePanel, SidePanelClose, SidePanelContent, type SidePanelContentProps, SidePanelTrigger, Sidebar, SidebarFooter, type SidebarFooterProps, SidebarHeader, SidebarHeadingItem, type SidebarHeadingItemProps, SidebarItem, type SidebarItemProps, type SidebarProps, SidebarSection, type SidebarSectionProps, SortButton, type SortButtonProps, type SortField, StatusCell, type StatusCellProps, SummaryChip, type SummaryChipProps, Switch, SwitchCard, type SwitchCardProps, type SwitchProps, TabContent, type TabContentProps, TabList, type TabListProps, TabTrigger, type TabTriggerProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, type TabsProps, Tag, type TagProps, type TagsOperator, TextArea, type TextAreaProps, TextCell, type TextCellProps, TextInput, type TextInputProps, type TextOperator, Toast, type ToastProps, ToastProvider, ToastViewport, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, TooltipTrigger, TruncatedText, type TruncatedTextProps, Typography, type TypographyProps, UserMenu, UserMenuInfoRow, type UserMenuInfoRowProps, type UserMenuProps, UserMenuSection, type UserMenuSectionProps, ValueInput, type ValueInputProps, avatarVariants, badgeVariants, buttonVariants, chipInputVariants, cn, createFilterWithDefaults, emptyStateVariants, filterChipSegmentVariants, getDefaultOperator, getDefaultSuggestions, getValueInputType, infoMessageVariants, isNoValueOperator, linkVariants, modalVariants, productLogoVariants, searchBarVariants, selectVariants, sidebarItemVariants, tagVariants, textInputVariants, toastVariants, tooltipContentVariants, typographyVariants, useFilterBarMode, useSidebarContext };