@revolist/ui 4.0.6 → 4.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/README.md +37 -1
  2. package/_chunks/{arrow-up-Cw8hW9vp.js → arrow-up-BSYhTAus.js} +1 -1
  3. package/_chunks/{calculator-CDWOuAcp.js → calculator-BG0Xd_Uw.js} +1 -1
  4. package/_chunks/{calendar-BQYQLu8Q.js → calendar-CQHVwHLW.js} +3 -3
  5. package/_chunks/{chart-frame-GprenwEg.js → chart-frame-pj5EQxXr.js} +5 -5
  6. package/_chunks/{check-BwI7iCAm.js → check-BFIC9pge.js} +1 -1
  7. package/_chunks/{chevron-down-GbplLa6s.js → chevron-down-BkrpxJYD.js} +1 -1
  8. package/_chunks/{chevron-right-CM3ljziP.js → chevron-right-DZ79RmYV.js} +1 -1
  9. package/_chunks/{chevron-up-BLuNMPDn.js → chevron-up-Dt846uIR.js} +1 -1
  10. package/_chunks/{choice-chips-C5OxD0GV.js → choice-chips-BIGT7gjO.js} +4 -4
  11. package/_chunks/{clock-BOhPNlW3.js → clock-DTfr4p2S.js} +1 -1
  12. package/_chunks/{color-palette-7siNch__.js → color-palette-DL0f3igd.js} +3 -3
  13. package/_chunks/{color-picker-Cfc9eqZb.js → color-picker-BWBM9GE1.js} +7 -7
  14. package/_chunks/{component-C3k_8uIq.js → component-B22CtP21.js} +58 -43
  15. package/_chunks/{component-metadata-DlVkpW3h.js → component-metadata-B_hLjtM0.js} +4 -1
  16. package/_chunks/{configurator-actions-vRnI54mO.js → configurator-actions-BhIk4oM_.js} +18 -18
  17. package/_chunks/{configurator-field-icon-CmcM_sPs.js → configurator-field-icon-B0S_208W.js} +2 -2
  18. package/_chunks/{control-BRfF5DWQ.js → control-zCLB1tGz.js} +2 -2
  19. package/_chunks/{controller-BbiQuRt-.js → controller-ChkqiANQ.js} +1 -1
  20. package/_chunks/{controls-B3EgM_DS.js → controls-Ip2E6jIu.js} +10 -9
  21. package/_chunks/{date-control-87dcA5br.js → date-control-UmJvxQ5C.js} +4 -4
  22. package/_chunks/{date-time-CfiFYodx.js → date-time-B9YGqree.js} +57 -57
  23. package/_chunks/{delete-button-jneO24wa.js → delete-button-DQSK6G-4.js} +1 -1
  24. package/_chunks/{dialog.parts-NqEEVc9P.js → dialog.parts-CpMwNhTM.js} +5 -5
  25. package/_chunks/{duration-BGZ_qJ99.js → duration-BrsE4QgL.js} +15 -15
  26. package/_chunks/{editor-commit-Dyo-FMgD.js → editor-commit-BXIUX0As.js} +2 -2
  27. package/_chunks/{editor-popup-NNP9Fh9U.js → editor-popup-Ds0GPAcn.js} +3 -3
  28. package/_chunks/{field-configurator-DPulsY3l.js → field-configurator-BMQnmWNd.js} +10 -9
  29. package/_chunks/{field-context-C4_WrO2z.js → field-context-0oUi-w-G.js} +1 -1
  30. package/_chunks/{framework-mount-D4I8HpVp.js → framework-mount-CX0oj05W.js} +3 -3
  31. package/_chunks/{hooks.module-CG3gN83z.js → hooks.module-CXpO2xq6.js} +2 -2
  32. package/_chunks/{icon-toolbar-BAAdEvr9.js → icon-toolbar-C4J_Wqph.js} +6 -6
  33. package/_chunks/{jsxRuntime.module-F6UFnpT-.js → jsxRuntime.module-ksX_VSbv.js} +2 -2
  34. package/_chunks/{magnifying-glass-CvrTDSkB.js → magnifying-glass-BFZrFs8M.js} +1 -1
  35. package/_chunks/{minus-BOAR3A1C.js → minus-DE8NPK_D.js} +1 -1
  36. package/_chunks/{mount-C8CnIW9k.js → mount-BgI_QV2H.js} +7 -7
  37. package/_chunks/native-C9tJWAXF.js +52 -0
  38. package/_chunks/{native-CJm3eq3-.js → native-RudS9C_q.js} +2 -2
  39. package/_chunks/{native-control-um1L1wgZ.js → native-control-DjJ8Na3T.js} +49 -44
  40. package/_chunks/{number-input-CKiA4d1N.js → number-input-Bb5guKP4.js} +4 -4
  41. package/_chunks/{picker-igNshTRC.js → picker-DDUmhT93.js} +5 -5
  42. package/_chunks/{plus-CbGRkIGl.js → plus-BaXticu7.js} +1 -1
  43. package/_chunks/{popup-DECYM9FI.js → popup-HEUnOeq-.js} +5 -5
  44. package/_chunks/{preact.module-BBM36DnO.js → preact.module-DzTStiZX.js} +1 -1
  45. package/_chunks/{rating-choice-CepVfGUq.js → rating-choice-CtrABPp-.js} +3 -3
  46. package/_chunks/{render-bTk3curw.js → render-C6PFWlqh.js} +2 -2
  47. package/_chunks/{reorder-list-B4w3aARt.js → reorder-list-DvwZcFPH.js} +4 -4
  48. package/_chunks/{request-trail-B1zVRPEf.js → request-trail-D5PKrBlC.js} +11 -11
  49. package/_chunks/{rich-text-Ci4d6dHn.js → rich-text-DW1vcBAY.js} +31 -31
  50. package/_chunks/{rotate-left-BF6G883o.js → rotate-left-CTHmcGBP.js} +1 -1
  51. package/_chunks/{rotate-right-Iha5ScJ1.js → rotate-right-BIfKgVun.js} +1 -1
  52. package/_chunks/{selection-list-tooltips-m00U3L6z.js → selection-list-tooltips-j84Wufjj.js} +8 -4
  53. package/_chunks/{title-tooltip-ncldbUwS.js → title-tooltip-DKiWhsL7.js} +1 -1
  54. package/_chunks/tooltip-BkuH0JdW.js +93 -0
  55. package/_chunks/tooltip-session-BBKkwhLZ.js +244 -0
  56. package/_chunks/{tooltip-text-BN5WdGHn.js → tooltip-text-CH_c2J-J.js} +2 -2
  57. package/_chunks/top-layer-popup-DU1r_2v5.js +107 -0
  58. package/_chunks/{xmark-DD_PBvZI.js → xmark-DQRQfXZI.js} +1 -1
  59. package/activity-message.js +1 -1
  60. package/ai/index.js +2 -2
  61. package/angular/angular.d.ts +2 -0
  62. package/angular/angular.js +1 -0
  63. package/assignee/index.js +28 -28
  64. package/avatar/index.js +3 -3
  65. package/browser/favicon.svg +9 -0
  66. package/browser/pdf-viewer.css +2 -0
  67. package/browser/pdf.worker.min.mjs +28 -0
  68. package/browser/pdfjs-LICENSE +177 -0
  69. package/browser/revo-ui.global.js +671 -0
  70. package/browser/revo-ui.js +35538 -0
  71. package/browser/robots.txt +4 -0
  72. package/browser.d.ts +3 -0
  73. package/browser.js +34 -0
  74. package/brush-range/component.js +2 -2
  75. package/buttons/delete-button.js +1 -1
  76. package/buttons/remove-button.js +2 -2
  77. package/buttons/svg-button.js +4 -4
  78. package/calendar/_calendar.scss +12 -4
  79. package/calendar/calendar.js +1 -1
  80. package/calendar/day.js +1 -1
  81. package/calendar/header.js +2 -2
  82. package/calendar/index.js +2 -2
  83. package/calendar/month-grid.js +1 -1
  84. package/calendar/year-grid.js +1 -1
  85. package/checkbox/index.js +1 -1
  86. package/choice-chips/index.js +1 -1
  87. package/color-palette/color-palette.js +1 -1
  88. package/color-palette/color-picker.js +2 -2
  89. package/configurator-actions.js +1 -1
  90. package/configurator-aggregation-list.js +6 -6
  91. package/configurator-drop-zone.js +3 -3
  92. package/configurator-field-icon.js +1 -1
  93. package/configurator-focus.js +1 -1
  94. package/configurator-sections.js +3 -3
  95. package/control-presentation.js +2 -2
  96. package/controls.js +2 -2
  97. package/core/editor-popup.js +1 -1
  98. package/core/popover-controller.d.ts +31 -6
  99. package/core/popover-controller.js +171 -46
  100. package/core/popup-ownership.d.ts +1 -1
  101. package/core/tooltip-options.d.ts +143 -0
  102. package/core/tooltip-options.js +20 -0
  103. package/core/tooltip-session.d.ts +32 -8
  104. package/core/tooltip-surface.d.ts +14 -3
  105. package/core/tooltip.d.ts +20 -19
  106. package/core/top-layer-popup.d.ts +2 -1
  107. package/core/top-layer-popup.js +1 -1
  108. package/date-time/index.js +1 -1
  109. package/dialog/dialog.dom.js +3 -3
  110. package/dialog/dialog.parts.js +1 -1
  111. package/dialog/dialog.preact.js +1 -1
  112. package/distribution-chart/area-chart.js +3 -3
  113. package/distribution-chart/bar-chart.js +2 -2
  114. package/distribution-chart/index.js +1 -1
  115. package/distribution-chart/line-chart.js +2 -2
  116. package/dropdown/content.d.ts +3 -1
  117. package/dropdown/content.js +1 -1
  118. package/dropdown/control.js +1 -1
  119. package/dropdown/dropdown.service.js +56 -56
  120. package/dropdown/index.js +2 -2
  121. package/dropdown/lookup-field.js +7 -7
  122. package/dropdown/popup.js +1 -1
  123. package/duration/index.js +1 -1
  124. package/editor-actions.js +3 -3
  125. package/editor-layout/index.js +3 -3
  126. package/field-configurator.js +1 -1
  127. package/field-reorder.hook.js +1 -1
  128. package/filter/filters/slider/preact.js +1 -1
  129. package/filter/filters/slider/runtime.js +1 -1
  130. package/filter/filters/slider/single.js +2 -2
  131. package/filter-badge.js +4 -4
  132. package/filter-controls.js +3 -3
  133. package/form-controls/index.js +3 -3
  134. package/form-controls/presentation.js +4 -4
  135. package/formatting/index.js +7 -7
  136. package/framework.js +135 -135
  137. package/history-controls.js +3 -3
  138. package/icon-toolbar.js +1 -1
  139. package/icons/icon.js +1 -1
  140. package/legend.js +1 -1
  141. package/masked-input/index.js +3 -3
  142. package/native-control.js +1 -1
  143. package/native.js +29 -79
  144. package/number-input/index.js +1 -1
  145. package/package.json +21 -1
  146. package/pagination.js +1 -1
  147. package/pdf-viewer/controller.js +1 -1
  148. package/pdf-viewer/index.js +3 -3
  149. package/pickers.d.ts +11 -4
  150. package/preact-mount.js +1 -1
  151. package/preact.d.ts +2 -0
  152. package/preact.js +66 -65
  153. package/rating-choice.js +1 -1
  154. package/react-adapter.d.ts +1 -1
  155. package/react.d.ts +2 -0
  156. package/react.js +64 -63
  157. package/reorder-list.js +1 -1
  158. package/resource-picker/resource-picker-avatar.js +2 -2
  159. package/resource-picker/resource-picker-option.js +1 -1
  160. package/resource-picker/resource-picker-popup.js +2 -2
  161. package/resource-picker/resource-picker.js +5 -5
  162. package/rich-text/index.js +1 -1
  163. package/search-input/index.js +3 -3
  164. package/segmented-switch/index.js +1 -1
  165. package/select.js +1 -1
  166. package/selection-list.js +1 -1
  167. package/status-feedback/exit-snapshot.js +1 -1
  168. package/status-feedback/header.js +3 -3
  169. package/status-feedback/index.js +1 -1
  170. package/status-feedback/popover.js +1 -1
  171. package/status-feedback/render.js +1 -1
  172. package/styles.css +1 -1
  173. package/surfaces.d.ts +1 -0
  174. package/surfaces.js +25 -24
  175. package/svelte.d.ts +2 -0
  176. package/svelte.js +30 -29
  177. package/switch/index.js +2 -2
  178. package/time-grid.js +4 -4
  179. package/timeline-track/_style.scss +33 -2
  180. package/timeline-track/component.d.ts +10 -1
  181. package/timeline-track/index.js +136 -74
  182. package/ui.css +1 -1
  183. package/vue.d.ts +11 -13
  184. package/vue.js +94 -90
  185. package/_chunks/tooltip-h-Z8yFBY.js +0 -54
  186. package/_chunks/tooltip-session-CBtRMBPr.js +0 -110
  187. package/_chunks/top-layer-popup-CKJ7VJOF.js +0 -59
@@ -1,2 +1,2 @@
1
- /** Includes portalled descendants linked by their owning trigger's aria-controls. */
1
+ /** Includes semantic popups and auxiliary controls sharing their portalled surface. */
2
2
  export declare function ownsPopupTarget(root: HTMLElement | null | undefined, target: Node | null): boolean;
@@ -0,0 +1,143 @@
1
+ import { ComponentChildren, JSX } from '../_vendor/preact/src/index';
2
+ export type TooltipAnchor = HTMLElement | SVGElement;
3
+ export type TooltipSide = 'top' | 'bottom' | 'left' | 'right' | 'inline-start' | 'inline-end';
4
+ export type TooltipAlign = 'start' | 'center' | 'end';
5
+ export type TooltipReason = 'hover' | 'focus' | 'click' | 'imperative' | 'controlled' | 'escape' | 'outside-press' | 'pointer-leave' | 'blur' | 'press' | 'disabled' | 'owner-change' | 'anchor-removed' | 'viewport' | 'destroy';
6
+ export interface TooltipChangeDetails {
7
+ reason: TooltipReason;
8
+ target: TooltipAnchor;
9
+ event?: Event;
10
+ }
11
+ export interface TooltipContentContext extends TooltipChangeDetails {
12
+ signal: AbortSignal;
13
+ }
14
+ export type TooltipContent = ComponentChildren | Node;
15
+ export interface TooltipOffsetContext {
16
+ anchor: DOMRect;
17
+ popup: DOMRect;
18
+ side: Exclude<TooltipSide, 'inline-start' | 'inline-end'>;
19
+ align: TooltipAlign;
20
+ }
21
+ export type TooltipOffset = number | ((context: TooltipOffsetContext) => number);
22
+ export interface TooltipPositionOptions {
23
+ /** Preferred side; defaults to top. Logical sides follow direction. */
24
+ side?: TooltipSide;
25
+ /** Backward-compatible alias for side="top". */
26
+ placement?: 'above';
27
+ /** Cross-axis alignment; defaults to center. */
28
+ align?: TooltipAlign;
29
+ /** Distance from the trigger in pixels; defaults to 8. */
30
+ sideOffset?: TooltipOffset;
31
+ /** Cross-axis displacement in pixels; defaults to 0. */
32
+ alignOffset?: TooltipOffset;
33
+ /** Override the computed direction of the trigger. */
34
+ direction?: 'ltr' | 'rtl';
35
+ /** Boundary intersected with the viewport; viewport by default. */
36
+ collisionBoundary?: Element | DOMRect;
37
+ /** Inset from each boundary edge; defaults to 8px per unspecified edge. */
38
+ collisionPadding?: number | Partial<Record<'top' | 'bottom' | 'left' | 'right', number>>;
39
+ /** Flip and shift by default; false disables collision handling. */
40
+ collisionAvoidance?: boolean | {
41
+ side?: 'flip' | 'none';
42
+ align?: 'shift' | 'none';
43
+ };
44
+ /** Follow scrolling triggers even without keyboard focus. */
45
+ sticky?: boolean;
46
+ }
47
+ export interface TooltipGroupOptions {
48
+ /** Hover delay in milliseconds; groups default to 600, individual tooltips to 0. */
49
+ delay?: number;
50
+ /** Pointer-exit delay in milliseconds; defaults to 0. */
51
+ closeDelay?: number;
52
+ /** Warm window after closing in milliseconds; defaults to 400. */
53
+ skipDelayDuration?: number;
54
+ }
55
+ /** Explicitly shared across framework roots; no renderer-specific context required. */
56
+ export declare class TooltipGroup {
57
+ options: TooltipGroupOptions;
58
+ private active;
59
+ private warmUntil;
60
+ constructor(options?: TooltipGroupOptions);
61
+ getDelay(): number;
62
+ opened(owner: object): void;
63
+ closed(owner: object): void;
64
+ }
65
+ export declare const createTooltipGroup: (options?: TooltipGroupOptions) => TooltipGroup;
66
+ export interface TooltipOptions extends TooltipPositionOptions {
67
+ /** Stable description ID; generated by default. */
68
+ id?: string;
69
+ /** Hover includes focus by default; arrays select explicit modes. */
70
+ trigger?: 'hover' | 'focus' | 'click' | 'manual' | readonly ('hover' | 'focus' | 'click')[];
71
+ /** Delegate to matching descendants. Hover/focus on child nodes resolves to their matching trigger. */
72
+ filter?: string;
73
+ /** Suppress the tooltip without disabling the trigger. */
74
+ disabled?: boolean;
75
+ /** Controlled visibility. Interaction requests notify onOpenChange; the supplied value authorizes visibility. */
76
+ open?: boolean;
77
+ /** Hover delay in milliseconds; groups default to 600, individual tooltips to 0. */
78
+ delay?: number;
79
+ /** Pointer-exit delay in milliseconds; defaults to 0. */
80
+ closeDelay?: number;
81
+ /** Keyboard-focus delay in milliseconds; defaults to 0. */
82
+ focusDelay?: number;
83
+ /** Shared warm-up timing across separate tooltip/framework roots. */
84
+ group?: TooltipGroup;
85
+ /** Dismiss on pointer exit; defaults to true. */
86
+ autoHide?: boolean;
87
+ /** Disable the hover bridge to the popup; defaults to false. */
88
+ disableHoverablePopup?: boolean;
89
+ /** Allow Escape dismissal; defaults to true. */
90
+ closeOnEscape?: boolean;
91
+ /** Allow outside-pointer dismissal; defaults to true. */
92
+ closeOnOutside?: boolean;
93
+ /** Dismiss ordinary hints on activation; defaults to true. */
94
+ hideOnClick?: boolean;
95
+ /** Portal destination; detached surfaces mount in the trigger document body. */
96
+ appendTo?: HTMLElement | ShadowRoot;
97
+ /** Retain the hidden surface after opening; destroy still disposes it. */
98
+ keepMounted?: boolean;
99
+ /** Show a decorative positioning arrow; defaults to false. */
100
+ arrow?: boolean;
101
+ /** Popup width: pixels or a CSS length. */
102
+ width?: number | string;
103
+ /** Popup height: pixels or a CSS length. */
104
+ height?: number | string;
105
+ /** Maximum width; defaults to 360px constrained by the viewport. */
106
+ maxWidth?: number | string;
107
+ /** Maximum height; defaults to the viewport minus 16px. */
108
+ maxHeight?: number | string;
109
+ /** Additional surface classes. */
110
+ className?: string;
111
+ /** Additional inline surface styles and theme variables. */
112
+ style?: JSX.CSSProperties;
113
+ /** Zero by default. Shared reduced-motion settings override this duration. */
114
+ transitionDuration?: number;
115
+ /** Return false to cancel an interaction request. Forced cleanup bypasses cancellation. */
116
+ onBeforeOpenChange?: (open: boolean, details: TooltipChangeDetails) => boolean | void;
117
+ /** Visibility request with its trigger, reason and originating event. */
118
+ onOpenChange?: (open: boolean, details: TooltipChangeDetails) => void;
119
+ /** Actual visibility completion after motion, or immediately without it. */
120
+ onOpenChangeComplete?: (open: boolean, details: TooltipChangeDetails) => void;
121
+ /** Runs when the popup logically opens. */
122
+ onShow?: (details: TooltipChangeDetails) => void;
123
+ /** Runs when the popup logically closes; destruction silently cleans up. */
124
+ onHide?: (details: TooltipChangeDetails) => void;
125
+ /** Runs when an active or pending popup handles Escape. */
126
+ onEscape?: () => void;
127
+ }
128
+ export interface TooltipControllerOptions extends TooltipOptions {
129
+ /** Optional caller-supplied presentation element. */
130
+ surface?: HTMLElement;
131
+ /** Render descriptive content for the active trigger. */
132
+ renderContent?: (context: TooltipChangeDetails) => TooltipContent;
133
+ /** Async text stays text; the host owns fetching, authentication and error wording. */
134
+ loadContent?: (context: TooltipContentContext) => Promise<string>;
135
+ /** Caller-translated content shown while loading. */
136
+ loadingContent?: TooltipContent;
137
+ /** Caller-translated load failure content; omitted failures dismiss the popup. */
138
+ errorContent?: TooltipContent;
139
+ /** Current asynchronous content loaded successfully. */
140
+ onContentLoad?: (content: string, details: TooltipChangeDetails) => void;
141
+ /** Current asynchronous content failed to load; canceled/stale failures are ignored. */
142
+ onError?: (error: unknown, details: TooltipChangeDetails) => void;
143
+ }
@@ -0,0 +1,20 @@
1
+ //#region package/core/tooltip-options.ts
2
+ var e = class {
3
+ options;
4
+ active = /* @__PURE__ */ new Set();
5
+ warmUntil = 0;
6
+ constructor(e = {}) {
7
+ this.options = e;
8
+ }
9
+ getDelay() {
10
+ return this.active.size || Date.now() < this.warmUntil ? 0 : Math.max(0, this.options.delay ?? 600);
11
+ }
12
+ opened(e) {
13
+ this.active.add(e);
14
+ }
15
+ closed(e) {
16
+ this.active.delete(e) && (this.warmUntil = Date.now() + Math.max(0, this.options.skipDelayDuration ?? 400));
17
+ }
18
+ }, t = (t) => new e(t);
19
+ //#endregion
20
+ export { e as TooltipGroup, t as createTooltipGroup };
@@ -1,28 +1,52 @@
1
- export type TooltipAnchor = HTMLElement | SVGElement;
2
- /** One lifecycle for declarative and imperative tooltip adapters. */
1
+ import { TooltipAnchor, TooltipChangeDetails, TooltipOptions, TooltipReason } from './tooltip-options';
2
+ export type { TooltipAnchor } from './tooltip-options';
3
+ /** Shared state, ownership, placement and timers for every tooltip adapter. */
3
4
  export declare class TooltipSession {
4
5
  private anchor?;
5
6
  private surface?;
6
7
  private timer?;
8
+ private closeTimer?;
9
+ private transitionTimer?;
10
+ private frame?;
7
11
  private mode?;
8
12
  private cleanup?;
9
- private mounted;
13
+ private restoreMotion?;
14
+ private managedMount;
15
+ private home?;
10
16
  private pointerFocus;
17
+ private pointerTravel;
18
+ private hoverArea?;
11
19
  private open;
20
+ private disposed;
12
21
  private addedDescription;
22
+ private classes;
23
+ private styleKeys;
24
+ private details?;
25
+ private options;
26
+ onShow?: (details: TooltipChangeDetails) => void;
13
27
  onHide?: () => void;
14
28
  onEscape?: () => void;
29
+ /** Legacy direct-session delay; configured options/group take precedence. */
15
30
  delay: number;
16
31
  get isOpen(): boolean;
17
32
  get isPending(): boolean;
33
+ get target(): TooltipAnchor | undefined;
34
+ get element(): HTMLElement | undefined;
35
+ configure(options: TooltipOptions): void;
18
36
  setSurface(surface: HTMLElement | null): void;
19
- show(anchor: TooltipAnchor): void;
37
+ private duration;
38
+ private request;
39
+ show(anchor: TooltipAnchor, reason?: TooltipReason, event?: Event): void;
40
+ private applyStyles;
20
41
  private present;
21
- hide(): void;
22
- focus(anchor: TooltipAnchor): void;
23
- blur(): void;
42
+ private position;
43
+ refresh(): void;
44
+ hide(reason?: TooltipReason, event?: Event, force?: boolean): void;
45
+ focus(anchor: TooltipAnchor, event?: Event): void;
46
+ blur(event?: Event): void;
24
47
  pointerDown(): void;
25
- leave(anchor?: TooltipAnchor): void;
48
+ leave(anchor?: TooltipAnchor, event?: MouseEvent): void;
49
+ private insideHoverArea;
26
50
  keyDown(event: KeyboardEvent): void;
27
51
  destroy(): void;
28
52
  private listen;
@@ -1,13 +1,24 @@
1
+ import { TooltipAlign, TooltipPositionOptions } from './tooltip-options';
2
+ import { JSX } from '../_vendor/preact/src/index';
1
3
  /** Shared presentation for text hints and rich product/chart tooltip content. */
2
- export declare const TOOLTIP_STYLES = "\n.rv-tooltip.rv-tooltip {\n box-sizing: border-box;\n position: fixed;\n z-index: 100000;\n margin: 0;\n inset: auto;\n transform: none;\n opacity: 1;\n visibility: visible;\n padding: 6px 10px;\n border: 0;\n border-radius: 6px;\n background: var(--rv-tooltip-bg, #191919);\n color: var(--rv-tooltip-fg, #fff);\n box-shadow: 0 4px 14px var(--rv-ui-shadow, rgb(0 0 0 / 18%));\n font: 12px/1.4 var(--rv-ui-font-family, Inter, ui-sans-serif, system-ui, sans-serif);\n font-weight: 400;\n text-align: start;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n max-width: min(360px, calc(100vw - 16px));\n max-height: calc(100dvh - 16px);\n overflow: auto;\n pointer-events: none;\n}\n.rv-tooltip[hidden], .rv-tooltip[data-visible=\"false\"] { display: none; }\n.rv-tooltip[data-overflow] { pointer-events: auto; }\n@media (forced-colors: active) {\n .rv-tooltip.rv-tooltip { color: CanvasText; background: Canvas; border: 1px solid CanvasText; }\n}\n";
4
+ export declare const TOOLTIP_STYLES = "\n.rv-tooltip.rv-tooltip {\n box-sizing: border-box;\n position: fixed;\n flex-direction: column;\n z-index: 100000;\n margin: 0;\n inset: auto;\n transform: none;\n opacity: 1;\n visibility: visible;\n padding: 6px 10px;\n border: 0;\n border-radius: 6px;\n background: var(--rv-tooltip-bg, #191919);\n color: var(--rv-tooltip-fg, #fff);\n box-shadow: 0 4px 14px var(--rv-ui-shadow, rgb(0 0 0 / 18%));\n font: 12px/1.4 var(--rv-ui-font-family, Inter, ui-sans-serif, system-ui, sans-serif);\n font-weight: 400;\n text-align: start;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n max-width: min(360px, calc(100vw - 16px));\n max-height: calc(100dvh - 16px);\n overflow: auto;\n pointer-events: auto;\n}\n.rv-tooltip[data-arrow=\"true\"] { overflow: visible; }\n.rv-tooltip__content { display:block; min-height:0; max-height:inherit; overflow:auto; }\n.rv-tooltip[data-arrow=\"true\"]::before { content:''; position:absolute; width:8px; height:8px; background:inherit; transform:rotate(45deg); pointer-events:none; }\n.rv-tooltip[data-side=\"top\"]::before { bottom:-4px; left:calc(var(--rv-tooltip-arrow-x) - 4px); }\n.rv-tooltip[data-side=\"bottom\"]::before { top:-4px; left:calc(var(--rv-tooltip-arrow-x) - 4px); }\n.rv-tooltip[data-side=\"left\"]::before { right:-4px; top:calc(var(--rv-tooltip-arrow-y) - 4px); }\n.rv-tooltip[data-side=\"right\"]::before { left:-4px; top:calc(var(--rv-tooltip-arrow-y) - 4px); }\n.rv-tooltip[data-duration=\"true\"] { transition: opacity var(--rv-tooltip-duration); }\n.rv-tooltip[data-state=\"opening\"], .rv-tooltip[data-state=\"closing\"] { opacity:0; }\n.rv-tooltip[data-state=\"closing\"] { pointer-events:none; }\n@media (prefers-reduced-motion:reduce) { .rv-tooltip[data-duration=\"true\"] { transition:none; } }\n.rv-tooltip[hidden], .rv-tooltip[data-visible=\"false\"] { display: none; }\n.rv-tooltip[data-overflow] { pointer-events: auto; }\n@media (forced-colors: active) {\n .rv-tooltip.rv-tooltip { color: CanvasText; background: Canvas; border: 1px solid CanvasText; }\n}\n";
3
5
  /** Also installs into shadow roots/fullscreen roots used by standalone charts. */
4
6
  export declare function ensureTooltipStyles(root: Document | ShadowRoot): void;
5
7
  export declare function prepareTooltipSurface(element: HTMLElement): void;
6
- /** Shared hint placement: centered above the trigger, with a bounded below fallback. */
8
+ /** Fixed-position coordinates, with physical/logical sides and bounded flip/shift. */
7
9
  export declare function calculateTooltipPosition(anchor: DOMRect, popup: DOMRect, viewport: {
8
10
  width: number;
9
11
  height: number;
10
- }): import('./anchored-popover').AnchoredPopoverPosition | {
12
+ }, options?: TooltipPositionOptions): {
13
+ side: "left" | "right" | "top" | "bottom";
14
+ align: TooltipAlign;
15
+ arrowX: number;
16
+ arrowY: number;
17
+ availableWidth: number;
18
+ availableHeight: number;
11
19
  left: number;
12
20
  top: number;
13
21
  };
22
+ /** Use the renderer's public style contract, including its unitless property list.
23
+ * The detached probe never participates in layout and is disposed after copying. */
24
+ export declare function normalizeTooltipStyles(document: Document, style?: JSX.CSSProperties): (readonly [string, string, string])[];
package/core/tooltip.d.ts CHANGED
@@ -1,35 +1,36 @@
1
1
  import { h, ComponentChildren, TargetedEvent } from '../_vendor/preact/src/index';
2
- type TooltipPresentation = {
3
- className?: string;
4
- placement?: 'above';
5
- delay?: number;
2
+ import { TooltipAnchor, TooltipOptions } from './tooltip-options';
3
+ export interface TooltipPresentation extends TooltipOptions {
6
4
  content?: ComponentChildren;
7
- };
8
- /** Preact adapter; the session owns all tooltip behavior and DOM lifecycle. */
5
+ defaultOpen?: boolean;
6
+ anchor?: TooltipAnchor | null;
7
+ }
8
+ /** Spread triggerProps onto your own focusable trigger and render tooltip once. */
9
9
  export declare function useControlTooltip(text: string, _floating?: boolean, presentation?: TooltipPresentation): {
10
10
  readonly id: string;
11
11
  readonly hide: () => void;
12
+ readonly show: () => void;
13
+ readonly refresh: () => void;
12
14
  readonly triggerProps: {
13
15
  readonly 'aria-describedby': string;
14
16
  readonly onFocus: (event: TargetedEvent<HTMLElement>) => void;
15
- readonly onBlur: () => void;
17
+ readonly onBlur: (event?: TargetedEvent<HTMLElement>) => void;
16
18
  readonly onMouseEnter: (event: TargetedEvent<HTMLElement>) => void;
17
19
  readonly onMouseLeave: (event?: TargetedEvent<HTMLElement>) => void;
18
- readonly onPointerDown: (_event: TargetedEvent<HTMLElement>) => void;
20
+ readonly onPointerDown: (_event?: TargetedEvent<HTMLElement>) => void;
19
21
  readonly onPointerCancel: () => void;
22
+ readonly onClickCapture: (event: TargetedEvent<HTMLElement>) => void;
20
23
  readonly onKeyDown: (event: KeyboardEvent) => void;
21
24
  };
22
25
  readonly tooltip: h.JSX.Element;
23
26
  };
24
- /** Controlled surface adapter retained for existing consumers. */
25
- export declare function ControlTooltip({ id, text, content, visible, anchor, className, }: {
26
- readonly id: string;
27
- readonly text: string;
28
- readonly content?: ComponentChildren;
29
- readonly visible: boolean;
30
- readonly anchor?: HTMLElement | null;
31
- readonly className?: string;
32
- readonly placement?: 'above';
33
- }): h.JSX.Element;
27
+ export interface ControlTooltipProps extends TooltipOptions {
28
+ id: string;
29
+ text: string;
30
+ content?: ComponentChildren;
31
+ visible: boolean;
32
+ anchor?: TooltipAnchor | null;
33
+ }
34
+ /** A controlled presentation surface; the host owns trigger markup and focus. */
35
+ export declare function ControlTooltip({ id, text, content, visible, anchor, className, ...options }: ControlTooltipProps): h.JSX.Element;
34
36
  export declare const useTooltip: typeof useControlTooltip;
35
- export {};
@@ -1,5 +1,6 @@
1
+ import { ownsPopupTarget } from './popup-ownership';
1
2
  export { ensureTooltipStyles, prepareTooltipSurface, TOOLTIP_STYLES, } from './tooltip-surface';
2
- export { ownsPopupTarget } from './popup-ownership';
3
+ export { ownsPopupTarget };
3
4
  export type TopLayerPopupMode = 'popover' | 'fallback';
4
5
  export type TopLayerPopupElement = HTMLElement & {
5
6
  showPopover?: () => void;
@@ -1 +1 @@
1
- export { a as TOOLTIP_STYLES, s as ensureTooltipStyles, t as hideTopLayerPopup, i as ownsPopupTarget, n as popupOwnsTarget, c as prepareTooltipSurface, r as showTopLayerPopup } from "../_chunks/top-layer-popup-CKJ7VJOF.js";
1
+ export { a as TOOLTIP_STYLES, s as ensureTooltipStyles, t as hideTopLayerPopup, i as ownsPopupTarget, n as popupOwnsTarget, l as prepareTooltipSurface, r as showTopLayerPopup } from "../_chunks/top-layer-popup-DU1r_2v5.js";
@@ -1 +1 @@
1
- export { r as DateTimeField, i as TemporalDraft, a as TemporalPicker, n as attachTemporalPicker, o as defaultTemporalPickerText, t as renderTemporalValue, s as temporalPickerLabel } from "../_chunks/date-time-CfiFYodx.js";
1
+ export { r as DateTimeField, i as TemporalDraft, a as TemporalPicker, n as attachTemporalPicker, o as defaultTemporalPickerText, t as renderTemporalValue, s as temporalPickerLabel } from "../_chunks/date-time-B9YGqree.js";
@@ -1,7 +1,7 @@
1
- import { t as e } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
1
+ import { t as e } from "../_chunks/jsxRuntime.module-ksX_VSbv.js";
2
2
  import { createPreactElement as t } from "../preact-mount.js";
3
- import { t as n } from "../_chunks/native-control-um1L1wgZ.js";
4
- import { a as r, i, n as a, r as o, s } from "../_chunks/dialog.parts-NqEEVc9P.js";
3
+ import { t as n } from "../_chunks/native-control-DjJ8Na3T.js";
4
+ import { a as r, i, n as a, r as o, s } from "../_chunks/dialog.parts-CpMwNhTM.js";
5
5
  //#region package/dialog/dialog.dom.tsx
6
6
  function c(n, c, l) {
7
7
  let u = f(), d, p, m, h, g;
@@ -1 +1 @@
1
- export { t as DialogActionFooter, n as DialogActions, r as DialogBody, i as DialogCloseButton, a as DialogFooter, o as DialogForm, s as DialogHeader, c as DialogTitleInput, l as EditableDialogHeader } from "../_chunks/dialog.parts-NqEEVc9P.js";
1
+ export { t as DialogActionFooter, n as DialogActions, r as DialogBody, i as DialogCloseButton, a as DialogFooter, o as DialogForm, s as DialogHeader, c as DialogTitleInput, l as EditableDialogHeader } from "../_chunks/dialog.parts-CpMwNhTM.js";
@@ -1,4 +1,4 @@
1
- import { c as e } from "../_chunks/hooks.module-CG3gN83z.js";
1
+ import { c as e } from "../_chunks/hooks.module-CXpO2xq6.js";
2
2
  import { attachDialogDrag as t } from "./dialog.drag.js";
3
3
  //#region package/dialog/dialog.preact.ts
4
4
  function n({ targetRef: n, handleRef: r, enabled: i = !0 }) {
@@ -1,6 +1,6 @@
1
- import { a as e } from "../_chunks/hooks.module-CG3gN83z.js";
2
- import { t } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
3
- import { i as n, n as r, r as i, t as a } from "../_chunks/chart-frame-GprenwEg.js";
1
+ import { a as e } from "../_chunks/hooks.module-CXpO2xq6.js";
2
+ import { t } from "../_chunks/jsxRuntime.module-ksX_VSbv.js";
3
+ import { i as n, n as r, r as i, t as a } from "../_chunks/chart-frame-pj5EQxXr.js";
4
4
  //#region package/distribution-chart/area-chart.tsx
5
5
  function o(o) {
6
6
  let s = `rv-area-${e().replace(/[^a-zA-Z0-9_-]/g, "")}`, { points: c } = i(o.data), l = o.data.some((e) => e.selected !== void 0), u = c.slice(1).map((e, t) => {
@@ -1,5 +1,5 @@
1
- import { t as e } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
2
- import { r as t, t as n } from "../_chunks/chart-frame-GprenwEg.js";
1
+ import { t as e } from "../_chunks/jsxRuntime.module-ksX_VSbv.js";
2
+ import { r as t, t as n } from "../_chunks/chart-frame-pj5EQxXr.js";
3
3
  //#region package/distribution-chart/bar-chart.tsx
4
4
  function r(r) {
5
5
  let { values: i, max: a } = t(r.data), o = r.data.map((e, t) => typeof r.barColor == "function" ? r.barColor(e, t) : r.barColor);
@@ -1,4 +1,4 @@
1
- import { t as e } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
1
+ import { t as e } from "../_chunks/jsxRuntime.module-ksX_VSbv.js";
2
2
  import { BarChart as t } from "./bar-chart.js";
3
3
  import { LineChart as n } from "./line-chart.js";
4
4
  import { AreaChart as r } from "./area-chart.js";
@@ -1,5 +1,5 @@
1
- import { t as e } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
2
- import { i as t, n, r, t as i } from "../_chunks/chart-frame-GprenwEg.js";
1
+ import { t as e } from "../_chunks/jsxRuntime.module-ksX_VSbv.js";
2
+ import { i as t, n, r, t as i } from "../_chunks/chart-frame-pj5EQxXr.js";
3
3
  //#region package/distribution-chart/line-chart.tsx
4
4
  function a(a) {
5
5
  let { points: o } = r(a.data);
@@ -15,6 +15,8 @@ type DropdownContentProps<T = any> = {
15
15
  dropdownListRef: RefObject<HTMLUListElement>;
16
16
  theme?: string | null;
17
17
  optionIdPrefix: string;
18
+ listboxLabel?: string;
19
+ loading?: boolean;
18
20
  };
19
21
  export declare function DropdownPopupContent<T = any>({ options, selectedValues, remote, value, onChange, config, multiSelect, search, searchPlaceholder, listboxId, searchId, renderOption, renderNoResults, onClose, onTabNavigation, theme, }: {
20
22
  options: DropdownOption<T>[];
@@ -39,5 +41,5 @@ export declare function DropdownPopupContent<T = any>({ options, selectedValues,
39
41
  onTabNavigation?: () => void;
40
42
  theme?: string | null;
41
43
  }): h.JSX.Element;
42
- export declare function DropdownContent<T = any>({ options, filteredOptions, multiSelect, focusedIndex, selectedOptions, onKeyDown, onSelect, onFocusChange, renderOption, renderNoResults, dropdownListRef, theme, optionIdPrefix, }: DropdownContentProps<T>): h.JSX.Element;
44
+ export declare function DropdownContent<T = any>({ options, filteredOptions, multiSelect, focusedIndex, selectedOptions, onKeyDown, onSelect, onFocusChange, renderOption, renderNoResults, dropdownListRef, theme, optionIdPrefix, listboxLabel, loading, }: DropdownContentProps<T>): h.JSX.Element;
43
45
  export {};
@@ -1 +1 @@
1
- export { f as DropdownContent, p as DropdownPopupContent } from "../_chunks/native-control-um1L1wgZ.js";
1
+ export { f as DropdownContent, p as DropdownPopupContent } from "../_chunks/native-control-DjJ8Na3T.js";
@@ -1 +1 @@
1
- export { t as createDropdownControl, n as renderDropdownControl } from "../_chunks/control-BRfF5DWQ.js";
1
+ export { t as createDropdownControl, n as renderDropdownControl } from "../_chunks/control-zCLB1tGz.js";
@@ -1,105 +1,105 @@
1
- import { c as e, i as t, n, o as r, t as i } from "../_chunks/hooks.module-CG3gN83z.js";
1
+ import { c as e, i as t, n, o as r, r as i, t as a } from "../_chunks/hooks.module-CXpO2xq6.js";
2
2
  //#region package/dropdown/dropdown.service.ts
3
- var a = (e, t) => e.label.toLowerCase().includes(t.toLowerCase()), o = (e, t, n) => {
3
+ var o = (e, t) => e.label.toLowerCase().includes(t.toLowerCase()), s = (e, t, n) => {
4
4
  if (n === "none") return 0;
5
5
  let r = e.label.localeCompare(t.label);
6
6
  return n === "asc" ? r : -r;
7
7
  };
8
- function s(e, t, n) {
8
+ function c(e, t, n) {
9
9
  if (t === void 0) return [];
10
10
  if (n && Array.isArray(t)) return e.filter((e) => t.some((t) => JSON.stringify(t) === JSON.stringify(e.value)));
11
11
  let r = e.find((e) => JSON.stringify(e.value) === JSON.stringify(t));
12
12
  return r ? [r] : [];
13
13
  }
14
- function c(c, l, u, d = {}, f, p) {
15
- let { search: m = !1, filterFunction: h = a, sortDirection: g = "none", sortFunction: _ = o, multiSelect: v = !1, autocomplete: y = !1, initialSearch: b = "" } = d, [x, S] = t(b), [C, w] = t(-1), [T, E] = t(() => s(c, l, v)), D = i(!1);
14
+ function l(l, u, d, f = {}, p, m) {
15
+ let { search: h = !1, filterFunction: g = o, sortDirection: _ = "none", sortFunction: v = s, multiSelect: y = !1, autocomplete: b = !1, initialSearch: x = "" } = f, [S, C] = t(x), [w, T] = t(-1), [E, D] = t(() => c(l, u, y)), O = a(!1);
16
16
  e(() => {
17
- E(p?.selected ?? s(c, l, v));
17
+ D(m?.selected ?? c(l, u, y));
18
18
  }, [
19
+ u,
19
20
  l,
20
- c,
21
- v,
22
- p?.selected
21
+ y,
22
+ m?.selected
23
23
  ]);
24
- let O = n(() => {
25
- if (p) return c;
26
- let e = [...c];
27
- return m && x && (e = e.filter((e) => h(e, x))), g !== "none" && e.sort((e, t) => _(e, t, g)), e;
24
+ let k = n(() => {
25
+ if (m) return l;
26
+ let e = [...l];
27
+ return h && S && (e = e.filter((e) => g(e, S))), _ !== "none" && e.sort((e, t) => v(e, t, _)), e;
28
28
  }, [
29
- c,
30
- m,
31
- x,
29
+ l,
32
30
  h,
31
+ S,
33
32
  g,
34
33
  _,
35
- !!p
34
+ v,
35
+ !!m
36
36
  ]);
37
- e(() => {
38
- D.current = !1, S(b);
39
- }, [b]), e(() => {
40
- O.length ? w((e) => {
41
- if (D.current && e >= 0 && e < O.length && !O[e].disabled) return e;
42
- let t = O.findIndex((e) => !e.disabled && T.some((t) => JSON.stringify(t.value) === JSON.stringify(e.value)));
37
+ i(() => {
38
+ O.current = !1, C(x);
39
+ }, [x]), e(() => {
40
+ k.length ? T((e) => {
41
+ if (O.current && e >= 0 && e < k.length && !k[e].disabled) return e;
42
+ let t = k.findIndex((e) => !e.disabled && E.some((t) => JSON.stringify(t.value) === JSON.stringify(e.value)));
43
43
  if (t >= 0) {
44
- let n = O[e];
45
- if (!T.some((e) => JSON.stringify(e.value) === JSON.stringify(n?.value))) return t;
44
+ let n = k[e];
45
+ if (!E.some((e) => JSON.stringify(e.value) === JSON.stringify(n?.value))) return t;
46
46
  }
47
- return e >= 0 && e < O.length && !O[e].disabled ? e : t >= 0 ? t : O.findIndex((e) => !e.disabled);
48
- }) : w(-1);
49
- }, [O, T]);
50
- let k = r((e) => {
47
+ return e >= 0 && e < k.length && !k[e].disabled ? e : t >= 0 ? t : k.findIndex((e) => !e.disabled);
48
+ }) : T(-1);
49
+ }, [k, E]);
50
+ let A = r((e) => {
51
51
  if (!e.disabled) {
52
- if (v) {
53
- let t = T.some((t) => JSON.stringify(t.value) === JSON.stringify(e.value)), n;
54
- n = t ? T.filter((t) => JSON.stringify(t.value) !== JSON.stringify(e.value)) : [...T, e], E(n), u(n.map((e) => e.value)), y && S("");
55
- } else E([e]), u(e.value), f && f();
52
+ if (y) {
53
+ let t = E.some((t) => JSON.stringify(t.value) === JSON.stringify(e.value)), n;
54
+ n = t ? E.filter((t) => JSON.stringify(t.value) !== JSON.stringify(e.value)) : [...E, e], D(n), d(n.map((e) => e.value)), b && C("");
55
+ } else D([e]), d(e.value), p && p();
56
56
  }
57
57
  }, [
58
- v,
59
- T,
60
- u,
61
58
  y,
62
- f
63
- ]), A = (e, t) => {
64
- let n = O.length, r = e < 0 ? t === 1 ? -1 : n : e;
59
+ E,
60
+ d,
61
+ b,
62
+ p
63
+ ]), j = (e, t) => {
64
+ let n = k.length, r = e < 0 ? t === 1 ? -1 : n : e;
65
65
  for (let e = 1; e <= n; e++) {
66
66
  let i = ((r + t * e) % n + n) % n;
67
- if (!O[i].disabled) return i;
67
+ if (!k[i].disabled) return i;
68
68
  }
69
69
  return -1;
70
70
  };
71
71
  return {
72
- searchValue: x,
73
- focusedIndex: C,
74
- selectedOptions: T,
75
- filteredOptions: O,
76
- handleSelect: k,
72
+ searchValue: S,
73
+ focusedIndex: w,
74
+ selectedOptions: E,
75
+ filteredOptions: k,
76
+ handleSelect: A,
77
77
  handleKeyDown: r((e) => {
78
78
  switch (e.key) {
79
79
  case "Escape":
80
80
  e.preventDefault(), e.stopPropagation();
81
81
  break;
82
82
  case "ArrowDown":
83
- e.preventDefault(), e.stopPropagation(), D.current = !0, w((e) => A(e, 1));
83
+ e.preventDefault(), e.stopPropagation(), O.current = !0, T((e) => j(e, 1));
84
84
  break;
85
85
  case "ArrowUp":
86
- e.preventDefault(), e.stopPropagation(), D.current = !0, w((e) => A(e, -1));
86
+ e.preventDefault(), e.stopPropagation(), O.current = !0, T((e) => j(e, -1));
87
87
  break;
88
88
  case "Enter":
89
- case " ": e.preventDefault(), e.stopPropagation(), C >= 0 && C < O.length && k(O[C]);
89
+ case " ": e.preventDefault(), e.stopPropagation(), w >= 0 && w < k.length && A(k[w]);
90
90
  }
91
91
  }, [
92
- O,
93
- C,
94
- k
92
+ k,
93
+ w,
94
+ A
95
95
  ]),
96
96
  handleSearchChange: r((e) => {
97
97
  let t = e.currentTarget.value;
98
- t !== x && (D.current = !1, S(t), p?.search(t), w(-1));
99
- }, [p, x]),
100
- isOptionSelected: r((e) => T.some((t) => JSON.stringify(t.value) === JSON.stringify(e.value)), [T]),
101
- setFocusedIndex: w
98
+ t !== S && (O.current = !1, C(t), m?.search(t), T(-1));
99
+ }, [m, S]),
100
+ isOptionSelected: r((e) => E.some((t) => JSON.stringify(t.value) === JSON.stringify(e.value)), [E]),
101
+ setFocusedIndex: T
102
102
  };
103
103
  }
104
104
  //#endregion
105
- export { c as useDropdownService };
105
+ export { l as useDropdownService };
package/dropdown/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import { d as e, l as t, p as n, u as r } from "../_chunks/native-control-um1L1wgZ.js";
2
- import { t as i } from "../_chunks/popup-DECYM9FI.js";
1
+ import { d as e, l as t, p as n, u as r } from "../_chunks/native-control-DjJ8Na3T.js";
2
+ import { t as i } from "../_chunks/popup-HEUnOeq-.js";
3
3
  export { t as Dropdown, i as DropdownPopup, n as DropdownPopupContent, r as defineDropdown, e as destroyDropdown };
@@ -1,12 +1,12 @@
1
- import { i as e, t } from "../_chunks/hooks.module-CG3gN83z.js";
2
- import { t as n } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
3
- import { l as r } from "../_chunks/native-control-um1L1wgZ.js";
4
- import { n as i } from "../_chunks/editor-commit-Dyo-FMgD.js";
5
- import { EditorActions as a } from "../editor-actions.js";
1
+ import { i as e, t } from "../_chunks/hooks.module-CXpO2xq6.js";
2
+ import { t as n } from "../_chunks/jsxRuntime.module-ksX_VSbv.js";
3
+ import { l as r } from "../_chunks/native-control-DjJ8Na3T.js";
4
+ import { EditorActions as i } from "../editor-actions.js";
5
+ import { n as a } from "../_chunks/editor-commit-BXIUX0As.js";
6
6
  //#region package/dropdown/lookup-field.tsx
7
7
  function o({ initial: o, options: s, context: c, apply: l, cancel: u }) {
8
8
  let [d, f] = e(o), [p, m] = e(!1), h = s.autoApply !== !1, g = t(!1), _ = t(o), v = d === null || Array.isArray(d) && !d.length;
9
- return i(() => {
9
+ return a(() => {
10
10
  if (!g.current) return !0;
11
11
  let e = _.current;
12
12
  return s.required && (e === null || Array.isArray(e) && !e.length) ? !1 : (g.current && (g.current = !1, l(e)), !0);
@@ -47,7 +47,7 @@ function o({ initial: o, options: s, context: c, apply: l, cancel: u }) {
47
47
  class: "rv-editor-error",
48
48
  children: s.text?.requiredValue ?? "Select at least one record."
49
49
  }),
50
- /* @__PURE__ */ n(a, {
50
+ /* @__PURE__ */ n(i, {
51
51
  showConfirm: s.showActions ?? !h,
52
52
  text: s.actions,
53
53
  disabled: s.required && v,
package/dropdown/popup.js CHANGED
@@ -1 +1 @@
1
- export { t as DropdownPopup } from "../_chunks/popup-DECYM9FI.js";
1
+ export { t as DropdownPopup } from "../_chunks/popup-HEUnOeq-.js";
package/duration/index.js CHANGED
@@ -1 +1 @@
1
- export { t as DurationDraft, n as DurationField } from "../_chunks/duration-BGZ_qJ99.js";
1
+ export { t as DurationDraft, n as DurationField } from "../_chunks/duration-BrsE4QgL.js";