@revolist/ui 4.0.2-rc → 4.0.2

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 (343) hide show
  1. package/LICENSE +21 -0
  2. package/MIGRATION.md +36 -0
  3. package/OWNERSHIP.md +32 -32
  4. package/README.md +405 -265
  5. package/_button.scss +6 -2
  6. package/_chunks/arrow-up-Cw8hW9vp.js +4 -0
  7. package/_chunks/calculator-CDWOuAcp.js +4 -0
  8. package/_chunks/{calendar-CpaUK7w1.js → calendar-CgXQgkga.js} +28 -18
  9. package/_chunks/chart-frame-hcOlnQ1K.js +145 -0
  10. package/_chunks/{chevron-right-sxHQMSkq.js → check-BwI7iCAm.js} +2 -2
  11. package/_chunks/{chevron-left-D0nc4Z5S.js → chevron-right-CM3ljziP.js} +2 -2
  12. package/_chunks/choice-chips-SkllS5Kl.js +126 -0
  13. package/_chunks/clock-BOhPNlW3.js +4 -0
  14. package/_chunks/{color-palette-BBMFmUNA.js → color-palette-DMJUChWC.js} +20 -22
  15. package/_chunks/{color-picker-D90Jg-M8.js → color-picker-BpCTuIdm.js} +77 -72
  16. package/_chunks/{component-YDcfoOLz.js → component-CfeHXgIw.js} +301 -282
  17. package/_chunks/{component-metadata-BENbgTjU.js → component-metadata-BKd7U8OW.js} +0 -12
  18. package/_chunks/configurator-actions-DnStE6Yl.js +155 -0
  19. package/_chunks/configurator-field-icon-CmcM_sPs.js +53 -0
  20. package/_chunks/control-Dcrjsunl.js +118 -0
  21. package/_chunks/{controls-DIum-E66.js → controls-B_6NJarZ.js} +217 -182
  22. package/_chunks/{date-control-BJSzu79z.js → date-control-C4h4m75W.js} +1 -1
  23. package/_chunks/{date-time-BxPJusp9.js → date-time-CTOSbzb0.js} +344 -307
  24. package/_chunks/{delete-button-Bblyah10.js → delete-button-CW9vjLnk.js} +6 -6
  25. package/_chunks/dialog.parts-3w5FR06n.js +131 -0
  26. package/_chunks/{duration-87U2EoMS.js → duration-Bf2OS1V5.js} +19 -18
  27. package/_chunks/editor-popup-ByU7qiub.js +82 -0
  28. package/_chunks/field-configurator-D5dZRhDe.js +288 -0
  29. package/_chunks/field-context-D57PnBbH.js +5 -0
  30. package/_chunks/{framework-mount-C-Zwm44H.js → framework-mount-Bk4O_T7T.js} +1 -1
  31. package/_chunks/icon-toolbar-DSjOdwM7.js +134 -0
  32. package/_chunks/magnifying-glass-CvrTDSkB.js +4 -0
  33. package/_chunks/minus-BOAR3A1C.js +4 -0
  34. package/_chunks/mount-BRdcG60g.js +267 -0
  35. package/_chunks/{native.view-ByyZ1CT5.js → native-Blr3byjO.js} +1 -1
  36. package/_chunks/native-control-B_fVA5bL.js +649 -0
  37. package/_chunks/{number-input-BeIadZuL.js → number-input-CmM6_2vR.js} +7 -7
  38. package/_chunks/{picker-DpP7iQLA.js → picker-DTqET-2W.js} +2 -2
  39. package/_chunks/plus-CbGRkIGl.js +4 -0
  40. package/_chunks/popover-controller-D-AvKQ7B.js +102 -0
  41. package/_chunks/popup-C35Isk7p.js +378 -0
  42. package/_chunks/{rating-choice-Ca8ZBty3.js → rating-choice-C-6wcb9U.js} +1 -1
  43. package/_chunks/render-m5eMMwFR.js +83 -0
  44. package/_chunks/{reorder-list-Cc3KmfAN.js → reorder-list-DIl1gkV6.js} +1 -1
  45. package/_chunks/request-trail-DrhdpWiH.js +762 -0
  46. package/_chunks/rich-text-BnilBbhU.js +842 -0
  47. package/_chunks/rotate-left-BF6G883o.js +4 -0
  48. package/_chunks/rotate-right-Iha5ScJ1.js +4 -0
  49. package/_chunks/selection-list-tooltips-C5oMJe26.js +42 -0
  50. package/_chunks/title-tooltip-Cw6LOZhb.js +11 -0
  51. package/_chunks/tooltip-D4xkio5G.js +54 -0
  52. package/_chunks/tooltip-owner-DjdvqKzz.js +19 -0
  53. package/_chunks/tooltip-session-B6X6x8G_.js +110 -0
  54. package/_chunks/tooltip-text-BXsUEmBH.js +12 -0
  55. package/_chunks/top-layer-popup-CNSDdfJV.js +59 -0
  56. package/_dialog.scss +55 -21
  57. package/_form.scss +71 -21
  58. package/_legend.scss +25 -7
  59. package/_shared/data-query/index.d.ts +2 -2
  60. package/_shared/data-query/load-options.d.ts +2 -2
  61. package/_variables.scss +34 -32
  62. package/_view-switcher.scss +6 -0
  63. package/activity-message.d.ts +1 -1
  64. package/ai/_chat.scss +227 -0
  65. package/ai/_style.scss +170 -39
  66. package/ai/chat.d.ts +65 -0
  67. package/ai/components.d.ts +34 -5
  68. package/ai/index.d.ts +3 -0
  69. package/ai/index.js +3 -3
  70. package/ai/mount.d.ts +59 -6
  71. package/ai/prompt-history.d.ts +13 -0
  72. package/ai/request-trail.d.ts +9 -3
  73. package/ai/results/_style.scss +83 -0
  74. package/ai/results/index.d.ts +11 -0
  75. package/ai/results/metrics.d.ts +5 -0
  76. package/ai/results/table.d.ts +5 -0
  77. package/ai/results/text.d.ts +5 -0
  78. package/ai/results/types.d.ts +29 -0
  79. package/ai/transcript.d.ts +27 -0
  80. package/ai/translations.d.ts +1 -1
  81. package/angular/angular.d.ts +1 -1
  82. package/angular/angular.js +13 -10
  83. package/assignee/assignee.scss +28 -6
  84. package/assignee/index.js +34 -35
  85. package/avatar/avatar.style.scss +23 -6
  86. package/avatar/index.d.ts +25 -2
  87. package/avatar/index.js +33 -32
  88. package/badge.d.ts +1 -1
  89. package/badge.view.d.ts +8 -0
  90. package/brush-range/_brush-range.scss +55 -49
  91. package/brush-range/component.d.ts +1 -3
  92. package/brush-range/component.js +27 -27
  93. package/buttons/delete-button.d.ts +2 -1
  94. package/buttons/delete-button.js +1 -1
  95. package/buttons/delete-button.style.scss +6 -2
  96. package/buttons/remove-button.d.ts +1 -1
  97. package/buttons/remove-button.js +1 -1
  98. package/buttons/remove-button.style.scss +1 -1
  99. package/buttons/svg-button.d.ts +2 -1
  100. package/buttons/svg-button.js +19 -19
  101. package/calendar/_calendar.scss +27 -26
  102. package/calendar/calendar.js +1 -1
  103. package/calendar/header.js +1 -2
  104. package/calendar/index.js +2 -2
  105. package/cell-input.scss +3 -7
  106. package/cell-visuals/badge.style.scss +6 -3
  107. package/cell-visuals/bar-chart.style.scss +2 -1
  108. package/cell-visuals/column-type.style.css +12 -0
  109. package/cell-visuals/progress-line-value.renderer.style.scss +4 -2
  110. package/cell-visuals/progress-line.style.scss +1 -4
  111. package/cell-visuals/sparkline.style.scss +2 -1
  112. package/cell-visuals/timeline.style.css +4 -2
  113. package/checkbox/checkbox.scss +6 -24
  114. package/choice-chips/index.d.ts +3 -1
  115. package/choice-chips/index.js +1 -1
  116. package/color-palette/color-palette.js +1 -1
  117. package/color-palette/color-palette.style.scss +88 -25
  118. package/color-palette/color-picker.js +2 -2
  119. package/color-palette/color-picker.style.scss +23 -10
  120. package/color-palette/common-palettes.d.ts +1 -1
  121. package/color-palette/common-palettes.js +1 -1
  122. package/color-palette/native.d.ts +15 -2
  123. package/component-catalog.d.ts +24 -11
  124. package/configurator-actions.d.ts +67 -0
  125. package/configurator-actions.js +1 -0
  126. package/configurator-aggregation-list.d.ts +14 -0
  127. package/configurator-aggregation-list.js +63 -0
  128. package/configurator-drop-zone.d.ts +39 -0
  129. package/configurator-drop-zone.js +66 -0
  130. package/configurator-field-icon.d.ts +10 -0
  131. package/configurator-field-icon.js +1 -0
  132. package/configurator-focus.d.ts +4 -0
  133. package/configurator-focus.js +39 -0
  134. package/configurator-sections.d.ts +42 -0
  135. package/configurator-sections.js +71 -0
  136. package/control-attributes.js +7 -7
  137. package/control-presentation.d.ts +8 -2
  138. package/control-presentation.js +25 -20
  139. package/controls.d.ts +19 -7
  140. package/controls.js +4 -3
  141. package/core/editor-popup-position.d.ts +6 -2
  142. package/core/editor-popup.d.ts +4 -0
  143. package/core/editor-popup.js +1 -1
  144. package/core/popover-controller.d.ts +35 -0
  145. package/core/popup-ownership.d.ts +2 -0
  146. package/core/selection-list-tooltips.d.ts +2 -0
  147. package/core/title-tooltip.d.ts +2 -0
  148. package/core/tooltip-session.d.ts +29 -0
  149. package/core/tooltip-surface.d.ts +13 -0
  150. package/core/tooltip-text.d.ts +6 -0
  151. package/core/tooltip.d.ts +35 -0
  152. package/core/top-layer-popup.d.ts +4 -0
  153. package/core/top-layer-popup.js +1 -23
  154. package/date-time/attach.d.ts +1 -1
  155. package/date-time/date-control.d.ts +1 -1
  156. package/date-time/field.d.ts +3 -2
  157. package/date-time/index.js +1 -1
  158. package/date-time/style.scss +242 -39
  159. package/date-time/time-selection.d.ts +3 -1
  160. package/date-time/types.d.ts +5 -1
  161. package/dialog/dialog-action-footer.d.ts +17 -2
  162. package/dialog/dialog.dom.d.ts +15 -2
  163. package/dialog/dialog.dom.js +3 -3
  164. package/dialog/dialog.parts.d.ts +1 -1
  165. package/dialog/dialog.parts.js +1 -1
  166. package/distribution-chart/_distribution-chart.scss +113 -77
  167. package/distribution-chart/area-chart.js +1 -1
  168. package/distribution-chart/bar-chart.d.ts +5 -2
  169. package/distribution-chart/bar-chart.js +7 -3
  170. package/distribution-chart/chart-frame.d.ts +2 -1
  171. package/distribution-chart/index.d.ts +1 -1
  172. package/distribution-chart/line-chart.js +1 -1
  173. package/dropdown/content.d.ts +2 -1
  174. package/dropdown/content.js +1 -142
  175. package/dropdown/control.d.ts +14 -0
  176. package/dropdown/control.js +1 -0
  177. package/dropdown/control.view.d.ts +6 -0
  178. package/dropdown/dropdown.types.d.ts +5 -1
  179. package/dropdown/editor-dropdown.style.scss +54 -16
  180. package/dropdown/index.d.ts +1 -1
  181. package/dropdown/index.js +3 -4
  182. package/dropdown/lookup-field.d.ts +5 -0
  183. package/dropdown/lookup-field.js +2 -1
  184. package/dropdown/popup.d.ts +2 -2
  185. package/dropdown/popup.js +1 -141
  186. package/duration/index.js +1 -1
  187. package/duration/style.scss +1 -1
  188. package/editor-actions.js +1 -1
  189. package/editor-layout/index.d.ts +4 -4
  190. package/editor-layout/index.js +39 -34
  191. package/editor-layout/style.scss +82 -18
  192. package/field-configurator.d.ts +39 -1
  193. package/field-configurator.js +4 -170
  194. package/field-expansion.d.ts +9 -0
  195. package/fieldset.d.ts +3 -0
  196. package/filter/filters/slider/_single-slider.scss +57 -38
  197. package/filter/filters/slider/_slider.scss +41 -33
  198. package/filter/filters/slider/control.js +2 -0
  199. package/filter/filters/slider/runtime.js +49 -22
  200. package/filter/filters/slider/single.js +1 -1
  201. package/filter-badge.js +1 -1
  202. package/filter-controls.d.ts +0 -1
  203. package/filter-controls.js +9 -10
  204. package/form-controls/field-context.d.ts +5 -0
  205. package/form-controls/index.d.ts +10 -2
  206. package/form-controls/index.js +4 -9
  207. package/form-controls/presentation.d.ts +1 -1
  208. package/form-controls/presentation.js +53 -45
  209. package/formatting/index.d.ts +1 -1
  210. package/formatting/index.js +40 -35
  211. package/formatting/styles.scss +14 -57
  212. package/framework.js +237 -226
  213. package/history-controls.d.ts +14 -0
  214. package/history-controls.js +27 -0
  215. package/icon-toolbar.d.ts +62 -0
  216. package/icon-toolbar.js +1 -0
  217. package/icons/icon.d.ts +1 -1
  218. package/legend.d.ts +1 -1
  219. package/masked-input/index.js +1 -1
  220. package/native-control.d.ts +6 -5
  221. package/native-control.js +3 -26
  222. package/native-controls.d.ts +54 -2
  223. package/native-styles.css +1 -1
  224. package/native-styles.scss +6 -2
  225. package/native.d.ts +3 -3
  226. package/native.js +41 -37
  227. package/number-input/index.d.ts +1 -1
  228. package/number-input/index.js +1 -1
  229. package/package.json +88 -14
  230. package/pagination.d.ts +3 -0
  231. package/pagination.js +50 -40
  232. package/pdf-viewer/header.d.ts +1 -1
  233. package/pdf-viewer/index.d.ts +2 -2
  234. package/pdf-viewer/index.js +1 -1
  235. package/pdf-viewer/search-bar.d.ts +1 -1
  236. package/pdf-viewer/status.d.ts +1 -1
  237. package/pdf-viewer/style.scss +205 -45
  238. package/pickers.d.ts +5 -1
  239. package/preact-mount.js +1 -1
  240. package/preact.d.ts +15 -10
  241. package/preact.js +109 -64
  242. package/progress/_bar.scss +9 -3
  243. package/progress/_circular.scss +2 -1
  244. package/rating-choice.js +1 -1
  245. package/react-adapter.d.ts +4 -2
  246. package/react-control.d.ts +1 -0
  247. package/react.d.ts +20 -11
  248. package/react.js +72 -88
  249. package/reorder-list.d.ts +1 -1
  250. package/reorder-list.js +1 -1
  251. package/reorder-list.scss +59 -17
  252. package/resource-picker/resource-picker-popup.js +1 -1
  253. package/resource-picker/resource-picker.js +73 -71
  254. package/resource-picker/resource-picker.scss +66 -35
  255. package/rich-text/engine.d.ts +17 -19
  256. package/rich-text/format-html.d.ts +2 -0
  257. package/rich-text/index.d.ts +11 -7
  258. package/rich-text/index.js +1 -1
  259. package/rich-text/model.d.ts +6 -3
  260. package/rich-text/render-model.d.ts +4 -5
  261. package/rich-text/style.scss +295 -55
  262. package/rich-text/syntax.d.ts +5 -2
  263. package/rich-text/toolbar.d.ts +6 -6
  264. package/rich-text/translations.d.ts +5 -15
  265. package/search-input/index.js +1 -1
  266. package/search-input/native.d.ts +21 -2
  267. package/select.d.ts +22 -0
  268. package/select.js +1 -0
  269. package/selection-list.d.ts +1 -0
  270. package/selection-list.js +3 -1
  271. package/status-feedback/exit-snapshot.js +1 -1
  272. package/status-feedback/index.js +2 -2
  273. package/status-feedback/popover.js +9 -9
  274. package/status-feedback/render.js +3 -44
  275. package/status-feedback/status-feedback.scss +130 -34
  276. package/status-feedback/types.d.ts +4 -0
  277. package/status-feedback/use-auto-dismiss.d.ts +3 -0
  278. package/styles/_activity-message.scss +24 -7
  279. package/styles/_alert.scss +78 -17
  280. package/styles/_cell-editor-frame.scss +11 -0
  281. package/styles/_compositions.scss +404 -82
  282. package/styles/_control.scss +42 -12
  283. package/styles/_disclosure.scss +15 -5
  284. package/styles/_editor-counter.scss +16 -6
  285. package/styles/_editor-slider.scss +8 -4
  286. package/styles/_field-configurator.scss +321 -23
  287. package/styles/_fields-grid.scss +49 -0
  288. package/styles/_filter-controls.scss +10 -2
  289. package/styles/_icon-action.scss +48 -15
  290. package/styles/_loading.scss +12 -3
  291. package/styles/_motion.scss +32 -9
  292. package/styles/_palette.scss +0 -24
  293. package/styles/_primitives.scss +376 -116
  294. package/styles/_theme.scss +130 -86
  295. package/styles/_thresholds.scss +28 -25
  296. package/styles/_time-grid.scss +8 -3
  297. package/styles/_tokens.scss +6 -1
  298. package/styles/configurator-actions.scss +241 -0
  299. package/styles/pagination.css +213 -0
  300. package/styles/{legacy-rating.css → rating.css} +8 -3
  301. package/styles.css +1 -1
  302. package/styles.scss +3 -5
  303. package/surfaces.d.ts +38 -2
  304. package/surfaces.js +37 -134
  305. package/svelte/UiComponent.server.js +1 -48
  306. package/svelte/UiComponent.svelte +44 -32
  307. package/svelte.d.ts +1 -1
  308. package/svelte.js +33 -68
  309. package/switch/index.js +15 -14
  310. package/time-grid.d.ts +0 -1
  311. package/time-grid.js +38 -37
  312. package/timeline-track/_style.scss +96 -24
  313. package/timeline-track/component.d.ts +5 -1
  314. package/timeline-track/index.js +71 -54
  315. package/timeline-track/model.d.ts +9 -0
  316. package/timeline-track/model.js +10 -1
  317. package/ui.css +1 -1
  318. package/view-switcher.d.ts +23 -0
  319. package/vue.d.ts +51 -35
  320. package/vue.js +149 -178
  321. package/_chunks/chart-frame-BC99KjGa.js +0 -127
  322. package/_chunks/choice-chips-Cs4D-3nH.js +0 -110
  323. package/_chunks/compat.module-DDB2pm9O.js +0 -229
  324. package/_chunks/control-tooltip-ztgmsG7H.js +0 -100
  325. package/_chunks/dialog.parts-DBqo3Qwb.js +0 -134
  326. package/_chunks/dropdown-voWqmwAe.js +0 -357
  327. package/_chunks/editor-popup-D3JdS8l3.js +0 -81
  328. package/_chunks/mount-DZe_6VtR.js +0 -90
  329. package/_chunks/request-trail-IdNiFvKH.js +0 -347
  330. package/_chunks/rich-text-BzI1DyfF.js +0 -477
  331. package/avatar/index.view.d.ts +0 -25
  332. package/color-palette/native.view.d.ts +0 -15
  333. package/control-presentation.view.d.ts +0 -8
  334. package/dialog/dialog-action-footer.view.d.ts +0 -20
  335. package/dialog/dialog.dom.view.d.ts +0 -15
  336. package/form-controls/index.view.d.ts +0 -12
  337. package/formatting/control-tooltip.d.ts +0 -27
  338. package/native-controls.view.d.ts +0 -54
  339. package/react-native-select.d.ts +0 -6
  340. package/search-input/native.view.d.ts +0 -21
  341. package/styles/legacy-pagination.css +0 -112
  342. package/surfaces.view.d.ts +0 -63
  343. package/vue-native-select.d.ts +0 -9
@@ -5,18 +5,18 @@ function e(...e) {
5
5
  return [...new Set(t.filter(Boolean))].join(" ");
6
6
  }
7
7
  function t(t, n = {}) {
8
- let { class: r, className: i, unstyled: a, busy: o, ...s } = n, c = t === "button" && o === !0;
9
- if (c) {
10
- for (let e of Object.keys(s)) /^on/i.test(e) && delete s[e];
11
- s.disabled = !0, s["aria-busy"] = !0, s.onClickCapture = (e) => {
8
+ let { class: r, className: i, unstyled: a, busy: o, rounded: s, ...c } = n, l = t === "button" && o === !0;
9
+ if (l) {
10
+ for (let e of Object.keys(c)) /^on/i.test(e) && delete c[e];
11
+ c.disabled = !0, c["aria-busy"] = !0, c.onClickCapture = (e) => {
12
12
  e.preventDefault(), e.stopPropagation();
13
13
  };
14
14
  }
15
- let l = t === "input" ? n.type ?? "text" : void 0, u = t === "button" ? a ? "" : "rv-btn" : t === "summary" ? "rv-disclosure-summary" : l === "checkbox" ? "rv-checkbox" : l === "radio" ? "rv-radio" : l === "range" ? "rv-native-slider" : l === "hidden" ? "" : "rv-control";
15
+ let u = t === "input" ? n.type ?? "text" : void 0, d = t === "button" ? a ? "" : "rv-btn" : t === "summary" ? "rv-disclosure-summary" : u === "checkbox" ? "rv-checkbox" : u === "radio" ? "rv-radio" : u === "range" ? "rv-native-slider" : u === "hidden" ? "" : "rv-control";
16
16
  return {
17
17
  ...t === "button" ? { type: "button" } : {},
18
- ...s,
19
- class: e(u, r, i, c && "rv-btn-busy", c && n.disabled && "rv-btn-busy-disabled")
18
+ ...c,
19
+ class: e(d, r, i, t === "button" && s && "rv-btn-rounded", l && "rv-btn-busy", l && n.disabled && "rv-btn-busy-disabled")
20
20
  };
21
21
  }
22
22
  //#endregion
@@ -1,2 +1,8 @@
1
- /** Compatibility entry; markup is owned by the Preact TSX implementation. */
2
- export * from './control-presentation.view';
1
+ import { ControlTag, ControlAttributes } from './control-attributes';
2
+ export * from './control-attributes';
3
+ export declare function renderControl<H extends (...args: any[]) => any>(h: H, tag: ControlTag, attributes?: ControlAttributes | null, ...children: any[]): ReturnType<H>;
4
+ export declare function createControl<K extends ControlTag>(document: Document, tag: K, attributes?: ControlAttributes): HTMLElementTagNameMap[K];
5
+ export declare function registerControl<T extends object>(component: T, tag: ControlTag): T;
6
+ export declare function nativeControlTag(type: unknown): string | undefined;
7
+ /** Decorate a native icon control after installing its trusted bundled SVG. */
8
+ export declare function decorateIconAction(element: HTMLElement, label: string): void;
@@ -1,36 +1,41 @@
1
1
  import { c as e } from "./_chunks/preact.module-BBM36DnO.js";
2
2
  import { t } from "./_chunks/jsxRuntime.module-F6UFnpT-.js";
3
3
  import { createPreactElement as n } from "./preact-mount.js";
4
- import { controlAttributes as r, controlClassName as i } from "./control-attributes.js";
5
- //#region src/control-presentation.view.tsx
6
- function a(e, t, n, ...i) {
4
+ import { n as r } from "./_chunks/popover-controller-D-AvKQ7B.js";
5
+ import { controlAttributes as i, controlClassName as a } from "./control-attributes.js";
6
+ //#region src/control-presentation.tsx
7
+ function o(e, t, n, ...r) {
7
8
  let a = n ?? {};
8
9
  if (t === "button" && a.busy === !0) {
9
- let n = i.length ? i : [a.children];
10
- return e(t, r(t, a), e("span", {
10
+ let n = r.length ? r : [a.children];
11
+ return e(t, i(t, a), e("span", {
11
12
  class: "rv-button-spinner",
12
13
  "aria-hidden": "true"
13
14
  }), ...n);
14
15
  }
15
- return e(t, r(t, a), ...i);
16
+ return e(t, i(t, a), ...r);
16
17
  }
17
- function o(t, r, i = {}) {
18
- let o = a(e, r, i);
19
- return i.onChange && !(r === "button" && i.busy) && Object.assign(o.props, { onChange: i.onChange }), n(t, o);
18
+ function s(t, r, i = {}) {
19
+ let a = o(e, r, i);
20
+ return i.onChange && !(r === "button" && i.busy) && Object.assign(a.props, { onChange: i.onChange }), n(t, a);
20
21
  }
21
- var s = /* @__PURE__ */ new WeakMap();
22
- function c(e, t) {
23
- return s.set(e, t), e;
22
+ var c = /* @__PURE__ */ new WeakMap();
23
+ function l(e, t) {
24
+ return c.set(e, t), e;
24
25
  }
25
- function l(e) {
26
- return typeof e == "string" ? e : e && (typeof e == "function" || typeof e == "object") ? s.get(e) : void 0;
26
+ function u(e) {
27
+ return typeof e == "string" ? e : e && (typeof e == "function" || typeof e == "object") ? c.get(e) : void 0;
27
28
  }
28
- function u(e, r) {
29
- e.classList.add("rv-btn", "rv-btn-ghost", "rv-btn-icon"), e.setAttribute("aria-label", r), e.title = r, e.querySelector(".rv-control-tooltip")?.remove(), e.append(n(e.ownerDocument, /* @__PURE__ */ t("span", {
29
+ var d = /* @__PURE__ */ new WeakMap();
30
+ function f(e, i) {
31
+ e.classList.add("rv-btn", "rv-btn-ghost", "rv-btn-icon"), e.setAttribute("aria-label", i), d.get(e)?.(), e.removeAttribute("title"), e.querySelector(".rv-control-tooltip")?.remove();
32
+ let a = n(e.ownerDocument, /* @__PURE__ */ t("span", {
30
33
  class: "rv-control-tooltip",
31
- "aria-hidden": "true",
32
- children: r
33
- })));
34
+ role: "tooltip",
35
+ hidden: !0,
36
+ children: i
37
+ }));
38
+ e.append(a), d.set(e, new r().bind(e, i, { surface: a }));
34
39
  }
35
40
  //#endregion
36
- export { r as controlAttributes, i as controlClassName, o as createControl, u as decorateIconAction, l as nativeControlTag, c as registerControl, a as renderControl };
41
+ export { i as controlAttributes, a as controlClassName, s as createControl, f as decorateIconAction, u as nativeControlTag, l as registerControl, o as renderControl };
package/controls.d.ts CHANGED
@@ -1,10 +1,15 @@
1
- import { BadgeOptions } from './badge';
2
1
  import { h, ComponentChildren, JSX } from './_vendor/preact/src/index';
3
2
  import { SegmentedSwitchProps, SegmentedSwitchValue } from './segmented-switch';
4
3
  import { EditorPane, EditorSplitLayout } from './editor-layout';
5
4
  import { ResizeOptions } from './surfaces';
6
5
  type ButtonAttributes = Omit<JSX.IntrinsicElements['button'], 'className'>;
7
6
  export type ButtonProps = ButtonAttributes & {
7
+ /** Pill-shaped corners for any button variant. */
8
+ rounded?: boolean;
9
+ /** Render navigation with native anchor semantics. */
10
+ href?: string;
11
+ target?: JSX.IntrinsicElements['a']['target'];
12
+ rel?: string;
8
13
  /** Show progress and block activation until cleared, preserving variant colors. */
9
14
  busy?: boolean;
10
15
  className?: string;
@@ -79,10 +84,6 @@ export declare function NumberStepper({ value, min, max, step, onChange, label,
79
84
  export declare function DateInput(props: Omit<TextInputProps, 'type'>): h.JSX.Element;
80
85
  export declare function TimeInput(props: Omit<TextInputProps, 'type'>): h.JSX.Element;
81
86
  export declare function DateTimeInput(props: Omit<TextInputProps, 'type'>): h.JSX.Element;
82
- export declare function NativeSelect({ className, class: nativeClass, onValueChange, onChange, ...props }: Omit<JSX.IntrinsicElements['select'], 'className'> & {
83
- className?: string;
84
- onValueChange?: (value: string) => void;
85
- }): h.JSX.Element;
86
87
  export declare function Chip({ children, className }: ShellProps): h.JSX.Element;
87
88
  export declare function FieldHint({ children, id }: ShellProps & {
88
89
  id?: string;
@@ -99,12 +100,12 @@ export declare function Disclosure({ children, className, summary, open, onToggl
99
100
  open?: boolean;
100
101
  onToggle?: JSX.GenericEventHandler<HTMLDetailsElement>;
101
102
  }): h.JSX.Element;
102
- export { EditorPane as Pane, EditorSplitLayout as SplitLayout, };
103
+ export { EditorPane as Pane, EditorSplitLayout as SplitLayout };
103
104
  export declare function Panel({ children, className, label }: ShellProps): h.JSX.Element;
104
105
  export declare function Toolbar({ children, className, label }: ShellProps): h.JSX.Element;
105
106
  export declare function ToolbarGroup({ children, className, label }: ShellProps): h.JSX.Element;
106
107
  export declare function ToolbarSeparator(): h.JSX.Element;
107
- export declare function Badge({ children, className, variant, shape }: ShellProps & BadgeOptions): h.JSX.Element;
108
+ export { Badge } from './badge.view';
108
109
  export declare function CountBadge({ count, label }: {
109
110
  count: number;
110
111
  label: string;
@@ -132,6 +133,17 @@ export declare function Submenu({ label, children }: ShellProps & {
132
133
  label: string;
133
134
  }): h.JSX.Element;
134
135
  export declare function ResizeHandle(props: ResizeOptions): h.JSX.Element;
136
+ export interface PanelResizeHandleProps extends Omit<ResizeOptions, 'value' | 'direction'> {
137
+ edge: 'left' | 'right';
138
+ initialWidth: number;
139
+ anchorRef?: {
140
+ current: HTMLDivElement | null;
141
+ };
142
+ /** Measure the outer host when it owns the resized width. */
143
+ resizeParent?: boolean;
144
+ }
145
+ /** Measures the containing panel and places a width control on its physical edge. */
146
+ export declare function PanelResizeHandle({ edge, initialWidth, anchorRef, resizeParent, max, ...props }: PanelResizeHandleProps): h.JSX.Element;
135
147
  export type PaginationDirection = 'first' | 'previous' | 'next' | 'last';
136
148
  export type PaginationButtonOptions = Pick<ButtonProps, 'disabled' | 'variant' | 'className' | 'title'>;
137
149
  export interface PaginationProps {
package/controls.js CHANGED
@@ -1,3 +1,4 @@
1
- import { A as e, C as t, D as n, E as r, F as i, I as a, L as o, M as s, N as c, O as l, P as u, R as d, S as f, T as p, _ as m, a as h, b as g, c as _, d as v, f as y, g as b, h as x, i as S, j as C, k as w, l as T, m as E, n as D, o as O, p as k, r as A, s as j, t as M, u as N, v as P, w as F, x as I, y as L, z as R } from "./_chunks/controls-DIum-E66.js";
2
- import { EditorList as z, EditorListGroup as B, EditorListItem as V, EditorListItemContent as H, EditorPane as U, EditorSplitLayout as W } from "./editor-layout/index.js";
3
- export { R as Alert, M as Badge, D as Button, A as ButtonGroup, S as Chip, h as CircularProgress, O as CountBadge, j as DateInput, _ as DateTimeInput, T as Disclosure, N as EmptyState, v as FieldError, y as FieldHint, k as FormSection, E as IconButton, z as Listbox, B as ListboxGroup, V as ListboxOption, H as ListboxOptionContent, x as LoadingOverlay, b as Menu, m as MenuItem, P as MenuSeparator, L as NativeSelect, g as NumberInput, I as NumberStepper, f as Pagination, U as Pane, t as Panel, F as RadioGroup, p as Rating, r as ResizeHandle, n as SegmentedControl, l as Spinner, W as SplitLayout, w as Submenu, e as TabPanel, C as Tabs, s as TextInput, c as Textarea, u as TimeInput, i as ToggleButton, a as Toolbar, o as ToolbarGroup, d as ToolbarSeparator };
1
+ import { t as e } from "./_chunks/selection-list-tooltips-C5oMJe26.js";
2
+ import { A as t, B as n, C as r, D as i, E as a, F as o, I as s, L as c, M as l, N as u, O as d, P as f, R as p, S as m, T as h, _ as g, a as _, b as v, c as y, d as b, f as x, g as S, h as C, i as w, j as T, k as E, l as D, m as O, n as k, o as A, p as j, r as M, s as N, t as P, u as F, v as I, w as L, x as R, y as z } from "./_chunks/controls-B_6NJarZ.js";
3
+ import { EditorList as B, EditorListGroup as V, EditorListItem as H, EditorListItemContent as U, EditorPane as W, EditorSplitLayout as G } from "./editor-layout/index.js";
4
+ export { p as Alert, n as Badge, P as Button, k as ButtonGroup, M as Chip, w as CircularProgress, _ as CountBadge, A as DateInput, N as DateTimeInput, y as Disclosure, D as EmptyState, F as FieldError, b as FieldHint, x as FormSection, j as IconButton, B as Listbox, V as ListboxGroup, H as ListboxOption, U as ListboxOptionContent, O as LoadingOverlay, C as Menu, S as MenuItem, g as MenuSeparator, I as NumberInput, z as NumberStepper, v as Pagination, W as Pane, R as Panel, m as PanelResizeHandle, r as RadioGroup, L as Rating, h as ResizeHandle, a as SegmentedControl, i as Spinner, G as SplitLayout, d as Submenu, E as TabPanel, t as Tabs, T as TextInput, l as Textarea, u as TimeInput, f as ToggleButton, o as Toolbar, s as ToolbarGroup, c as ToolbarSeparator, e as useSelectionListTooltips };
@@ -1,8 +1,12 @@
1
- /** Keep the owning field visible, scrolling the popup on the roomier side when necessary. */
1
+ /** Prefer keeping the field visible, with an optional viewport fit for larger editors. */
2
2
  export declare function calculateEditorPopupPosition(anchor: Pick<DOMRect, 'left' | 'right' | 'top' | 'bottom'>, popup: Pick<DOMRect, 'width' | 'height'>, viewport: {
3
3
  width: number;
4
4
  height: number;
5
- }, gap?: number, inset?: number): {
5
+ }, { gap, inset, fitViewport }?: {
6
+ gap?: number | undefined;
7
+ inset?: number | undefined;
8
+ fitViewport?: boolean | undefined;
9
+ }): {
6
10
  placementY: string;
7
11
  maxHeight: number;
8
12
  top: number;
@@ -6,6 +6,10 @@ export interface EditorPopupHandle {
6
6
  export interface EditorPopupOptions {
7
7
  label: string;
8
8
  className?: string;
9
+ /** Allow overlap with the anchor when the popup needs more vertical room. */
10
+ fitViewport?: boolean;
11
+ /** A separate trigger can toggle the popup without applying the draft. */
12
+ trigger?: HTMLElement;
9
13
  onClose?: () => void;
10
14
  isAvailable?: () => boolean;
11
15
  }
@@ -1 +1 @@
1
- export { t as mountEditorPopup } from "../_chunks/editor-popup-D3JdS8l3.js";
1
+ export { t as mountEditorPopup } from "../_chunks/editor-popup-ByU7qiub.js";
@@ -0,0 +1,35 @@
1
+ export interface PopoverOptions {
2
+ anchor: HTMLElement | SVGElement;
3
+ placement?: 'above';
4
+ content: HTMLElement;
5
+ /** Defaults to the document body. */
6
+ appendTo?: HTMLElement;
7
+ onClose?: () => void;
8
+ restoreFocus?: boolean;
9
+ closeOnOutside?: boolean;
10
+ closeOnEscape?: boolean;
11
+ display?: string;
12
+ }
13
+ /** One owner for native top-layer promotion, viewport positioning and disposal. */
14
+ export declare class PopoverController {
15
+ private active?;
16
+ get isOpen(): boolean;
17
+ open(options: PopoverOptions): {
18
+ close: (restoreFocus?: boolean) => void;
19
+ refresh: () => void;
20
+ };
21
+ refresh(): void;
22
+ close(restoreFocus?: boolean): void;
23
+ destroy(): void;
24
+ }
25
+ export declare function createTooltipElement(document: Document, className?: string): HTMLDivElement;
26
+ /** Imperative binding adapter over the same session used by useTooltip. */
27
+ export declare class TooltipController {
28
+ private release?;
29
+ bind(anchor: HTMLElement | SVGElement, text: string, options?: {
30
+ trigger?: 'hover' | 'click';
31
+ surface?: HTMLElement;
32
+ onEscape?: () => void;
33
+ }): () => void;
34
+ destroy(): void;
35
+ }
@@ -0,0 +1,2 @@
1
+ /** Includes portalled descendants linked by their owning trigger's aria-controls. */
2
+ export declare function ownsPopupTarget(root: HTMLElement | null | undefined, target: Node | null): boolean;
@@ -0,0 +1,2 @@
1
+ /** One delegated binding per list, including options rendered by custom templates. */
2
+ export declare function useSelectionListTooltips(optionSelector?: string): (root: HTMLElement | null) => void;
@@ -0,0 +1,2 @@
1
+ /** Native title replacement, without wrappers or changes to consumer handlers. */
2
+ export declare function useTitleTooltip<T extends HTMLElement | SVGElement>(title?: string, onEscape?: () => void): import('../_vendor/preact/src/index').RefObject<T>;
@@ -0,0 +1,29 @@
1
+ export type TooltipAnchor = HTMLElement | SVGElement;
2
+ /** One lifecycle for declarative and imperative tooltip adapters. */
3
+ export declare class TooltipSession {
4
+ private anchor?;
5
+ private surface?;
6
+ private timer?;
7
+ private mode?;
8
+ private cleanup?;
9
+ private mounted;
10
+ private pointerFocus;
11
+ private open;
12
+ private addedDescription;
13
+ onHide?: () => void;
14
+ onEscape?: () => void;
15
+ delay: number;
16
+ get isOpen(): boolean;
17
+ get isPending(): boolean;
18
+ setSurface(surface: HTMLElement | null): void;
19
+ show(anchor: TooltipAnchor): void;
20
+ private present;
21
+ hide(): void;
22
+ focus(anchor: TooltipAnchor): void;
23
+ blur(): void;
24
+ pointerDown(): void;
25
+ leave(anchor?: TooltipAnchor): void;
26
+ keyDown(event: KeyboardEvent): void;
27
+ destroy(): void;
28
+ private listen;
29
+ }
@@ -0,0 +1,13 @@
1
+ /** 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";
3
+ /** Also installs into shadow roots/fullscreen roots used by standalone charts. */
4
+ export declare function ensureTooltipStyles(root: Document | ShadowRoot): void;
5
+ export declare function prepareTooltipSurface(element: HTMLElement): void;
6
+ /** Shared hint placement: centered above the trigger, with a bounded below fallback. */
7
+ export declare function calculateTooltipPosition(anchor: DOMRect, popup: DOMRect, viewport: {
8
+ width: number;
9
+ height: number;
10
+ }): import('./anchored-popover').AnchoredPopoverPosition | {
11
+ left: number;
12
+ top: number;
13
+ };
@@ -0,0 +1,6 @@
1
+ import { JSX } from '../_vendor/preact/src/index';
2
+ /** Wrapper-free shared hint for otherwise native text and label elements. */
3
+ export declare function TooltipText({ as, title, children, ...attributes }: Omit<JSX.HTMLAttributes<HTMLElement>, 'title'> & {
4
+ as?: 'span' | 'label' | 'div';
5
+ title?: string;
6
+ }): JSX.Element;
@@ -0,0 +1,35 @@
1
+ import { h, ComponentChildren, TargetedEvent } from '../_vendor/preact/src/index';
2
+ type TooltipPresentation = {
3
+ className?: string;
4
+ placement?: 'above';
5
+ delay?: number;
6
+ content?: ComponentChildren;
7
+ };
8
+ /** Preact adapter; the session owns all tooltip behavior and DOM lifecycle. */
9
+ export declare function useControlTooltip(text: string, _floating?: boolean, presentation?: TooltipPresentation): {
10
+ readonly id: string;
11
+ readonly hide: () => void;
12
+ readonly triggerProps: {
13
+ readonly 'aria-describedby': string;
14
+ readonly onFocus: (event: TargetedEvent<HTMLElement>) => void;
15
+ readonly onBlur: () => void;
16
+ readonly onMouseEnter: (event: TargetedEvent<HTMLElement>) => void;
17
+ readonly onMouseLeave: (event?: TargetedEvent<HTMLElement>) => void;
18
+ readonly onPointerDown: (_event: TargetedEvent<HTMLElement>) => void;
19
+ readonly onPointerCancel: () => void;
20
+ readonly onKeyDown: (event: KeyboardEvent) => void;
21
+ };
22
+ readonly tooltip: h.JSX.Element;
23
+ };
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;
34
+ export declare const useTooltip: typeof useControlTooltip;
35
+ export {};
@@ -1,3 +1,5 @@
1
+ export { ensureTooltipStyles, prepareTooltipSurface, TOOLTIP_STYLES, } from './tooltip-surface';
2
+ export { ownsPopupTarget } from './popup-ownership';
1
3
  export type TopLayerPopupMode = 'popover' | 'fallback';
2
4
  export type TopLayerPopupElement = HTMLElement & {
3
5
  showPopover?: () => void;
@@ -7,3 +9,5 @@ export type TopLayerPopupElement = HTMLElement & {
7
9
  export declare function showTopLayerPopup(element: TopLayerPopupElement, visibleDisplay?: string): TopLayerPopupMode;
8
10
  /** Hides an overlay opened by `showTopLayerPopup`; safe to call repeatedly. */
9
11
  export declare function hideTopLayerPopup(element: TopLayerPopupElement, mode?: TopLayerPopupMode): void;
12
+ /** Includes portalled popup content linked by descendant aria-controls triggers. */
13
+ export declare function popupOwnsTarget(panel: HTMLElement, target: Node | null): boolean;
@@ -1,23 +1 @@
1
- //#region src/core/top-layer-popup.ts
2
- var e = /* @__PURE__ */ new WeakMap();
3
- function t(t, n = "flex") {
4
- if (e.has(t) || e.set(t, t.getAttribute("data-rv-ui-surface")), t.setAttribute("data-rv-ui-surface", ""), t.style.display = n, typeof t.showPopover == "function") {
5
- t.setAttribute("popover", "manual");
6
- try {
7
- return t.showPopover(), "popover";
8
- } catch {
9
- t.removeAttribute("popover");
10
- }
11
- }
12
- return t.style.display = n, "fallback";
13
- }
14
- function n(t, n) {
15
- let r = e.get(t);
16
- if (r !== void 0 && (r === null ? t.removeAttribute("data-rv-ui-surface") : t.setAttribute("data-rv-ui-surface", r), e.delete(t)), n === "popover" && typeof t.hidePopover == "function") try {
17
- t.hidePopover(), t.style.removeProperty("display");
18
- return;
19
- } catch {}
20
- t.style.display = "none";
21
- }
22
- //#endregion
23
- export { n as hideTopLayerPopup, t as showTopLayerPopup };
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-CNSDdfJV.js";
@@ -1,3 +1,3 @@
1
1
  import { TemporalPickerOptions } from './types';
2
- /** Adds the shared picker to an existing native input without changing its draft/commit owner. */
2
+ /** Adds or replaces the shared picker on an existing native input. */
3
3
  export declare function attachTemporalPicker(input: HTMLInputElement, options: TemporalPickerOptions, commit: (value: string) => void): () => void;
@@ -4,7 +4,7 @@ export interface DateInputOptions extends DateEntryOptions {
4
4
  /** Date-only multiple selection uses a semicolon-separated list by default. */
5
5
  multipleSeparator?: string;
6
6
  }
7
- export declare function DateControl({ value, label, options, multiple, invalid, errorId, disabled, readOnly, minDate, maxDate, onChange, onFocus }: {
7
+ export declare function DateControl({ value, label, options, multiple, invalid, errorId, disabled, readOnly, minDate, maxDate, onChange, onFocus, }: {
8
8
  value: string | string[];
9
9
  label: string;
10
10
  options?: DateInputOptions;
@@ -1,11 +1,12 @@
1
1
  import { DateTimeFieldProps, TemporalPickerOptions } from './types';
2
2
  import { TemporalControlValue } from '../_shared/dates/index';
3
- export declare function TemporalDraft({ value, options, apply, cancel, clearable, }: {
3
+ export declare function TemporalDraft({ value, options, apply, cancel, onValidChange, clearable, }: {
4
4
  clearable?: boolean;
5
5
  value: TemporalControlValue;
6
6
  options: TemporalPickerOptions;
7
7
  apply: (value: TemporalControlValue) => void | string;
8
8
  cancel: () => void;
9
+ onValidChange?: (value: TemporalControlValue) => void;
9
10
  }): import("../_vendor/preact/src/index").JSX.Element;
10
11
  /** Native text entry plus the original shared CalendarPicker, usable in any product form. */
11
- export declare function DateTimeField({ value, kind, picker, onValueChange, onInput, formatValue, parseValue, ...input }: DateTimeFieldProps): import("../_vendor/preact/src/index").JSX.Element;
12
+ export declare function DateTimeField({ value, kind, picker, livePickerUpdates, onValueChange, onInput, formatValue, parseValue, ...input }: DateTimeFieldProps): import("../_vendor/preact/src/index").JSX.Element;
@@ -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-BxPJusp9.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-CTOSbzb0.js";