@revolist/ui 4.0.4-rc → 4.0.5-rc

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 (192) hide show
  1. package/OWNERSHIP.md +1 -1
  2. package/README.md +16 -0
  3. package/_chunks/arrow-up-Cw8hW9vp.js +4 -0
  4. package/_chunks/badge.view-D30pMUfi.js +14 -0
  5. package/_chunks/calculator-CDWOuAcp.js +4 -0
  6. package/_chunks/{calendar-xpZ0v3xf.js → calendar-DsXIhybL.js} +19 -19
  7. package/_chunks/chart-frame-CuZABXVI.js +141 -0
  8. package/_chunks/check-BwI7iCAm.js +4 -0
  9. package/_chunks/choice-chips-BhP8MZjs.js +126 -0
  10. package/_chunks/{color-palette-D8vyPfld.js → color-palette-DMJUChWC.js} +20 -22
  11. package/_chunks/color-picker-B4TQvxxB.js +143 -0
  12. package/_chunks/{component-C_T2VN5u.js → component-qKctqdzk.js} +281 -265
  13. package/_chunks/configurator-actions-C19O1rda.js +155 -0
  14. package/_chunks/configurator-field-icon-CmcM_sPs.js +53 -0
  15. package/_chunks/{control-AHKXD5Eu.js → control-BkWukVt9.js} +13 -13
  16. package/_chunks/{controls-DsNi8V8I.js → controls-BLQnWEd7.js} +147 -155
  17. package/_chunks/{date-control-DrVFX13g.js → date-control-Cgw5PwlZ.js} +1 -1
  18. package/_chunks/date-time-B8rK5gpC.js +784 -0
  19. package/_chunks/{dialog.parts-CKGkC5zP.js → dialog.parts-BSbvnEwX.js} +21 -21
  20. package/_chunks/{duration-CL68Em0o.js → duration-DwFXonEV.js} +1 -4
  21. package/_chunks/editor-popup-BaaxL89T.js +81 -0
  22. package/_chunks/field-configurator-1eQP0tKy.js +223 -0
  23. package/_chunks/icon-toolbar-xbqa0hu9.js +128 -0
  24. package/_chunks/magnifying-glass-CvrTDSkB.js +4 -0
  25. package/_chunks/minus-BOAR3A1C.js +4 -0
  26. package/_chunks/mount-D1i5DLRn.js +266 -0
  27. package/_chunks/native-control-DO0d1kgx.js +636 -0
  28. package/_chunks/{number-input-BKwA5FnM.js → number-input-s9ddPwX6.js} +7 -7
  29. package/_chunks/{picker-h1P5RUgp.js → picker-AY05b41W.js} +2 -2
  30. package/_chunks/plus-CbGRkIGl.js +4 -0
  31. package/_chunks/popover-controller-D-AvKQ7B.js +102 -0
  32. package/_chunks/{popup-CT2uD3go.js → popup-UXGCiv3n.js} +97 -97
  33. package/_chunks/{rating-choice-DZgmaic0.js → rating-choice-BEs_QFZC.js} +1 -1
  34. package/_chunks/{reorder-list-CSlqAGHw.js → reorder-list-A49l172e.js} +1 -1
  35. package/_chunks/request-trail-DCOfa5zw.js +753 -0
  36. package/_chunks/rich-text-xfMWadGi.js +842 -0
  37. package/_chunks/rotate-left-BF6G883o.js +4 -0
  38. package/_chunks/title-tooltip-Cw6LOZhb.js +11 -0
  39. package/_chunks/tooltip-D4xkio5G.js +54 -0
  40. package/_chunks/tooltip-owner-DjdvqKzz.js +19 -0
  41. package/_chunks/tooltip-session-B6X6x8G_.js +110 -0
  42. package/_chunks/tooltip-text-BXsUEmBH.js +12 -0
  43. package/_chunks/top-layer-popup-CNSDdfJV.js +59 -0
  44. package/ai/_chat.scss +28 -3
  45. package/ai/_style.scss +55 -2
  46. package/ai/chat.d.ts +3 -1
  47. package/ai/components.d.ts +13 -2
  48. package/ai/index.d.ts +1 -0
  49. package/ai/index.js +3 -3
  50. package/ai/mount.d.ts +17 -1
  51. package/ai/results/_style.scss +80 -0
  52. package/ai/results/index.d.ts +11 -0
  53. package/ai/results/metrics.d.ts +5 -0
  54. package/ai/results/table.d.ts +5 -0
  55. package/ai/results/text.d.ts +5 -0
  56. package/ai/results/types.d.ts +29 -0
  57. package/ai/transcript.d.ts +2 -0
  58. package/ai/translations.d.ts +1 -1
  59. package/assignee/index.js +2 -2
  60. package/avatar/index.js +32 -31
  61. package/badge.view.d.ts +8 -0
  62. package/brush-range/component.js +28 -27
  63. package/buttons/svg-button.d.ts +1 -1
  64. package/buttons/svg-button.js +16 -16
  65. package/calendar/_calendar.scss +2 -2
  66. package/calendar/calendar.js +1 -1
  67. package/calendar/index.js +2 -2
  68. package/choice-chips/index.d.ts +3 -1
  69. package/choice-chips/index.js +1 -1
  70. package/color-palette/color-palette.js +1 -1
  71. package/color-palette/color-palette.style.scss +1 -1
  72. package/color-palette/color-picker.js +2 -2
  73. package/component-catalog.d.ts +6 -1
  74. package/configurator-actions.d.ts +67 -0
  75. package/configurator-actions.js +1 -0
  76. package/configurator-aggregation-list.d.ts +14 -0
  77. package/configurator-aggregation-list.js +61 -0
  78. package/configurator-drop-zone.d.ts +38 -0
  79. package/configurator-drop-zone.js +64 -0
  80. package/configurator-field-icon.d.ts +10 -0
  81. package/configurator-field-icon.js +1 -0
  82. package/configurator-focus.d.ts +4 -0
  83. package/configurator-focus.js +39 -0
  84. package/configurator-sections.d.ts +42 -0
  85. package/configurator-sections.js +71 -0
  86. package/control-presentation.js +24 -19
  87. package/controls.d.ts +1 -2
  88. package/controls.js +4 -3
  89. package/core/editor-popup.js +1 -1
  90. package/core/popover-controller.d.ts +35 -0
  91. package/core/popup-ownership.d.ts +2 -0
  92. package/core/title-tooltip.d.ts +2 -0
  93. package/core/tooltip-session.d.ts +29 -0
  94. package/core/tooltip-surface.d.ts +13 -0
  95. package/core/tooltip-text.d.ts +6 -0
  96. package/core/tooltip.d.ts +35 -0
  97. package/core/top-layer-popup.d.ts +4 -0
  98. package/core/top-layer-popup.js +1 -23
  99. package/date-time/index.js +1 -1
  100. package/date-time/style.scss +50 -7
  101. package/date-time/time-selection.d.ts +3 -1
  102. package/dialog/dialog.dom.js +8 -8
  103. package/dialog/dialog.parts.js +1 -1
  104. package/distribution-chart/_distribution-chart.scss +1 -57
  105. package/distribution-chart/area-chart.js +1 -1
  106. package/distribution-chart/bar-chart.js +1 -1
  107. package/distribution-chart/line-chart.js +1 -1
  108. package/dropdown/content.js +1 -1
  109. package/dropdown/control.js +1 -1
  110. package/dropdown/index.js +2 -2
  111. package/dropdown/lookup-field.js +2 -1
  112. package/dropdown/popup.d.ts +2 -2
  113. package/dropdown/popup.js +1 -1
  114. package/duration/index.js +1 -1
  115. package/editor-actions.js +1 -1
  116. package/field-configurator.d.ts +19 -0
  117. package/field-configurator.js +4 -170
  118. package/field-expansion.d.ts +9 -0
  119. package/filter/filters/slider/_slider.scss +0 -17
  120. package/filter/filters/slider/control.js +2 -0
  121. package/filter/filters/slider/runtime.js +49 -22
  122. package/filter/filters/slider/single.js +1 -1
  123. package/filter-badge.js +1 -1
  124. package/filter-controls.js +1 -1
  125. package/form-controls/index.js +6 -6
  126. package/form-controls/presentation.js +12 -12
  127. package/formatting/control-tooltip.d.ts +2 -27
  128. package/formatting/index.js +22 -21
  129. package/formatting/styles.scss +2 -47
  130. package/framework.js +215 -208
  131. package/history-controls.js +27 -1
  132. package/icon-toolbar.d.ts +58 -0
  133. package/icon-toolbar.js +1 -0
  134. package/masked-input/index.js +1 -1
  135. package/native-control.d.ts +1 -2
  136. package/native-control.js +1 -1
  137. package/native-styles.css +1 -1
  138. package/native.js +45 -42
  139. package/number-input/index.js +1 -1
  140. package/package.json +36 -1
  141. package/pagination.js +1 -1
  142. package/pdf-viewer/index.js +1 -1
  143. package/pickers.d.ts +5 -1
  144. package/preact-mount.js +1 -1
  145. package/preact.d.ts +7 -0
  146. package/preact.js +68 -61
  147. package/rating-choice.js +1 -1
  148. package/react.d.ts +5 -0
  149. package/react.js +67 -65
  150. package/reorder-list.js +1 -1
  151. package/resource-picker/resource-picker-popup.js +1 -1
  152. package/resource-picker/resource-picker.js +4 -4
  153. package/rich-text/engine.d.ts +1 -0
  154. package/rich-text/format-html.d.ts +2 -0
  155. package/rich-text/index.d.ts +4 -0
  156. package/rich-text/index.js +1 -1
  157. package/rich-text/model.d.ts +2 -0
  158. package/rich-text/style.scss +165 -70
  159. package/rich-text/syntax.d.ts +5 -0
  160. package/rich-text/translations.d.ts +2 -0
  161. package/select.d.ts +3 -1
  162. package/select.js +1 -1
  163. package/status-feedback/exit-snapshot.js +4 -4
  164. package/status-feedback/popover.js +4 -4
  165. package/styles/_compositions.scss +3 -3
  166. package/styles/_field-configurator.scss +146 -0
  167. package/styles/_fields-grid.scss +35 -0
  168. package/styles/_primitives.scss +25 -18
  169. package/styles/configurator-actions.scss +141 -0
  170. package/styles/legacy-pagination.css +19 -2
  171. package/styles.css +1 -1
  172. package/surfaces.d.ts +3 -0
  173. package/surfaces.js +34 -131
  174. package/surfaces.view.d.ts +4 -34
  175. package/svelte.js +1 -1
  176. package/switch/index.js +15 -14
  177. package/time-grid.js +37 -36
  178. package/timeline-track/index.js +2 -2
  179. package/ui.css +1 -1
  180. package/vue.d.ts +24 -9
  181. package/vue.js +118 -116
  182. package/_chunks/chart-frame-Cmc7xU1i.js +0 -130
  183. package/_chunks/choice-chips-CHQTUdLs.js +0 -110
  184. package/_chunks/color-picker-CudqPYZo.js +0 -138
  185. package/_chunks/control-tooltip-uscKfAnV.js +0 -100
  186. package/_chunks/date-time-qIhp5vaX.js +0 -768
  187. package/_chunks/editor-popup-WDdtVDNA.js +0 -81
  188. package/_chunks/history-controls-B3u3INEK.js +0 -27
  189. package/_chunks/mount-DQ1cpppK.js +0 -257
  190. package/_chunks/native-control-C_yok8_-.js +0 -605
  191. package/_chunks/request-trail-DSlFix6i.js +0 -618
  192. package/_chunks/rich-text-CH7gIqOS.js +0 -636
@@ -1,12 +1,12 @@
1
1
  import { t as e } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
2
- import { t } from "../_chunks/native-control-C_yok8_-.js";
3
- import { createPreactElement as n } from "../preact-mount.js";
4
- import { a as r, i, n as a, r as o, s } from "../_chunks/dialog.parts-CKGkC5zP.js";
2
+ import { createPreactElement as t } from "../preact-mount.js";
3
+ import { t as n } from "../_chunks/native-control-DO0d1kgx.js";
4
+ import { a as r, i, n as a, r as o, s } from "../_chunks/dialog.parts-BSbvnEwX.js";
5
5
  //#region src/dialog/dialog.dom.view.tsx
6
- function c(t, c, l) {
6
+ function c(n, c, l) {
7
7
  let u = f(), d, p, m, h, g;
8
8
  return {
9
- root: n(t, /* @__PURE__ */ e("div", {
9
+ root: t(n, /* @__PURE__ */ e("div", {
10
10
  class: ["rv-dialog-overlay", c.overlayClass].filter(Boolean).join(" "),
11
11
  role: "dialog",
12
12
  "aria-modal": "true",
@@ -57,15 +57,15 @@ function c(t, c, l) {
57
57
  actions: g
58
58
  };
59
59
  }
60
- function l(t, r, a) {
61
- return n(t, /* @__PURE__ */ e(i, {
60
+ function l(n, r, a) {
61
+ return t(n, /* @__PURE__ */ e(i, {
62
62
  "aria-label": r,
63
63
  title: r,
64
64
  onClick: a
65
65
  }));
66
66
  }
67
67
  function u(r, i, a, o = "default") {
68
- return n(r, /* @__PURE__ */ e(t, {
68
+ return t(r, /* @__PURE__ */ e(n, {
69
69
  title: i || void 0,
70
70
  class: o === "default" ? "rv-btn" : `rv-btn-${o}`,
71
71
  onClick: a,
@@ -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-CKGkC5zP.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-BSbvnEwX.js";
@@ -108,52 +108,6 @@
108
108
  outline-offset: 2px;
109
109
  }
110
110
 
111
- .rv-distribution-chart__tooltip {
112
- position: absolute;
113
- z-index: 3;
114
- top: 4px;
115
- bottom: auto;
116
- left: 50%;
117
- display: none;
118
- width: max-content;
119
- max-width: 220px;
120
- padding: 7px 9px;
121
- transform: translateX(-50%);
122
- border: 1px solid var(--rv-distribution-border, var(--rv-ui-border));
123
- border-radius: 7px;
124
- background: var(--tooltip-bg, var(--rv-ui-text));
125
- box-shadow: 0 8px 24px var(--rv-ui-shadow);
126
- color: var(--tooltip-color, var(--rv-ui-surface));
127
- font: 11px/1.35 system-ui, sans-serif;
128
- pointer-events: none;
129
- white-space: nowrap;
130
- }
131
-
132
- .rv-distribution-chart__datum.is-point .rv-distribution-chart__tooltip {
133
- top: calc(100% + 7px);
134
- }
135
-
136
- .rv-distribution-chart__tooltip strong,
137
- .rv-distribution-chart__tooltip span { display: block; }
138
- .rv-distribution-chart__tooltip strong { font-weight: 600; }
139
- .rv-distribution-chart__tooltip span { opacity: 0.82; }
140
-
141
- .rv-distribution-chart__datum:first-child .rv-distribution-chart__tooltip {
142
- left: 0;
143
- transform: none;
144
- }
145
-
146
- .rv-distribution-chart__datum:last-child .rv-distribution-chart__tooltip {
147
- right: 0;
148
- left: auto;
149
- transform: none;
150
- }
151
-
152
- .rv-distribution-chart__datum:hover .rv-distribution-chart__tooltip,
153
- .rv-distribution-chart__datum:focus-visible .rv-distribution-chart__tooltip {
154
- display: block;
155
- }
156
-
157
111
  @media (prefers-reduced-motion: reduce) {
158
112
  .rv-distribution-chart__bar { transition: none; }
159
113
  }
@@ -179,17 +133,7 @@
179
133
  display: flex; align-items: center; justify-content: center; gap: 7px; margin-top: 16px;
180
134
  font-size: 12px; color: var(--rv-ui-text-muted);
181
135
  }
182
- .rv-distribution-chart__legend i,
183
- .rv-distribution-chart__tooltip i { display: block; width: 8px; height: 8px; border-radius: 2px; background: var(--rv-distribution-accent, var(--rv-ui-accent)); }
184
- .rv-distribution-chart__tooltip {
185
- background: var(--rv-ui-surface); color: var(--rv-ui-text);
186
- border-color: var(--rv-ui-border); box-shadow: 0 4px 12px var(--rv-ui-shadow);
187
- white-space: normal; overflow-wrap: anywhere;
188
- i { float: inline-start; margin-inline-end: 7px; margin-block-start: 3px; }
189
- &--line i { width: 3px; height: 22px; }
190
- &--dashed i { width: 8px; height: 0; background: transparent; border-top: 2px dashed var(--rv-ui-accent); margin-block-start: 7px; }
191
- }
192
-
136
+ .rv-distribution-chart__legend i { display: block; width: 8px; height: 8px; border-radius: 2px; background: var(--rv-distribution-accent, var(--rv-ui-accent)); }
193
137
  // Numeric/category progression stays left-to-right, including on RTL pages.
194
138
  // Keep SVG points, flex bars, labels and arrow-key order on the same axis.
195
139
  .rv-distribution-chart__region,
@@ -1,6 +1,6 @@
1
1
  import { a as e } from "../_chunks/hooks.module-CG3gN83z.js";
2
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-Cmc7xU1i.js";
3
+ import { i as n, n as r, r as i, t as a } from "../_chunks/chart-frame-CuZABXVI.js";
4
4
  //#region src/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
1
  import { t as e } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
2
- import { r as t, t as n } from "../_chunks/chart-frame-Cmc7xU1i.js";
2
+ import { r as t, t as n } from "../_chunks/chart-frame-CuZABXVI.js";
3
3
  //#region src/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,5 +1,5 @@
1
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-Cmc7xU1i.js";
2
+ import { i as t, n, r, t as i } from "../_chunks/chart-frame-CuZABXVI.js";
3
3
  //#region src/distribution-chart/line-chart.tsx
4
4
  function a(a) {
5
5
  let { points: o } = r(a.data);
@@ -1 +1 @@
1
- export { f as DropdownContent, p as DropdownPopupContent } from "../_chunks/native-control-C_yok8_-.js";
1
+ export { f as DropdownContent, p as DropdownPopupContent } from "../_chunks/native-control-DO0d1kgx.js";
@@ -1 +1 @@
1
- export { t as createDropdownControl, n as renderDropdownControl } from "../_chunks/control-AHKXD5Eu.js";
1
+ export { t as createDropdownControl, n as renderDropdownControl } from "../_chunks/control-BkWukVt9.js";
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-C_yok8_-.js";
2
- import { t as i } from "../_chunks/popup-CT2uD3go.js";
1
+ import { d as e, l as t, p as n, u as r } from "../_chunks/native-control-DO0d1kgx.js";
2
+ import { t as i } from "../_chunks/popup-UXGCiv3n.js";
3
3
  export { t as Dropdown, i as DropdownPopup, n as DropdownPopupContent, r as defineDropdown, e as destroyDropdown };
@@ -1,6 +1,6 @@
1
1
  import { i as e, t } from "../_chunks/hooks.module-CG3gN83z.js";
2
2
  import { t as n } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
3
- import { l as r } from "../_chunks/native-control-C_yok8_-.js";
3
+ import { l as r } from "../_chunks/native-control-DO0d1kgx.js";
4
4
  import { n as i } from "../_chunks/editor-commit-Bq3wSgvr.js";
5
5
  import { EditorActions as a } from "../editor-actions.js";
6
6
  //#region src/dropdown/lookup-field.tsx
@@ -17,6 +17,7 @@ function o({ initial: o, options: s, context: c, apply: l, cancel: u }) {
17
17
  },
18
18
  children: [
19
19
  /* @__PURE__ */ n(r, {
20
+ className: "rv-select",
20
21
  source: s.source ?? [],
21
22
  dataSource: s.dataSource,
22
23
  dataContext: c,
@@ -1,4 +1,4 @@
1
- import { h, ComponentChildren, RefObject } from '../_vendor/preact/src/index';
1
+ import { ComponentChildren, RefObject } from '../_vendor/preact/src/index';
2
2
  export type DropdownPopupProps = {
3
3
  onPointerRelease?: (event: MouseEvent | TouchEvent) => void;
4
4
  triggerRef: RefObject<HTMLDivElement>;
@@ -24,4 +24,4 @@ export type DropdownPopupProps = {
24
24
  * @param theme - The theme of the dropdown
25
25
  * @param dropdownMenuId - The id of the dropdown menu
26
26
  */
27
- export declare function DropdownPopup({ onPointerRelease, triggerRef, children, portalTarget, theme, dropdownMenuId, popupClassName, closeOnClickOutside, onClose, align, matchTriggerWidth, maxHeight, observePopupResize, topLayer, }: DropdownPopupProps): h.JSX.Element;
27
+ export declare function DropdownPopup({ onPointerRelease, triggerRef, children, portalTarget, theme, dropdownMenuId, popupClassName, closeOnClickOutside, onClose, align, matchTriggerWidth, maxHeight, observePopupResize, topLayer, }: DropdownPopupProps): import('../_vendor/preact/src/index').VNode<any>;
package/dropdown/popup.js CHANGED
@@ -1 +1 @@
1
- export { t as DropdownPopup } from "../_chunks/popup-CT2uD3go.js";
1
+ export { t as DropdownPopup } from "../_chunks/popup-UXGCiv3n.js";
package/duration/index.js CHANGED
@@ -1 +1 @@
1
- export { t as DurationDraft, n as DurationField } from "../_chunks/duration-CL68Em0o.js";
1
+ export { t as DurationDraft, n as DurationField } from "../_chunks/duration-DwFXonEV.js";
package/editor-actions.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { i as e } from "./_chunks/preact.module-BBM36DnO.js";
2
2
  import { t } from "./_chunks/jsxRuntime.module-F6UFnpT-.js";
3
- import { n } from "./_chunks/controls-DsNi8V8I.js";
3
+ import { t as n } from "./_chunks/controls-BLQnWEd7.js";
4
4
  //#region src/editor-actions.tsx
5
5
  var r = {
6
6
  apply: "Apply",
@@ -87,3 +87,22 @@ export interface CollapsibleSectionProps {
87
87
  }
88
88
  /** Native disclosure; collapsed content stays mounted to preserve draft edits. */
89
89
  export declare function CollapsibleSection({ title, description, defaultOpen, children, className, summaryClassName, contentClassName, descriptionClassName, renderRoot, }: CollapsibleSectionProps): ComponentChildren;
90
+ export interface ConfiguratorCompactItem {
91
+ id: string;
92
+ label: string;
93
+ icon?: string;
94
+ count?: number;
95
+ disabled?: boolean;
96
+ /** Activate the corresponding product tab when reopening. */
97
+ onOpen?: () => void;
98
+ }
99
+ /** Shared panel shell. Collapsing preserves mounted controls and their drafts. */
100
+ export declare function ConfiguratorPanel({ panelRef, standalone, children, compactItems, compact, onExpand, ...props }: Omit<JSX.HTMLAttributes<HTMLDivElement>, 'ref'> & {
101
+ panelRef?: import('./_vendor/preact/src/index').Ref<HTMLDivElement>;
102
+ standalone?: boolean;
103
+ compactItems?: readonly ConfiguratorCompactItem[];
104
+ /** Presentation state is owned by the host; the panel adds no toggle button. */
105
+ compact?: boolean;
106
+ onExpand?: () => void;
107
+ }): h.JSX.Element;
108
+ export { createFieldExpansion, fieldExpansionIds, recordFieldExpansion, type FieldExpansionState } from './field-expansion';
@@ -1,170 +1,4 @@
1
- import { c as e } from "./_chunks/preact.module-BBM36DnO.js";
2
- import { t } from "./_chunks/hooks.module-CG3gN83z.js";
3
- import { t as n } from "./_chunks/jsxRuntime.module-F6UFnpT-.js";
4
- import { SvgIcon as r } from "./icons/icon.js";
5
- import { n as i } from "./_chunks/delete-button-CW9vjLnk.js";
6
- import { RemoveButton as a } from "./buttons/remove-button.js";
7
- import { t as o } from "./_chunks/chevron-right-sxHQMSkq.js";
8
- import { DisclosureSummary as s } from "./form-controls/presentation.js";
9
- import { fieldDropIndex as c, reorderFields as l } from "./field-reorder.js";
10
- import { useFieldDropTarget as u, useFieldReorder as d } from "./field-reorder.hook.js";
11
- //#region src/field-configurator.tsx
12
- function f({ svg: e, className: t = "" }) {
13
- return /* @__PURE__ */ n(r, {
14
- svg: e,
15
- className: `rv-configurator-icon ${t}`
16
- });
17
- }
18
- function p({ children: e, className: t = "", ...r }) {
19
- return /* @__PURE__ */ n(s, {
20
- ...r,
21
- className: `rv-configurator-summary ${t}`,
22
- iconPosition: "after",
23
- icon: /* @__PURE__ */ n(f, { svg: o }),
24
- children: e
25
- });
26
- }
27
- function m({ title: e, count: t, children: r, className: i = "" }) {
28
- return /* @__PURE__ */ n("details", {
29
- class: `rv-configurator-available-fields ${i}`,
30
- open: !0,
31
- children: [/* @__PURE__ */ n(p, { children: [e, t != null && /* @__PURE__ */ n("span", {
32
- class: "rv-configurator-field-count",
33
- children: t
34
- })] }), /* @__PURE__ */ n("div", {
35
- class: "rv-configurator-library-content",
36
- children: r
37
- })]
38
- });
39
- }
40
- function h({ children: e, actions: t, className: r = "" }) {
41
- return /* @__PURE__ */ n("div", {
42
- class: `rv-configurator-zone-heading ${r}`,
43
- children: [/* @__PURE__ */ n("span", {
44
- class: "rv-configurator-zone-label",
45
- children: e
46
- }), t && /* @__PURE__ */ n("span", {
47
- class: "rv-configurator-zone-actions",
48
- children: t
49
- })]
50
- });
51
- }
52
- function g({ heading: e, actions: t, headingClassName: r, className: i = "", children: a, ...o }) {
53
- return /* @__PURE__ */ n("section", {
54
- ...o,
55
- className: `rv-configurator-zone ${i}`,
56
- children: [/* @__PURE__ */ n(h, {
57
- className: r,
58
- actions: t,
59
- children: e
60
- }), a]
61
- });
62
- }
63
- function _({ empty: e, placeholder: t, className: r = "", children: i, ...a }) {
64
- return /* @__PURE__ */ n("ul", {
65
- ...a,
66
- className: `rv-configurator-field-list ${e ? "empty" : ""} ${r}`,
67
- children: e ? /* @__PURE__ */ n("li", {
68
- className: "rv-configurator-empty-zone empty",
69
- children: t
70
- }) : i
71
- });
72
- }
73
- function v({ className: e = "", children: t, indicator: r, dropPosition: i, ...a }) {
74
- return /* @__PURE__ */ n("li", {
75
- ...a,
76
- className: `rv-configurator-field rv-configurator-field-row ${e}`,
77
- children: [
78
- r ?? (i && /* @__PURE__ */ n(D, { position: i })),
79
- /* @__PURE__ */ n("span", {
80
- className: "rv-configurator-drag-handle",
81
- "aria-hidden": "true"
82
- }),
83
- t
84
- ]
85
- });
86
- }
87
- function y({ icon: e, children: t, className: r = "" }) {
88
- return /* @__PURE__ */ n("span", {
89
- class: `rv-configurator-field-content ${r}`,
90
- children: [e, /* @__PURE__ */ n("span", {
91
- class: "rv-configurator-field-caption",
92
- children: t
93
- })]
94
- });
95
- }
96
- function b({ as: t = "div", children: n, className: r = "", ...i }) {
97
- return e(t, {
98
- ...i,
99
- class: `rv-configurator-field ${r}`
100
- }, n);
101
- }
102
- function x({ children: e, ...t }) {
103
- return /* @__PURE__ */ n("div", {
104
- ...t,
105
- className: `rv-configurator-library-list ${t.className ?? ""}`,
106
- children: e
107
- });
108
- }
109
- function S({ label: e, icon: t, actions: r, contentClassName: i, ...a }) {
110
- return /* @__PURE__ */ n(v, {
111
- ...a,
112
- children: [/* @__PURE__ */ n(y, {
113
- className: i,
114
- icon: t,
115
- children: e
116
- }), r]
117
- });
118
- }
119
- function C({ children: e, className: t = "", ...r }) {
120
- return /* @__PURE__ */ n("div", {
121
- ...r,
122
- className: `rv-configurator-field-actions ${t}`,
123
- children: e
124
- });
125
- }
126
- function w({ children: e, active: t = !1, label: r, className: i = "" }) {
127
- return /* @__PURE__ */ n("span", {
128
- className: `rv-configurator-status-badge ${i}`,
129
- "data-active": t ? "true" : void 0,
130
- title: r,
131
- "aria-label": r,
132
- children: e
133
- });
134
- }
135
- function T(e) {
136
- return /* @__PURE__ */ n(a, {
137
- ...e,
138
- className: `rv-configurator-remove-button ${e.className ?? ""}`
139
- });
140
- }
141
- function E() {
142
- return /* @__PURE__ */ n(r, { svg: i });
143
- }
144
- function D({ position: e, index: t, className: r = "" }) {
145
- return /* @__PURE__ */ n("span", {
146
- className: `rv-configurator-drop-indicator ${r}`,
147
- "data-position": e,
148
- "data-drop-index": t,
149
- "aria-hidden": "true"
150
- });
151
- }
152
- function O({ title: e, description: r, defaultOpen: i = !1, children: a, className: o = "", summaryClassName: s = "", contentClassName: c = "", descriptionClassName: l = "", renderRoot: u }) {
153
- let d = t(i), f = {
154
- class: `rv-collapsible-section rv-configurator-section ${o}`.trim(),
155
- open: d.current,
156
- children: [/* @__PURE__ */ n(p, {
157
- className: s,
158
- children: e
159
- }), /* @__PURE__ */ n("div", {
160
- class: `rv-collapsible-section__content ${c}`.trim(),
161
- children: [r && /* @__PURE__ */ n("p", {
162
- class: `rv-collapsible-section__description ${l}`.trim(),
163
- children: r
164
- }), a]
165
- })]
166
- };
167
- return u ? u(f) : /* @__PURE__ */ n("details", { ...f });
168
- }
169
- //#endregion
170
- export { O as CollapsibleSection, C as FieldActions, y as FieldContent, D as FieldDropIndicator, g as FieldGroup, h as FieldGroupHeading, f as FieldIcon, b as FieldItem, m as FieldLibrary, x as FieldLibraryList, _ as FieldList, T as FieldRemoveButton, E as FieldRemoveIcon, v as FieldRow, w as FieldStatusBadge, p as FieldSummary, S as SelectedField, c as fieldDropIndex, l as reorderFields, u as useFieldDropTarget, d as useFieldReorder };
1
+ import { _ as e, a as t, b as n, c as r, d as i, f as a, g as o, h as s, i as c, l, m as u, n as d, o as f, p, r as m, s as h, t as g, u as _, v, x as y, y as b } from "./_chunks/field-configurator-1eQP0tKy.js";
2
+ import { fieldDropIndex as x, reorderFields as S } from "./field-reorder.js";
3
+ import { useFieldDropTarget as C, useFieldReorder as w } from "./field-reorder.hook.js";
4
+ export { g as CollapsibleSection, d as ConfiguratorPanel, m as FieldActions, c as FieldContent, t as FieldDropIndicator, f as FieldGroup, h as FieldGroupHeading, r as FieldIcon, l as FieldItem, _ as FieldLibrary, i as FieldLibraryList, a as FieldList, p as FieldRemoveButton, u as FieldRemoveIcon, s as FieldRow, o as FieldStatusBadge, e as FieldSummary, v as SelectedField, b as createFieldExpansion, x as fieldDropIndex, n as fieldExpansionIds, y as recordFieldExpansion, S as reorderFields, C as useFieldDropTarget, w as useFieldReorder };
@@ -0,0 +1,9 @@
1
+ /** Expansion overlay shared by nested field libraries; searching never overwrites it. */
2
+ export interface FieldExpansionState {
3
+ known: Set<string>;
4
+ expanded: Set<string>;
5
+ collapsed: Set<string>;
6
+ }
7
+ export declare function createFieldExpansion(): FieldExpansionState;
8
+ export declare function fieldExpansionIds(state: FieldExpansionState, ids: readonly string[], searching: boolean): Set<string>;
9
+ export declare function recordFieldExpansion(state: FieldExpansionState, expanded: Iterable<unknown>): void;
@@ -17,23 +17,6 @@
17
17
  color: var(--text-color, var(--rv-ui-text-muted));
18
18
  }
19
19
 
20
- .slider-tooltip {
21
- position: absolute;
22
- top: -40px;
23
- transform: translateX(-50%);
24
- background: var(--tooltip-bg, var(--rv-ui-text));
25
- color: var(--tooltip-color, var(--rv-ui-surface));
26
- padding: 2px 6px;
27
- border-radius: 3px;
28
- font-size: 12px;
29
- line-height: 18px;
30
- opacity: 0;
31
- transition: opacity var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, cubic-bezier(.2, 0, 0, 1));
32
- pointer-events: none;
33
- white-space: nowrap;
34
- z-index: 10;
35
- }
36
-
37
20
  .range-inputs {
38
21
  display: grid;
39
22
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
@@ -12,6 +12,7 @@ function l(r, s) {
12
12
  let l = [], { minInt: u, maxInt: d, fromValueInt: f, toValueInt: p } = s.state;
13
13
  return s.showTooltips && l.push(r("div", {
14
14
  className: "slider-tooltip",
15
+ hidden: !0,
15
16
  ref: (e) => s.refs.fromTooltip = e
16
17
  })), l.push(r("input", {
17
18
  ref: (e) => {
@@ -33,6 +34,7 @@ function l(r, s) {
33
34
  onMouseOut: () => s.showTooltips && s.refs.fromTooltip && i(s.refs.fromTooltip)
34
35
  })), s.showTooltips && l.push(r("div", {
35
36
  className: "slider-tooltip",
37
+ hidden: !0,
36
38
  ref: (e) => s.refs.toTooltip = e
37
39
  })), l.push(r("input", {
38
40
  ref: (e) => {
@@ -1,27 +1,54 @@
1
- import { toSliderRange as e, unscaleSliderValue as t } from "./logic.js";
1
+ import { c as e, r as t, t as n } from "../../../_chunks/top-layer-popup-CNSDdfJV.js";
2
+ import { n as r, t as i } from "../../../_chunks/tooltip-owner-DjdvqKzz.js";
3
+ import { createControlId as a } from "../../../core/control-id.js";
4
+ import { toSliderRange as o, unscaleSliderValue as s } from "./logic.js";
2
5
  //#region src/filter/filters/slider/runtime.ts
3
- function n(t) {
4
- return e(Number(t.refs.fromSlider?.value ?? t.state.fromValueInt), Number(t.refs.toSlider?.value ?? t.state.toValueInt), t.scaleFactor);
6
+ function c(e) {
7
+ return o(Number(e.refs.fromSlider?.value ?? e.state.fromValueInt), Number(e.refs.toSlider?.value ?? e.state.toValueInt), e.scaleFactor);
5
8
  }
6
- function r(e) {
7
- let { fromValue: t, toValue: r } = n(e), i = e.formatFromValue(t), a = e.formatToValue(r);
8
- e.refs.fromLabel && (e.refs.fromLabel.textContent = i), e.refs.toLabel && (e.refs.toLabel.textContent = a), e.refs.fromInput && (e.refs.fromInput.value = e.formatInputValue(t)), e.refs.toInput && (e.refs.toInput.value = e.formatInputValue(r)), e.refs.fromSlider?.setAttribute("aria-valuetext", i), e.refs.toSlider?.setAttribute("aria-valuetext", a);
9
+ function l(e) {
10
+ let { fromValue: t, toValue: n } = c(e), r = e.formatFromValue(t), i = e.formatToValue(n);
11
+ e.refs.fromLabel && (e.refs.fromLabel.textContent = r), e.refs.toLabel && (e.refs.toLabel.textContent = i), e.refs.fromInput && (e.refs.fromInput.value = e.formatInputValue(t)), e.refs.toInput && (e.refs.toInput.value = e.formatInputValue(n)), e.refs.fromSlider?.setAttribute("aria-valuetext", r), e.refs.toSlider?.setAttribute("aria-valuetext", i);
9
12
  }
10
- function i(e, n, r, i, o = 100) {
11
- n.textContent = i(t(Number(e.value), o));
12
- let s = r.maxInt - r.minInt || 1, c = (Number(e.value) - r.minInt) / s * 100, l = n.parentElement?.getBoundingClientRect(), u = n.getBoundingClientRect();
13
- l && u ? n.style.left = `${a(c, l.width, u.width)}px` : n.style.left = `${c}%`, n.style.opacity = "1";
13
+ var u = /* @__PURE__ */ new WeakMap();
14
+ function d(n, r, o, c, l = 100) {
15
+ if (r.textContent = c(s(Number(n.value), l)), e(r), !u.has(r)) {
16
+ r.id ||= a("rv-tooltip");
17
+ let e = n.getAttribute("aria-describedby");
18
+ n.setAttribute("aria-describedby", [e, r.id].filter(Boolean).join(" ")), r.hidden = !1, Object.assign(r.style, {
19
+ position: "fixed",
20
+ inset: "auto",
21
+ margin: "0",
22
+ transform: "none"
23
+ });
24
+ let o = t(r, "block"), s = n.ownerDocument.defaultView?.MutationObserver, c = s ? new s(() => {
25
+ n.isConnected || p(r);
26
+ }) : void 0;
27
+ c?.observe(n.ownerDocument, {
28
+ childList: !0,
29
+ subtree: !0
30
+ }), u.set(r, {
31
+ mode: o,
32
+ slider: n,
33
+ original: e,
34
+ disconnect: () => c?.disconnect()
35
+ }), i(n.ownerDocument, r, () => p(r));
36
+ }
37
+ let d = o.maxInt - o.minInt || 1, m = (Number(n.value) - o.minInt) / d * 100, h = r.parentElement?.getBoundingClientRect(), g = r.getBoundingClientRect();
38
+ h && g ? (r.style.left = `${h.left + f(m, h.width, g.width) - g.width / 2}px`, r.style.top = `${Math.max(8, h.top - g.height - 8)}px`) : r.style.left = `${m}%`, r.style.opacity = "1";
14
39
  }
15
- function a(e, t, n, r = 8) {
40
+ function f(e, t, n, r = 8) {
16
41
  let i = n / 2, a = r + i, o = t - r - i;
17
42
  if (a > o) return t / 2;
18
43
  let s = Math.min(Math.max(e, 0), 100) / 100 * t;
19
44
  return Math.min(Math.max(s, a), o);
20
45
  }
21
- function o(e) {
46
+ function p(e) {
22
47
  e.style.opacity = "0";
48
+ let t = u.get(e);
49
+ t && (t.disconnect?.(), n(e, t.mode), e.hidden = !0, t.original === null ? t.slider.removeAttribute("aria-describedby") : t.slider.setAttribute("aria-describedby", t.original), u.delete(e), r(e.ownerDocument, e));
23
50
  }
24
- function s(e, t, n) {
51
+ function m(e, t, n) {
25
52
  let r = getComputedStyle(n), i = r.getPropertyValue("--slider-color").trim() || r.getPropertyValue("--rv-ui-border").trim() || "var(--rv-ui-border)", a = r.getPropertyValue("--range-color").trim() || r.getPropertyValue("--rv-ui-accent").trim() || "var(--rv-ui-accent)", o = parseInt(t.max, 10) - parseInt(t.min, 10) || 1, s = parseInt(e.value, 10) - parseInt(e.min, 10), c = parseInt(t.value, 10) - parseInt(t.min, 10), l = s / o * 100, u = c / o * 100;
26
53
  n.style.background = `linear-gradient(
27
54
  to right,
@@ -32,20 +59,20 @@ function s(e, t, n) {
32
59
  ${i} ${u}%,
33
60
  ${i} 100%) center / 100% 4px no-repeat`;
34
61
  }
35
- function c(e) {
62
+ function h(e) {
36
63
  let { fromSlider: t, toSlider: n } = e.refs;
37
- t && n && (s(t, n, n), r(e));
64
+ t && n && (m(t, n, n), l(e));
38
65
  }
39
- function l(e) {
66
+ function g(e) {
40
67
  e.refs.toSlider && (e.refs.toSlider.style.zIndex = Number(e.refs.toSlider.value) <= e.state.minInt ? "2" : "0");
41
68
  }
42
- function u(e) {
43
- e.onRangeChange(n(e));
69
+ function _(e) {
70
+ e.onRangeChange(c(e));
44
71
  }
45
- function d(e) {
46
- e.onRangeCommit?.(n(e));
72
+ function v(e) {
73
+ e.onRangeCommit?.(c(e));
47
74
  }
48
- function f(e) {
75
+ function y(e) {
49
76
  e.metaKey || e.ctrlKey || [
50
77
  "ArrowDown",
51
78
  "ArrowLeft",
@@ -60,4 +87,4 @@ function f(e) {
60
87
  ].includes(e.key) || /^[\d.,-]$/.test(e.key) || e.preventDefault();
61
88
  }
62
89
  //#endregion
63
- export { u as emitRangeChange, d as emitRangeCommit, s as fillSlider, n as getCurrentRange, a as getTooltipCenterPosition, o as hideTooltip, f as preventInvalidNumberKey, l as setToggleAccessible, r as syncRangeText, c as syncVisuals, i as updateTooltip };
90
+ export { _ as emitRangeChange, v as emitRangeCommit, m as fillSlider, c as getCurrentRange, f as getTooltipCenterPosition, p as hideTooltip, y as preventInvalidNumberKey, g as setToggleAccessible, l as syncRangeText, h as syncVisuals, d as updateTooltip };
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "../../../_chunks/jsxRuntime.module-F6UFnpT-.js";
2
- import { n as t } from "../../../_chunks/native-control-C_yok8_-.js";
2
+ import { n as t } from "../../../_chunks/native-control-DO0d1kgx.js";
3
3
  //#region src/filter/filters/slider/single.tsx
4
4
  function n({ min: n, max: r, value: i, step: a = 1, disabled: o = !1, id: s, className: c = "", ariaLabel: l, ariaValueText: u, ariaDescribedBy: d, onChange: f, onCommit: p, onKeyDown: m }) {
5
5
  let h = r - n, g = h > 0 ? Math.max(0, Math.min(100, (i - n) / h * 100)) : 0;
package/filter-badge.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { i as e } from "./_chunks/preact.module-BBM36DnO.js";
2
2
  import { a as t } from "./_chunks/hooks.module-CG3gN83z.js";
3
3
  import { t as n } from "./_chunks/jsxRuntime.module-F6UFnpT-.js";
4
- import { n as r, t as i } from "./_chunks/choice-chips-CHQTUdLs.js";
4
+ import { n as r, t as i } from "./_chunks/choice-chips-BhP8MZjs.js";
5
5
  //#region src/filter-badge.tsx
6
6
  function a(e) {
7
7
  return /* @__PURE__ */ n(r, {
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./_chunks/hooks.module-CG3gN83z.js";
2
2
  import { t } from "./_chunks/jsxRuntime.module-F6UFnpT-.js";
3
- import { a as n, t as r } from "./_chunks/native-control-C_yok8_-.js";
3
+ import { a as n, t as r } from "./_chunks/native-control-DO0d1kgx.js";
4
4
  import { Legend as i } from "./legend.js";
5
5
  //#region src/filter-controls.tsx
6
6
  function a({ label: e, detail: n, selected: i, className: a = "", detailClassName: o = "", ...s }) {
@@ -1,10 +1,10 @@
1
1
  import { t as e } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
2
- import { n as t } from "../_chunks/native-control-C_yok8_-.js";
3
- import { createPreactElement as n } from "../preact-mount.js";
4
- import { t as r } from "../_chunks/control-AHKXD5Eu.js";
2
+ import { createPreactElement as t } from "../preact-mount.js";
3
+ import { n } from "../_chunks/native-control-DO0d1kgx.js";
4
+ import { t as r } from "../_chunks/control-BkWukVt9.js";
5
5
  //#region src/form-controls/index.view.tsx
6
- function i(t, r) {
7
- return n(t, /* @__PURE__ */ e("label", {
6
+ function i(n, r) {
7
+ return t(n, /* @__PURE__ */ e("label", {
8
8
  class: ["rv-field", r.className].filter(Boolean).join(" "),
9
9
  children: [
10
10
  /* @__PURE__ */ e("span", {
@@ -25,7 +25,7 @@ function i(t, r) {
25
25
  }));
26
26
  }
27
27
  function a(r, i) {
28
- return n(r, /* @__PURE__ */ e(t, {
28
+ return t(r, /* @__PURE__ */ e(n, {
29
29
  type: "text",
30
30
  placeholder: i
31
31
  }));