@revolist/ui 4.0.3-rc → 4.0.3

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 (314) hide show
  1. package/MIGRATION.md +36 -0
  2. package/OWNERSHIP.md +32 -32
  3. package/README.md +136 -78
  4. package/_button.scss +6 -2
  5. package/_chunks/arrow-up-Cw8hW9vp.js +4 -0
  6. package/_chunks/calculator-CDWOuAcp.js +4 -0
  7. package/_chunks/{calendar-xpZ0v3xf.js → calendar-CgXQgkga.js} +19 -19
  8. package/_chunks/chart-frame-hcOlnQ1K.js +145 -0
  9. package/_chunks/{chevron-right-sxHQMSkq.js → check-BwI7iCAm.js} +2 -2
  10. package/_chunks/{chevron-left-D0nc4Z5S.js → chevron-right-CM3ljziP.js} +2 -2
  11. package/_chunks/choice-chips-SkllS5Kl.js +126 -0
  12. package/_chunks/{color-palette-D8vyPfld.js → color-palette-DMJUChWC.js} +20 -22
  13. package/_chunks/color-picker-BpCTuIdm.js +143 -0
  14. package/_chunks/{component-C_T2VN5u.js → component-CfeHXgIw.js} +279 -264
  15. package/_chunks/{component-metadata-BMOOmqx5.js → component-metadata-BKd7U8OW.js} +0 -8
  16. package/_chunks/configurator-actions-DnStE6Yl.js +155 -0
  17. package/_chunks/configurator-field-icon-CmcM_sPs.js +53 -0
  18. package/_chunks/{control-AHKXD5Eu.js → control-Dcrjsunl.js} +42 -17
  19. package/_chunks/controls-B_6NJarZ.js +650 -0
  20. package/_chunks/{date-control-DrVFX13g.js → date-control-C4h4m75W.js} +1 -1
  21. package/_chunks/{date-time-qIhp5vaX.js → date-time-CTOSbzb0.js} +317 -278
  22. package/_chunks/dialog.parts-3w5FR06n.js +131 -0
  23. package/_chunks/{duration-CL68Em0o.js → duration-Bf2OS1V5.js} +5 -5
  24. package/_chunks/editor-popup-ByU7qiub.js +82 -0
  25. package/_chunks/field-configurator-D5dZRhDe.js +288 -0
  26. package/_chunks/{framework-mount--RTLIqE-.js → framework-mount-Bk4O_T7T.js} +1 -1
  27. package/_chunks/icon-toolbar-DSjOdwM7.js +134 -0
  28. package/_chunks/magnifying-glass-CvrTDSkB.js +4 -0
  29. package/_chunks/minus-BOAR3A1C.js +4 -0
  30. package/_chunks/mount-BRdcG60g.js +267 -0
  31. package/_chunks/{native.view-ByyZ1CT5.js → native-Blr3byjO.js} +1 -1
  32. package/_chunks/native-control-B_fVA5bL.js +649 -0
  33. package/_chunks/{number-input-BKwA5FnM.js → number-input-CmM6_2vR.js} +7 -7
  34. package/_chunks/{picker-h1P5RUgp.js → picker-DTqET-2W.js} +2 -2
  35. package/_chunks/plus-CbGRkIGl.js +4 -0
  36. package/_chunks/popover-controller-D-AvKQ7B.js +102 -0
  37. package/_chunks/{popup-CT2uD3go.js → popup-C35Isk7p.js} +115 -104
  38. package/_chunks/{rating-choice-DZgmaic0.js → rating-choice-C-6wcb9U.js} +1 -1
  39. package/_chunks/{reorder-list-CSlqAGHw.js → reorder-list-DIl1gkV6.js} +1 -1
  40. package/_chunks/request-trail-DrhdpWiH.js +762 -0
  41. package/_chunks/rich-text-BnilBbhU.js +842 -0
  42. package/_chunks/rotate-left-BF6G883o.js +4 -0
  43. package/_chunks/selection-list-tooltips-C5oMJe26.js +42 -0
  44. package/_chunks/title-tooltip-Cw6LOZhb.js +11 -0
  45. package/_chunks/tooltip-D4xkio5G.js +54 -0
  46. package/_chunks/tooltip-owner-DjdvqKzz.js +19 -0
  47. package/_chunks/tooltip-session-B6X6x8G_.js +110 -0
  48. package/_chunks/tooltip-text-BXsUEmBH.js +12 -0
  49. package/_chunks/top-layer-popup-CNSDdfJV.js +59 -0
  50. package/_dialog.scss +57 -22
  51. package/_form.scss +71 -21
  52. package/_legend.scss +25 -7
  53. package/_shared/data-query/index.d.ts +2 -2
  54. package/_shared/data-query/load-options.d.ts +2 -2
  55. package/_variables.scss +34 -32
  56. package/_view-switcher.scss +6 -0
  57. package/activity-message.d.ts +1 -1
  58. package/ai/_chat.scss +35 -3
  59. package/ai/_style.scss +76 -16
  60. package/ai/chat.d.ts +3 -1
  61. package/ai/components.d.ts +16 -3
  62. package/ai/index.d.ts +1 -0
  63. package/ai/index.js +3 -3
  64. package/ai/mount.d.ts +30 -6
  65. package/ai/request-trail.d.ts +9 -3
  66. package/ai/results/_style.scss +83 -0
  67. package/ai/results/index.d.ts +11 -0
  68. package/ai/results/metrics.d.ts +5 -0
  69. package/ai/results/table.d.ts +5 -0
  70. package/ai/results/text.d.ts +5 -0
  71. package/ai/results/types.d.ts +29 -0
  72. package/ai/transcript.d.ts +2 -0
  73. package/ai/translations.d.ts +1 -1
  74. package/angular/angular.d.ts +1 -1
  75. package/angular/angular.js +13 -7
  76. package/assignee/assignee.scss +28 -6
  77. package/assignee/index.js +2 -2
  78. package/avatar/avatar.style.scss +23 -6
  79. package/avatar/index.d.ts +25 -2
  80. package/avatar/index.js +33 -32
  81. package/badge.d.ts +1 -1
  82. package/badge.view.d.ts +8 -0
  83. package/brush-range/_brush-range.scss +55 -49
  84. package/brush-range/component.d.ts +1 -3
  85. package/brush-range/component.js +27 -27
  86. package/buttons/delete-button.style.scss +6 -2
  87. package/buttons/remove-button.d.ts +1 -1
  88. package/buttons/remove-button.style.scss +1 -1
  89. package/buttons/svg-button.d.ts +1 -1
  90. package/buttons/svg-button.js +16 -16
  91. package/calendar/_calendar.scss +21 -25
  92. package/calendar/calendar.js +1 -1
  93. package/calendar/header.js +1 -2
  94. package/calendar/index.js +2 -2
  95. package/cell-input.scss +3 -7
  96. package/cell-visuals/badge.style.scss +6 -3
  97. package/cell-visuals/bar-chart.style.scss +2 -1
  98. package/cell-visuals/column-type.style.css +12 -0
  99. package/cell-visuals/progress-line-value.renderer.style.scss +4 -2
  100. package/cell-visuals/progress-line.style.scss +1 -4
  101. package/cell-visuals/sparkline.style.scss +2 -1
  102. package/cell-visuals/timeline.style.css +4 -2
  103. package/checkbox/checkbox.scss +6 -24
  104. package/choice-chips/index.d.ts +3 -1
  105. package/choice-chips/index.js +1 -1
  106. package/color-palette/color-palette.js +1 -1
  107. package/color-palette/color-palette.style.scss +88 -25
  108. package/color-palette/color-picker.js +2 -2
  109. package/color-palette/color-picker.style.scss +23 -10
  110. package/color-palette/common-palettes.d.ts +1 -1
  111. package/color-palette/common-palettes.js +1 -1
  112. package/color-palette/native.d.ts +15 -2
  113. package/component-catalog.d.ts +9 -7
  114. package/configurator-actions.d.ts +67 -0
  115. package/configurator-actions.js +1 -0
  116. package/configurator-aggregation-list.d.ts +14 -0
  117. package/configurator-aggregation-list.js +63 -0
  118. package/configurator-drop-zone.d.ts +39 -0
  119. package/configurator-drop-zone.js +66 -0
  120. package/configurator-field-icon.d.ts +10 -0
  121. package/configurator-field-icon.js +1 -0
  122. package/configurator-focus.d.ts +4 -0
  123. package/configurator-focus.js +39 -0
  124. package/configurator-sections.d.ts +42 -0
  125. package/configurator-sections.js +71 -0
  126. package/control-presentation.d.ts +8 -2
  127. package/control-presentation.js +25 -20
  128. package/controls.d.ts +12 -2
  129. package/controls.js +4 -3
  130. package/core/editor-popup-position.d.ts +6 -2
  131. package/core/editor-popup.d.ts +4 -0
  132. package/core/editor-popup.js +1 -1
  133. package/core/popover-controller.d.ts +35 -0
  134. package/core/popup-ownership.d.ts +2 -0
  135. package/core/selection-list-tooltips.d.ts +2 -0
  136. package/core/title-tooltip.d.ts +2 -0
  137. package/core/tooltip-session.d.ts +29 -0
  138. package/core/tooltip-surface.d.ts +13 -0
  139. package/core/tooltip-text.d.ts +6 -0
  140. package/core/tooltip.d.ts +35 -0
  141. package/core/top-layer-popup.d.ts +4 -0
  142. package/core/top-layer-popup.js +1 -23
  143. package/date-time/attach.d.ts +1 -1
  144. package/date-time/date-control.d.ts +1 -1
  145. package/date-time/field.d.ts +3 -2
  146. package/date-time/index.js +1 -1
  147. package/date-time/style.scss +239 -36
  148. package/date-time/time-selection.d.ts +3 -1
  149. package/date-time/types.d.ts +5 -1
  150. package/dialog/dialog-action-footer.d.ts +17 -2
  151. package/dialog/dialog.dom.d.ts +15 -2
  152. package/dialog/dialog.dom.js +9 -9
  153. package/dialog/dialog.parts.d.ts +1 -1
  154. package/dialog/dialog.parts.js +1 -1
  155. package/distribution-chart/_distribution-chart.scss +113 -77
  156. package/distribution-chart/area-chart.js +1 -1
  157. package/distribution-chart/bar-chart.js +1 -1
  158. package/distribution-chart/chart-frame.d.ts +1 -1
  159. package/distribution-chart/index.d.ts +1 -1
  160. package/distribution-chart/line-chart.js +1 -1
  161. package/dropdown/content.js +1 -1
  162. package/dropdown/control.js +1 -1
  163. package/dropdown/dropdown.types.d.ts +1 -1
  164. package/dropdown/editor-dropdown.style.scss +19 -9
  165. package/dropdown/index.js +2 -2
  166. package/dropdown/lookup-field.d.ts +5 -0
  167. package/dropdown/lookup-field.js +2 -1
  168. package/dropdown/popup.d.ts +2 -2
  169. package/dropdown/popup.js +1 -1
  170. package/duration/index.js +1 -1
  171. package/editor-actions.js +1 -1
  172. package/editor-layout/index.d.ts +4 -4
  173. package/editor-layout/index.js +39 -34
  174. package/editor-layout/style.scss +82 -18
  175. package/field-configurator.d.ts +39 -1
  176. package/field-configurator.js +4 -170
  177. package/field-expansion.d.ts +9 -0
  178. package/filter/filters/slider/_single-slider.scss +57 -38
  179. package/filter/filters/slider/_slider.scss +41 -33
  180. package/filter/filters/slider/control.js +2 -0
  181. package/filter/filters/slider/runtime.js +49 -22
  182. package/filter/filters/slider/single.js +1 -1
  183. package/filter-badge.js +1 -1
  184. package/filter-controls.d.ts +0 -1
  185. package/filter-controls.js +5 -6
  186. package/form-controls/index.d.ts +10 -2
  187. package/form-controls/index.js +7 -7
  188. package/form-controls/presentation.d.ts +1 -1
  189. package/form-controls/presentation.js +12 -12
  190. package/formatting/index.d.ts +1 -1
  191. package/formatting/index.js +22 -21
  192. package/formatting/styles.scss +14 -57
  193. package/framework.js +227 -224
  194. package/history-controls.js +27 -1
  195. package/icon-toolbar.d.ts +62 -0
  196. package/icon-toolbar.js +1 -0
  197. package/icons/icon.d.ts +1 -1
  198. package/legend.d.ts +1 -1
  199. package/masked-input/index.js +1 -1
  200. package/native-control.d.ts +1 -2
  201. package/native-control.js +1 -1
  202. package/native-controls.d.ts +54 -2
  203. package/native-styles.css +1 -1
  204. package/native-styles.scss +6 -2
  205. package/native.d.ts +3 -3
  206. package/native.js +46 -43
  207. package/number-input/index.d.ts +1 -1
  208. package/number-input/index.js +1 -1
  209. package/package.json +71 -2
  210. package/pagination.js +11 -11
  211. package/pdf-viewer/header.d.ts +1 -1
  212. package/pdf-viewer/index.d.ts +2 -2
  213. package/pdf-viewer/index.js +1 -1
  214. package/pdf-viewer/search-bar.d.ts +1 -1
  215. package/pdf-viewer/status.d.ts +1 -1
  216. package/pdf-viewer/style.scss +203 -42
  217. package/pickers.d.ts +5 -1
  218. package/preact-mount.js +1 -1
  219. package/preact.d.ts +13 -10
  220. package/preact.js +109 -64
  221. package/progress/_bar.scss +9 -3
  222. package/progress/_circular.scss +2 -1
  223. package/rating-choice.js +1 -1
  224. package/react-adapter.d.ts +4 -2
  225. package/react-control.d.ts +2 -0
  226. package/react-control.js +2 -2
  227. package/react.d.ts +7 -8
  228. package/react.js +67 -66
  229. package/reorder-list.d.ts +1 -1
  230. package/reorder-list.js +1 -1
  231. package/reorder-list.scss +59 -17
  232. package/resource-picker/resource-picker-popup.js +1 -1
  233. package/resource-picker/resource-picker.js +74 -72
  234. package/resource-picker/resource-picker.scss +62 -34
  235. package/rich-text/engine.d.ts +1 -0
  236. package/rich-text/format-html.d.ts +2 -0
  237. package/rich-text/index.d.ts +4 -0
  238. package/rich-text/index.js +1 -1
  239. package/rich-text/model.d.ts +2 -0
  240. package/rich-text/style.scss +293 -44
  241. package/rich-text/syntax.d.ts +5 -0
  242. package/rich-text/toolbar.d.ts +1 -1
  243. package/rich-text/translations.d.ts +2 -0
  244. package/search-input/index.js +1 -1
  245. package/search-input/native.d.ts +21 -2
  246. package/select.d.ts +3 -1
  247. package/select.js +1 -1
  248. package/selection-list.d.ts +1 -0
  249. package/selection-list.js +3 -1
  250. package/status-feedback/exit-snapshot.js +4 -4
  251. package/status-feedback/popover.js +4 -4
  252. package/status-feedback/status-feedback.scss +124 -35
  253. package/styles/_activity-message.scss +24 -7
  254. package/styles/_alert.scss +78 -17
  255. package/styles/_cell-editor-frame.scss +11 -0
  256. package/styles/_compositions.scss +400 -80
  257. package/styles/_control.scss +30 -8
  258. package/styles/_disclosure.scss +15 -5
  259. package/styles/_editor-counter.scss +16 -6
  260. package/styles/_editor-slider.scss +8 -4
  261. package/styles/_field-configurator.scss +321 -23
  262. package/styles/_fields-grid.scss +49 -0
  263. package/styles/_filter-controls.scss +10 -2
  264. package/styles/_icon-action.scss +48 -15
  265. package/styles/_loading.scss +12 -3
  266. package/styles/_motion.scss +32 -9
  267. package/styles/_palette.scss +0 -24
  268. package/styles/_primitives.scss +369 -110
  269. package/styles/_theme.scss +130 -86
  270. package/styles/_thresholds.scss +28 -25
  271. package/styles/_time-grid.scss +8 -3
  272. package/styles/_tokens.scss +6 -1
  273. package/styles/configurator-actions.scss +241 -0
  274. package/styles/pagination.css +213 -0
  275. package/styles/{legacy-rating.css → rating.css} +8 -3
  276. package/styles.css +1 -1
  277. package/styles.scss +3 -5
  278. package/surfaces.d.ts +38 -2
  279. package/surfaces.js +37 -134
  280. package/svelte/UiComponent.svelte +44 -11
  281. package/svelte.d.ts +1 -1
  282. package/svelte.js +3 -3
  283. package/switch/index.js +15 -14
  284. package/time-grid.d.ts +0 -1
  285. package/time-grid.js +38 -37
  286. package/timeline-track/_style.scss +96 -24
  287. package/timeline-track/index.js +2 -2
  288. package/ui.css +1 -1
  289. package/view-switcher.d.ts +23 -0
  290. package/vue.d.ts +29 -32
  291. package/vue.js +116 -121
  292. package/_chunks/chart-frame-Cmc7xU1i.js +0 -130
  293. package/_chunks/choice-chips-CHQTUdLs.js +0 -110
  294. package/_chunks/color-picker-CudqPYZo.js +0 -138
  295. package/_chunks/control-tooltip-uscKfAnV.js +0 -100
  296. package/_chunks/controls-DsNi8V8I.js +0 -630
  297. package/_chunks/dialog.parts-CKGkC5zP.js +0 -134
  298. package/_chunks/editor-popup-WDdtVDNA.js +0 -81
  299. package/_chunks/history-controls-B3u3INEK.js +0 -27
  300. package/_chunks/mount-DQ1cpppK.js +0 -257
  301. package/_chunks/native-control-C_yok8_-.js +0 -605
  302. package/_chunks/request-trail-DSlFix6i.js +0 -618
  303. package/_chunks/rich-text-CH7gIqOS.js +0 -636
  304. package/avatar/index.view.d.ts +0 -25
  305. package/color-palette/native.view.d.ts +0 -15
  306. package/control-presentation.view.d.ts +0 -8
  307. package/dialog/dialog-action-footer.view.d.ts +0 -20
  308. package/dialog/dialog.dom.view.d.ts +0 -15
  309. package/form-controls/index.view.d.ts +0 -10
  310. package/formatting/control-tooltip.d.ts +0 -27
  311. package/native-controls.view.d.ts +0 -54
  312. package/search-input/native.view.d.ts +0 -21
  313. package/styles/legacy-pagination.css +0 -112
  314. package/surfaces.view.d.ts +0 -63
@@ -40,5 +40,5 @@ export declare class UiComponent implements AfterContentInit, AfterViewInit, OnC
40
40
  }
41
41
  export type { PdfViewerProps, PdfViewerText } from '../pdf-viewer/component.js';
42
42
  export type { PdfViewerToolbarProps } from '../pdf-viewer/toolbar.js';
43
- export type { PdfViewerButton, PdfViewerButtonOptions, PdfViewerToolbarOptions, PdfViewerToolbarConfig } from '../pdf-viewer/toolbar-options.js';
43
+ export type { PdfViewerButton, PdfViewerButtonOptions, PdfViewerToolbarOptions, PdfViewerToolbarConfig, } from '../pdf-viewer/toolbar-options.js';
44
44
  export { defaultPdfViewerText } from '../pdf-viewer/index.js';
@@ -35,10 +35,12 @@ export class UiComponent {
35
35
  ngAfterViewInit() {
36
36
  if (!this.browser)
37
37
  return;
38
- this.mount = createFrameworkMount(this.host.nativeElement, targets => this.renderTemplates(targets));
38
+ this.mount = createFrameworkMount(this.host.nativeElement, (targets) => this.renderTemplates(targets));
39
+ this.update();
40
+ }
41
+ ngOnChanges() {
39
42
  this.update();
40
43
  }
41
- ngOnChanges() { this.update(); }
42
44
  update() {
43
45
  if (!this.mount || this.destroyed)
44
46
  return;
@@ -47,8 +49,11 @@ export class UiComponent {
47
49
  throw new Error(`Unknown UI component: ${this.component}`);
48
50
  const props = { ...this.props };
49
51
  const model = componentModels[this.component];
50
- const callbacks = new Set([...Object.keys(props).filter(key => /^on[A-Z]/.test(key)),
51
- 'onClose', ...(model ? [model.callback] : [])]);
52
+ const callbacks = new Set([
53
+ ...Object.keys(props).filter((key) => /^on[A-Z]/.test(key)),
54
+ 'onClose',
55
+ ...(model ? [model.callback] : []),
56
+ ]);
52
57
  for (const name of callbacks) {
53
58
  const original = props[name];
54
59
  props[name] = (...args) => {
@@ -60,13 +65,13 @@ export class UiComponent {
60
65
  return result;
61
66
  };
62
67
  }
63
- const slots = Object.fromEntries(this.slots?.map(slot => [slot.rvUiSlot, slot]) ?? []);
68
+ const slots = Object.fromEntries(this.slots?.map((slot) => [slot.rvUiSlot, slot]) ?? []);
64
69
  this.mount.render(component, props, (props, content) => withFrameworkContent(this.component, props, slots, content));
65
70
  }
66
71
  renderTemplates(targets) {
67
72
  if (this.destroyed)
68
73
  return;
69
- const live = new Set(targets.map(target => target.id));
74
+ const live = new Set(targets.map((target) => target.id));
70
75
  for (const [id, record] of this.views) {
71
76
  if (!live.has(id)) {
72
77
  this.release(record);
@@ -123,7 +128,8 @@ export class UiComponent {
123
128
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.0", ngImport: i0, type: UiComponent, decorators: [{
124
129
  type: Component,
125
130
  args: [{
126
- selector: 'rv-ui', standalone: true,
131
+ selector: 'rv-ui',
132
+ standalone: true,
127
133
  template: '<span #host style="display: contents"></span>',
128
134
  host: { style: 'display: contents' },
129
135
  }]
@@ -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,12 @@
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 {
60
+ margin-block: -3px;
61
+ }
56
62
  }
57
63
  .rv-assignee-picker__allocations {
58
64
  display: grid;
@@ -90,15 +96,31 @@
90
96
  }
91
97
  .rv-assignee-picker__allocations {
92
98
  border-top: 1px solid var(--rv-ui-border);
93
- &:empty { display: none; }
99
+ &:empty {
100
+ display: none;
101
+ }
94
102
  label {
95
103
  padding: 8px 10px;
96
104
  border-radius: 8px;
97
105
  background: var(--rv-ui-field-surface);
98
106
  font-size: 12px;
99
- > span { min-width: 0; overflow-wrap: anywhere; }
107
+ > span {
108
+ min-width: 0;
109
+ overflow-wrap: anywhere;
110
+ }
111
+ }
112
+ input {
113
+ flex: 0 0 88px;
114
+ width: 88px;
115
+ min-height: 32px;
116
+ padding: 6px 8px;
117
+ font-size: 12px;
100
118
  }
101
- input { flex: 0 0 88px; width: 88px; min-height: 32px; padding: 6px 8px; font-size: 12px; }
102
119
  }
103
- .rv-assignee-picker__footer { flex-wrap: wrap; font-size: 12px; }
104
- .rv-assignee-picker__footer .rv-editor-actions { margin-inline-start: auto; }
120
+ .rv-assignee-picker__footer {
121
+ flex-wrap: wrap;
122
+ font-size: 12px;
123
+ }
124
+ .rv-assignee-picker__footer .rv-editor-actions {
125
+ margin-inline-start: auto;
126
+ }
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-C_yok8_-.js";
4
- import { R as a } from "../_chunks/controls-DsNi8V8I.js";
3
+ import { l as r, n as i } from "../_chunks/native-control-B_fVA5bL.js";
4
+ import { R as a } from "../_chunks/controls-B_6NJarZ.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";
@@ -26,14 +26,31 @@
26
26
  border-radius: 8px;
27
27
  }
28
28
 
29
- .avatar-cell--size-16 { --avatar-cell-size: 16px; font-size: 8px; }
30
- .avatar-cell--size-20 { --avatar-cell-size: 20px; font-size: 9px; }
31
- .avatar-cell--size-32 { --avatar-cell-size: 32px; font-size: 12px; }
32
- .avatar-cell--size-40 { --avatar-cell-size: 40px; font-size: 14px; }
33
- .avatar-cell--size-48 { --avatar-cell-size: 48px; font-size: 16px; }
29
+ .avatar-cell--size-16 {
30
+ --avatar-cell-size: 16px;
31
+ font-size: 8px;
32
+ }
33
+ .avatar-cell--size-20 {
34
+ --avatar-cell-size: 20px;
35
+ font-size: 9px;
36
+ }
37
+ .avatar-cell--size-32 {
38
+ --avatar-cell-size: 32px;
39
+ font-size: 12px;
40
+ }
41
+ .avatar-cell--size-40 {
42
+ --avatar-cell-size: 40px;
43
+ font-size: 14px;
44
+ }
45
+ .avatar-cell--size-48 {
46
+ --avatar-cell-size: 48px;
47
+ font-size: 16px;
48
+ }
34
49
 
35
50
  @each $index, $background in map.get(palettes.$palettes, 'avatar-cell') {
36
- .avatar-cell--#{$index} { --avatar-cell-background: #{$background}; }
51
+ .avatar-cell--#{$index} {
52
+ --avatar-cell-background: #{$background};
53
+ }
37
54
  }
38
55
 
39
56
  // Keep host responsive-image and content-spacing rules out of the avatar.
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
@@ -1,68 +1,69 @@
1
1
  import { i as e } from "../_chunks/hooks.module-CG3gN83z.js";
2
2
  import { t } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
3
3
  import { createPreactElement as n } from "../preact-mount.js";
4
- import { AVATAR_CELL_BACKGROUNDS as r } from "../color-palette/common-palettes.js";
5
- //#region src/avatar/index.view.tsx
6
- function i({ options: n = {} }) {
7
- let [i, a] = e(!1), { index: o = 0, initials: l, rectangular: d = !1, size: f, value: p } = n, m = [
4
+ import { t as r } from "../_chunks/tooltip-text-BXsUEmBH.js";
5
+ import { AVATAR_CELL_BACKGROUNDS as i } from "../color-palette/common-palettes.js";
6
+ //#region src/avatar/index.tsx
7
+ function a({ options: n = {} }) {
8
+ let [a, o] = e(!1), { index: s = 0, initials: u, rectangular: f = !1, size: p, value: m } = n, h = [
8
9
  "avatar-cell",
9
- `avatar-cell--${Math.max(o, 0) % r.length}`,
10
- d ? "avatar-cell--rectangular rectangular" : "",
11
- u(f),
10
+ `avatar-cell--${Math.max(s, 0) % i.length}`,
11
+ f ? "avatar-cell--rectangular rectangular" : "",
12
+ d(p),
12
13
  n.className
13
14
  ].filter(Boolean).join(" ");
14
- return /* @__PURE__ */ t("span", {
15
- class: m,
16
- title: n.label || String(p ?? ""),
15
+ return /* @__PURE__ */ t(r, {
16
+ class: h,
17
+ title: n.label || String(m ?? ""),
17
18
  role: "img",
18
19
  "aria-label": n.ariaLabel || n.label || void 0,
19
20
  style: n.style,
20
- children: c(p) && !i ? /* @__PURE__ */ t("img", {
21
+ children: l(m) && !a ? /* @__PURE__ */ t("img", {
21
22
  class: "avatar-cell__image",
22
- src: String(p),
23
+ src: String(m),
23
24
  alt: n.label || "",
24
- onError: () => a(!0)
25
- }) : l ?? s(p)
25
+ onError: () => o(!0)
26
+ }) : u ?? c(m)
26
27
  });
27
28
  }
28
- function a(e, r = {}) {
29
- return n(e, /* @__PURE__ */ t(i, { options: r }));
29
+ function o(e, r = {}) {
30
+ return n(e, /* @__PURE__ */ t(a, { options: r }));
30
31
  }
31
- function o(e = 0) {
32
- return r[Math.max(e, 0) % r.length];
32
+ function s(e = 0) {
33
+ return i[Math.max(e, 0) % i.length];
33
34
  }
34
- function s(e) {
35
+ function c(e) {
35
36
  return String(e ?? "").split(/\s+/).filter(Boolean).slice(0, 2).map((e) => e[0]?.toUpperCase() ?? "").join("");
36
37
  }
37
- function c(e) {
38
+ function l(e) {
38
39
  return typeof e == "string" && /^(https?:|data:image\/|blob:|\/|\.\.?\/)/.test(e);
39
40
  }
40
- function l(e) {
41
+ function u(e) {
41
42
  let t = Number(e);
42
43
  return Number.isFinite(t) ? Math.max(t - 1, 0) : 0;
43
44
  }
44
- function u(e) {
45
+ function d(e) {
45
46
  if (e) return e <= 16 ? "avatar-cell--size-16" : e <= 20 ? "avatar-cell--size-20" : e <= 32 ? "avatar-cell--size-32" : e <= 40 ? "avatar-cell--size-40" : "avatar-cell--size-48";
46
47
  }
47
- function d(e, t = {}) {
48
- let { index: n = 0, initials: i, rectangular: a = !1, size: o, value: l } = t, d = c(l), f = u(o), p = {
48
+ function f(e, t = {}) {
49
+ let { index: n = 0, initials: r, rectangular: a = !1, size: o, value: s } = t, u = l(s), f = d(o), p = {
49
50
  class: [
50
51
  "avatar-cell",
51
- `avatar-cell--${Math.max(n, 0) % r.length}`,
52
+ `avatar-cell--${Math.max(n, 0) % i.length}`,
52
53
  a ? "avatar-cell--rectangular rectangular" : "",
53
54
  f,
54
55
  t.className
55
56
  ].filter(Boolean).join(" "),
56
- title: t.label || String(l ?? "")
57
+ title: t.label || String(s ?? "")
57
58
  };
58
- return t.key !== void 0 && (p.key = t.key), t.style !== void 0 && (p.style = t.style), t.ariaLabel !== void 0 && (p["aria-label"] = t.ariaLabel), d ? e("span", p, [e("img", {
59
+ return t.key !== void 0 && (p.key = t.key), t.style !== void 0 && (p.style = t.style), t.ariaLabel !== void 0 && (p["aria-label"] = t.ariaLabel), u ? e("span", p, [e("img", {
59
60
  class: "avatar-cell__image",
60
- src: String(l),
61
+ src: String(s),
61
62
  alt: t.label || ""
62
- })]) : e("span", p, i ?? s(l));
63
+ })]) : e("span", p, r ?? c(s));
63
64
  }
64
- function f(e, t = {}) {
65
- return e("span", { class: "avatar-cell-with-text" }, [d(e, t), e("span", { class: "avatar-cell-with-text__label" }, String(t.label ?? t.value ?? ""))]);
65
+ function p(e, t = {}) {
66
+ return e("span", { class: "avatar-cell-with-text" }, [f(e, t), e("span", { class: "avatar-cell-with-text__label" }, String(t.label ?? t.value ?? ""))]);
66
67
  }
67
68
  //#endregion
68
- export { r as AVATAR_CELL_BACKGROUNDS, i as AvatarElement, d as avatarTemplate, f as avatarWithTextTemplate, a as createAvatarElement, o as getAvatarCellBackground, l as getAvatarIndex, s as getAvatarInitials };
69
+ export { i as AVATAR_CELL_BACKGROUNDS, a as AvatarElement, f as avatarTemplate, p as avatarWithTextTemplate, o as createAvatarElement, s as getAvatarCellBackground, u as getAvatarIndex, c as getAvatarInitials };
package/badge.d.ts CHANGED
@@ -4,4 +4,4 @@ export interface BadgeOptions {
4
4
  shape?: 'pill' | 'rounded';
5
5
  }
6
6
  /** Shared presentation for inline badges across framework adapters. */
7
- export declare function badgeClassName({ variant, shape }?: BadgeOptions): string;
7
+ export declare function badgeClassName({ variant, shape, }?: BadgeOptions): string;
@@ -0,0 +1,8 @@
1
+ import { h, ComponentChildren } from './_vendor/preact/src/index';
2
+ import { BadgeOptions } from './badge';
3
+ /** Shared badge presentation, independent of toolbar and form controls. */
4
+ export declare function Badge({ children, className, variant, shape, }: BadgeOptions & {
5
+ children?: ComponentChildren;
6
+ className?: string;
7
+ label?: string;
8
+ }): h.JSX.Element;
@@ -1,49 +1,55 @@
1
- .brush-range {
2
- display: flex;
3
- flex-direction: column;
4
- width: 100%;
5
- min-width: 0;
6
- }
7
-
8
- .brush-range__range {
9
- margin: 0;
10
- gap: 0;
11
- }
12
-
13
- // Keep chart tooltips above the interactive range-control layer when they
14
- // overflow below a line or area chart.
15
- .brush-range__chart { z-index: 2; }
16
-
17
- .brush-range__controls {
18
- margin-top: 12px;
19
- }
20
-
21
- .brush-range__labels {
22
- display: grid;
23
- grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr) minmax(0, 1fr);
24
- align-items: center;
25
- gap: 12px;
26
- margin-top: 11px;
27
- color: var(--rv-brush-muted, var(--rv-ui-text-muted));
28
- font: 12px/18px ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
29
-
30
- }
31
-
32
- .brush-range__label {
33
- min-width: 0;
34
- overflow: hidden;
35
- text-overflow: ellipsis;
36
- white-space: nowrap;
37
- }
38
-
39
- .brush-range__label--end {
40
- text-align: end;
41
- }
42
-
43
- .brush-range__selection {
44
- color: var(--rv-brush-accent, var(--rv-ui-accent-text, var(--rv-ui-accent)));
45
- font-weight: 500;
46
- text-align: center;
47
- white-space: normal;
48
- overflow-wrap: anywhere;
49
- }
1
+ .brush-range {
2
+ display: flex;
3
+ flex-direction: column;
4
+ width: 100%;
5
+ min-width: 0;
6
+ }
7
+
8
+ .brush-range__range {
9
+ margin: 0;
10
+ gap: 0;
11
+ }
12
+
13
+ // Keep chart tooltips above the interactive range-control layer when they
14
+ // overflow below a line or area chart.
15
+ .brush-range__chart {
16
+ z-index: 2;
17
+ }
18
+
19
+ .brush-range__controls {
20
+ margin-top: 12px;
21
+ }
22
+
23
+ .brush-range__labels {
24
+ display: grid;
25
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr) minmax(0, 1fr);
26
+ align-items: center;
27
+ gap: 12px;
28
+ margin-top: 11px;
29
+ color: var(--rv-brush-muted, var(--rv-ui-text-muted));
30
+ font:
31
+ 12px/18px ui-monospace,
32
+ SFMono-Regular,
33
+ Menlo,
34
+ Consolas,
35
+ monospace;
36
+ }
37
+
38
+ .brush-range__label {
39
+ min-width: 0;
40
+ overflow: hidden;
41
+ text-overflow: ellipsis;
42
+ white-space: nowrap;
43
+ }
44
+
45
+ .brush-range__label--end {
46
+ text-align: end;
47
+ }
48
+
49
+ .brush-range__selection {
50
+ color: var(--rv-brush-accent, var(--rv-ui-accent-text, var(--rv-ui-accent)));
51
+ font-weight: 500;
52
+ text-align: center;
53
+ white-space: normal;
54
+ overflow-wrap: anywhere;
55
+ }
@@ -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;
@@ -1,47 +1,47 @@
1
1
  import { t as e } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
2
- import { PreactRangeSlider as t } from "../filter/filters/slider/preact.js";
3
- import { DistributionChart as n } from "../distribution-chart/index.js";
2
+ import { t } from "../_chunks/tooltip-text-BXsUEmBH.js";
3
+ import { PreactRangeSlider as n } from "../filter/filters/slider/preact.js";
4
+ import { DistributionChart as r } from "../distribution-chart/index.js";
4
5
  //#region src/brush-range/component.tsx
5
- function r(...e) {
6
+ function i(...e) {
6
7
  return e.filter(Boolean).join(" ");
7
8
  }
8
- function i(e) {
9
+ function a(e) {
9
10
  return typeof e == "string" || typeof e == "number" ? String(e) : void 0;
10
11
  }
11
- function a({ chart: a, slider: o, startLabel: s, selectionLabel: c, endLabel: l, legacyClassPrefix: u }) {
12
- let d = (e) => u ? `${u}__${e}` : void 0;
12
+ function o({ chart: o, slider: s, startLabel: c, selectionLabel: l, endLabel: u }) {
13
13
  return /* @__PURE__ */ e("div", {
14
14
  class: "brush-range",
15
15
  children: [
16
- a ? /* @__PURE__ */ e(n, {
17
- ...a,
18
- className: r("brush-range__chart", d("chart"), a.className)
19
- }) : null,
20
- /* @__PURE__ */ e(t, {
16
+ o ? /* @__PURE__ */ e(r, {
21
17
  ...o,
22
- className: r("brush-range__range", d("range"), o.className),
23
- controlClassName: r("brush-range__controls", d("controls"), o.controlClassName),
24
- fromClassName: r(d("lower"), o.fromClassName),
25
- toClassName: r(d("upper"), o.toClassName)
18
+ className: i("brush-range__chart", o.className)
19
+ }) : null,
20
+ /* @__PURE__ */ e(n, {
21
+ ...s,
22
+ className: i("brush-range__range", s.className),
23
+ controlClassName: i("brush-range__controls", s.controlClassName),
24
+ fromClassName: s.fromClassName,
25
+ toClassName: s.toClassName
26
26
  }),
27
27
  /* @__PURE__ */ e("div", {
28
- class: r("brush-range__labels", d("labels")),
28
+ class: "brush-range__labels",
29
29
  children: [
30
- /* @__PURE__ */ e("span", {
30
+ /* @__PURE__ */ e(t, {
31
31
  class: "brush-range__label brush-range__label--start",
32
- title: i(s),
33
- children: s
32
+ title: a(c),
33
+ children: c
34
34
  }),
35
- /* @__PURE__ */ e("span", {
36
- class: r("brush-range__label", "brush-range__selection", d("selection")),
35
+ /* @__PURE__ */ e(t, {
36
+ class: i("brush-range__label", "brush-range__selection"),
37
37
  role: "status",
38
- title: i(c),
39
- children: c
38
+ title: a(l),
39
+ children: l
40
40
  }),
41
- /* @__PURE__ */ e("span", {
41
+ /* @__PURE__ */ e(t, {
42
42
  class: "brush-range__label brush-range__label--end",
43
- title: i(l),
44
- children: l
43
+ title: a(u),
44
+ children: u
45
45
  })
46
46
  ]
47
47
  })
@@ -49,4 +49,4 @@ function a({ chart: a, slider: o, startLabel: s, selectionLabel: c, endLabel: l,
49
49
  });
50
50
  }
51
51
  //#endregion
52
- export { a as BrushRange };
52
+ export { o as BrushRange };
@@ -9,6 +9,10 @@
9
9
  color: var(--rv-ui-btn-danger-outline);
10
10
  background: transparent;
11
11
  border-radius: var(--rv-ui-radius, 6px);
12
- &:hover:not(:disabled) { background: var(--rv-ui-btn-danger-outline-hover); }
13
- svg { fill: currentColor; }
12
+ &:hover:not(:disabled) {
13
+ background: var(--rv-ui-btn-danger-outline-hover);
14
+ }
15
+ svg {
16
+ fill: currentColor;
17
+ }
14
18
  }
@@ -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 {
@@ -16,4 +16,4 @@ export interface SvgButtonProps extends Omit<JSX.IntrinsicElements['button'], 'c
16
16
  readonly children?: ComponentChildren;
17
17
  }
18
18
  /** Shared native button presentation for trusted bundled SVG controls. */
19
- export declare function SvgButton({ label, variant, icon, visibleLabel, className, iconClassName, labelClassName, children, iconContent, badge, badgeClassName, class: nativeClass, disabled, ...attributes }: SvgButtonProps): h.JSX.Element;
19
+ export declare function SvgButton({ label, variant, icon, visibleLabel, className, iconClassName, labelClassName, children, iconContent, badge, badgeClassName, class: nativeClass, disabled, title, ...attributes }: SvgButtonProps): h.JSX.Element;
@@ -1,44 +1,44 @@
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-C_yok8_-.js";
3
+ import { t as n } from "../_chunks/native-control-B_fVA5bL.js";
4
4
  import { controlClassName as r } from "../control-attributes.js";
5
- import { n as i } from "../_chunks/control-tooltip-uscKfAnV.js";
5
+ import { n as i } from "../_chunks/tooltip-D4xkio5G.js";
6
6
  //#region src/buttons/svg-button.tsx
7
- function a({ label: a, variant: o, icon: s, visibleLabel: c, className: l, iconClassName: u, labelClassName: d, children: f, iconContent: p, badge: m, badgeClassName: h = "", class: g, disabled: _, ...v }) {
8
- let y = i(a, !0, {
7
+ function a({ label: a, variant: o, icon: s, visibleLabel: c, className: l, iconClassName: u, labelClassName: d, children: f, iconContent: p, badge: m, badgeClassName: h = "", class: g, disabled: _, title: v, ...y }) {
8
+ let b = i(typeof v == "string" ? v : a, !0, {
9
9
  className: "rv-control-tooltip",
10
10
  placement: "above"
11
11
  });
12
12
  return /* @__PURE__ */ e(n, {
13
13
  type: "button",
14
14
  "aria-label": m === void 0 ? a : `${a} ${m}`,
15
- ...v,
15
+ ...y,
16
16
  disabled: _,
17
- ...y.triggerProps,
18
- "aria-describedby": [v["aria-describedby"], y.id].filter(Boolean).join(" "),
17
+ ...b.triggerProps,
18
+ "aria-describedby": [y["aria-describedby"], b.id].filter(Boolean).join(" "),
19
19
  onFocus: (e) => {
20
- y.triggerProps.onFocus(e), v.onFocus?.(e);
20
+ b.triggerProps.onFocus(e), y.onFocus?.(e);
21
21
  },
22
22
  onBlur: (e) => {
23
- y.triggerProps.onBlur(), v.onBlur?.(e);
23
+ b.triggerProps.onBlur(), y.onBlur?.(e);
24
24
  },
25
25
  onMouseEnter: (e) => {
26
- y.triggerProps.onMouseEnter(e), v.onMouseEnter?.(e);
26
+ b.triggerProps.onMouseEnter(e), y.onMouseEnter?.(e);
27
27
  },
28
28
  onMouseLeave: (e) => {
29
- y.triggerProps.onMouseLeave(), v.onMouseLeave?.(e);
29
+ b.triggerProps.onMouseLeave(), y.onMouseLeave?.(e);
30
30
  },
31
31
  onPointerDown: (e) => {
32
- y.triggerProps.onPointerDown(e), v.onPointerDown?.(e);
32
+ b.triggerProps.onPointerDown(e), y.onPointerDown?.(e);
33
33
  },
34
34
  onPointerCancel: (e) => {
35
- y.triggerProps.onPointerCancel(), v.onPointerCancel?.(e);
35
+ b.triggerProps.onPointerCancel(), y.onPointerCancel?.(e);
36
36
  },
37
37
  onKeyDown: (e) => {
38
- y.triggerProps.onKeyDown(e), v.onKeyDown?.(e);
38
+ b.triggerProps.onKeyDown(e), y.onKeyDown?.(e);
39
39
  },
40
40
  onClick: (e) => {
41
- y.hide(), v.onClick?.(e);
41
+ b.hide(), y.onClick?.(e);
42
42
  },
43
43
  class: r(l ?? (o ? "" : "rv-btn-ghost"), o && `rv-btn-${o}`, g, "rv-icon-action", !c && "rv-btn-icon"),
44
44
  children: [
@@ -56,7 +56,7 @@ function a({ label: a, variant: o, icon: s, visibleLabel: c, className: l, iconC
56
56
  children: m
57
57
  }),
58
58
  f,
59
- y.tooltip
59
+ b.tooltip
60
60
  ]
61
61
  });
62
62
  }