@revolist/ui 4.0.9 → 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 (129) hide show
  1. package/README.md +37 -1
  2. package/_chunks/{calendar-C4zH4Ppn.js → calendar-CQHVwHLW.js} +1 -1
  3. package/_chunks/{chart-frame-DzvJooS2.js → chart-frame-pj5EQxXr.js} +1 -1
  4. package/_chunks/{choice-chips-D2cJju-g.js → choice-chips-BIGT7gjO.js} +1 -1
  5. package/_chunks/{color-palette-D7AS20M1.js → color-palette-DL0f3igd.js} +1 -1
  6. package/_chunks/{color-picker-BanAQVfz.js → color-picker-BWBM9GE1.js} +3 -3
  7. package/_chunks/{component-B8SvtSaB.js → component-B22CtP21.js} +49 -34
  8. package/_chunks/{component-metadata-DlVkpW3h.js → component-metadata-B_hLjtM0.js} +4 -1
  9. package/_chunks/{configurator-actions-CvZf5nYp.js → configurator-actions-BhIk4oM_.js} +11 -11
  10. package/_chunks/{control-Dj7IR-i0.js → control-zCLB1tGz.js} +1 -1
  11. package/_chunks/{controls-BF6WlGT4.js → controls-Ip2E6jIu.js} +5 -4
  12. package/_chunks/{date-control-BNj2FBF2.js → date-control-UmJvxQ5C.js} +1 -1
  13. package/_chunks/{date-time-Ucx1ep76.js → date-time-B9YGqree.js} +52 -52
  14. package/_chunks/{dialog.parts-BqkmnhIL.js → dialog.parts-CpMwNhTM.js} +2 -2
  15. package/_chunks/{duration-BIESsyLI.js → duration-BrsE4QgL.js} +11 -11
  16. package/_chunks/{editor-popup-BTmjGg2_.js → editor-popup-Ds0GPAcn.js} +1 -1
  17. package/_chunks/{field-configurator-BWZnm3gE.js → field-configurator-BMQnmWNd.js} +3 -2
  18. package/_chunks/{framework-mount-DQ4opSL0.js → framework-mount-CX0oj05W.js} +1 -1
  19. package/_chunks/{mount-DTCXtKfT.js → mount-BgI_QV2H.js} +3 -3
  20. package/_chunks/native-C9tJWAXF.js +52 -0
  21. package/_chunks/{native-control-xc_B4vfn.js → native-control-DjJ8Na3T.js} +43 -38
  22. package/_chunks/{number-input-C_TPzAJq.js → number-input-Bb5guKP4.js} +2 -2
  23. package/_chunks/{picker-0h5TwXGT.js → picker-DDUmhT93.js} +2 -2
  24. package/_chunks/{popup-CISbXDnE.js → popup-HEUnOeq-.js} +1 -1
  25. package/_chunks/{rating-choice-FhWNdsiC.js → rating-choice-CtrABPp-.js} +1 -1
  26. package/_chunks/{reorder-list-CR1DO4EG.js → reorder-list-DvwZcFPH.js} +1 -1
  27. package/_chunks/{request-trail-ay92DQpo.js → request-trail-D5PKrBlC.js} +2 -2
  28. package/_chunks/{rich-text-ByjXFv1S.js → rich-text-DW1vcBAY.js} +27 -27
  29. package/_chunks/{selection-list-tooltips-DqqLeO_m.js → selection-list-tooltips-j84Wufjj.js} +7 -3
  30. package/_chunks/tooltip-BkuH0JdW.js +93 -0
  31. package/_chunks/tooltip-session-BBKkwhLZ.js +244 -0
  32. package/_chunks/top-layer-popup-DU1r_2v5.js +107 -0
  33. package/ai/index.js +2 -2
  34. package/angular/angular.d.ts +2 -0
  35. package/angular/angular.js +1 -0
  36. package/assignee/index.js +26 -26
  37. package/browser/favicon.svg +9 -0
  38. package/browser/pdf-viewer.css +2 -0
  39. package/browser/pdf.worker.min.mjs +28 -0
  40. package/browser/pdfjs-LICENSE +177 -0
  41. package/browser/revo-ui.global.js +671 -0
  42. package/browser/revo-ui.js +35538 -0
  43. package/browser/robots.txt +4 -0
  44. package/browser.d.ts +3 -0
  45. package/browser.js +34 -0
  46. package/buttons/svg-button.js +3 -3
  47. package/calendar/_calendar.scss +12 -4
  48. package/calendar/calendar.js +1 -1
  49. package/calendar/index.js +2 -2
  50. package/choice-chips/index.js +1 -1
  51. package/color-palette/color-palette.js +1 -1
  52. package/color-palette/color-picker.js +2 -2
  53. package/configurator-actions.js +1 -1
  54. package/configurator-aggregation-list.js +2 -2
  55. package/configurator-drop-zone.js +1 -1
  56. package/controls.js +2 -2
  57. package/core/editor-popup.js +1 -1
  58. package/core/popover-controller.d.ts +31 -6
  59. package/core/popover-controller.js +171 -46
  60. package/core/popup-ownership.d.ts +1 -1
  61. package/core/tooltip-options.d.ts +143 -0
  62. package/core/tooltip-options.js +20 -0
  63. package/core/tooltip-session.d.ts +32 -8
  64. package/core/tooltip-surface.d.ts +14 -3
  65. package/core/tooltip.d.ts +20 -19
  66. package/core/top-layer-popup.d.ts +2 -1
  67. package/core/top-layer-popup.js +1 -1
  68. package/date-time/index.js +1 -1
  69. package/dialog/dialog.dom.js +2 -2
  70. package/dialog/dialog.parts.js +1 -1
  71. package/distribution-chart/area-chart.js +1 -1
  72. package/distribution-chart/bar-chart.js +1 -1
  73. package/distribution-chart/line-chart.js +1 -1
  74. package/dropdown/content.d.ts +3 -1
  75. package/dropdown/content.js +1 -1
  76. package/dropdown/control.js +1 -1
  77. package/dropdown/dropdown.service.js +56 -56
  78. package/dropdown/index.js +2 -2
  79. package/dropdown/lookup-field.js +5 -5
  80. package/dropdown/popup.js +1 -1
  81. package/duration/index.js +1 -1
  82. package/editor-actions.js +1 -1
  83. package/editor-layout/index.js +1 -1
  84. package/field-configurator.js +1 -1
  85. package/filter/filters/slider/runtime.js +1 -1
  86. package/filter/filters/slider/single.js +1 -1
  87. package/filter-badge.js +1 -1
  88. package/filter-controls.js +1 -1
  89. package/form-controls/index.js +2 -2
  90. package/formatting/index.js +2 -2
  91. package/framework.js +133 -133
  92. package/masked-input/index.js +1 -1
  93. package/native-control.js +1 -1
  94. package/native.js +29 -79
  95. package/number-input/index.js +1 -1
  96. package/package.json +19 -3
  97. package/pagination.js +1 -1
  98. package/pdf-viewer/index.js +1 -1
  99. package/pickers.d.ts +11 -4
  100. package/preact.d.ts +2 -0
  101. package/preact.js +64 -63
  102. package/rating-choice.js +1 -1
  103. package/react-adapter.d.ts +1 -1
  104. package/react.d.ts +2 -0
  105. package/react.js +63 -62
  106. package/reorder-list.js +1 -1
  107. package/resource-picker/resource-picker-popup.js +1 -1
  108. package/resource-picker/resource-picker.js +1 -1
  109. package/rich-text/index.js +1 -1
  110. package/select.js +1 -1
  111. package/selection-list.js +1 -1
  112. package/status-feedback/exit-snapshot.js +1 -1
  113. package/status-feedback/popover.js +1 -1
  114. package/styles.css +1 -1
  115. package/surfaces.d.ts +1 -0
  116. package/surfaces.js +24 -23
  117. package/svelte.d.ts +2 -0
  118. package/svelte.js +30 -29
  119. package/switch/index.js +1 -1
  120. package/time-grid.js +1 -1
  121. package/timeline-track/_style.scss +33 -2
  122. package/timeline-track/component.d.ts +10 -1
  123. package/timeline-track/index.js +136 -74
  124. package/ui.css +1 -1
  125. package/vue.d.ts +11 -13
  126. package/vue.js +91 -87
  127. package/_chunks/tooltip-B5ziciEP.js +0 -54
  128. package/_chunks/tooltip-session-D74h-uqu.js +0 -110
  129. package/_chunks/top-layer-popup-BHajfliG.js +0 -59
@@ -0,0 +1,244 @@
1
+ import { c as e, l as t, o as n, r, t as i } from "./top-layer-popup-DU1r_2v5.js";
2
+ import { n as a, t as o } from "./tooltip-owner-BYho-vJl.js";
3
+ import { inheritUiMotion as s, isUiMotionEnabled as c } from "../core/motion.js";
4
+ //#region package/core/tooltip-session.ts
5
+ var l = class {
6
+ anchor;
7
+ surface;
8
+ timer;
9
+ closeTimer;
10
+ transitionTimer;
11
+ frame;
12
+ mode;
13
+ cleanup;
14
+ restoreMotion;
15
+ managedMount = !1;
16
+ home;
17
+ pointerFocus = !1;
18
+ pointerTravel = !1;
19
+ hoverArea;
20
+ open = !1;
21
+ disposed = !1;
22
+ addedDescription = !1;
23
+ classes = [];
24
+ styleKeys = [];
25
+ details;
26
+ options = {};
27
+ onShow;
28
+ onHide;
29
+ onEscape;
30
+ delay = 0;
31
+ get isOpen() {
32
+ return this.open;
33
+ }
34
+ get isPending() {
35
+ return this.timer !== void 0;
36
+ }
37
+ get target() {
38
+ return this.anchor;
39
+ }
40
+ get element() {
41
+ return this.surface;
42
+ }
43
+ configure(e) {
44
+ let t = this.options.group;
45
+ this.open && t !== e.group && (t?.closed(this), e.group?.opened(this)), this.options = e, e.disabled ? this.hide("disabled", void 0, !0) : this.open && this.refresh();
46
+ }
47
+ setSurface(e) {
48
+ this.surface = e ?? void 0;
49
+ }
50
+ duration() {
51
+ return this.surface && c(this.surface) ? Math.max(0, this.options.transitionDuration ?? 0) : 0;
52
+ }
53
+ request(e, t, n = !1) {
54
+ return t.reason === "controlled" || t.reason === "destroy" ? !0 : !n && this.options.onBeforeOpenChange?.(e, t) === !1 ? !1 : (this.options.onOpenChange?.(e, t), n || this.options.open === void 0 || this.options.open === e);
55
+ }
56
+ show(e, t = "imperative", n) {
57
+ if (clearTimeout(this.closeTimer), this.closeTimer = void 0, this.disposed || this.options.disabled || this.anchor === e && this.open) return;
58
+ this.hide("owner-change", void 0, !0), this.anchor = e, this.details = {
59
+ target: e,
60
+ reason: t,
61
+ event: n
62
+ }, this.listen(e);
63
+ let r = t === "controlled" || t === "click" ? 0 : t === "imperative" ? this.delay : t === "focus" ? this.options.focusDelay ?? 0 : this.options.delay ?? this.options.group?.getDelay() ?? this.delay;
64
+ r > 0 ? this.timer = setTimeout(() => {
65
+ this.timer = void 0, this.present();
66
+ }, r) : this.present();
67
+ }
68
+ applyStyles(t) {
69
+ for (let e of this.styleKeys) t.style.removeProperty(e);
70
+ let n = e(t.ownerDocument, this.options.style);
71
+ this.styleKeys = n.map(([e]) => e), t.classList.remove(...this.classes), this.classes = this.options.className?.split(/\s+/).filter(Boolean) ?? [], t.classList.add(...this.classes);
72
+ let r = (e, t = "") => typeof e == "number" ? `${e}px` : e ?? t;
73
+ Object.assign(t.style, {
74
+ width: r(this.options.width),
75
+ height: r(this.options.height),
76
+ maxWidth: r(this.options.maxWidth, "min(360px, calc(100vw - 16px))"),
77
+ maxHeight: r(this.options.maxHeight, "calc(100dvh - 16px)")
78
+ });
79
+ for (let [e, r, i] of n) t.style.setProperty(e, r, i);
80
+ t.dataset.arrow = String(this.options.arrow ?? !1);
81
+ }
82
+ present() {
83
+ let e = this.anchor, n = this.surface, i = this.details;
84
+ if (!e || !n || !i || !e.isConnected || this.disposed) {
85
+ this.hide("anchor-removed", void 0, !0);
86
+ return;
87
+ }
88
+ if (!this.request(!0, i)) {
89
+ this.cleanup?.(), this.cleanup = void 0;
90
+ return;
91
+ }
92
+ if (this.disposed) return;
93
+ o(e.ownerDocument, this, () => this.hide("owner-change", void 0, !0));
94
+ let a = this.options.appendTo;
95
+ a && n.parentNode !== a ? (!this.managedMount && n.parentNode && n.isConnected ? this.home = {
96
+ parent: n.parentNode,
97
+ next: n.nextSibling
98
+ } : this.managedMount = !0, a.append(n)) : n.isConnected || (this.managedMount = !0, e.ownerDocument.body.append(n)), t(n), this.restoreMotion = s(e, n), n.hidden = !1, n.dataset.visible = "true", this.applyStyles(n), Object.assign(n.style, {
99
+ position: "fixed",
100
+ inset: "auto",
101
+ margin: "0",
102
+ transform: "none",
103
+ visibility: "visible",
104
+ positionAnchor: "auto",
105
+ positionArea: "none"
106
+ }), this.mode = r(n, "flex");
107
+ let c = new Set((e.getAttribute("aria-describedby") ?? "").split(/\s+/).filter(Boolean));
108
+ if (this.addedDescription = !c.has(n.id), c.add(n.id), e.setAttribute("aria-describedby", [...c].join(" ")), this.open = !0, this.options.group?.opened(this), this.position(e, n), !this.open) return;
109
+ let l = this.duration();
110
+ n.dataset.duration = String(l > 0), n.style.setProperty("--rv-tooltip-duration", `${l}ms`), n.dataset.state = l ? "opening" : "open", l && (this.frame = e.ownerDocument.defaultView?.requestAnimationFrame(() => {
111
+ this.frame = void 0, this.open && (n.dataset.state = "open");
112
+ }), this.transitionTimer = setTimeout(() => {
113
+ this.transitionTimer = void 0, this.open && this.options.onOpenChangeComplete?.(!0, i);
114
+ }, l)), this.onShow?.(i), this.options.onShow?.(i), !l && this.open && this.options.onOpenChangeComplete?.(!0, i);
115
+ }
116
+ position(e, t) {
117
+ let r = e.ownerDocument.defaultView, i = e.getBoundingClientRect();
118
+ if (!this.options.sticky && i.width > 0 && i.height > 0 && (i.bottom < 0 || i.right < 0 || i.top > (r?.innerHeight ?? Infinity) || i.left > (r?.innerWidth ?? Infinity))) {
119
+ this.hide("viewport", void 0, !0);
120
+ return;
121
+ }
122
+ let a = {
123
+ ...this.options,
124
+ direction: this.options.direction ?? (r?.getComputedStyle(e).direction === "rtl" ? "rtl" : "ltr")
125
+ }, o = {
126
+ width: r?.innerWidth ?? 0,
127
+ height: r?.innerHeight ?? 0
128
+ }, s = t.getBoundingClientRect(), c = n(i, s, o, a);
129
+ this.options.collisionAvoidance !== !1 && (s.width > c.availableWidth || s.height > c.availableHeight) && (s.width > c.availableWidth && (t.style.maxWidth = `${c.availableWidth}px`), s.height > c.availableHeight && (t.style.maxHeight = `${c.availableHeight}px`), s = t.getBoundingClientRect(), c = n(i, s, o, a)), Object.assign(t.style, {
130
+ left: `${c.left}px`,
131
+ top: `${c.top}px`
132
+ }), t.dataset.side = c.side, t.dataset.align = c.align;
133
+ for (let [e, n] of Object.entries({
134
+ "--rv-tooltip-arrow-x": c.arrowX,
135
+ "--rv-tooltip-arrow-y": c.arrowY,
136
+ "--anchor-width": i.width,
137
+ "--anchor-height": i.height,
138
+ "--available-width": c.availableWidth,
139
+ "--available-height": c.availableHeight
140
+ })) t.style.setProperty(e, `${n}px`);
141
+ this.hoverArea = i.width > 0 && s.width > 0 ? {
142
+ left: Math.min(i.left, c.left),
143
+ right: Math.max(i.right, c.left + s.width),
144
+ top: Math.min(i.top, c.top),
145
+ bottom: Math.max(i.bottom, c.top + s.height)
146
+ } : void 0;
147
+ }
148
+ refresh() {
149
+ this.open && this.anchor && this.surface && (this.applyStyles(this.surface), this.position(this.anchor, this.surface));
150
+ }
151
+ hide(e = "imperative", t, n = !1) {
152
+ if (!n && !this.open && this.transitionTimer !== void 0) return;
153
+ let r = this.anchor, o = this.surface, s = r ? {
154
+ target: r,
155
+ reason: e,
156
+ event: t
157
+ } : void 0;
158
+ if ((this.open || this.isPending) && s && !this.request(!1, s, n)) return;
159
+ clearTimeout(this.timer), clearTimeout(this.closeTimer), clearTimeout(this.transitionTimer), this.timer = this.closeTimer = this.transitionTimer = void 0, this.frame !== void 0 && r?.ownerDocument.defaultView?.cancelAnimationFrame(this.frame), this.frame = void 0, this.cleanup?.(), this.cleanup = void 0;
160
+ let c = this.open && !n ? this.duration() : 0;
161
+ this.restoreMotion?.(), this.restoreMotion = void 0, r && a(r.ownerDocument, this);
162
+ let l = this.open;
163
+ if (this.open = !1, this.pointerTravel = !1, this.hoverArea = void 0, this.options.group?.closed(this), r && this.addedDescription && o) {
164
+ let e = (r.getAttribute("aria-describedby") ?? "").split(/\s+/).filter((e) => e && e !== o.id);
165
+ e.length ? r.setAttribute("aria-describedby", e.join(" ")) : r.removeAttribute("aria-describedby");
166
+ }
167
+ this.addedDescription = !1;
168
+ let u = () => {
169
+ if (o) {
170
+ if (i(o, this.mode), o.hidden = !0, o.dataset.visible = "false", o.dataset.state = "closed", this.home) {
171
+ let { parent: e, next: t } = this.home;
172
+ e.insertBefore(o, t?.parentNode === e ? t : null), this.home = void 0;
173
+ } else this.managedMount && !this.options.keepMounted && o.remove();
174
+ }
175
+ this.mode = void 0, l && s && e !== "destroy" && this.options.onOpenChangeComplete?.(!1, s);
176
+ };
177
+ c && o ? (o.dataset.state = "closing", this.transitionTimer = setTimeout(() => {
178
+ this.transitionTimer = void 0, u();
179
+ }, c)) : u(), l && (this.onHide?.(), s && e !== "destroy" && this.options.onHide?.(s));
180
+ }
181
+ focus(e, t) {
182
+ this.show(e, "focus", t);
183
+ }
184
+ blur(e) {
185
+ this.pointerFocus = !1, this.hide("blur", e);
186
+ }
187
+ pointerDown() {
188
+ this.pointerFocus = !0;
189
+ }
190
+ leave(e, t) {
191
+ if (this.options.autoHide !== !1) {
192
+ if (!this.options.disableHoverablePopup && this.open && t && this.insideHoverArea(t)) this.pointerTravel = !0;
193
+ else if (!e || this.pointerFocus || e.ownerDocument.activeElement !== e) {
194
+ let e = this.options.closeDelay ?? this.options.group?.options.closeDelay ?? 0;
195
+ e > 0 && this.open ? (clearTimeout(this.closeTimer), this.closeTimer = setTimeout(() => {
196
+ this.closeTimer = void 0, this.hide("pointer-leave", t);
197
+ }, e)) : this.hide("pointer-leave", t);
198
+ }
199
+ }
200
+ }
201
+ insideHoverArea(e) {
202
+ let t = this.hoverArea;
203
+ return !!t && e.clientX >= t.left && e.clientX <= t.right && e.clientY >= t.top && e.clientY <= t.bottom;
204
+ }
205
+ keyDown(e) {
206
+ e.key === "Escape" && (this.open || this.isPending) && !e.defaultPrevented && this.options.closeOnEscape !== !1 ? (this.hide("escape", e), e.preventDefault(), e.stopPropagation(), this.onEscape?.(), this.options.onEscape?.()) : (e.key === "Enter" || e.key === " ") && this.options.hideOnClick !== !1 && this.hide("press", e);
207
+ }
208
+ destroy() {
209
+ this.hide("destroy", void 0, !0), this.disposed = !0, this.managedMount && this.surface?.remove(), this.surface = void 0, this.anchor = void 0;
210
+ }
211
+ listen(e) {
212
+ let t = e.ownerDocument, n = t.defaultView, r = e.closest("[popover]"), i = () => this.hide("viewport", void 0, !0), a = (t) => {
213
+ let n = t.composedPath();
214
+ this.options.closeOnOutside !== !1 && !n.includes(e) && (!this.surface || !n.includes(this.surface)) && this.hide("outside-press", t);
215
+ }, o = (t) => {
216
+ this.pointerTravel && !this.insideHoverArea(t) && (this.pointerTravel = !1, this.leave(e));
217
+ }, s = () => {
218
+ this.options.disableHoverablePopup || (clearTimeout(this.closeTimer), this.closeTimer = void 0, this.options.disableHoverablePopup || (this.pointerTravel = !0));
219
+ }, c = (t) => this.leave(e, t), l = this.surface, u = (n) => {
220
+ let r = n.target;
221
+ (r === t || r?.contains?.(e)) && (this.open && (t.activeElement === e || this.options.sticky) && this.surface ? this.position(e, this.surface) : i());
222
+ }, d = () => this.refresh(), f = () => {
223
+ r?.matches(":popover-open") || i();
224
+ }, p = (e) => {
225
+ e.key === "Escape" && this.keyDown(e);
226
+ }, m = n?.MutationObserver ? new n.MutationObserver(() => {
227
+ e.isConnected || this.hide("anchor-removed", void 0, !0);
228
+ }) : void 0;
229
+ m?.observe(t, {
230
+ childList: !0,
231
+ subtree: !0
232
+ });
233
+ let h, g = n?.ResizeObserver ? new n.ResizeObserver(() => {
234
+ h === void 0 && (h = n.requestAnimationFrame(() => {
235
+ h = void 0, this.refresh();
236
+ }));
237
+ }) : void 0;
238
+ g?.observe(e), l && g?.observe(l), t.addEventListener("keydown", p, !0), t.addEventListener("pointerdown", a, !0), t.addEventListener("pointermove", o, !0), l?.addEventListener("pointerenter", s), l?.addEventListener("pointerleave", c), t.addEventListener("scroll", u, !0), t.addEventListener("visibilitychange", i), n?.addEventListener("resize", d), n?.addEventListener("blur", i), r?.addEventListener("toggle", f), this.cleanup = () => {
239
+ m?.disconnect(), g?.disconnect(), h !== void 0 && n?.cancelAnimationFrame(h), t.removeEventListener("keydown", p, !0), t.removeEventListener("pointerdown", a, !0), t.removeEventListener("pointermove", o, !0), l?.removeEventListener("pointerenter", s), l?.removeEventListener("pointerleave", c), t.removeEventListener("scroll", u, !0), t.removeEventListener("visibilitychange", i), n?.removeEventListener("resize", d), n?.removeEventListener("blur", i), r?.removeEventListener("toggle", f);
240
+ };
241
+ }
242
+ };
243
+ //#endregion
244
+ export { l as t };
@@ -0,0 +1,107 @@
1
+ import { c as e } from "./preact.module-DzTStiZX.js";
2
+ import { createPreactElement as t, releasePreactElement as n } from "../preact-mount.js";
3
+ //#region package/core/tooltip-surface.ts
4
+ var r = "\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";
5
+ function i(n) {
6
+ if (n.querySelector("style[data-rv-tooltip-styles]")) return;
7
+ let i = n.nodeType === 9 ? n : n.ownerDocument, a = t(i, e("style", { "data-rv-tooltip-styles": "" }, r));
8
+ n.nodeType === 9 ? i.head.append(a) : n.append(a);
9
+ }
10
+ function a(e) {
11
+ e.classList.add("rv-tooltip"), e.setAttribute("role", "tooltip");
12
+ let t = e.getRootNode();
13
+ i(t.nodeType === 11 && "host" in t ? t : e.ownerDocument);
14
+ }
15
+ function o(e, t, n, r = {}) {
16
+ let i = r.direction === "rtl", a = r.side === "inline-start" ? i ? "right" : "left" : r.side === "inline-end" ? i ? "left" : "right" : r.side ?? "top", o = r.align ?? "center", s = r.collisionBoundary, c = s && "getBoundingClientRect" in s ? s.getBoundingClientRect() : s, l = (e) => Math.max(0, typeof r.collisionPadding == "number" ? r.collisionPadding : r.collisionPadding?.[e] ?? 8), u = {
17
+ left: Math.max(0, c?.left ?? 0) + l("left"),
18
+ top: Math.max(0, c?.top ?? 0) + l("top"),
19
+ right: Math.min(n.width, c?.right ?? n.width) - l("right"),
20
+ bottom: Math.min(n.height, c?.bottom ?? n.height) - l("bottom")
21
+ }, d = (n, r, i) => {
22
+ let a = typeof n == "function" ? n({
23
+ anchor: e,
24
+ popup: t,
25
+ side: i,
26
+ align: o
27
+ }) : n ?? r;
28
+ return Number.isFinite(a) ? a : r;
29
+ }, f = (n) => {
30
+ let a = n === "top" || n === "bottom", s = d(r.sideOffset, 8, n), c = d(r.alignOffset, 0, n), l = a ? e.left : e.top, u = a ? e.width : e.height, f = a ? t.width : t.height, p = a && i && o !== "center" ? o === "start" ? "end" : "start" : o, m = (p === "start" ? l : p === "end" ? l + u - f : l + (u - f) / 2) + c;
31
+ return {
32
+ left: a ? m : n === "left" ? e.left - t.width - s : e.right + s,
33
+ top: a ? n === "top" ? e.top - t.height - s : e.bottom + s : m
34
+ };
35
+ }, p = (e) => Math.max(0, u.left - e.left) + Math.max(0, e.left + t.width - u.right) + Math.max(0, u.top - e.top) + Math.max(0, e.top + t.height - u.bottom), m = a, h = f(m), g = r.collisionAvoidance;
36
+ if (g !== !1 && (typeof g != "object" || g.side !== "none")) {
37
+ let e = {
38
+ top: "bottom",
39
+ bottom: "top",
40
+ left: "right",
41
+ right: "left"
42
+ }[m], t = f(e);
43
+ p(t) < p(h) && (m = e, h = t);
44
+ }
45
+ return g !== !1 && (typeof g != "object" || g.align !== "none") && (h.left = Math.max(u.left, Math.min(h.left, u.right - t.width)), h.top = Math.max(u.top, Math.min(h.top, u.bottom - t.height))), {
46
+ ...h,
47
+ side: m,
48
+ align: o,
49
+ arrowX: Math.max(8, Math.min(t.width - 8, e.left + e.width / 2 - h.left)),
50
+ arrowY: Math.max(8, Math.min(t.height - 8, e.top + e.height / 2 - h.top)),
51
+ availableWidth: Math.max(0, u.right - u.left),
52
+ availableHeight: Math.max(0, u.bottom - u.top)
53
+ };
54
+ }
55
+ function s(r, i) {
56
+ if (!i) return [];
57
+ let a = t(r, e("span", { style: i }));
58
+ try {
59
+ return Array.from({ length: a.style.length }, (e, t) => {
60
+ let n = a.style.item(t);
61
+ return [
62
+ n,
63
+ a.style.getPropertyValue(n),
64
+ a.style.getPropertyPriority(n)
65
+ ];
66
+ });
67
+ } finally {
68
+ n(a);
69
+ }
70
+ }
71
+ //#endregion
72
+ //#region package/core/popup-ownership.ts
73
+ function c(e, t) {
74
+ if (!e || !t) return !1;
75
+ let n = /* @__PURE__ */ new Set(), r = (e) => !n.has(e) && (n.add(e), e.contains(t) ? !0 : [...e.querySelectorAll("[aria-controls], [data-rv-popup-controls]")].some((t) => [t.getAttribute("aria-controls"), t.getAttribute("data-rv-popup-controls")].filter(Boolean).join(" ").split(/\s+/).some((t) => {
76
+ let n = e.ownerDocument.getElementById(t);
77
+ return !!n && r(n);
78
+ })));
79
+ return r(e);
80
+ }
81
+ //#endregion
82
+ //#region package/core/top-layer-popup.ts
83
+ var l = /* @__PURE__ */ new WeakMap();
84
+ function u(e, t = "flex") {
85
+ if (l.has(e) || l.set(e, e.getAttribute("data-rv-ui-surface")), e.setAttribute("data-rv-ui-surface", ""), e.style.display = t, typeof e.showPopover == "function") {
86
+ e.setAttribute("popover", "manual");
87
+ try {
88
+ return e.showPopover(), "popover";
89
+ } catch {
90
+ e.removeAttribute("popover");
91
+ }
92
+ }
93
+ return e.style.display = t, "fallback";
94
+ }
95
+ function d(e, t) {
96
+ let n = l.get(e);
97
+ if (n !== void 0 && (n === null ? e.removeAttribute("data-rv-ui-surface") : e.setAttribute("data-rv-ui-surface", n), l.delete(e)), t === "popover" && typeof e.hidePopover == "function") try {
98
+ e.hidePopover(), e.style.removeProperty("display");
99
+ return;
100
+ } catch {}
101
+ e.style.display = "none";
102
+ }
103
+ function f(e, t) {
104
+ return c(e, t);
105
+ }
106
+ //#endregion
107
+ export { r as a, s as c, c as i, a as l, f as n, o, u as r, i as s, d as t };
package/ai/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import { t as e } from "../_chunks/mount-DTCXtKfT.js";
2
- import { C as t, E as n, S as r, T as i, _ as a, a as o, b as s, c, d as l, f as u, g as d, h as f, i as p, l as m, m as h, n as g, o as _, p as v, r as y, s as b, t as x, u as S, w as C, x as w, y as T } from "../_chunks/request-trail-ay92DQpo.js";
1
+ import { t as e } from "../_chunks/mount-BgI_QV2H.js";
2
+ import { C as t, E as n, S as r, T as i, _ as a, a as o, b as s, c, d as l, f as u, g as d, h as f, i as p, l as m, m as h, n as g, o as _, p as v, r as y, s as b, t as x, u as S, w as C, x as w, y as T } from "../_chunks/request-trail-D5PKrBlC.js";
3
3
  export { i as AI_UI_MESSAGES, u as AiActionStatus, v as AiAssistant, h as AiChangePreview, g as AiChat, y as AiChatComposer, p as AiChatContent, o as AiChatEmptyState, _ as AiMessage, b as AiMessageActions, c as AiMessageContent, f as AiPromptInput, m as AiReasoning, x as AiRequestTrail, d as AiResult, w as AiResultMetrics, r as AiResultTable, s as AiResultText, T as AiResultView, a as AiSuggestions, S as AiTask, l as AiTaskItem, C as AiTranslationProvider, t as formatAiResultValue, e as mountAiAssistant, n as translateAiText };
@@ -42,3 +42,5 @@ export type { PdfViewerProps, PdfViewerText } from '../pdf-viewer/component.js';
42
42
  export type { PdfViewerToolbarProps } from '../pdf-viewer/toolbar.js';
43
43
  export type { PdfViewerButton, PdfViewerButtonOptions, PdfViewerToolbarOptions, PdfViewerToolbarConfig, } from '../pdf-viewer/toolbar-options.js';
44
44
  export { defaultPdfViewerText } from '../pdf-viewer/index.js';
45
+ export { createTooltipGroup, TooltipGroup } from '../core/tooltip-options.js';
46
+ export type { TooltipAnchor, TooltipSide, TooltipAlign, TooltipReason, TooltipContent, TooltipOffset, TooltipOffsetContext, TooltipGroupOptions, TooltipOptions, TooltipControllerOptions, TooltipChangeDetails, TooltipContentContext, TooltipPositionOptions, } from '../core/tooltip-options.js';
@@ -150,3 +150,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImpor
150
150
  args: [UiSlotDirective]
151
151
  }] } });
152
152
  export { defaultPdfViewerText } from '../pdf-viewer/index.js';
153
+ export { createTooltipGroup, TooltipGroup } from '../core/tooltip-options.js';
package/assignee/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { i as e, t } from "../_chunks/hooks.module-CXpO2xq6.js";
2
2
  import { t as n } from "../_chunks/jsxRuntime.module-ksX_VSbv.js";
3
- import { l as r, n as i } from "../_chunks/native-control-xc_B4vfn.js";
4
- import { R as a } from "../_chunks/controls-BF6WlGT4.js";
5
- import { SearchInput as o } from "../search-input/index.js";
6
- import { SharedResourcePicker as s } from "../resource-picker/resource-picker.js";
7
- import { EditorActions as c } from "../editor-actions.js";
3
+ import { l as r, n as i } from "../_chunks/native-control-DjJ8Na3T.js";
4
+ import { R as a } from "../_chunks/controls-Ip2E6jIu.js";
5
+ import { EditorActions as o } from "../editor-actions.js";
6
+ import { SearchInput as s } from "../search-input/index.js";
7
+ import { SharedResourcePicker as c } from "../resource-picker/resource-picker.js";
8
8
  //#region package/assignee/model.ts
9
9
  function l(e) {
10
10
  let t = /* @__PURE__ */ new Map();
@@ -41,7 +41,7 @@ function p(e) {
41
41
  (t.ctrlKey || t.metaKey) && t.key === "Enter" && (t.preventDefault(), t.stopPropagation(), e.value.every((e) => u(e.units)) && e.apply()), t.key === "Escape" && (t.preventDefault(), t.stopPropagation(), e.cancel());
42
42
  },
43
43
  children: [
44
- /* @__PURE__ */ n(s, {
44
+ /* @__PURE__ */ n(c, {
45
45
  resources: e.options.map((e) => ({
46
46
  ...e,
47
47
  id: e.value,
@@ -83,7 +83,7 @@ function p(e) {
83
83
  children: [/* @__PURE__ */ n("span", {
84
84
  "aria-live": "polite",
85
85
  children: t?.selected?.(e.value.length) ?? `${e.value.length} selected`
86
- }), /* @__PURE__ */ n(c, {
86
+ }), /* @__PURE__ */ n(o, {
87
87
  showConfirm: e.showActions ?? e.autoApply === !1,
88
88
  apply: e.apply,
89
89
  cancel: e.cancel,
@@ -158,51 +158,51 @@ function m({ value: i, options: a, theme: o, renderPicker: s, renderValue: c, sa
158
158
  }
159
159
  //#endregion
160
160
  //#region package/assignee/layout.tsx
161
- function h({ query: e, onQueryChange: t, searchRef: r, children: i, ...s }) {
161
+ function h({ query: e, onQueryChange: t, searchRef: r, children: i, ...c }) {
162
162
  return /* @__PURE__ */ n("div", {
163
- id: s.id,
163
+ id: c.id,
164
164
  class: "rv-assignee-picker",
165
165
  role: "dialog",
166
- "aria-label": s.text?.dialogLabel ?? "Assign people",
166
+ "aria-label": c.text?.dialogLabel ?? "Assign people",
167
167
  onKeyDown: (e) => {
168
- (e.ctrlKey || e.metaKey) && e.key === "Enter" && (e.preventDefault(), e.stopPropagation(), s.value.every((e) => u(e.units)) && s.apply()), e.key === "Escape" && (e.preventDefault(), e.stopPropagation(), s.cancel());
168
+ (e.ctrlKey || e.metaKey) && e.key === "Enter" && (e.preventDefault(), e.stopPropagation(), c.value.every((e) => u(e.units)) && c.apply()), e.key === "Escape" && (e.preventDefault(), e.stopPropagation(), c.cancel());
169
169
  },
170
170
  children: [
171
171
  /* @__PURE__ */ n("div", {
172
172
  class: "rv-assignee-picker__search",
173
- children: /* @__PURE__ */ n(o, {
173
+ children: /* @__PURE__ */ n(s, {
174
174
  inputRef: r,
175
175
  autoFocus: !0,
176
- "aria-label": s.text?.searchLabel ?? "Search assignees",
177
- placeholder: s.text?.searchPlaceholder ?? "Search name or role…",
176
+ "aria-label": c.text?.searchLabel ?? "Search assignees",
177
+ placeholder: c.text?.searchPlaceholder ?? "Search name or role…",
178
178
  value: e,
179
179
  onValueChange: t
180
180
  })
181
181
  }),
182
182
  i,
183
- !s.options.some((t) => `${t.name ?? ""} ${t.label} ${t.role ?? ""}`.toLocaleLowerCase().includes(e.trim().toLocaleLowerCase())) && /* @__PURE__ */ n("p", {
183
+ !c.options.some((t) => `${t.name ?? ""} ${t.label} ${t.role ?? ""}`.toLocaleLowerCase().includes(e.trim().toLocaleLowerCase())) && /* @__PURE__ */ n("p", {
184
184
  role: "status",
185
- children: s.text?.empty ?? "No assignees found"
185
+ children: c.text?.empty ?? "No assignees found"
186
186
  }),
187
187
  /* @__PURE__ */ n("div", {
188
188
  class: "rv-assignee-picker__footer",
189
189
  children: [/* @__PURE__ */ n("span", {
190
190
  "aria-live": "polite",
191
- children: s.text?.selected?.(s.value.length) ?? `${s.value.length} selected`
192
- }), /* @__PURE__ */ n(c, {
193
- showConfirm: s.showActions ?? s.autoApply === !1,
194
- apply: s.apply,
195
- cancel: s.cancel,
196
- disabled: s.value.some((e) => !u(e.units)),
191
+ children: c.text?.selected?.(c.value.length) ?? `${c.value.length} selected`
192
+ }), /* @__PURE__ */ n(o, {
193
+ showConfirm: c.showActions ?? c.autoApply === !1,
194
+ apply: c.apply,
195
+ cancel: c.cancel,
196
+ disabled: c.value.some((e) => !u(e.units)),
197
197
  text: {
198
- apply: s.text?.apply ?? "Save",
199
- cancel: s.text?.cancel ?? "Cancel"
198
+ apply: c.text?.apply ?? "Save",
199
+ cancel: c.text?.cancel ?? "Cancel"
200
200
  }
201
201
  })]
202
202
  }),
203
- s.value.some((e) => !u(e.units)) && /* @__PURE__ */ n(a, {
203
+ c.value.some((e) => !u(e.units)) && /* @__PURE__ */ n(a, {
204
204
  tone: "danger",
205
- children: s.text?.invalidUnits ?? "Units must be a non-negative number."
205
+ children: c.text?.invalidUnits ?? "Units must be a non-negative number."
206
206
  })
207
207
  ]
208
208
  });
@@ -0,0 +1,9 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M0 0H14.0974L14.9087 0.0524998C15.7049 0.107143 16.4527 0.171429 17.1232 0.274286C18.361 0.48 19.5301 0.891428 20.5616 1.50857C21.6619 2.12571 22.4871 2.94857 23.106 3.97714C23.5186 4.66286 23.7937 5.41714 23.9312 6.30857L23.9656 6.89143C23.9828 7.23429 24 7.68 24 8.09143L23.9954 8.47337C23.98 9.13368 23.9312 9.66857 23.9312 9.66857C23.7937 10.9029 23.3811 12 22.5559 12.96C21.3868 14.3314 17.8797 15.4286 17.6734 15.4286L18.4269 16.485C20.6392 19.565 22.4159 21.8415 23.7568 23.3145C24.0688 23.6571 24.0688 24 23.5186 24H15.4728L5.70774 10.4914H15.8854C17.2607 10.4914 18.361 9.39429 18.361 7.95429C18.361 6.51429 17.192 5.41714 15.8854 5.41714H2.06304L0 2.67429V1.34057L14.4413 0.685714H0V0Z" fill="url(#paint0_linear_7_11)"/>
3
+ <defs>
4
+ <linearGradient id="paint0_linear_7_11" x1="0.201583" y1="-0.0384081" x2="21.0672" y2="28.776" gradientUnits="userSpaceOnUse">
5
+ <stop stop-color="#04CC3C"/>
6
+ <stop offset="1" stop-color="#0062BC"/>
7
+ </linearGradient>
8
+ </defs>
9
+ </svg>