@iris-ui-kit/react 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { ReadonlyStore, Store, MachineEvent, Machine, MachineState, Variant, Size, Placement, SpreadsheetXmlOptions } from '@iris-ui-kit/core';
2
- export { Align, DataSourceConfig, DataSourceController, DataSourceMode, DataSourceMutateOptions, DataSourceQuery, DataSourceState, DataViewColumn, FloatingEvent, FloatingMachine, FloatingState, GroupedViewConfig, GroupedViewState, GroupedViewStore, IrisHsva, PageItem as IrisPageItem, IrisRgba, Machine, MachineConfig, MachineEvent, MachineState, MutateOptions, NavNode, Placement, ResourceController, ResourceControllerConfig, ResourceQuery, ResourceState, RowMutateOptions, Side, Size, StateNode, Store, TabItem, TabsNav, TabsNavConfig, TabsNavState, Transition, Variant, addDays, addMonths, buildMonthMatrix, clamp01, clampDate, composeEventHandlers, createClientDataSource, createClientFetcher, createDataSource, createFloatingMachine, createGroupedView, createMachine, createResourceController, createStore, createTabsNav, endOfMonth, filterNavByAccess, findNavNode, findNavPath, firstLeaf, flattenNav, formatLocalISO, formatMonthYear, generateId, getPageRange, getWeekdayNames, hexToRgba, hsvToRgb, hsvaToRgba, isBranch, isClosable, isOutOfRange, isSameDay, isSameMonth, mergeProps, nodeAllowsRoles, rgbToHex, rgbToHsv, rgbaToHsva, startOfDay, startOfMonth, visibleNav } from '@iris-ui-kit/core';
1
+ import { ReadonlyStore, Store, MachineEvent, Machine, MachineState, RealtimeHandlers, RealtimeOptions, RealtimeStatus, DisposableScope, ResilientFetcherOptions, ResilientFetcher, Variant, Size, Placement, SpreadsheetXmlOptions } from '@iris-ui-kit/core';
2
+ export { AdminPreferences, AdminPreferencesState, Align, DataSourceConfig, DataSourceController, DataSourceMode, DataSourceMutateOptions, DataSourceQuery, DataSourceState, DataViewColumn, FloatingEvent, FloatingMachine, FloatingState, GroupedViewConfig, GroupedViewState, GroupedViewStore, IrisHsva, PageItem as IrisPageItem, IrisRgba, Machine, MachineConfig, MachineEvent, MachineState, MutateOptions, NavNode, Placement, ResourceController, ResourceControllerConfig, ResourceQuery, ResourceState, RowMutateOptions, Side, Size, StateNode, Store, TabItem, TabsNav, TabsNavConfig, TabsNavState, Transition, Variant, addDays, addMonths, buildMonthMatrix, clamp01, clampDate, composeEventHandlers, createAdminPreferences, createClientDataSource, createClientFetcher, createDataSource, createFloatingMachine, createGroupedView, createMachine, createResourceController, createStore, createTabsNav, endOfMonth, filterNavByAccess, findNavNode, findNavPath, firstLeaf, flattenNav, formatLocalISO, formatMonthYear, generateId, getPageRange, getWeekdayNames, hexToRgba, hsvToRgb, hsvaToRgba, isBranch, isClosable, isOutOfRange, isSameDay, isSameMonth, localStorageAdminPreferencesStorage, mergeProps, nodeAllowsRoles, rgbToHex, rgbToHsv, rgbaToHsva, startOfDay, startOfMonth, visibleNav } from '@iris-ui-kit/core';
3
3
  export { ThemeProvider, ThemeProviderProps, UseThemeReturn, useColorScheme, useDirection, useTheme, useThemeContext, useThemeOptional } from './theme.cjs';
4
4
  export { ApplySkinResult, LoadSkinOptions, ResolvedSkin, Skin, SkinBootScriptConfig, SkinCatalog, SkinCatalogConfig, SkinEngine, SkinEngineConfig, SkinError, SkinErrorCode, SkinLookup, SkinManifest, SkinManifestEntry, SkinMode, SkinPatch, SkinRegistry, SkinResolutionError, SkinStorage, SkinTokenOverrides, applySkin, builtinSkins, createSkinCatalog, createSkinEngine, createSkinRegistry, darkSkin, lightSkin, loadSkin, localStorageSkinStorage, memorySkinStorage, renderSkinStyle, resolveSkin, skinBootScript, skinError, skinToCssEntries, validateSkin } from '@iris-ui-kit/skins';
5
5
  export { SkinProvider, SkinProviderProps, UseSkinReturn, useSkin, useSkinContext, useSkinOptional } from './skins.cjs';
@@ -19,7 +19,7 @@ export { UndoStackReactiveState, useUndoStack } from './undo.cjs';
19
19
  export { UndoStack, UndoStackOptions, createUndoStack } from '@iris-ui-kit/core/undo';
20
20
  export { IrisContainer, IrisContainerMaxWidth, IrisContainerProps, IrisDashboardCard, IrisDashboardCardProps, IrisDashboardGrid, IrisDashboardGridProps, IrisGrid, IrisGridColumns, IrisGridProps, IrisHeaderLayout, IrisHeaderLayoutProps, IrisStack, IrisStackAlign, IrisStackDirection, IrisStackJustify, IrisStackProps } from './layouts.cjs';
21
21
  export { I as IrisSidebarLayout, a as IrisSidebarLayoutProps, b as IrisSidebarLayoutSidebarState } from './SidebarLayout-fWQRvK0a.cjs';
22
- export { IrisAdminBreadcrumb, IrisAdminBreadcrumbProps, IrisAdminLayout, IrisAdminLayoutMode, IrisAdminLayoutProps, IrisAdminTabs, IrisAdminTabsProps, IrisNavMenu, IrisNavMenuProps, UseAdminShellConfig, UseAdminShellReturn, UseTabsNavReturn, useAdminShell, useTabsNav } from './admin.cjs';
22
+ export { IrisAdminBreadcrumb, IrisAdminBreadcrumbProps, IrisAdminContentHeight, IrisAdminContentWidth, IrisAdminLayout, IrisAdminLayoutMode, IrisAdminLayoutProps, IrisAdminMenuAlign, IrisAdminTabs, IrisAdminTabsProps, IrisNavMenu, IrisNavMenuProps, UseAdminPreferencesReturn, UseAdminShellConfig, UseAdminShellReturn, UseTabsNavReturn, useAdminPreferences, useAdminShell, useTabsNav } from './admin.cjs';
23
23
  export { IrisDashboardCardSpec, IrisDashboardNavItem, IrisDashboardTemplate, IrisDashboardTemplateProps, IrisLoginSubmitPayload, IrisLoginTemplate, IrisLoginTemplateProps } from './skeletons.cjs';
24
24
  export { UseDismissOptions, UseFloatingOptions, UseFloatingReturn, useDismiss, useFloating } from './floating.cjs';
25
25
  export { UseFocusTrapOptions, __getBodyScrollLockCount, __resetBodyScrollLock, useBodyScrollLock, useFocusTrap } from './modal-utils.cjs';
@@ -55,6 +55,90 @@ declare function useStoreSelector<T, U>(store: Store<T>, selector: (state: T) =>
55
55
  */
56
56
  declare function useMachine<TState extends string, TContext, TEvent extends MachineEvent>(factory: () => Machine<TState, TContext, TEvent>): [MachineState<TState, TContext>, (event: TEvent) => void];
57
57
 
58
+ /**
59
+ * React bridge for `createReconnectingSource` — a realtime subscription with
60
+ * automatic exponential-backoff reconnection.
61
+ *
62
+ * Returns the current connection status and a `close()` function. The source
63
+ * is opened on mount and closed/cleaned up on unmount.
64
+ *
65
+ * @example
66
+ * ```tsx
67
+ * function StockTicker() {
68
+ * const [price, setPrice] = useState(0)
69
+ * const status = useReconnectingSource<{ price: number }>(
70
+ * (sink) => {
71
+ * const ws = new WebSocket('wss://api.example.com/stocks')
72
+ * ws.onmessage = (e) => sink.message(JSON.parse(e.data))
73
+ * ws.onopen = () => sink.open()
74
+ * ws.onclose = () => sink.close()
75
+ * return () => ws.close()
76
+ * },
77
+ * { onMessage: (t) => setPrice(t.price) },
78
+ * { backoffMs: 1000, maxBackoffMs: 30000 },
79
+ * )
80
+ * return <div>Price: ${price} ({status})</div>
81
+ * }
82
+ * ```
83
+ */
84
+ declare function useReconnectingSource<T>(connect: (sink: {
85
+ message: (data: T) => void;
86
+ open: () => void;
87
+ error: (err: unknown) => void;
88
+ close: () => void;
89
+ }) => () => void, handlers: Pick<RealtimeHandlers<T>, 'onMessage' | 'onOpen' | 'onError' | 'onClose'>, options?: RealtimeOptions): RealtimeStatus;
90
+
91
+ /**
92
+ * React bridge for `createDisposableScope` — creates a disposable scope that
93
+ * is automatically torn down when the component unmounts.
94
+ *
95
+ * Returns a stable `scope` ref that stays alive for the component's lifetime.
96
+ * Call `scope.current.add(teardown)` to register cleanup callbacks.
97
+ *
98
+ * @example
99
+ * ```tsx
100
+ * function MyComponent() {
101
+ * const scope = useDisposableScope()
102
+ *
103
+ * useEffect(() => {
104
+ * const timer = setInterval(() => {}, 1000)
105
+ * scope.current.addTimeout(timer)
106
+ * }, [])
107
+ *
108
+ * return <div>Auto-cleaned on unmount</div>
109
+ * }
110
+ * ```
111
+ */
112
+ declare function useDisposableScope(): {
113
+ readonly current: DisposableScope;
114
+ };
115
+
116
+ /**
117
+ * React hook for `createResilientFetcher` — a hardened async fetcher with
118
+ * cache dedup/TTL/SWR, circuit breaker, and optional rate limiting.
119
+ *
120
+ * The resilient fetcher is created once and lives for the component's lifetime.
121
+ * The cache is cleared on unmount.
122
+ *
123
+ * @example
124
+ * ```tsx
125
+ * function UserProfile({ userId }: { userId: string }) {
126
+ * const rf = useResilientFetcher<User>({ ttlMs: 30_000 })
127
+ * const [user, setUser] = useState<User | null>(null)
128
+ *
129
+ * useEffect(() => {
130
+ * rf.fetch(`user:${userId}`, async () => {
131
+ * const res = await fetch(`/api/users/${userId}`)
132
+ * return res.json()
133
+ * }).then(setUser)
134
+ * }, [userId])
135
+ *
136
+ * return <div>{user?.name}</div>
137
+ * }
138
+ * ```
139
+ */
140
+ declare function useResilientFetcher<T>(options?: ResilientFetcherOptions): ResilientFetcher<T>;
141
+
58
142
  type IrisButtonVariant = Variant;
59
143
  type IrisButtonSize = Size;
60
144
  type IrisButtonType = 'button' | 'submit' | 'reset';
@@ -73,18 +157,26 @@ interface IrisButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>,
73
157
  onClick?: MouseEventHandler<HTMLElement>;
74
158
  }
75
159
  /**
76
- * React port of `IrisButton`. Same prop contract as `@iris-ui-kit/vue`'s
77
- * version. **No business logic is duplicated** the `composeEventHandlers`
78
- * helper, variant token map, and singleton stylesheet are all from
79
- * `@iris-ui-kit/core` / a near-identical CSS file.
160
+ * Primary action button. Supports four variants (`solid`, `outline`, `ghost`,
161
+ * `link`) and three sizes (`sm`, `md`, `lg`). Each variant is styled via
162
+ * CSS custom properties (`var(--iris-primary)`, `var(--iris-border)` etc.)
163
+ * so the button automatically adapts to the active theme/skin.
164
+ *
165
+ * When `loading` is true a spinner replaces the leading icon and clicks are
166
+ * suppressed. Pass `asChild` to delegate rendering to a single child element
167
+ * (e.g. `<IrisButton asChild><a href="…">link</a></IrisButton>`).
168
+ *
169
+ * All unlisted HTML attributes (`aria-*`, `data-*`, `id`, etc.) are forwarded
170
+ * to the root `<button>` element via `{...rest}`.
171
+ *
172
+ * @example
173
+ * <IrisButton variant="solid" onClick={() => save()}>Save</IrisButton>
80
174
  *
81
- * Validates the React-readiness promise: any future primitive can be ported
82
- * by writing a thin .tsx wrapper around the same shared logic.
175
+ * @example
176
+ * <IrisButton variant="outline" size="sm" loading>Processing</IrisButton>
83
177
  *
84
178
  * @example
85
- * <IrisButton variant="solid" onClick={() => save()}>
86
- * Save
87
- * </IrisButton>
179
+ * <IrisButton asChild><a href="/dashboard">Dashboard</a></IrisButton>
88
180
  */
89
181
  declare function IrisButton({ variant, size, disabled, loading, type, asChild, leading, children, className, style, onClick, ...rest }: IrisButtonProps): react_jsx_runtime.JSX.Element | null;
90
182
 
@@ -431,7 +523,7 @@ interface IrisOtpInputProps {
431
523
  *
432
524
  * React port of {@link import('@iris-ui-kit/vue').IrisOtpInput}.
433
525
  */
434
- declare function IrisOtpInput({ value: valueProp, defaultValue, onValueChange, onComplete, length, type, mask, size, disabled, invalid, autoFocus, placeholder, id, ariaDescribedby, style, className, }: IrisOtpInputProps): React.ReactElement;
526
+ declare function IrisOtpInput({ value: valueProp, defaultValue, onValueChange, onComplete, length, type, mask, size, disabled, invalid, autoFocus, placeholder, id, ariaDescribedby, style, className, ...rest }: IrisOtpInputProps): React.ReactElement;
435
527
 
436
528
  type IrisRatingSize = 'sm' | 'md' | 'lg';
437
529
  interface IrisRatingProps {
@@ -468,7 +560,7 @@ interface IrisRatingProps {
468
560
  *
469
561
  * React port of {@link import('@iris-ui-kit/vue').IrisRating}.
470
562
  */
471
- declare function IrisRating({ value: valueProp, defaultValue, onValueChange, max, allowHalf, readonly, disabled, clearable, size, invalid, label, id, ariaDescribedby, style, className, }: IrisRatingProps): React.ReactElement;
563
+ declare function IrisRating({ value: valueProp, defaultValue, onValueChange, max, allowHalf, readonly, disabled, clearable, size, invalid, label, id, ariaDescribedby, style, className, ...rest }: IrisRatingProps): React.ReactElement;
472
564
 
473
565
  type IrisComboboxSize = 'sm' | 'md' | 'lg';
474
566
  interface IrisComboboxOption {
@@ -503,7 +595,7 @@ interface IrisComboboxProps {
503
595
  *
504
596
  * React port of {@link import('@iris-ui-kit/vue').IrisCombobox}.
505
597
  */
506
- declare function IrisCombobox({ value: valueProp, defaultValue, onValueChange, options, placeholder, disabled, invalid, size, emptyText, id, ariaDescribedby, style, className, }: IrisComboboxProps): React.ReactElement;
598
+ declare function IrisCombobox({ value: valueProp, defaultValue, onValueChange, options, placeholder, disabled, invalid, size, emptyText, id, ariaDescribedby, style, className, ...rest }: IrisComboboxProps): React.ReactElement;
507
599
 
508
600
  type IrisTimelineVariant = 'default' | 'success' | 'warning' | 'danger' | 'info';
509
601
  interface IrisTimelineItem {
@@ -533,7 +625,7 @@ interface IrisTimelineProps {
533
625
  *
534
626
  * React port of {@link import('@iris-ui-kit/vue').IrisTimeline}.
535
627
  */
536
- declare function IrisTimeline({ items, renderItem, style, className, }: IrisTimelineProps): React.ReactElement;
628
+ declare function IrisTimeline({ items, renderItem, style, className, ...rest }: IrisTimelineProps): React.ReactElement;
537
629
 
538
630
  interface IrisCarouselProps {
539
631
  /** Each child is a slide. */
@@ -565,7 +657,7 @@ interface IrisCarouselProps {
565
657
  *
566
658
  * React port of {@link import('@iris-ui-kit/vue').IrisCarousel}.
567
659
  */
568
- declare function IrisCarousel({ children, index: indexProp, defaultIndex, onIndexChange, loop, autoplay, interval, pauseOnHover, showArrows, showIndicators, ariaLabel, style, className, }: IrisCarouselProps): React.ReactElement;
660
+ declare function IrisCarousel({ children, index: indexProp, defaultIndex, onIndexChange, loop, autoplay, interval, pauseOnHover, showArrows, showIndicators, ariaLabel, style, className, ...rest }: IrisCarouselProps): React.ReactElement;
569
661
 
570
662
  type IrisStatisticSize = 'sm' | 'md' | 'lg';
571
663
  type IrisStatisticTrend = 'up' | 'down' | 'neutral';
@@ -593,7 +685,7 @@ interface IrisStatisticProps {
593
685
  *
594
686
  * React port of {@link import('@iris-ui-kit/vue').IrisStatistic}.
595
687
  */
596
- declare function IrisStatistic({ label, value, prefix, suffix, description, trend, trendValue, size, style, className, }: IrisStatisticProps): React.ReactElement;
688
+ declare function IrisStatistic({ label, value, prefix, suffix, description, trend, trendValue, size, style, className, ...rest }: IrisStatisticProps): React.ReactElement;
597
689
 
598
690
  type IrisDescriptionsLayout = 'horizontal' | 'vertical';
599
691
  interface IrisDescriptionsItem {
@@ -620,7 +712,7 @@ interface IrisDescriptionsProps {
620
712
  *
621
713
  * React port of {@link import('@iris-ui-kit/vue').IrisDescriptions}.
622
714
  */
623
- declare function IrisDescriptions({ items, columns, layout, bordered, style, className, }: IrisDescriptionsProps): React.ReactElement;
715
+ declare function IrisDescriptions({ items, columns, layout, bordered, style, className, ...rest }: IrisDescriptionsProps): React.ReactElement;
624
716
 
625
717
  interface IrisTransferItem {
626
718
  label: string;
@@ -649,7 +741,7 @@ interface IrisTransferProps {
649
741
  *
650
742
  * React port of {@link import('@iris-ui-kit/vue').IrisTransfer}.
651
743
  */
652
- declare function IrisTransfer({ options, value: valueProp, defaultValue, onValueChange, titles, searchable, disabled, style, className, }: IrisTransferProps): React.ReactElement;
744
+ declare function IrisTransfer({ options, value: valueProp, defaultValue, onValueChange, titles, searchable, disabled, style, className, ...rest }: IrisTransferProps): React.ReactElement;
653
745
 
654
746
  interface IrisWatermarkProps {
655
747
  /** Watermark text, tiled across the area. */
@@ -675,7 +767,7 @@ interface IrisWatermarkProps {
675
767
  *
676
768
  * React port of {@link import('@iris-ui-kit/vue').IrisWatermark}.
677
769
  */
678
- declare function IrisWatermark({ content, children, rotate, fontSize, color, opacity, gap, style, className, }: IrisWatermarkProps): React.ReactElement;
770
+ declare function IrisWatermark({ content, children, rotate, fontSize, color, opacity, gap, style, className, ...rest }: IrisWatermarkProps): React.ReactElement;
679
771
 
680
772
  interface IrisBackTopProps {
681
773
  /** Scroll container resolver. Defaults to the window. */
@@ -697,7 +789,7 @@ interface IrisBackTopProps {
697
789
  *
698
790
  * React port of {@link import('@iris-ui-kit/vue').IrisBackTop}.
699
791
  */
700
- declare function IrisBackTop({ target, visibilityHeight, behavior, onClick, ariaLabel, children, style, className, }: IrisBackTopProps): React.ReactElement | null;
792
+ declare function IrisBackTop({ target, visibilityHeight, behavior, onClick, ariaLabel, children, style, className, ...rest }: IrisBackTopProps): React.ReactElement | null;
701
793
 
702
794
  interface IrisAffixProps {
703
795
  /** Pin this many px from the top once scrolled past. */
@@ -719,7 +811,7 @@ interface IrisAffixProps {
719
811
  *
720
812
  * React port of {@link import('@iris-ui-kit/vue').IrisAffix}.
721
813
  */
722
- declare function IrisAffix({ offsetTop, offsetBottom, target, onChange, children, style, className, }: IrisAffixProps): React.ReactElement;
814
+ declare function IrisAffix({ offsetTop, offsetBottom, target, onChange, children, style, className, ...rest }: IrisAffixProps): React.ReactElement;
723
815
 
724
816
  type IrisResultStatus = 'success' | 'error' | 'info' | 'warning';
725
817
  interface IrisResultProps {
@@ -742,7 +834,7 @@ interface IrisResultProps {
742
834
  *
743
835
  * React port of {@link import('@iris-ui-kit/vue').IrisResult}.
744
836
  */
745
- declare function IrisResult({ status, title, subtitle, icon, extra, children, style, className, }: IrisResultProps): React.ReactElement;
837
+ declare function IrisResult({ status, title, subtitle, icon, extra, children, style, className, ...rest }: IrisResultProps): React.ReactElement;
746
838
 
747
839
  type IrisTreeSelectSize = 'sm' | 'md' | 'lg';
748
840
  interface IrisTreeSelectNode {
@@ -775,7 +867,7 @@ interface IrisTreeSelectProps {
775
867
  *
776
868
  * React port of {@link import('@iris-ui-kit/vue').IrisTreeSelect}.
777
869
  */
778
- declare function IrisTreeSelect({ options, value, defaultValue, onValueChange, defaultExpanded, placeholder, disabled, invalid, size, id, ariaDescribedby, style, className, }: IrisTreeSelectProps): React.ReactElement;
870
+ declare function IrisTreeSelect({ options, value, defaultValue, onValueChange, defaultExpanded, placeholder, disabled, invalid, size, id, ariaDescribedby, style, className, ...rest }: IrisTreeSelectProps): React.ReactElement;
779
871
 
780
872
  interface IrisMentionOption {
781
873
  label: string;
@@ -806,7 +898,7 @@ interface IrisMentionsProps {
806
898
  *
807
899
  * React port of {@link import('@iris-ui-kit/vue').IrisMentions}.
808
900
  */
809
- declare function IrisMentions({ value, defaultValue, onValueChange, options, prefix, placeholder, disabled, invalid, rows, id, ariaDescribedby, style, className, }: IrisMentionsProps): React.ReactElement;
901
+ declare function IrisMentions({ value, defaultValue, onValueChange, options, prefix, placeholder, disabled, invalid, rows, id, ariaDescribedby, style, className, ...rest }: IrisMentionsProps): React.ReactElement;
810
902
 
811
903
  type IrisCascaderSize = 'sm' | 'md' | 'lg';
812
904
  interface IrisCascaderNode {
@@ -840,7 +932,7 @@ interface IrisCascaderProps {
840
932
  *
841
933
  * React port of {@link import('@iris-ui-kit/vue').IrisCascader}.
842
934
  */
843
- declare function IrisCascader({ options, value, defaultValue, onValueChange, placeholder, disabled, invalid, separator, size, id, ariaDescribedby, style, className, }: IrisCascaderProps): React.ReactElement;
935
+ declare function IrisCascader({ options, value, defaultValue, onValueChange, placeholder, disabled, invalid, separator, size, id, ariaDescribedby, style, className, ...rest }: IrisCascaderProps): React.ReactElement;
844
936
 
845
937
  type IrisSegmentedSize = 'sm' | 'md' | 'lg';
846
938
  interface IrisSegmentedOption {
@@ -866,7 +958,7 @@ interface IrisSegmentedProps {
866
958
  * one visually raised. Radiogroup semantics with roving tabindex and Arrow /
867
959
  * Home / End keyboard navigation — single-sourced in `createKeyboardNav`.
868
960
  */
869
- declare function IrisSegmented({ options, value, defaultValue, onValueChange, size, disabled, block, ariaLabel, style, className, }: IrisSegmentedProps): React.ReactElement;
961
+ declare function IrisSegmented({ options, value, defaultValue, onValueChange, size, disabled, block, ariaLabel, style, className, ...rest }: IrisSegmentedProps): React.ReactElement;
870
962
 
871
963
  interface IrisImageProps {
872
964
  src: string;
@@ -887,7 +979,7 @@ interface IrisImageProps {
887
979
  *
888
980
  * React port of {@link import('@iris-ui-kit/vue').IrisImage}.
889
981
  */
890
- declare function IrisImage({ src, alt, width, height, fallback, preview, style, className, }: IrisImageProps): React.ReactElement;
982
+ declare function IrisImage({ src, alt, width, height, fallback, preview, style, className, ...rest }: IrisImageProps): React.ReactElement;
891
983
 
892
984
  type IrisFloatButtonShape = 'circle' | 'square';
893
985
  interface IrisFloatButtonAction {
@@ -920,7 +1012,7 @@ interface IrisFloatButtonProps {
920
1012
  *
921
1013
  * React port of {@link import('@iris-ui-kit/vue').IrisFloatButton}.
922
1014
  */
923
- declare function IrisFloatButton({ icon, children, ariaLabel, onClick, shape, actions, offset, style, className, }: IrisFloatButtonProps): React.ReactElement;
1015
+ declare function IrisFloatButton({ icon, children, ariaLabel, onClick, shape, actions, offset, style, className, ...rest }: IrisFloatButtonProps): React.ReactElement;
924
1016
 
925
1017
  interface IrisAnchorItem {
926
1018
  href: string;
@@ -945,7 +1037,7 @@ interface IrisAnchorProps {
945
1037
  *
946
1038
  * React port of {@link import('@iris-ui-kit/vue').IrisAnchor}.
947
1039
  */
948
- declare function IrisAnchor({ items, target, offset, onChange, ariaLabel, style, className, }: IrisAnchorProps): React.ReactElement;
1040
+ declare function IrisAnchor({ items, target, offset, onChange, ariaLabel, style, className, ...rest }: IrisAnchorProps): React.ReactElement;
949
1041
 
950
1042
  type IrisCountdownSize = 'sm' | 'md' | 'lg';
951
1043
  interface IrisCountdownProps {
@@ -971,7 +1063,7 @@ declare function formatRemaining(ms: number, format: string): string;
971
1063
  *
972
1064
  * React port of {@link import('@iris-ui-kit/vue').IrisCountdown}.
973
1065
  */
974
- declare function IrisCountdown({ value, format, title, prefix, suffix, onFinish, size, style, className, }: IrisCountdownProps): React.ReactElement;
1066
+ declare function IrisCountdown({ value, format, title, prefix, suffix, onFinish, size, style, className, ...rest }: IrisCountdownProps): React.ReactElement;
975
1067
 
976
1068
  interface IrisTourStep {
977
1069
  /** Element to spotlight for this step. */
@@ -997,7 +1089,7 @@ interface IrisTourProps {
997
1089
  *
998
1090
  * React port of {@link import('@iris-ui-kit/vue').IrisTour}.
999
1091
  */
1000
- declare function IrisTour({ steps, open, defaultOpen, onChange, onClose, onFinish, style, className, }: IrisTourProps): React.ReactElement | null;
1092
+ declare function IrisTour({ steps, open, defaultOpen, onChange, onClose, onFinish, style, className, ...rest }: IrisTourProps): React.ReactElement | null;
1001
1093
 
1002
1094
  interface IrisTagInputProps {
1003
1095
  value?: string[];
@@ -1022,7 +1114,7 @@ interface IrisTagInputProps {
1022
1114
  *
1023
1115
  * React port of {@link import('@iris-ui-kit/vue').IrisTagInput}.
1024
1116
  */
1025
- declare function IrisTagInput({ value, defaultValue, onValueChange, placeholder, disabled, invalid, max, allowDuplicates, id, ariaDescribedby, style, className, }: IrisTagInputProps): React.ReactElement;
1117
+ declare function IrisTagInput({ value, defaultValue, onValueChange, placeholder, disabled, invalid, max, allowDuplicates, id, ariaDescribedby, style, className, ...rest }: IrisTagInputProps): React.ReactElement;
1026
1118
 
1027
1119
  type IrisCopyButtonSize = 'sm' | 'md' | 'lg';
1028
1120
  interface IrisCopyButtonProps {
@@ -1047,7 +1139,7 @@ interface IrisCopyButtonProps {
1047
1139
  *
1048
1140
  * React port of {@link import('@iris-ui-kit/vue').IrisCopyButton}.
1049
1141
  */
1050
- declare function IrisCopyButton({ text, children, copiedLabel, timeout, onCopy, disabled, size, style, className, }: IrisCopyButtonProps): React.ReactElement;
1142
+ declare function IrisCopyButton({ text, children, copiedLabel, timeout, onCopy, disabled, size, style, className, ...rest }: IrisCopyButtonProps): React.ReactElement;
1051
1143
 
1052
1144
  type IrisProgressCircleStatus = 'default' | 'success' | 'danger' | 'warning';
1053
1145
  interface IrisProgressCircleProps {
@@ -1072,7 +1164,7 @@ interface IrisProgressCircleProps {
1072
1164
  *
1073
1165
  * React port of {@link import('@iris-ui-kit/vue').IrisProgressCircle}.
1074
1166
  */
1075
- declare function IrisProgressCircle({ value, max, size, strokeWidth, status, showLabel, format, ariaLabel, style, className, }: IrisProgressCircleProps): React.ReactElement;
1167
+ declare function IrisProgressCircle({ value, max, size, strokeWidth, status, showLabel, format, ariaLabel, style, className, ...rest }: IrisProgressCircleProps): React.ReactElement;
1076
1168
 
1077
1169
  type IrisSplitButtonVariant = 'primary' | 'default';
1078
1170
  type IrisSplitButtonSize = 'sm' | 'md' | 'lg';
@@ -1099,7 +1191,7 @@ interface IrisSplitButtonProps {
1099
1191
  *
1100
1192
  * React port of {@link import('@iris-ui-kit/vue').IrisSplitButton}.
1101
1193
  */
1102
- declare function IrisSplitButton({ children, onClick, actions, variant, size, disabled, menuAriaLabel, style, className, }: IrisSplitButtonProps): React.ReactElement;
1194
+ declare function IrisSplitButton({ children, onClick, actions, variant, size, disabled, menuAriaLabel, style, className, ...rest }: IrisSplitButtonProps): React.ReactElement;
1103
1195
 
1104
1196
  interface IrisAspectRatioProps {
1105
1197
  /** Width / height ratio. Default 16/9. */
@@ -1115,7 +1207,7 @@ interface IrisAspectRatioProps {
1115
1207
  *
1116
1208
  * React port of {@link import('@iris-ui-kit/vue').IrisAspectRatio}.
1117
1209
  */
1118
- declare function IrisAspectRatio({ ratio, children, style, className, }: IrisAspectRatioProps): React.ReactElement;
1210
+ declare function IrisAspectRatio({ ratio, children, style, className, ...rest }: IrisAspectRatioProps): React.ReactElement;
1119
1211
 
1120
1212
  type IrisVisuallyHiddenProps = React.HTMLAttributes<HTMLSpanElement>;
1121
1213
  /**
@@ -1143,7 +1235,7 @@ interface IrisScrollAreaProps {
1143
1235
  *
1144
1236
  * React port of {@link import('@iris-ui-kit/vue').IrisScrollArea}.
1145
1237
  */
1146
- declare function IrisScrollArea({ maxHeight, maxWidth, axis, children, style, className, }: IrisScrollAreaProps): React.ReactElement;
1238
+ declare function IrisScrollArea({ maxHeight, maxWidth, axis, children, style, className, ...rest }: IrisScrollAreaProps): React.ReactElement;
1147
1239
 
1148
1240
  type IrisRibbonPlacement = 'start' | 'end';
1149
1241
  interface IrisRibbonProps {
@@ -1162,7 +1254,7 @@ interface IrisRibbonProps {
1162
1254
  *
1163
1255
  * React port of {@link import('@iris-ui-kit/vue').IrisRibbon}.
1164
1256
  */
1165
- declare function IrisRibbon({ text, placement, color, children, style, className, }: IrisRibbonProps): React.ReactElement;
1257
+ declare function IrisRibbon({ text, placement, color, children, style, className, ...rest }: IrisRibbonProps): React.ReactElement;
1166
1258
 
1167
1259
  type IrisGaugeStatus = 'default' | 'success' | 'danger' | 'warning';
1168
1260
  interface IrisGaugeProps {
@@ -1187,7 +1279,7 @@ interface IrisGaugeProps {
1187
1279
  *
1188
1280
  * React port of {@link import('@iris-ui-kit/vue').IrisGauge}.
1189
1281
  */
1190
- declare function IrisGauge({ value, min, max, size, strokeWidth, status, showValue, format, ariaLabel, style, className, }: IrisGaugeProps): React.ReactElement;
1282
+ declare function IrisGauge({ value, min, max, size, strokeWidth, status, showValue, format, ariaLabel, style, className, ...rest }: IrisGaugeProps): React.ReactElement;
1191
1283
 
1192
1284
  type IrisMarqueeDirection = 'left' | 'right';
1193
1285
  interface IrisMarqueeProps {
@@ -1209,7 +1301,7 @@ interface IrisMarqueeProps {
1209
1301
  *
1210
1302
  * React port of {@link import('@iris-ui-kit/vue').IrisMarquee}.
1211
1303
  */
1212
- declare function IrisMarquee({ children, duration, direction, pauseOnHover, gap, style, className, }: IrisMarqueeProps): React.ReactElement;
1304
+ declare function IrisMarquee({ children, duration, direction, pauseOnHover, gap, style, className, ...rest }: IrisMarqueeProps): React.ReactElement;
1213
1305
 
1214
1306
  interface IrisMasonryProps {
1215
1307
  /** Number of columns. */
@@ -1227,7 +1319,7 @@ interface IrisMasonryProps {
1227
1319
  *
1228
1320
  * React port of {@link import('@iris-ui-kit/vue').IrisMasonry}.
1229
1321
  */
1230
- declare function IrisMasonry({ columns, gap, children, style, className, }: IrisMasonryProps): React.ReactElement;
1322
+ declare function IrisMasonry({ columns, gap, children, style, className, ...rest }: IrisMasonryProps): React.ReactElement;
1231
1323
 
1232
1324
  interface IrisFieldsetProps {
1233
1325
  legend?: React.ReactNode;
@@ -1245,7 +1337,7 @@ interface IrisFieldsetProps {
1245
1337
  *
1246
1338
  * React port of {@link import('@iris-ui-kit/vue').IrisFieldset}.
1247
1339
  */
1248
- declare function IrisFieldset({ legend, disabled, hint, children, style, className, }: IrisFieldsetProps): React.ReactElement;
1340
+ declare function IrisFieldset({ legend, disabled, hint, children, style, className, ...rest }: IrisFieldsetProps): React.ReactElement;
1249
1341
 
1250
1342
  type IrisToolbarOrientation = 'horizontal' | 'vertical';
1251
1343
  interface IrisToolbarProps {
@@ -1266,7 +1358,7 @@ interface IrisToolbarProps {
1266
1358
  * package — the controller handles orientation-aware Arrow keys, looping, and
1267
1359
  * Home/End; this component only owns the bridge to the DOM (tabindex + focus).
1268
1360
  */
1269
- declare function IrisToolbar({ children, orientation, ariaLabel, style, className, }: IrisToolbarProps): React.ReactElement;
1361
+ declare function IrisToolbar({ children, orientation, ariaLabel, style, className, ...rest }: IrisToolbarProps): React.ReactElement;
1270
1362
 
1271
1363
  type IrisRadioSize = 'sm' | 'md' | 'lg';
1272
1364
  interface IrisRadioProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'size' | 'value' | 'checked' | 'onChange' | 'defaultChecked'> {
@@ -1374,7 +1466,7 @@ interface IrisTooltipProps {
1374
1466
  * <button>Save</button>
1375
1467
  * </IrisTooltip>
1376
1468
  */
1377
- declare function IrisTooltip({ content, placement, offset, openDelay, closeDelay, portalTarget, disabled, children, }: IrisTooltipProps): React.ReactElement | null;
1469
+ declare function IrisTooltip({ content, placement, offset, openDelay, closeDelay, portalTarget, disabled, children, ...rest }: IrisTooltipProps): React.ReactElement | null;
1378
1470
 
1379
1471
  interface IrisPopoverProps {
1380
1472
  /** Controlled open value. Combine with `onOpenChange`. */
@@ -2228,7 +2320,7 @@ interface IrisSelectProps<T = unknown> {
2228
2320
  * placeholder="Pick a fruit"
2229
2321
  * />
2230
2322
  */
2231
- declare function IrisSelect<T = unknown>({ items, value: valueProp, defaultValue, onValueChange, placeholder, size, disabled, placement, invalid, id, ariaDescribedby, renderTrigger, style, className, }: IrisSelectProps<T>): React.ReactElement;
2323
+ declare function IrisSelect<T = unknown>({ items, value: valueProp, defaultValue, onValueChange, placeholder, size, disabled, placement, invalid, id, ariaDescribedby, renderTrigger, style, className, ...rest }: IrisSelectProps<T>): React.ReactElement;
2232
2324
 
2233
2325
  type IrisTableSortDirection = 'asc' | 'desc';
2234
2326
  /** Map of column key → current width in px (after any resizing). */
@@ -2301,7 +2393,10 @@ interface IrisTableCellEditEvent<Row = Record<string, unknown>> {
2301
2393
  newValue: unknown;
2302
2394
  rowIndex: number;
2303
2395
  }
2396
+ type IrisTableRenderDetail<Row = Record<string, unknown>> = (row: Row, rowIndex: number) => React.ReactNode;
2397
+ type IrisTableRowExpandable<Row = Record<string, unknown>> = (row: Row, rowIndex: number) => boolean;
2304
2398
 
2399
+ /** Public input surface for the React table adapter. */
2305
2400
  interface IrisTableProps<Row extends Record<string, unknown> = Record<string, unknown>> {
2306
2401
  columns: IrisTableColumn<Row>[];
2307
2402
  data: Row[];
@@ -2323,66 +2418,42 @@ interface IrisTableProps<Row extends Record<string, unknown> = Record<string, un
2323
2418
  columnWidths?: IrisTableColumnWidths;
2324
2419
  defaultColumnWidths?: IrisTableColumnWidths;
2325
2420
  onColumnWidthsChange?: (next: IrisTableColumnWidths) => void;
2421
+ /** Called when a data row is clicked. Interactive child controls stop propagation. */
2422
+ onRowClick?: (row: Row, rowIndex: number) => void;
2326
2423
  /** Called when an inline-editable cell is committed with a changed value. */
2327
2424
  onCellEdit?: (event: IrisTableCellEditEvent<Row>) => void;
2328
- /**
2329
- * Render an expandable detail panel beneath a row. Providing this adds a
2330
- * leading expand-toggle column; clicking it reveals a full-width detail row.
2331
- * (Not applied in the virtual-scroll path.)
2332
- */
2333
- renderDetail?: (row: Row, rowIndex: number) => React.ReactNode;
2334
- /** Which rows can expand a detail panel. Defaults to all rows when `renderDetail` is set. */
2335
- rowExpandable?: (row: Row, rowIndex: number) => boolean;
2425
+ /** Render an expandable detail panel beneath a row. */
2426
+ renderDetail?: IrisTableRenderDetail<Row>;
2427
+ /** Which rows can expand a detail panel. */
2428
+ rowExpandable?: IrisTableRowExpandable<Row>;
2336
2429
  /** Initially-expanded row keys (uncontrolled). Shared by detail rows + tree rows. */
2337
2430
  defaultExpandedRowKeys?: Array<string | number>;
2338
2431
  /** Notified with the expanded row keys whenever they change. */
2339
2432
  onExpandedRowsChange?: (keys: Array<string | number>) => void;
2340
- /**
2341
- * Read a row's child rows to render the table as a TREE. Providing this enables
2342
- * tree mode: `data` is treated as the root rows, each row's first cell gains a
2343
- * depth indent + an expand/collapse toggle (when it has children), and the
2344
- * expand state reuses `defaultExpandedRowKeys`/`onExpandedRowsChange`. Column
2345
- * sort reorders siblings hierarchically (each level sorted, structure kept),
2346
- * and tree rows virtualize like flat rows when `virtualScroll` is set (unless
2347
- * `renderDetail` is also used, since detail panels are variable-height).
2348
- */
2433
+ /** Read a row's child rows to render the table as a tree. */
2349
2434
  getSubRows?: (row: Row) => Row[] | undefined;
2350
- /**
2351
- * Enable WAI-ARIA grid keyboard navigation: the table becomes `role="grid"`
2352
- * and Arrow / Home / End / Page Up·Down move a roving cell focus across the
2353
- * data cells. Off by default; opt-in and additive (no effect on mouse / Tab
2354
- * behavior). Pairs best without virtualization (the focused cell must be
2355
- * rendered) and does not hijack keystrokes while a cell is being edited.
2356
- */
2435
+ /** Enable WAI-ARIA grid keyboard navigation. */
2357
2436
  keyboardNavigation?: boolean;
2358
- /** Enable virtual scrolling for the body (renders only the visible window). */
2437
+ /** Enable virtual scrolling for the body. */
2359
2438
  virtualScroll?: IrisTableVirtualOptions;
2360
- /**
2361
- * Render only the horizontally-visible columns (plus pinned + a small
2362
- * overscan) for very wide tables. Needs numeric column widths; the table
2363
- * becomes a horizontal scroll container. Off-screen grid tracks stay sized,
2364
- * so alignment, resize, and pinned columns keep working.
2365
- */
2439
+ /** Render only the horizontally-visible columns plus pinned columns and overscan. */
2366
2440
  columnVirtualization?: boolean;
2367
- /**
2368
- * Enable rectangular cell-range selection (Excel-style). Click starts a
2369
- * range; Shift+Click or Shift+Arrow extends it; Escape clears it.
2370
- * Cells within the range get `data-iris-cell-selected="true"`.
2371
- */
2441
+ /** Enable rectangular cell-range selection. */
2372
2442
  cellRange?: boolean;
2373
2443
  /** Empty state node (replaces the row body when `data` is empty). */
2374
- emptyState?: React.ReactNode;
2444
+ emptyState?: ReactNode;
2375
2445
  /** Show the loading state instead of rows. */
2376
2446
  loading?: boolean;
2377
2447
  /** Show the error state instead of rows (takes precedence over loading). */
2378
2448
  error?: boolean;
2379
- /** Custom loading-state node (defaults to the localized `table.loading`). */
2380
- loadingState?: React.ReactNode;
2381
- /** Custom error-state node (defaults to the localized `table.error`). */
2382
- errorState?: React.ReactNode;
2383
- style?: React.CSSProperties;
2449
+ /** Custom loading-state node. */
2450
+ loadingState?: ReactNode;
2451
+ /** Custom error-state node. */
2452
+ errorState?: ReactNode;
2453
+ style?: CSSProperties;
2384
2454
  className?: string;
2385
2455
  }
2456
+
2386
2457
  /**
2387
2458
  * Data-driven table. Renders as a CSS-grid layout (no native `<table>`) so it
2388
2459
  * can support future virtual scroll / column resize uniformly. Wires ARIA
@@ -2390,7 +2461,7 @@ interface IrisTableProps<Row extends Record<string, unknown> = Record<string, un
2390
2461
  *
2391
2462
  * Sortable columns cycle `none → asc → desc → none` on click.
2392
2463
  */
2393
- declare function IrisTable<Row extends Record<string, unknown>>({ columns, data, rowKey, selectable, selection: selectionProp, defaultSelection, onSelectionChange, sort: sortProp, defaultSort, onSortChange, striped, bordered, resizableColumns, columnWidths: columnWidthsProp, defaultColumnWidths, onColumnWidthsChange, onCellEdit, renderDetail, rowExpandable, defaultExpandedRowKeys, onExpandedRowsChange, getSubRows, keyboardNavigation, cellRange, virtualScroll, columnVirtualization, emptyState, loading, error, loadingState, errorState, style, className, }: IrisTableProps<Row>): React.ReactElement;
2464
+ declare function IrisTable<Row extends Record<string, unknown>>({ columns, data, rowKey, selectable, selection: selectionProp, defaultSelection, onSelectionChange, sort: sortProp, defaultSort, onSortChange, striped, bordered, resizableColumns, columnWidths: columnWidthsProp, defaultColumnWidths, onColumnWidthsChange, onRowClick, onCellEdit, renderDetail, rowExpandable, defaultExpandedRowKeys, onExpandedRowsChange, getSubRows, keyboardNavigation, cellRange, virtualScroll, columnVirtualization, emptyState, loading, error, loadingState, errorState, style, className, ...rest }: IrisTableProps<Row>): React.ReactElement;
2394
2465
 
2395
2466
  /**
2396
2467
  * Serialize rows as a CSV string per RFC 4180. Column order determines field
@@ -2491,7 +2562,7 @@ interface IrisCalendarProps {
2491
2562
  * - PageUp / PageDown move by month
2492
2563
  * - Enter / Space select
2493
2564
  */
2494
- declare function IrisCalendar({ value: valueProp, defaultValue, onValueChange, defaultMonth, min, max, weekStartsOn, locale, disabled, style, className, }: IrisCalendarProps): React.ReactElement;
2565
+ declare function IrisCalendar({ value: valueProp, defaultValue, onValueChange, defaultMonth, min, max, weekStartsOn, locale, disabled, style, className, ...rest }: IrisCalendarProps): React.ReactElement;
2495
2566
 
2496
2567
  interface IrisDatePickerProps {
2497
2568
  value?: Date | null;
@@ -2516,7 +2587,7 @@ interface IrisDatePickerProps {
2516
2587
  * Date picker: button-styled trigger + Popover + Calendar. On selection the
2517
2588
  * popover auto-closes. Use `IrisCalendar` directly when you want it inline.
2518
2589
  */
2519
- declare function IrisDatePicker({ value: valueProp, defaultValue, onValueChange, min, max, weekStartsOn, locale, placeholder, disabled, invalid, placement, id, ariaDescribedby, style, className, }: IrisDatePickerProps): React.ReactElement;
2590
+ declare function IrisDatePicker({ value: valueProp, defaultValue, onValueChange, min, max, weekStartsOn, locale, placeholder, disabled, invalid, placement, id, ariaDescribedby, style, className, ...rest }: IrisDatePickerProps): React.ReactElement;
2520
2591
 
2521
2592
  interface IrisTreeNode {
2522
2593
  /** Stable unique identifier. */
@@ -2589,7 +2660,7 @@ interface IrisTreeProps {
2589
2660
  * `loadChildren` lazy loading is independent of this top-level state. Semantic
2590
2661
  * parity with the Vue adapter's `IrisTree`.
2591
2662
  */
2592
- declare function IrisTree({ nodes, expanded: expandedProp, defaultExpanded, onExpandedChange, selected: selectedProp, defaultSelected, onSelectedChange, selectionMode, checkable, defaultChecked, onCheckedChange, ariaLabel, loading, error, emptyState, loadingState, errorState, style, className, }: IrisTreeProps): React.ReactElement;
2663
+ declare function IrisTree({ nodes, expanded: expandedProp, defaultExpanded, onExpandedChange, selected: selectedProp, defaultSelected, onSelectedChange, selectionMode, checkable, defaultChecked, onCheckedChange, ariaLabel, loading, error, emptyState, loadingState, errorState, style, className, ...rest }: IrisTreeProps): React.ReactElement;
2593
2664
 
2594
2665
  interface IrisListItem<T = unknown> {
2595
2666
  value: T;
@@ -2642,7 +2713,7 @@ interface IrisListProps<T = unknown> {
2642
2713
  * the animated loading / error / empty state in place of options. State
2643
2714
  * precedence and entry animation come from {@link useDataState}.
2644
2715
  */
2645
- declare function IrisList<T = unknown>({ items, value: valueProp, defaultValue, onValueChange, onSelect, multi, loop, ariaLabel, loading, error, emptyState, loadingState, errorState, renderItem, style, className, }: IrisListProps<T>): React.ReactElement;
2716
+ declare function IrisList<T = unknown>({ items, value: valueProp, defaultValue, onValueChange, onSelect, multi, loop, ariaLabel, loading, error, emptyState, loadingState, errorState, renderItem, style, className, ...rest }: IrisListProps<T>): React.ReactElement;
2646
2717
 
2647
2718
  interface IrisFileUploadFile {
2648
2719
  file: File;
@@ -2687,7 +2758,7 @@ interface IrisFileUploadProps {
2687
2758
  * click-to-browse + drag-and-drop surface. Validates via `accept`, `maxSize`,
2688
2759
  * `maxFiles`; rejected files surface via `onReject`.
2689
2760
  */
2690
- declare function IrisFileUpload({ value: valueProp, defaultValue, onValueChange, onAccept, onReject, accept, multiple, maxSize, maxFiles, disabled, label, id, renderList, style, className, }: IrisFileUploadProps): React.ReactElement;
2761
+ declare function IrisFileUpload({ value: valueProp, defaultValue, onValueChange, onAccept, onReject, accept, multiple, maxSize, maxFiles, disabled, label, id, renderList, style, className, ...rest }: IrisFileUploadProps): React.ReactElement;
2691
2762
 
2692
2763
  interface IrisMenuProps {
2693
2764
  open?: boolean;
@@ -2829,7 +2900,7 @@ interface IrisTimePickerProps {
2829
2900
  * plus an optional AM/PM toggle for 12h format. Internal value is always
2830
2901
  * 24-hour `{ hours, minutes }`.
2831
2902
  */
2832
- declare function IrisTimePicker({ value: valueProp, defaultValue, onValueChange, format, minuteStep, disabled, invalid, id, ariaDescribedby, style, className, }: IrisTimePickerProps): React.ReactElement;
2903
+ declare function IrisTimePicker({ value: valueProp, defaultValue, onValueChange, format, minuteStep, disabled, invalid, id, ariaDescribedby, style, className, ...rest }: IrisTimePickerProps): React.ReactElement;
2833
2904
 
2834
2905
  interface IrisDateRange {
2835
2906
  start: Date | null;
@@ -2859,7 +2930,7 @@ interface IrisDateRangePickerProps {
2859
2930
  * Click order: first click → sets `start`. Second click → sets `end`
2860
2931
  * (auto-swaps if before `start`). Popover closes on completion.
2861
2932
  */
2862
- declare function IrisDateRangePicker({ value: valueProp, defaultValue, onValueChange, min, max, weekStartsOn, locale, placeholder, disabled, invalid, placement, id, ariaDescribedby, style, className, }: IrisDateRangePickerProps): React.ReactElement;
2933
+ declare function IrisDateRangePicker({ value: valueProp, defaultValue, onValueChange, min, max, weekStartsOn, locale, placeholder, disabled, invalid, placement, id, ariaDescribedby, style, className, ...rest }: IrisDateRangePickerProps): React.ReactElement;
2863
2934
 
2864
2935
  type IrisSliderOrientation = 'horizontal' | 'vertical';
2865
2936
  interface IrisSliderProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {
@@ -2961,4 +3032,4 @@ interface IrisCommandPaletteProps extends Omit<React.HTMLAttributes<HTMLDivEleme
2961
3032
  */
2962
3033
  declare function IrisCommandPalette({ open, onOpenChange, items, placeholder, emptyText, filter, onSelect, style, ...rest }: IrisCommandPaletteProps): React.ReactElement | null;
2963
3034
 
2964
- export { AccordionContext, type AccordionContextValue, DialogContext, type DialogContextValue, type DragState, DrawerContext, type DrawerContextValue, DropdownContext, type DropdownContextValue, IrisAccordion, IrisAccordionItem, type IrisAccordionItemProps, type IrisAccordionProps, type IrisAccordionValue, IrisAffix, type IrisAffixProps, IrisAlert, type IrisAlertProps, type IrisAlertTone, IrisAnchor, type IrisAnchorItem, type IrisAnchorProps, IrisAspectRatio, type IrisAspectRatioProps, IrisAvatar, type IrisAvatarProps, type IrisAvatarShape, type IrisAvatarSize, IrisBackTop, type IrisBackTopProps, IrisBadge, type IrisBadgeProps, type IrisBadgeSize, type IrisBadgeTone, type IrisBadgeVariant, IrisBanner, type IrisBannerProps, type IrisBannerTone, IrisBreadcrumb, IrisBreadcrumbItem, type IrisBreadcrumbItemProps, type IrisBreadcrumbProps, IrisButton, type IrisButtonProps, type IrisButtonSize, type IrisButtonType, type IrisButtonVariant, IrisCalendar, type IrisCalendarProps, IrisCard, type IrisCardPadding, type IrisCardProps, type IrisCardVariant, IrisCarousel, type IrisCarouselProps, IrisCascader, type IrisCascaderNode, type IrisCascaderProps, type IrisCascaderSize, IrisCheckbox, type IrisCheckboxProps, type IrisCheckboxSize, type IrisCheckboxValue, IrisChip, type IrisChipProps, type IrisChipSize, type IrisChipTone, type IrisChipVariant, IrisColorPicker, type IrisColorPickerProps, IrisCombobox, type IrisComboboxOption, type IrisComboboxProps, type IrisComboboxSize, type IrisCommandItem, IrisCommandPalette, type IrisCommandPaletteProps, IrisCopyButton, type IrisCopyButtonProps, type IrisCopyButtonSize, IrisCountdown, type IrisCountdownProps, type IrisCountdownSize, IrisDatePicker, type IrisDatePickerProps, type IrisDateRange, IrisDateRangePicker, type IrisDateRangePickerProps, IrisDescriptions, type IrisDescriptionsItem, type IrisDescriptionsLayout, type IrisDescriptionsProps, IrisDialog, IrisDialogClose, type IrisDialogCloseProps, IrisDialogContent, type IrisDialogContentProps, IrisDialogDescription, type IrisDialogDescriptionProps, type IrisDialogProps, IrisDialogTitle, type IrisDialogTitleProps, IrisDialogTrigger, type IrisDialogTriggerProps, IrisDivider, type IrisDividerOrientation, type IrisDividerProps, type IrisDividerSpacing, IrisDragger, type IrisDraggerBounds, type IrisDraggerPosition, type IrisDraggerProps, IrisDrawer, IrisDrawerClose, type IrisDrawerCloseProps, IrisDrawerContent, type IrisDrawerContentProps, type IrisDrawerProps, type IrisDrawerSide, IrisDrawerTitle, type IrisDrawerTitleProps, IrisDrawerTrigger, type IrisDrawerTriggerProps, IrisDropdown, IrisDropdownItem, type IrisDropdownItemProps, IrisDropdownMenu, type IrisDropdownMenuProps, type IrisDropdownProps, IrisDropdownSeparator, type IrisDropdownSeparatorProps, IrisDropdownTrigger, type IrisDropdownTriggerProps, IrisEmptyState, type IrisEmptyStateProps, IrisFieldset, type IrisFieldsetProps, IrisFileUpload, type IrisFileUploadFile, type IrisFileUploadProps, type IrisFileUploadRejectReason, type IrisFileUploadRejection, IrisFloatButton, type IrisFloatButtonAction, type IrisFloatButtonProps, type IrisFloatButtonShape, IrisFormField, type IrisFormFieldProps, IrisGauge, type IrisGaugeProps, type IrisGaugeStatus, IrisIcon, type IrisIconProps, IrisImage, type IrisImageProps, IrisInput, type IrisInputProps, type IrisInputSize, type IrisInputType, IrisKbd, type IrisKbdProps, type IrisKbdSize, IrisList, type IrisListItem, type IrisListProps, IrisMarquee, type IrisMarqueeDirection, type IrisMarqueeProps, IrisMasonry, type IrisMasonryProps, type IrisMentionOption, IrisMentions, type IrisMentionsProps, IrisMenu, IrisMenuContent, type IrisMenuContentProps, IrisMenuItem, type IrisMenuItemProps, type IrisMenuProps, IrisMenuSeparator, type IrisMenuSeparatorProps, IrisMenuSub, type IrisMenuSubProps, IrisMenuTrigger, type IrisMenuTriggerProps, IrisNumberInput, type IrisNumberInputProps, type IrisNumberInputSize, IrisOtpInput, type IrisOtpInputProps, type IrisOtpInputSize, type IrisOtpInputType, IrisPagination, type IrisPaginationProps, type IrisPaginationSize, IrisPasswordInput, type IrisPasswordInputProps, IrisPopover, IrisPopoverContent, type IrisPopoverContentProps, type IrisPopoverProps, IrisPopoverTrigger, type IrisPopoverTriggerProps, IrisProgress, IrisProgressCircle, type IrisProgressCircleProps, type IrisProgressCircleStatus, type IrisProgressProps, type IrisProgressSize, type IrisProgressTone, IrisRadio, IrisRadioGroup, type IrisRadioGroupProps, type IrisRadioProps, type IrisRadioSize, IrisRangeSlider, type IrisRangeSliderProps, type IrisRangeSliderValue, IrisRating, type IrisRatingProps, type IrisRatingSize, IrisResizer, type IrisResizerHandle, type IrisResizerProps, type IrisResizerSize, IrisResult, type IrisResultProps, type IrisResultStatus, IrisRibbon, type IrisRibbonPlacement, type IrisRibbonProps, IrisScrollArea, type IrisScrollAreaAxis, type IrisScrollAreaProps, IrisSegmented, type IrisSegmentedOption, type IrisSegmentedProps, type IrisSegmentedSize, IrisSelect, type IrisSelectItem, type IrisSelectProps, type IrisSelectSize, IrisSkeleton, type IrisSkeletonProps, type IrisSkeletonShape, IrisSlider, type IrisSliderOrientation, type IrisSliderProps, IrisSlot, type IrisSlotProps, IrisSpinner, type IrisSpinnerProps, type IrisSpinnerSize, IrisSplitButton, type IrisSplitButtonAction, type IrisSplitButtonProps, type IrisSplitButtonSize, type IrisSplitButtonVariant, IrisSplitter, type IrisSplitterOrientation, type IrisSplitterProps, IrisStatistic, type IrisStatisticProps, type IrisStatisticSize, type IrisStatisticTrend, type IrisStepStatus, IrisStepper, type IrisStepperOrientation, type IrisStepperProps, IrisStepperStep, type IrisStepperStepProps, IrisSwitch, type IrisSwitchProps, type IrisSwitchSize, IrisTable, type IrisTableCellEditEvent, type IrisTableColumn, type IrisTableColumnWidths, type IrisTableEditor, type IrisTableProps, type IrisTableSortDirection, type IrisTableSortState, type IrisTableVirtualOptions, IrisTabs, IrisTabsContent, type IrisTabsContentProps, IrisTabsList, type IrisTabsListProps, type IrisTabsOrientation, type IrisTabsProps, IrisTabsTrigger, type IrisTabsTriggerProps, IrisTagInput, type IrisTagInputProps, IrisTextarea, type IrisTextareaProps, type IrisTextareaSize, IrisTimePicker, type IrisTimePickerFormat, type IrisTimePickerProps, type IrisTimeValue, IrisTimeline, type IrisTimelineItem, type IrisTimelineProps, type IrisTimelineVariant, type IrisToast, type IrisToastInput, type IrisToastPosition, type IrisToastVariant, IrisToastViewport, type IrisToastViewportProps, IrisToggleGroup, IrisToggleGroupItem, type IrisToggleGroupItemProps, type IrisToggleGroupMultipleProps, type IrisToggleGroupOrientation, type IrisToggleGroupProps, type IrisToggleGroupSingleProps, type IrisToggleGroupSize, type IrisToggleGroupType, type IrisToggleGroupValue, type IrisToggleGroupVariant, IrisToolbar, type IrisToolbarOrientation, type IrisToolbarProps, IrisTooltip, type IrisTooltipProps, IrisTour, type IrisTourProps, type IrisTourStep, IrisTransfer, type IrisTransferItem, type IrisTransferProps, IrisTree, type IrisTreeNode, type IrisTreeProps, IrisTreeSelect, type IrisTreeSelectNode, type IrisTreeSelectProps, type IrisTreeSelectSize, type IrisTreeSelectionMode, IrisVirtualScroll, type IrisVirtualScrollAlign, type IrisVirtualScrollHandle, type IrisVirtualScrollProps, IrisVisuallyHidden, type IrisVisuallyHiddenProps, IrisWatermark, type IrisWatermarkProps, MenuContext, type MenuContextValue, PopoverContext, type PopoverContextValue, RadioGroupContext, type RadioGroupContextValue, StepperContext, type StepperContextValue, TabsContext, type TabsContextValue, ToggleGroupContext, type ToggleGroupContextValue, type UseDragOptions, type UseToastReturn, __PROGRESS_STYLE_ID, __SKELETON_STYLE_ID, __SPINNER_STYLE_ID, __resetProgressStyles, __resetSkeletonStyles, __resetSpinnerStyles, clearToasts, defaultFilter, dismissToast, downloadCsv, downloadExcel, exportCsv, exportExcel, formatBytes, formatRemaining, getToasts, pushToast, subscribeToasts, useAccordionContext, useDialogContext, useDrag, useDrawerContext, useDropdownContext, useMachine, useMenuContext, usePopoverContext, useStepperContext, useStore, useStoreSelector, useTabsContext, useToast, useToggleGroupContext };
3035
+ export { AccordionContext, type AccordionContextValue, DialogContext, type DialogContextValue, type DragState, DrawerContext, type DrawerContextValue, DropdownContext, type DropdownContextValue, IrisAccordion, IrisAccordionItem, type IrisAccordionItemProps, type IrisAccordionProps, type IrisAccordionValue, IrisAffix, type IrisAffixProps, IrisAlert, type IrisAlertProps, type IrisAlertTone, IrisAnchor, type IrisAnchorItem, type IrisAnchorProps, IrisAspectRatio, type IrisAspectRatioProps, IrisAvatar, type IrisAvatarProps, type IrisAvatarShape, type IrisAvatarSize, IrisBackTop, type IrisBackTopProps, IrisBadge, type IrisBadgeProps, type IrisBadgeSize, type IrisBadgeTone, type IrisBadgeVariant, IrisBanner, type IrisBannerProps, type IrisBannerTone, IrisBreadcrumb, IrisBreadcrumbItem, type IrisBreadcrumbItemProps, type IrisBreadcrumbProps, IrisButton, type IrisButtonProps, type IrisButtonSize, type IrisButtonType, type IrisButtonVariant, IrisCalendar, type IrisCalendarProps, IrisCard, type IrisCardPadding, type IrisCardProps, type IrisCardVariant, IrisCarousel, type IrisCarouselProps, IrisCascader, type IrisCascaderNode, type IrisCascaderProps, type IrisCascaderSize, IrisCheckbox, type IrisCheckboxProps, type IrisCheckboxSize, type IrisCheckboxValue, IrisChip, type IrisChipProps, type IrisChipSize, type IrisChipTone, type IrisChipVariant, IrisColorPicker, type IrisColorPickerProps, IrisCombobox, type IrisComboboxOption, type IrisComboboxProps, type IrisComboboxSize, type IrisCommandItem, IrisCommandPalette, type IrisCommandPaletteProps, IrisCopyButton, type IrisCopyButtonProps, type IrisCopyButtonSize, IrisCountdown, type IrisCountdownProps, type IrisCountdownSize, IrisDatePicker, type IrisDatePickerProps, type IrisDateRange, IrisDateRangePicker, type IrisDateRangePickerProps, IrisDescriptions, type IrisDescriptionsItem, type IrisDescriptionsLayout, type IrisDescriptionsProps, IrisDialog, IrisDialogClose, type IrisDialogCloseProps, IrisDialogContent, type IrisDialogContentProps, IrisDialogDescription, type IrisDialogDescriptionProps, type IrisDialogProps, IrisDialogTitle, type IrisDialogTitleProps, IrisDialogTrigger, type IrisDialogTriggerProps, IrisDivider, type IrisDividerOrientation, type IrisDividerProps, type IrisDividerSpacing, IrisDragger, type IrisDraggerBounds, type IrisDraggerPosition, type IrisDraggerProps, IrisDrawer, IrisDrawerClose, type IrisDrawerCloseProps, IrisDrawerContent, type IrisDrawerContentProps, type IrisDrawerProps, type IrisDrawerSide, IrisDrawerTitle, type IrisDrawerTitleProps, IrisDrawerTrigger, type IrisDrawerTriggerProps, IrisDropdown, IrisDropdownItem, type IrisDropdownItemProps, IrisDropdownMenu, type IrisDropdownMenuProps, type IrisDropdownProps, IrisDropdownSeparator, type IrisDropdownSeparatorProps, IrisDropdownTrigger, type IrisDropdownTriggerProps, IrisEmptyState, type IrisEmptyStateProps, IrisFieldset, type IrisFieldsetProps, IrisFileUpload, type IrisFileUploadFile, type IrisFileUploadProps, type IrisFileUploadRejectReason, type IrisFileUploadRejection, IrisFloatButton, type IrisFloatButtonAction, type IrisFloatButtonProps, type IrisFloatButtonShape, IrisFormField, type IrisFormFieldProps, IrisGauge, type IrisGaugeProps, type IrisGaugeStatus, IrisIcon, type IrisIconProps, IrisImage, type IrisImageProps, IrisInput, type IrisInputProps, type IrisInputSize, type IrisInputType, IrisKbd, type IrisKbdProps, type IrisKbdSize, IrisList, type IrisListItem, type IrisListProps, IrisMarquee, type IrisMarqueeDirection, type IrisMarqueeProps, IrisMasonry, type IrisMasonryProps, type IrisMentionOption, IrisMentions, type IrisMentionsProps, IrisMenu, IrisMenuContent, type IrisMenuContentProps, IrisMenuItem, type IrisMenuItemProps, type IrisMenuProps, IrisMenuSeparator, type IrisMenuSeparatorProps, IrisMenuSub, type IrisMenuSubProps, IrisMenuTrigger, type IrisMenuTriggerProps, IrisNumberInput, type IrisNumberInputProps, type IrisNumberInputSize, IrisOtpInput, type IrisOtpInputProps, type IrisOtpInputSize, type IrisOtpInputType, IrisPagination, type IrisPaginationProps, type IrisPaginationSize, IrisPasswordInput, type IrisPasswordInputProps, IrisPopover, IrisPopoverContent, type IrisPopoverContentProps, type IrisPopoverProps, IrisPopoverTrigger, type IrisPopoverTriggerProps, IrisProgress, IrisProgressCircle, type IrisProgressCircleProps, type IrisProgressCircleStatus, type IrisProgressProps, type IrisProgressSize, type IrisProgressTone, IrisRadio, IrisRadioGroup, type IrisRadioGroupProps, type IrisRadioProps, type IrisRadioSize, IrisRangeSlider, type IrisRangeSliderProps, type IrisRangeSliderValue, IrisRating, type IrisRatingProps, type IrisRatingSize, IrisResizer, type IrisResizerHandle, type IrisResizerProps, type IrisResizerSize, IrisResult, type IrisResultProps, type IrisResultStatus, IrisRibbon, type IrisRibbonPlacement, type IrisRibbonProps, IrisScrollArea, type IrisScrollAreaAxis, type IrisScrollAreaProps, IrisSegmented, type IrisSegmentedOption, type IrisSegmentedProps, type IrisSegmentedSize, IrisSelect, type IrisSelectItem, type IrisSelectProps, type IrisSelectSize, IrisSkeleton, type IrisSkeletonProps, type IrisSkeletonShape, IrisSlider, type IrisSliderOrientation, type IrisSliderProps, IrisSlot, type IrisSlotProps, IrisSpinner, type IrisSpinnerProps, type IrisSpinnerSize, IrisSplitButton, type IrisSplitButtonAction, type IrisSplitButtonProps, type IrisSplitButtonSize, type IrisSplitButtonVariant, IrisSplitter, type IrisSplitterOrientation, type IrisSplitterProps, IrisStatistic, type IrisStatisticProps, type IrisStatisticSize, type IrisStatisticTrend, type IrisStepStatus, IrisStepper, type IrisStepperOrientation, type IrisStepperProps, IrisStepperStep, type IrisStepperStepProps, IrisSwitch, type IrisSwitchProps, type IrisSwitchSize, IrisTable, type IrisTableAggregateOp, type IrisTableCellEditEvent, type IrisTableColumn, type IrisTableColumnWidths, type IrisTableEditor, type IrisTableProps, type IrisTableRenderDetail, type IrisTableRowExpandable, type IrisTableSortDirection, type IrisTableSortState, type IrisTableVirtualOptions, IrisTabs, IrisTabsContent, type IrisTabsContentProps, IrisTabsList, type IrisTabsListProps, type IrisTabsOrientation, type IrisTabsProps, IrisTabsTrigger, type IrisTabsTriggerProps, IrisTagInput, type IrisTagInputProps, IrisTextarea, type IrisTextareaProps, type IrisTextareaSize, IrisTimePicker, type IrisTimePickerFormat, type IrisTimePickerProps, type IrisTimeValue, IrisTimeline, type IrisTimelineItem, type IrisTimelineProps, type IrisTimelineVariant, type IrisToast, type IrisToastInput, type IrisToastPosition, type IrisToastVariant, IrisToastViewport, type IrisToastViewportProps, IrisToggleGroup, IrisToggleGroupItem, type IrisToggleGroupItemProps, type IrisToggleGroupMultipleProps, type IrisToggleGroupOrientation, type IrisToggleGroupProps, type IrisToggleGroupSingleProps, type IrisToggleGroupSize, type IrisToggleGroupType, type IrisToggleGroupValue, type IrisToggleGroupVariant, IrisToolbar, type IrisToolbarOrientation, type IrisToolbarProps, IrisTooltip, type IrisTooltipProps, IrisTour, type IrisTourProps, type IrisTourStep, IrisTransfer, type IrisTransferItem, type IrisTransferProps, IrisTree, type IrisTreeNode, type IrisTreeProps, IrisTreeSelect, type IrisTreeSelectNode, type IrisTreeSelectProps, type IrisTreeSelectSize, type IrisTreeSelectionMode, IrisVirtualScroll, type IrisVirtualScrollAlign, type IrisVirtualScrollHandle, type IrisVirtualScrollProps, IrisVisuallyHidden, type IrisVisuallyHiddenProps, IrisWatermark, type IrisWatermarkProps, MenuContext, type MenuContextValue, PopoverContext, type PopoverContextValue, RadioGroupContext, type RadioGroupContextValue, StepperContext, type StepperContextValue, TabsContext, type TabsContextValue, ToggleGroupContext, type ToggleGroupContextValue, type UseDragOptions, type UseToastReturn, __PROGRESS_STYLE_ID, __SKELETON_STYLE_ID, __SPINNER_STYLE_ID, __resetProgressStyles, __resetSkeletonStyles, __resetSpinnerStyles, clearToasts, defaultFilter, dismissToast, downloadCsv, downloadExcel, exportCsv, exportExcel, formatBytes, formatRemaining, getToasts, pushToast, subscribeToasts, useAccordionContext, useDialogContext, useDisposableScope, useDrag, useDrawerContext, useDropdownContext, useMachine, useMenuContext, usePopoverContext, useReconnectingSource, useResilientFetcher, useStepperContext, useStore, useStoreSelector, useTabsContext, useToast, useToggleGroupContext };