@revolist/ui 4.0.5-rc → 4.0.6-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 (153) hide show
  1. package/MIGRATION.md +36 -0
  2. package/OWNERSHIP.md +10 -10
  3. package/README.md +6 -4
  4. package/_chunks/{calendar-DsXIhybL.js → calendar-QWDyYzdo.js} +1 -1
  5. package/_chunks/{chart-frame-CuZABXVI.js → chart-frame-hcOlnQ1K.js} +13 -9
  6. package/_chunks/{choice-chips-BhP8MZjs.js → choice-chips-A6WR-WJe.js} +1 -1
  7. package/_chunks/{color-picker-B4TQvxxB.js → color-picker-BK4W1nd6.js} +1 -1
  8. package/_chunks/{component-qKctqdzk.js → component-CMkF17YZ.js} +5 -5
  9. package/_chunks/{component-metadata-BMOOmqx5.js → component-metadata-BKd7U8OW.js} +0 -8
  10. package/_chunks/{configurator-actions-C19O1rda.js → configurator-actions-By8WSL2m.js} +3 -3
  11. package/_chunks/{control-BkWukVt9.js → control-mlH7l0Uq.js} +30 -5
  12. package/_chunks/{controls-BLQnWEd7.js → controls-FUU-MUKC.js} +26 -33
  13. package/_chunks/{date-control-Cgw5PwlZ.js → date-control-Dup_P3w5.js} +1 -1
  14. package/_chunks/{date-time-B8rK5gpC.js → date-time-9z6pAG5T.js} +304 -281
  15. package/_chunks/dialog.parts-Bi7YbXqS.js +131 -0
  16. package/_chunks/{duration-DwFXonEV.js → duration-D7oRjsmP.js} +5 -2
  17. package/_chunks/{editor-popup-BaaxL89T.js → editor-popup-ByU7qiub.js} +8 -7
  18. package/_chunks/{field-configurator-1eQP0tKy.js → field-configurator-BCINdXpU.js} +1 -1
  19. package/_chunks/{framework-mount--RTLIqE-.js → framework-mount-Bk4O_T7T.js} +1 -1
  20. package/_chunks/{icon-toolbar-xbqa0hu9.js → icon-toolbar-DSjOdwM7.js} +39 -33
  21. package/_chunks/mount-Cw2zk58T.js +266 -0
  22. package/_chunks/{native.view-ByyZ1CT5.js → native-Blr3byjO.js} +1 -1
  23. package/_chunks/{native-control-DO0d1kgx.js → native-control-pFMuHf3G.js} +106 -98
  24. package/_chunks/{number-input-s9ddPwX6.js → number-input-DqXV6vgP.js} +2 -2
  25. package/_chunks/{picker-AY05b41W.js → picker-gEGTu1Ki.js} +2 -2
  26. package/_chunks/{popup-UXGCiv3n.js → popup-C35Isk7p.js} +19 -8
  27. package/_chunks/{rating-choice-BEs_QFZC.js → rating-choice-DbxdUJr-.js} +1 -1
  28. package/_chunks/{reorder-list-A49l172e.js → reorder-list-B0_13Sja.js} +1 -1
  29. package/_chunks/{request-trail-DCOfa5zw.js → request-trail-CCSK6TJA.js} +2 -2
  30. package/_chunks/{rich-text-xfMWadGi.js → rich-text-5rnc8lpI.js} +3 -3
  31. package/_variables.scss +33 -32
  32. package/ai/index.js +2 -2
  33. package/ai/results/_style.scss +3 -0
  34. package/assignee/assignee.scss +5 -1
  35. package/assignee/index.js +2 -2
  36. package/avatar/index.d.ts +25 -2
  37. package/avatar/index.js +1 -1
  38. package/brush-range/component.d.ts +1 -3
  39. package/brush-range/component.js +8 -9
  40. package/buttons/remove-button.d.ts +1 -1
  41. package/buttons/remove-button.style.scss +1 -1
  42. package/buttons/svg-button.js +1 -1
  43. package/calendar/calendar.js +1 -1
  44. package/calendar/index.js +2 -2
  45. package/checkbox/checkbox.scss +1 -22
  46. package/choice-chips/index.js +1 -1
  47. package/color-palette/color-picker.js +1 -1
  48. package/color-palette/common-palettes.d.ts +1 -1
  49. package/color-palette/common-palettes.js +1 -1
  50. package/color-palette/native.d.ts +15 -2
  51. package/component-catalog.d.ts +3 -6
  52. package/configurator-actions.js +1 -1
  53. package/configurator-aggregation-list.js +1 -1
  54. package/configurator-drop-zone.d.ts +1 -1
  55. package/configurator-drop-zone.js +1 -1
  56. package/control-presentation.d.ts +8 -2
  57. package/control-presentation.js +1 -1
  58. package/controls.js +1 -1
  59. package/core/editor-popup-position.d.ts +6 -2
  60. package/core/editor-popup.d.ts +4 -0
  61. package/core/editor-popup.js +1 -1
  62. package/date-time/attach.d.ts +1 -1
  63. package/date-time/field.d.ts +3 -2
  64. package/date-time/index.js +1 -1
  65. package/date-time/style.scss +16 -2
  66. package/date-time/types.d.ts +5 -1
  67. package/dialog/dialog-action-footer.d.ts +17 -2
  68. package/dialog/dialog.dom.d.ts +15 -2
  69. package/dialog/dialog.dom.js +3 -3
  70. package/dialog/dialog.parts.d.ts +1 -1
  71. package/dialog/dialog.parts.js +1 -1
  72. package/distribution-chart/_distribution-chart.scss +14 -0
  73. package/distribution-chart/area-chart.js +1 -1
  74. package/distribution-chart/bar-chart.js +1 -1
  75. package/distribution-chart/index.d.ts +1 -1
  76. package/distribution-chart/line-chart.js +1 -1
  77. package/dropdown/content.js +1 -1
  78. package/dropdown/control.js +1 -1
  79. package/dropdown/editor-dropdown.style.scss +5 -0
  80. package/dropdown/index.js +2 -2
  81. package/dropdown/lookup-field.d.ts +5 -0
  82. package/dropdown/lookup-field.js +1 -1
  83. package/dropdown/popup.js +1 -1
  84. package/duration/index.js +1 -1
  85. package/editor-actions.js +1 -1
  86. package/field-configurator.d.ts +8 -0
  87. package/field-configurator.js +1 -1
  88. package/filter/filters/slider/_slider.scss +8 -8
  89. package/filter/filters/slider/single.js +1 -1
  90. package/filter-badge.js +1 -1
  91. package/filter-controls.d.ts +0 -1
  92. package/filter-controls.js +5 -6
  93. package/form-controls/index.d.ts +10 -2
  94. package/form-controls/index.js +3 -3
  95. package/formatting/index.d.ts +1 -1
  96. package/formatting/index.js +1 -1
  97. package/framework.js +202 -205
  98. package/icon-toolbar.d.ts +5 -1
  99. package/icon-toolbar.js +1 -1
  100. package/masked-input/index.js +1 -1
  101. package/native-control.js +1 -1
  102. package/native-controls.d.ts +54 -2
  103. package/native-styles.css +1 -1
  104. package/native.js +29 -29
  105. package/number-input/index.js +1 -1
  106. package/package.json +1 -1
  107. package/pagination.js +11 -11
  108. package/pdf-viewer/index.js +1 -1
  109. package/preact.d.ts +1 -6
  110. package/preact.js +60 -60
  111. package/rating-choice.js +1 -1
  112. package/react-control.d.ts +2 -0
  113. package/react-control.js +2 -2
  114. package/react.d.ts +0 -6
  115. package/react.js +54 -54
  116. package/reorder-list.js +1 -1
  117. package/resource-picker/resource-picker-popup.js +1 -1
  118. package/rich-text/index.js +1 -1
  119. package/search-input/index.js +1 -1
  120. package/search-input/native.d.ts +21 -2
  121. package/select.js +1 -1
  122. package/styles/_alert.scss +18 -4
  123. package/styles/_editor-slider.scss +0 -2
  124. package/styles/_field-configurator.scss +2 -1
  125. package/styles/_fields-grid.scss +2 -0
  126. package/styles/_palette.scss +0 -24
  127. package/styles/_primitives.scss +3 -1
  128. package/styles.css +1 -1
  129. package/styles.scss +2 -2
  130. package/surfaces.d.ts +34 -3
  131. package/surfaces.js +2 -2
  132. package/svelte.js +3 -3
  133. package/switch/index.js +1 -1
  134. package/time-grid.d.ts +0 -1
  135. package/time-grid.js +4 -4
  136. package/timeline-track/index.js +1 -1
  137. package/ui.css +1 -1
  138. package/vue.d.ts +2 -21
  139. package/vue.js +83 -89
  140. package/_chunks/dialog.parts-BSbvnEwX.js +0 -134
  141. package/_chunks/mount-D1i5DLRn.js +0 -266
  142. package/avatar/index.view.d.ts +0 -25
  143. package/color-palette/native.view.d.ts +0 -15
  144. package/control-presentation.view.d.ts +0 -8
  145. package/dialog/dialog-action-footer.view.d.ts +0 -20
  146. package/dialog/dialog.dom.view.d.ts +0 -15
  147. package/form-controls/index.view.d.ts +0 -10
  148. package/formatting/control-tooltip.d.ts +0 -2
  149. package/native-controls.view.d.ts +0 -54
  150. package/search-input/native.view.d.ts +0 -21
  151. package/surfaces.view.d.ts +0 -33
  152. /package/styles/{legacy-pagination.css → pagination.css} +0 -0
  153. /package/styles/{legacy-rating.css → rating.css} +0 -0
package/ai/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import { t as e } from "../_chunks/mount-D1i5DLRn.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-DCOfa5zw.js";
1
+ import { t as e } from "../_chunks/mount-Cw2zk58T.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-CCSK6TJA.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 };
@@ -1,4 +1,7 @@
1
1
  .rv-ai-result-content {
2
+ box-sizing: border-box;
3
+ width: 100%;
4
+ max-width: 100%;
2
5
  min-width: 0;
3
6
  border: 1px solid var(--rv-ui-border);
4
7
  border-radius: 0.75rem;
@@ -45,7 +45,7 @@
45
45
  }
46
46
  }
47
47
 
48
- .rv-assignee-editor .selected-tag {
48
+ .rv-assignee-editor.dropdown-container .selected-tag {
49
49
  display: inline-flex;
50
50
  align-items: center;
51
51
  border-radius: 16px;
@@ -53,6 +53,10 @@
53
53
  font-size: 14px;
54
54
  line-height: 18px;
55
55
  white-space: nowrap;
56
+ color: var(--rv-ui-text);
57
+
58
+ // Keep the full 24px remove target within the 24px value pill.
59
+ > button.rv-remove-button { margin-block: -3px; }
56
60
  }
57
61
  .rv-assignee-picker__allocations {
58
62
  display: grid;
package/assignee/index.js CHANGED
@@ -1,7 +1,7 @@
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, n as i } from "../_chunks/native-control-DO0d1kgx.js";
4
- import { L as a } from "../_chunks/controls-BLQnWEd7.js";
3
+ import { l as r, n as i } from "../_chunks/native-control-pFMuHf3G.js";
4
+ import { L as a } from "../_chunks/controls-FUU-MUKC.js";
5
5
  import { SearchInput as o } from "../search-input/index.js";
6
6
  import { SharedResourcePicker as s } from "../resource-picker/resource-picker.js";
7
7
  import { EditorActions as c } from "../editor-actions.js";
package/avatar/index.d.ts CHANGED
@@ -1,2 +1,25 @@
1
- /** Compatibility entry; markup is owned by the Preact TSX implementation. */
2
- export * from './index.view';
1
+ import { h } from '../_vendor/preact/src/index';
2
+ export { AVATAR_CELL_BACKGROUNDS } from '../color-palette/common-palettes';
3
+ export type AvatarTemplateOptions = {
4
+ ariaLabel?: string;
5
+ className?: string;
6
+ index?: number;
7
+ initials?: string;
8
+ key?: string | number;
9
+ label?: string;
10
+ rectangular?: boolean;
11
+ size?: number;
12
+ style?: Record<string, string | number | null | undefined>;
13
+ value?: unknown;
14
+ };
15
+ /** Shared Preact avatar, including image-error fallback. */
16
+ export declare function AvatarElement({ options }: {
17
+ options?: AvatarTemplateOptions;
18
+ }): h.JSX.Element;
19
+ export declare function createAvatarElement(document: Document, options?: AvatarTemplateOptions): HTMLSpanElement;
20
+ export declare function getAvatarCellBackground(index?: number): "linear-gradient(135deg, #7dd3fc, #2563eb)" | "linear-gradient(135deg, #facc15, #b45309)" | "linear-gradient(135deg, #f9a8d4, #be185d)" | "linear-gradient(135deg, #a5b4fc, #4f46e5)" | "linear-gradient(135deg, #86efac, #15803d)" | "linear-gradient(135deg, #fda4af, #be123c)" | "linear-gradient(135deg, #c4b5fd, #7c3aed)" | "linear-gradient(135deg, #fdba74, #c2410c)";
21
+ export declare function getAvatarInitials(value: unknown): string;
22
+ export declare function getAvatarIndex(value: unknown): number;
23
+ export declare function avatarTemplate(h: any, options?: AvatarTemplateOptions): any;
24
+ /** Shared avatar-and-label presentation; resource/row lookup stays with consumers. */
25
+ export declare function avatarWithTextTemplate(h: any, options?: AvatarTemplateOptions): any;
package/avatar/index.js CHANGED
@@ -3,7 +3,7 @@ import { t } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
3
3
  import { createPreactElement as n } from "../preact-mount.js";
4
4
  import { t as r } from "../_chunks/tooltip-text-BXsUEmBH.js";
5
5
  import { AVATAR_CELL_BACKGROUNDS as i } from "../color-palette/common-palettes.js";
6
- //#region src/avatar/index.view.tsx
6
+ //#region src/avatar/index.tsx
7
7
  function a({ options: n = {} }) {
8
8
  let [a, o] = e(!1), { index: s = 0, initials: u, rectangular: f = !1, size: p, value: m } = n, h = [
9
9
  "avatar-cell",
@@ -7,11 +7,9 @@ export interface BrushRangeProps {
7
7
  readonly startLabel: ComponentChildren;
8
8
  readonly selectionLabel: ComponentChildren;
9
9
  readonly endLabel: ComponentChildren;
10
- /** Retains the established filter-specific selectors while sharing the markup owner. */
11
- readonly legacyClassPrefix?: string;
12
10
  }
13
11
  /**
14
12
  * Shared presentation for distribution-backed brush filters. Domain editors own
15
13
  * the chart data and translate slider positions to their filter conditions.
16
14
  */
17
- export declare function BrushRange({ chart, slider, startLabel, selectionLabel, endLabel, legacyClassPrefix, }: BrushRangeProps): h.JSX.Element;
15
+ export declare function BrushRange({ chart, slider, startLabel, selectionLabel, endLabel, }: BrushRangeProps): h.JSX.Element;
@@ -9,24 +9,23 @@ function i(...e) {
9
9
  function a(e) {
10
10
  return typeof e == "string" || typeof e == "number" ? String(e) : void 0;
11
11
  }
12
- function o({ chart: o, slider: s, startLabel: c, selectionLabel: l, endLabel: u, legacyClassPrefix: d }) {
13
- let f = (e) => d ? `${d}__${e}` : void 0;
12
+ function o({ chart: o, slider: s, startLabel: c, selectionLabel: l, endLabel: u }) {
14
13
  return /* @__PURE__ */ e("div", {
15
14
  class: "brush-range",
16
15
  children: [
17
16
  o ? /* @__PURE__ */ e(r, {
18
17
  ...o,
19
- className: i("brush-range__chart", f("chart"), o.className)
18
+ className: i("brush-range__chart", o.className)
20
19
  }) : null,
21
20
  /* @__PURE__ */ e(n, {
22
21
  ...s,
23
- className: i("brush-range__range", f("range"), s.className),
24
- controlClassName: i("brush-range__controls", f("controls"), s.controlClassName),
25
- fromClassName: i(f("lower"), s.fromClassName),
26
- toClassName: i(f("upper"), s.toClassName)
22
+ className: i("brush-range__range", s.className),
23
+ controlClassName: i("brush-range__controls", s.controlClassName),
24
+ fromClassName: s.fromClassName,
25
+ toClassName: s.toClassName
27
26
  }),
28
27
  /* @__PURE__ */ e("div", {
29
- class: i("brush-range__labels", f("labels")),
28
+ class: "brush-range__labels",
30
29
  children: [
31
30
  /* @__PURE__ */ e(t, {
32
31
  class: "brush-range__label brush-range__label--start",
@@ -34,7 +33,7 @@ function o({ chart: o, slider: s, startLabel: c, selectionLabel: l, endLabel: u,
34
33
  children: c
35
34
  }),
36
35
  /* @__PURE__ */ e(t, {
37
- class: i("brush-range__label", "brush-range__selection", f("selection")),
36
+ class: i("brush-range__label", "brush-range__selection"),
38
37
  role: "status",
39
38
  title: a(l),
40
39
  children: l
@@ -4,5 +4,5 @@ export type RemoveButtonProps = Parameters<typeof DeleteButton>[0] & {
4
4
  /** Compact hit area for an action embedded inside a selected-value chip. */
5
5
  compact?: boolean;
6
6
  };
7
- /** Neutral close/remove action; DeleteButton keeps its legacy danger variant. */
7
+ /** Neutral close/remove action; DeleteButton uses destructive action styling. */
8
8
  export declare function RemoveButton({ compact, className, ...props }: RemoveButtonProps): h.JSX.Element;
@@ -1,6 +1,6 @@
1
1
  @use '../styles/icon-action';
2
2
 
3
- // Specificity retains legacy DeleteButton classes without inheriting danger styling.
3
+ // Neutral remove actions override destructive button styling.
4
4
  button.remove-btn.rv-remove-button {
5
5
  @include icon-action.neutral;
6
6
  &.rv-remove-button--compact {
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
2
2
  import { SvgIcon as t } from "../icons/icon.js";
3
- import { t as n } from "../_chunks/native-control-DO0d1kgx.js";
3
+ import { t as n } from "../_chunks/native-control-pFMuHf3G.js";
4
4
  import { controlClassName as r } from "../control-attributes.js";
5
5
  import { n as i } from "../_chunks/tooltip-D4xkio5G.js";
6
6
  //#region src/buttons/svg-button.tsx
@@ -1 +1 @@
1
- export { t as Calendar } from "../_chunks/calendar-DsXIhybL.js";
1
+ export { t as Calendar } from "../_chunks/calendar-QWDyYzdo.js";
package/calendar/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { DEFAULT_CALENDAR_TRANSLATIONS as e } from "./translations.js";
2
2
  import { a as t, i as n, n as r, o as i, r as a, t as o } from "../_chunks/model-mPO2tG2f.js";
3
3
  import { CalendarHeader as s, CalendarWeekdays as c } from "./header.js";
4
- import { t as l } from "../_chunks/calendar-DsXIhybL.js";
4
+ import { t as l } from "../_chunks/calendar-QWDyYzdo.js";
5
5
  import { CalendarDay as u } from "./day.js";
6
6
  import { CalendarMonthGrid as d } from "./month-grid.js";
7
7
  import { CalendarYearGrid as f } from "./year-grid.js";
8
- import { t as p } from "../_chunks/picker-AY05b41W.js";
8
+ import { t as p } from "../_chunks/picker-gEGTu1Ki.js";
9
9
  export { l as Calendar, u as CalendarDay, s as CalendarHeader, d as CalendarMonthGrid, p as CalendarPicker, c as CalendarWeekdays, f as CalendarYearGrid, e as DEFAULT_CALENDAR_TRANSLATIONS, o as createCalendarMonth, r as isCalendarDateDisabled, a as isCalendarMonthDisabled, n as isDateInCalendarRange, t as moveCalendarFocus, i as orderCalendarRange };
@@ -1,27 +1,6 @@
1
1
  @use '../styles/motion';
2
2
  @use './layout';
3
- /**
4
- * Shared native checkbox primitive.
5
- *
6
- * Legacy ColumnDialog and RowSelectPlugin variables remain supported as
7
- * fallbacks so existing customizations keep working after consumers move to
8
- * rv-checkbox.
9
- */
10
- revo-grid {
11
- --rv-ui-checkbox-bg: var(--revo-row-select-checkbox-bg, var(--rv-ui-surface));
12
- --rv-ui-checkbox-border: var(--rv-column-dialog-check-border, var(--revo-row-select-checkbox-border, var(--rv-ui-border-strong)));
13
- --rv-ui-checkbox-checked: var(--rv-column-dialog-check-bg, var(--revo-row-select-checkbox-checked, var(--rv-ui-accent)));
14
- --rv-ui-checkbox-check: var(--revo-row-select-checkbox-check, var(--rv-ui-accent-fg));
15
- --rv-ui-checkbox-focus: var(--revo-row-select-checkbox-focus, var(--rv-ui-focus-ring));
16
-
17
- &[theme^='dark'] {
18
- --rv-ui-checkbox-bg: var(--revo-row-select-checkbox-bg, var(--rv-ui-surface-sunken));
19
- --rv-ui-checkbox-border: var(--rv-column-dialog-check-border, var(--revo-row-select-checkbox-border, var(--rv-ui-border-strong)));
20
- --rv-ui-checkbox-checked: var(--rv-column-dialog-check-bg, var(--revo-row-select-checkbox-checked, var(--rv-ui-accent)));
21
- --rv-ui-checkbox-focus: var(--revo-row-select-checkbox-focus, var(--rv-ui-focus-ring));
22
- }
23
- }
24
-
3
+ /** Shared native checkbox primitive. */
25
4
  .rv-checkbox {
26
5
  appearance: none;
27
6
  -webkit-appearance: none;
@@ -1 +1 @@
1
- export { t as ChoiceChip, n as ChoiceChipInfoButton, r as ChoiceChips } from "../_chunks/choice-chips-BhP8MZjs.js";
1
+ export { t as ChoiceChip, n as ChoiceChipInfoButton, r as ChoiceChips } from "../_chunks/choice-chips-A6WR-WJe.js";
@@ -1,3 +1,3 @@
1
1
  import { n as e } from "../_chunks/color-palette-DMJUChWC.js";
2
- import { t } from "../_chunks/color-picker-B4TQvxxB.js";
2
+ import { t } from "../_chunks/color-picker-BK4W1nd6.js";
3
3
  export { t as ColorPicker, e as normalizeHexColor };
@@ -737,5 +737,5 @@ export declare const commonPalettes: readonly [{
737
737
  readonly colors: {
738
738
  [k: string]: "linear-gradient(135deg, #7dd3fc, #2563eb)" | "linear-gradient(135deg, #facc15, #b45309)" | "linear-gradient(135deg, #f9a8d4, #be185d)" | "linear-gradient(135deg, #a5b4fc, #4f46e5)" | "linear-gradient(135deg, #86efac, #15803d)" | "linear-gradient(135deg, #fda4af, #be123c)" | "linear-gradient(135deg, #c4b5fd, #7c3aed)" | "linear-gradient(135deg, #fdba74, #c2410c)";
739
739
  };
740
- readonly consumers: readonly ["packages/ui/src/avatar/index.view.tsx", "packages/ui/src/avatar/avatar.style.scss"];
740
+ readonly consumers: readonly ["packages/ui/src/avatar/index.tsx", "packages/ui/src/avatar/avatar.style.scss"];
741
741
  }];
@@ -380,7 +380,7 @@ var e = {
380
380
  title: "Avatar backgrounds",
381
381
  usage: "Indexed avatar gradients shared by runtime background helpers and avatar styles.",
382
382
  colors: Object.fromEntries(t.map((e, t) => [String(t), e])),
383
- consumers: ["packages/ui/src/avatar/index.view.tsx", "packages/ui/src/avatar/avatar.style.scss"]
383
+ consumers: ["packages/ui/src/avatar/index.tsx", "packages/ui/src/avatar/avatar.style.scss"]
384
384
  }];
385
385
  //#endregion
386
386
  export { t as AVATAR_CELL_BACKGROUNDS, e as commonColors, n as commonPalettes };
@@ -1,2 +1,15 @@
1
- /** Compatibility entry; markup is owned by the Preact TSX implementation. */
2
- export * from './native.view';
1
+ export interface NativeColorPickerProps {
2
+ label: string;
3
+ value?: string;
4
+ disabled?: boolean;
5
+ optional?: boolean;
6
+ defaultLabel: string;
7
+ customLabel: string;
8
+ invalidColor?: string;
9
+ colorLabels: Readonly<Record<string, string>>;
10
+ onChange(value: string | undefined): void;
11
+ }
12
+ /** Native mount API; palette markup and interaction belong to ColorPicker. */
13
+ export declare function mountColorPicker(host: HTMLElement, props: NativeColorPickerProps): {
14
+ destroy(): void;
15
+ };
@@ -1,3 +1,4 @@
1
+ import { LookupField } from './dropdown/lookup-field';
1
2
  import { NumberDraft as PreactNumberDraft } from './number-input/index';
2
3
  import { MaskedDraft as PreactMaskedDraft } from './masked-input/index';
3
4
  import { DurationField as PreactDurationField, DurationDraft as PreactDurationDraft } from './duration/index';
@@ -27,12 +28,6 @@ export declare const uiComponents: {
27
28
  readonly AiChangePreview: typeof ui.AiChangePreview;
28
29
  readonly AiAssistant: typeof ui.AiAssistant;
29
30
  readonly AiRequestTrail: typeof ui.AiRequestTrail;
30
- readonly Icon: typeof ui.SvgIcon;
31
- readonly RemovableChip: typeof ui.FilterChip;
32
- readonly Slider: typeof ui.SingleValueSlider;
33
- readonly RangeSlider: typeof ui.PreactRangeSlider;
34
- readonly ResourcePicker: typeof ui.SharedResourcePicker;
35
- readonly FeedbackPanel: typeof ui.StatusFeedbackPanel;
36
31
  readonly Input: import('./_vendor/preact/src/index').FunctionalComponent<import('./_vendor/preact/compat/src/index').PropsWithoutRef<Omit<import("./_vendor/preact/src/index").JSX.InputHTMLAttributes<HTMLInputElement>, "ref" | "className" | "class"> & {
37
32
  class?: import("./_vendor/preact/src/index").JSX.Signalish<string | undefined> | Record<string, boolean | undefined>;
38
33
  className?: import("./_vendor/preact/src/index").JSX.Signalish<string | undefined>;
@@ -106,6 +101,8 @@ export declare const uiComponents: {
106
101
  readonly FieldError: typeof ui.FieldError;
107
102
  readonly FormSection: typeof ui.FormSection;
108
103
  readonly Disclosure: typeof ui.Disclosure;
104
+ readonly CollapsibleSection: typeof ui.CollapsibleSection;
105
+ readonly LookupField: typeof LookupField;
109
106
  readonly Panel: typeof ui.Panel;
110
107
  readonly Toolbar: typeof ui.Toolbar;
111
108
  readonly ToolbarGroup: typeof ui.ToolbarGroup;
@@ -1 +1 @@
1
- export { t as CONFIGURATOR_AREA_ICONS, n as ConfiguratorActionButton, r as ConfiguratorActionGroup, i as ConfiguratorActionIcon, a as ConfiguratorActionPanel, o as ConfiguratorActionTrigger, s as ConfiguratorFieldCaption, c as ConfiguratorFieldPicker, l as ConfiguratorFieldSearch, u as ConfiguratorFieldTypeIcon, d as ConfiguratorFilterStatus, f as ConfiguratorHint, p as ConfiguratorRemoveButton, m as ConfiguratorZoneActions, h as renderConfiguratorActionTrigger } from "./_chunks/configurator-actions-C19O1rda.js";
1
+ export { t as CONFIGURATOR_AREA_ICONS, n as ConfiguratorActionButton, r as ConfiguratorActionGroup, i as ConfiguratorActionIcon, a as ConfiguratorActionPanel, o as ConfiguratorActionTrigger, s as ConfiguratorFieldCaption, c as ConfiguratorFieldPicker, l as ConfiguratorFieldSearch, u as ConfiguratorFieldTypeIcon, d as ConfiguratorFilterStatus, f as ConfiguratorHint, p as ConfiguratorRemoveButton, m as ConfiguratorZoneActions, h as renderConfiguratorActionTrigger } from "./_chunks/configurator-actions-By8WSL2m.js";
@@ -1,6 +1,6 @@
1
1
  import { i as e } from "./_chunks/hooks.module-CG3gN83z.js";
2
2
  import { t } from "./_chunks/jsxRuntime.module-F6UFnpT-.js";
3
- import { t as n } from "./_chunks/native-control-DO0d1kgx.js";
3
+ import { t as n } from "./_chunks/native-control-pFMuHf3G.js";
4
4
  import "./_chunks/check-BwI7iCAm.js";
5
5
  import { t as r } from "./_chunks/calculator-CDWOuAcp.js";
6
6
  //#region src/configurator-aggregation-list.tsx
@@ -12,7 +12,7 @@ export interface ConfiguratorDropZoneProps<Prop extends string | number, Field e
12
12
  allowFieldRemoving?: boolean;
13
13
  panel: Area;
14
14
  items: Prop[];
15
- /** Optional stable identities for repeated measure instances; other zones retain legacy keys. */
15
+ /** Optional stable identities for repeated measure instances; other zones use their field identities. */
16
16
  itemKeys?: readonly (string | number)[];
17
17
  dimensions: ReadonlyMap<Prop, Field>;
18
18
  placeholder?: string;
@@ -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 { a as n, f as r, o as i, p as a, v as o } from "./_chunks/field-configurator-1eQP0tKy.js";
3
+ import { a as n, f as r, o as i, p as a, v as o } from "./_chunks/field-configurator-BCINdXpU.js";
4
4
  import { useFieldDropTarget as s } from "./field-reorder.hook.js";
5
5
  //#region src/configurator-drop-zone.tsx
6
6
  function c({ title: c, label: l, footer: u, removeLabel: d, headerActions: f, renderActions: p, allowFieldRemoving: m = !0, panel: h, items: g, itemKeys: _, dimensions: v, placeholder: y, i18n: b, renderItem: x, onRemove: S, onDrop: C, onDragOver: w, canDrop: T = () => !0, onDragEnter: E, onItemDragStart: D, onItemDragEnd: O, allowFieldDragging: k = !0, dragActive: A, renderIcon: j }) {
@@ -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;
@@ -3,7 +3,7 @@ import { t } from "./_chunks/jsxRuntime.module-F6UFnpT-.js";
3
3
  import { createPreactElement as n } from "./preact-mount.js";
4
4
  import { n as r } from "./_chunks/popover-controller-D-AvKQ7B.js";
5
5
  import { controlAttributes as i, controlClassName as a } from "./control-attributes.js";
6
- //#region src/control-presentation.view.tsx
6
+ //#region src/control-presentation.tsx
7
7
  function o(e, t, n, ...r) {
8
8
  let a = n ?? {};
9
9
  if (t === "button" && a.busy === !0) {
package/controls.js CHANGED
@@ -1,4 +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, S as d, T as f, _ as p, a as m, b as h, c as g, d as _, f as v, g as y, h as b, i as x, j as S, k as C, l as w, m as T, n as E, o as D, p as O, r as k, s as A, t as j, u as M, v as N, w as P, x as F, y as I } from "./_chunks/controls-BLQnWEd7.js";
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, S as d, T as f, _ as p, a as m, b as h, c as g, d as _, f as v, g as y, h as b, i as x, j as S, k as C, l as w, m as T, n as E, o as D, p as O, r as k, s as A, t as j, u as M, v as N, w as P, x as F, y as I } from "./_chunks/controls-FUU-MUKC.js";
2
2
  import { EditorList as L, EditorListGroup as R, EditorListItem as z, EditorListItemContent as B, EditorPane as V, EditorSplitLayout as H } from "./editor-layout/index.js";
3
3
  import { t as U } from "./_chunks/badge.view-D30pMUfi.js";
4
4
  export { o as Alert, U as Badge, j as Button, E as ButtonGroup, k as Chip, x as CircularProgress, m as CountBadge, D as DateInput, A as DateTimeInput, g as Disclosure, w as EmptyState, M as FieldError, _ as FieldHint, v as FormSection, O as IconButton, L as Listbox, R as ListboxGroup, z as ListboxOption, B as ListboxOptionContent, T as LoadingOverlay, b as Menu, y as MenuItem, p as MenuSeparator, N as NumberInput, I as NumberStepper, h as Pagination, V as Pane, F as Panel, d as RadioGroup, t as Rating, P as ResizeHandle, f as SegmentedControl, r as Spinner, H as SplitLayout, n as Submenu, l as TabPanel, C as Tabs, e as TextInput, S as Textarea, s as TimeInput, c as ToggleButton, u as Toolbar, i as ToolbarGroup, a as ToolbarSeparator };
@@ -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-BaaxL89T.js";
1
+ export { t as mountEditorPopup } from "../_chunks/editor-popup-ByU7qiub.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;
@@ -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-B8rK5gpC.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-9z6pAG5T.js";
@@ -31,6 +31,7 @@
31
31
  .rv-temporal-draft > .rv-alert {
32
32
  inline-size: 0;
33
33
  min-inline-size: 100%;
34
+ white-space: normal;
34
35
  }
35
36
 
36
37
  .rv-date-time-field {
@@ -118,11 +119,14 @@
118
119
  &__list.rv-editor-list { position: relative; height: 174px; overflow-y: auto; overscroll-behavior: contain; padding: 3px; border: 1px solid var(--rv-ui-border); border-radius: 6px; scrollbar-width: thin; }
119
120
  &__list .rv-editor-list__item { min-height: 32px; height: 32px; padding: 4px; text-align: center; font-size: 13px; }
120
121
  &__list .rv-editor-list__item:disabled { opacity: .35; cursor: default; }
122
+ &__period { border-block-start: 1px solid var(--rv-ui-border); padding-block-start: 6px; }
121
123
  &__period .rv-editor-list { display: flex; height: auto; overflow: visible; }
122
124
  &__period .rv-editor-list__item { flex: 1 1 0; }
123
125
  &__empty { margin: 0; color: var(--rv-ui-text-muted); font-size: 12px; }
124
126
  }
125
- .rv-editor-popup .rv-temporal-draft .rv-editor-actions { position: static; }
127
+ // Keep validation and actions in scroll order when a calendar and clock are tall.
128
+ .rv-editor-popup--datetime .rv-temporal-draft .rv-editor-actions,
129
+ .rv-editor-popup .rv-temporal-draft:has(.rv-temporal-picker--multi-month) .rv-editor-actions { position: static; }
126
130
  .rv-temporal-draft--time .rv-editor-actions { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--rv-ui-border); }
127
131
  .rv-temporal-draft--time .rv-editor-actions__clear { margin-inline-end: auto; }
128
132
 
@@ -133,13 +137,23 @@
133
137
  }
134
138
  .rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month) .rv-temporal-picker__body {
135
139
  flex-direction: row;
140
+ flex-wrap: nowrap;
141
+ gap: 8px;
136
142
  }
137
143
  .rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month) .rv-temporal-picker__body > .rv-time-selection {
138
144
  flex: 0 1 208px;
145
+ border-inline-start: 1px solid var(--rv-ui-border);
146
+ padding-inline-start: 8px;
139
147
  }
140
148
  @media (max-width: 540px) {
141
149
  .rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month) .rv-temporal-picker__body { flex-direction: column; }
142
- .rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month) .rv-temporal-picker__body > .rv-time-selection { flex-basis: auto; }
150
+ .rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month) .rv-temporal-picker__body > .rv-time-selection {
151
+ flex-basis: auto;
152
+ border-inline-start: 0;
153
+ padding-inline-start: 0;
154
+ border-block-start: 1px solid var(--rv-ui-border);
155
+ padding-block-start: 8px;
156
+ }
143
157
  }
144
158
 
145
159
  .rv-editor-popup:has(.rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month) .revo-calendar--week-numbers):has(.rv-time-selection) {
@@ -55,6 +55,8 @@ export interface TemporalPickerProps extends TemporalPickerOptions {
55
55
  value: TemporalControlValue;
56
56
  onChange: (value: TemporalControlValue) => void;
57
57
  onValidityChange?: (valid: boolean) => void;
58
+ /** Called for each valid edit, including intermediate edits before selection completes. */
59
+ onValidChange?: (value: TemporalControlValue) => void;
58
60
  /** Complete calendar selection, distinct from an in-progress keyboard draft. */
59
61
  onSelectionComplete?: (value: TemporalControlValue) => void;
60
62
  }
@@ -65,10 +67,12 @@ export interface DateTimeFieldProps extends Omit<JSX.InputHTMLAttributes<HTMLInp
65
67
  disabled?: boolean;
66
68
  readOnly?: boolean;
67
69
  picker?: Omit<TemporalPickerOptions, 'kind' | 'selection'>;
70
+ /** Publish valid popup edits immediately when the picker uses auto-apply. */
71
+ livePickerUpdates?: boolean;
68
72
  onValueChange?: (value: string) => void;
69
73
  /** Existing product text adapters can keep their custom display/parser. */
70
74
  formatValue?: (value: string) => string;
71
75
  parseValue?: (text: string) => string | undefined;
72
76
  }
73
- /** One accessible name for both trigger and popup; chooseDate remains a compatibility fallback. */
77
+ /** One accessible name for both trigger and popup; date and time controls use their own localized action labels. */
74
78
  export declare function temporalPickerLabel(kind: LocalDateControlKind, text?: Partial<TemporalPickerText>): string;
@@ -1,2 +1,17 @@
1
- /** Compatibility entry; markup is owned by the Preact TSX implementation. */
2
- export * from './dialog-action-footer.view';
1
+ import { h } from '../_vendor/preact/src/index';
2
+ export interface NativeDialogAction {
3
+ label?: string;
4
+ disabled?: boolean;
5
+ onClick?: () => void;
6
+ }
7
+ export interface NativeDialogActionFooterProps {
8
+ cancel?: NativeDialogAction | false;
9
+ save?: NativeDialogAction | false;
10
+ deleteAction?: NativeDialogAction | false;
11
+ reset?: NativeDialogAction | false;
12
+ }
13
+ /** One TSX composition for Preact consumers and element-returning host adapters. */
14
+ export declare function ActionFooterView({ cancel, save, deleteAction, reset, start, end, children, actionsClass, class: className, ...props }: Record<string, any>): h.JSX.Element;
15
+ export declare function mountDialogActionFooter(host: HTMLElement, props: NativeDialogActionFooterProps): {
16
+ destroy(): void;
17
+ };
@@ -1,2 +1,15 @@
1
- /** Compatibility entry; markup is owned by the Preact TSX implementation. */
2
- export * from './dialog.dom.view';
1
+ import { DialogButtonVariant, DialogOpenOptions } from './dialog.types';
2
+ export interface DialogElements {
3
+ readonly root: HTMLElement;
4
+ readonly surface: HTMLElement;
5
+ readonly header: HTMLElement;
6
+ readonly body: HTMLElement;
7
+ readonly footer: HTMLElement;
8
+ readonly actions: HTMLElement;
9
+ }
10
+ /** Element-returning native API; shared TSX owns the entire dialog chrome. */
11
+ export declare function createDialogElements(document: Document, options: DialogOpenOptions, close: () => void): DialogElements;
12
+ export declare function createDialogCloseButton(document: Document, label: string, close: () => void): HTMLButtonElement;
13
+ export declare function createDialogButton(document: Document, label: string, action: () => void, variant?: DialogButtonVariant): HTMLButtonElement;
14
+ export declare function trapDialogFocus(root: HTMLElement, event: KeyboardEvent): void;
15
+ export declare function getDialogFocusableElements(root: HTMLElement): HTMLElement[];
@@ -1,8 +1,8 @@
1
1
  import { t as e } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
2
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
- //#region src/dialog/dialog.dom.view.tsx
3
+ import { t as n } from "../_chunks/native-control-pFMuHf3G.js";
4
+ import { a as r, i, n as a, r as o, s } from "../_chunks/dialog.parts-Bi7YbXqS.js";
5
+ //#region src/dialog/dialog.dom.tsx
6
6
  function c(n, c, l) {
7
7
  let u = f(), d, p, m, h, g;
8
8
  return {
@@ -59,4 +59,4 @@ export type DialogActionFooterProps = JSX.IntrinsicElements['footer'] & {
59
59
  readonly actionsClass?: string;
60
60
  };
61
61
  /** Default Cancel/Save, opt-in Delete/Reset; false hides any standard action. */
62
- export declare function DialogActionFooter(props: DialogActionFooterProps): import('../_vendor/preact/src/index').VNode<import('../_vendor/preact/src/index').Attributes>;
62
+ export declare function DialogActionFooter(props: DialogActionFooterProps): h.JSX.Element;
@@ -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-BSbvnEwX.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-Bi7YbXqS.js";
@@ -134,6 +134,20 @@
134
134
  font-size: 12px; color: var(--rv-ui-text-muted);
135
135
  }
136
136
  .rv-distribution-chart__legend i { display: block; width: 8px; height: 8px; border-radius: 2px; background: var(--rv-distribution-accent, var(--rv-ui-accent)); }
137
+ .rv-distribution-chart__tooltip {
138
+ strong, span { display: block; }
139
+ i {
140
+ display: block; float: inline-start; width: 8px; height: 8px;
141
+ margin-inline-end: 7px; margin-block-start: 3px; border-radius: 2px;
142
+ background: var(--rv-distribution-accent, var(--rv-ui-accent));
143
+ }
144
+ &--line i { width: 3px; height: 22px; }
145
+ &--dashed i {
146
+ height: 0; background: transparent;
147
+ border-top: 2px dashed var(--rv-distribution-accent, var(--rv-ui-accent));
148
+ margin-block-start: 7px;
149
+ }
150
+ }
137
151
  // Numeric/category progression stays left-to-right, including on RTL pages.
138
152
  // Keep SVG points, flex bars, labels and arrow-key order on the same axis.
139
153
  .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-CuZABXVI.js";
3
+ import { i as n, n as r, r as i, t as a } from "../_chunks/chart-frame-hcOlnQ1K.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-CuZABXVI.js";
2
+ import { r as t, t as n } from "../_chunks/chart-frame-hcOlnQ1K.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);
@@ -4,5 +4,5 @@ export * from './types';
4
4
  export { BarChart, type BarChartProps } from './bar-chart';
5
5
  export { LineChart, type LineChartProps } from './line-chart';
6
6
  export { AreaChart, type AreaChartProps } from './area-chart';
7
- /** Compatibility composition; each presentation has its own standalone owner. */
7
+ /** Chart-type composition; each presentation has its own standalone owner. */
8
8
  export declare function DistributionChart({ type, ...props }: DistributionChartProps): h.JSX.Element;