@revolist/ui 4.0.4-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.
- package/MIGRATION.md +36 -0
- package/OWNERSHIP.md +10 -10
- package/README.md +22 -4
- package/_chunks/arrow-up-Cw8hW9vp.js +4 -0
- package/_chunks/badge.view-D30pMUfi.js +14 -0
- package/_chunks/calculator-CDWOuAcp.js +4 -0
- package/_chunks/{calendar-xpZ0v3xf.js → calendar-QWDyYzdo.js} +19 -19
- package/_chunks/chart-frame-hcOlnQ1K.js +145 -0
- package/_chunks/check-BwI7iCAm.js +4 -0
- package/_chunks/choice-chips-A6WR-WJe.js +126 -0
- package/_chunks/{color-palette-D8vyPfld.js → color-palette-DMJUChWC.js} +20 -22
- package/_chunks/color-picker-BK4W1nd6.js +143 -0
- package/_chunks/{component-C_T2VN5u.js → component-CMkF17YZ.js} +281 -265
- package/_chunks/{component-metadata-BMOOmqx5.js → component-metadata-BKd7U8OW.js} +0 -8
- package/_chunks/configurator-actions-By8WSL2m.js +155 -0
- package/_chunks/configurator-field-icon-CmcM_sPs.js +53 -0
- package/_chunks/{control-AHKXD5Eu.js → control-mlH7l0Uq.js} +42 -17
- package/_chunks/{controls-DsNi8V8I.js → controls-FUU-MUKC.js} +171 -186
- package/_chunks/{date-control-DrVFX13g.js → date-control-Dup_P3w5.js} +1 -1
- package/_chunks/{date-time-qIhp5vaX.js → date-time-9z6pAG5T.js} +317 -278
- package/_chunks/dialog.parts-Bi7YbXqS.js +131 -0
- package/_chunks/{duration-CL68Em0o.js → duration-D7oRjsmP.js} +5 -5
- package/_chunks/editor-popup-ByU7qiub.js +82 -0
- package/_chunks/field-configurator-BCINdXpU.js +223 -0
- package/_chunks/{framework-mount--RTLIqE-.js → framework-mount-Bk4O_T7T.js} +1 -1
- package/_chunks/icon-toolbar-DSjOdwM7.js +134 -0
- package/_chunks/magnifying-glass-CvrTDSkB.js +4 -0
- package/_chunks/minus-BOAR3A1C.js +4 -0
- package/_chunks/mount-Cw2zk58T.js +266 -0
- package/_chunks/{native.view-ByyZ1CT5.js → native-Blr3byjO.js} +1 -1
- package/_chunks/native-control-pFMuHf3G.js +644 -0
- package/_chunks/{number-input-BKwA5FnM.js → number-input-DqXV6vgP.js} +7 -7
- package/_chunks/{picker-h1P5RUgp.js → picker-gEGTu1Ki.js} +2 -2
- package/_chunks/plus-CbGRkIGl.js +4 -0
- package/_chunks/popover-controller-D-AvKQ7B.js +102 -0
- package/_chunks/{popup-CT2uD3go.js → popup-C35Isk7p.js} +115 -104
- package/_chunks/{rating-choice-DZgmaic0.js → rating-choice-DbxdUJr-.js} +1 -1
- package/_chunks/{reorder-list-CSlqAGHw.js → reorder-list-B0_13Sja.js} +1 -1
- package/_chunks/request-trail-CCSK6TJA.js +753 -0
- package/_chunks/rich-text-5rnc8lpI.js +842 -0
- package/_chunks/rotate-left-BF6G883o.js +4 -0
- package/_chunks/title-tooltip-Cw6LOZhb.js +11 -0
- package/_chunks/tooltip-D4xkio5G.js +54 -0
- package/_chunks/tooltip-owner-DjdvqKzz.js +19 -0
- package/_chunks/tooltip-session-B6X6x8G_.js +110 -0
- package/_chunks/tooltip-text-BXsUEmBH.js +12 -0
- package/_chunks/top-layer-popup-CNSDdfJV.js +59 -0
- package/_variables.scss +33 -32
- package/ai/_chat.scss +28 -3
- package/ai/_style.scss +55 -2
- package/ai/chat.d.ts +3 -1
- package/ai/components.d.ts +13 -2
- package/ai/index.d.ts +1 -0
- package/ai/index.js +3 -3
- package/ai/mount.d.ts +17 -1
- package/ai/results/_style.scss +83 -0
- package/ai/results/index.d.ts +11 -0
- package/ai/results/metrics.d.ts +5 -0
- package/ai/results/table.d.ts +5 -0
- package/ai/results/text.d.ts +5 -0
- package/ai/results/types.d.ts +29 -0
- package/ai/transcript.d.ts +2 -0
- package/ai/translations.d.ts +1 -1
- package/assignee/assignee.scss +5 -1
- package/assignee/index.js +2 -2
- package/avatar/index.d.ts +25 -2
- package/avatar/index.js +33 -32
- package/badge.view.d.ts +8 -0
- package/brush-range/component.d.ts +1 -3
- package/brush-range/component.js +27 -27
- package/buttons/remove-button.d.ts +1 -1
- package/buttons/remove-button.style.scss +1 -1
- package/buttons/svg-button.d.ts +1 -1
- package/buttons/svg-button.js +16 -16
- package/calendar/_calendar.scss +2 -2
- package/calendar/calendar.js +1 -1
- package/calendar/index.js +2 -2
- package/checkbox/checkbox.scss +1 -22
- package/choice-chips/index.d.ts +3 -1
- package/choice-chips/index.js +1 -1
- package/color-palette/color-palette.js +1 -1
- package/color-palette/color-palette.style.scss +1 -1
- package/color-palette/color-picker.js +2 -2
- package/color-palette/common-palettes.d.ts +1 -1
- package/color-palette/common-palettes.js +1 -1
- package/color-palette/native.d.ts +15 -2
- package/component-catalog.d.ts +9 -7
- package/configurator-actions.d.ts +67 -0
- package/configurator-actions.js +1 -0
- package/configurator-aggregation-list.d.ts +14 -0
- package/configurator-aggregation-list.js +61 -0
- package/configurator-drop-zone.d.ts +38 -0
- package/configurator-drop-zone.js +64 -0
- package/configurator-field-icon.d.ts +10 -0
- package/configurator-field-icon.js +1 -0
- package/configurator-focus.d.ts +4 -0
- package/configurator-focus.js +39 -0
- package/configurator-sections.d.ts +42 -0
- package/configurator-sections.js +71 -0
- package/control-presentation.d.ts +8 -2
- package/control-presentation.js +25 -20
- package/controls.d.ts +1 -2
- package/controls.js +4 -3
- package/core/editor-popup-position.d.ts +6 -2
- package/core/editor-popup.d.ts +4 -0
- package/core/editor-popup.js +1 -1
- package/core/popover-controller.d.ts +35 -0
- package/core/popup-ownership.d.ts +2 -0
- package/core/title-tooltip.d.ts +2 -0
- package/core/tooltip-session.d.ts +29 -0
- package/core/tooltip-surface.d.ts +13 -0
- package/core/tooltip-text.d.ts +6 -0
- package/core/tooltip.d.ts +35 -0
- package/core/top-layer-popup.d.ts +4 -0
- package/core/top-layer-popup.js +1 -23
- package/date-time/attach.d.ts +1 -1
- package/date-time/field.d.ts +3 -2
- package/date-time/index.js +1 -1
- package/date-time/style.scss +64 -7
- package/date-time/time-selection.d.ts +3 -1
- package/date-time/types.d.ts +5 -1
- package/dialog/dialog-action-footer.d.ts +17 -2
- package/dialog/dialog.dom.d.ts +15 -2
- package/dialog/dialog.dom.js +9 -9
- package/dialog/dialog.parts.d.ts +1 -1
- package/dialog/dialog.parts.js +1 -1
- package/distribution-chart/_distribution-chart.scss +12 -54
- package/distribution-chart/area-chart.js +1 -1
- package/distribution-chart/bar-chart.js +1 -1
- package/distribution-chart/index.d.ts +1 -1
- package/distribution-chart/line-chart.js +1 -1
- package/dropdown/content.js +1 -1
- package/dropdown/control.js +1 -1
- package/dropdown/editor-dropdown.style.scss +5 -0
- package/dropdown/index.js +2 -2
- package/dropdown/lookup-field.d.ts +5 -0
- package/dropdown/lookup-field.js +2 -1
- package/dropdown/popup.d.ts +2 -2
- package/dropdown/popup.js +1 -1
- package/duration/index.js +1 -1
- package/editor-actions.js +1 -1
- package/field-configurator.d.ts +27 -0
- package/field-configurator.js +4 -170
- package/field-expansion.d.ts +9 -0
- package/filter/filters/slider/_slider.scss +8 -25
- package/filter/filters/slider/control.js +2 -0
- package/filter/filters/slider/runtime.js +49 -22
- package/filter/filters/slider/single.js +1 -1
- package/filter-badge.js +1 -1
- package/filter-controls.d.ts +0 -1
- package/filter-controls.js +5 -6
- package/form-controls/index.d.ts +10 -2
- package/form-controls/index.js +7 -7
- package/form-controls/presentation.js +12 -12
- package/formatting/index.d.ts +1 -1
- package/formatting/index.js +22 -21
- package/formatting/styles.scss +2 -47
- package/framework.js +226 -222
- package/history-controls.js +27 -1
- package/icon-toolbar.d.ts +62 -0
- package/icon-toolbar.js +1 -0
- package/masked-input/index.js +1 -1
- package/native-control.d.ts +1 -2
- package/native-control.js +1 -1
- package/native-controls.d.ts +54 -2
- package/native-styles.css +1 -1
- package/native.js +46 -43
- package/number-input/index.js +1 -1
- package/package.json +36 -1
- package/pagination.js +11 -11
- package/pdf-viewer/index.js +1 -1
- package/pickers.d.ts +5 -1
- package/preact-mount.js +1 -1
- package/preact.d.ts +8 -6
- package/preact.js +71 -64
- package/rating-choice.js +1 -1
- package/react-control.d.ts +2 -0
- package/react-control.js +2 -2
- package/react.d.ts +5 -6
- package/react.js +68 -66
- package/reorder-list.js +1 -1
- package/resource-picker/resource-picker-popup.js +1 -1
- package/resource-picker/resource-picker.js +4 -4
- package/rich-text/engine.d.ts +1 -0
- package/rich-text/format-html.d.ts +2 -0
- package/rich-text/index.d.ts +4 -0
- package/rich-text/index.js +1 -1
- package/rich-text/model.d.ts +2 -0
- package/rich-text/style.scss +165 -70
- package/rich-text/syntax.d.ts +5 -0
- package/rich-text/translations.d.ts +2 -0
- package/search-input/index.js +1 -1
- package/search-input/native.d.ts +21 -2
- package/select.d.ts +3 -1
- package/select.js +1 -1
- package/status-feedback/exit-snapshot.js +4 -4
- package/status-feedback/popover.js +4 -4
- package/styles/_alert.scss +18 -4
- package/styles/_compositions.scss +3 -3
- package/styles/_editor-slider.scss +0 -2
- package/styles/_field-configurator.scss +147 -0
- package/styles/_fields-grid.scss +37 -0
- package/styles/_palette.scss +0 -24
- package/styles/_primitives.scss +28 -19
- package/styles/configurator-actions.scss +141 -0
- package/styles/{legacy-pagination.css → pagination.css} +19 -2
- package/styles.css +1 -1
- package/styles.scss +2 -2
- package/surfaces.d.ts +36 -2
- package/surfaces.js +35 -132
- package/svelte.js +3 -3
- package/switch/index.js +15 -14
- package/time-grid.d.ts +0 -1
- package/time-grid.js +38 -37
- package/timeline-track/index.js +2 -2
- package/ui.css +1 -1
- package/vue.d.ts +26 -30
- package/vue.js +117 -121
- package/_chunks/chart-frame-Cmc7xU1i.js +0 -130
- package/_chunks/choice-chips-CHQTUdLs.js +0 -110
- package/_chunks/color-picker-CudqPYZo.js +0 -138
- package/_chunks/control-tooltip-uscKfAnV.js +0 -100
- package/_chunks/dialog.parts-CKGkC5zP.js +0 -134
- package/_chunks/editor-popup-WDdtVDNA.js +0 -81
- package/_chunks/history-controls-B3u3INEK.js +0 -27
- package/_chunks/mount-DQ1cpppK.js +0 -257
- package/_chunks/native-control-C_yok8_-.js +0 -605
- package/_chunks/request-trail-DSlFix6i.js +0 -618
- package/_chunks/rich-text-CH7gIqOS.js +0 -636
- package/avatar/index.view.d.ts +0 -25
- package/color-palette/native.view.d.ts +0 -15
- package/control-presentation.view.d.ts +0 -8
- package/dialog/dialog-action-footer.view.d.ts +0 -20
- package/dialog/dialog.dom.view.d.ts +0 -15
- package/form-controls/index.view.d.ts +0 -10
- package/formatting/control-tooltip.d.ts +0 -27
- package/native-controls.view.d.ts +0 -54
- package/search-input/native.view.d.ts +0 -21
- package/surfaces.view.d.ts +0 -63
- /package/styles/{legacy-rating.css → rating.css} +0 -0
package/core/editor-popup.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as mountEditorPopup } from "../_chunks/editor-popup-
|
|
1
|
+
export { t as mountEditorPopup } from "../_chunks/editor-popup-ByU7qiub.js";
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface PopoverOptions {
|
|
2
|
+
anchor: HTMLElement | SVGElement;
|
|
3
|
+
placement?: 'above';
|
|
4
|
+
content: HTMLElement;
|
|
5
|
+
/** Defaults to the document body. */
|
|
6
|
+
appendTo?: HTMLElement;
|
|
7
|
+
onClose?: () => void;
|
|
8
|
+
restoreFocus?: boolean;
|
|
9
|
+
closeOnOutside?: boolean;
|
|
10
|
+
closeOnEscape?: boolean;
|
|
11
|
+
display?: string;
|
|
12
|
+
}
|
|
13
|
+
/** One owner for native top-layer promotion, viewport positioning and disposal. */
|
|
14
|
+
export declare class PopoverController {
|
|
15
|
+
private active?;
|
|
16
|
+
get isOpen(): boolean;
|
|
17
|
+
open(options: PopoverOptions): {
|
|
18
|
+
close: (restoreFocus?: boolean) => void;
|
|
19
|
+
refresh: () => void;
|
|
20
|
+
};
|
|
21
|
+
refresh(): void;
|
|
22
|
+
close(restoreFocus?: boolean): void;
|
|
23
|
+
destroy(): void;
|
|
24
|
+
}
|
|
25
|
+
export declare function createTooltipElement(document: Document, className?: string): HTMLDivElement;
|
|
26
|
+
/** Imperative binding adapter over the same session used by useTooltip. */
|
|
27
|
+
export declare class TooltipController {
|
|
28
|
+
private release?;
|
|
29
|
+
bind(anchor: HTMLElement | SVGElement, text: string, options?: {
|
|
30
|
+
trigger?: 'hover' | 'click';
|
|
31
|
+
surface?: HTMLElement;
|
|
32
|
+
onEscape?: () => void;
|
|
33
|
+
}): () => void;
|
|
34
|
+
destroy(): void;
|
|
35
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type TooltipAnchor = HTMLElement | SVGElement;
|
|
2
|
+
/** One lifecycle for declarative and imperative tooltip adapters. */
|
|
3
|
+
export declare class TooltipSession {
|
|
4
|
+
private anchor?;
|
|
5
|
+
private surface?;
|
|
6
|
+
private timer?;
|
|
7
|
+
private mode?;
|
|
8
|
+
private cleanup?;
|
|
9
|
+
private mounted;
|
|
10
|
+
private pointerFocus;
|
|
11
|
+
private open;
|
|
12
|
+
private addedDescription;
|
|
13
|
+
onHide?: () => void;
|
|
14
|
+
onEscape?: () => void;
|
|
15
|
+
delay: number;
|
|
16
|
+
get isOpen(): boolean;
|
|
17
|
+
get isPending(): boolean;
|
|
18
|
+
setSurface(surface: HTMLElement | null): void;
|
|
19
|
+
show(anchor: TooltipAnchor): void;
|
|
20
|
+
private present;
|
|
21
|
+
hide(): void;
|
|
22
|
+
focus(anchor: TooltipAnchor): void;
|
|
23
|
+
blur(): void;
|
|
24
|
+
pointerDown(): void;
|
|
25
|
+
leave(anchor?: TooltipAnchor): void;
|
|
26
|
+
keyDown(event: KeyboardEvent): void;
|
|
27
|
+
destroy(): void;
|
|
28
|
+
private listen;
|
|
29
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Shared presentation for text hints and rich product/chart tooltip content. */
|
|
2
|
+
export declare const TOOLTIP_STYLES = "\n.rv-tooltip.rv-tooltip {\n box-sizing: border-box;\n position: fixed;\n z-index: 100000;\n margin: 0;\n inset: auto;\n transform: none;\n opacity: 1;\n visibility: visible;\n padding: 6px 10px;\n border: 0;\n border-radius: 6px;\n background: var(--rv-tooltip-bg, #191919);\n color: var(--rv-tooltip-fg, #fff);\n box-shadow: 0 4px 14px var(--rv-ui-shadow, rgb(0 0 0 / 18%));\n font: 12px/1.4 var(--rv-ui-font-family, Inter, ui-sans-serif, system-ui, sans-serif);\n font-weight: 400;\n text-align: start;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n max-width: min(360px, calc(100vw - 16px));\n max-height: calc(100dvh - 16px);\n overflow: auto;\n pointer-events: none;\n}\n.rv-tooltip[hidden], .rv-tooltip[data-visible=\"false\"] { display: none; }\n.rv-tooltip[data-overflow] { pointer-events: auto; }\n@media (forced-colors: active) {\n .rv-tooltip.rv-tooltip { color: CanvasText; background: Canvas; border: 1px solid CanvasText; }\n}\n";
|
|
3
|
+
/** Also installs into shadow roots/fullscreen roots used by standalone charts. */
|
|
4
|
+
export declare function ensureTooltipStyles(root: Document | ShadowRoot): void;
|
|
5
|
+
export declare function prepareTooltipSurface(element: HTMLElement): void;
|
|
6
|
+
/** Shared hint placement: centered above the trigger, with a bounded below fallback. */
|
|
7
|
+
export declare function calculateTooltipPosition(anchor: DOMRect, popup: DOMRect, viewport: {
|
|
8
|
+
width: number;
|
|
9
|
+
height: number;
|
|
10
|
+
}): import('./anchored-popover').AnchoredPopoverPosition | {
|
|
11
|
+
left: number;
|
|
12
|
+
top: number;
|
|
13
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { JSX } from '../_vendor/preact/src/index';
|
|
2
|
+
/** Wrapper-free shared hint for otherwise native text and label elements. */
|
|
3
|
+
export declare function TooltipText({ as, title, children, ...attributes }: Omit<JSX.HTMLAttributes<HTMLElement>, 'title'> & {
|
|
4
|
+
as?: 'span' | 'label' | 'div';
|
|
5
|
+
title?: string;
|
|
6
|
+
}): JSX.Element;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { h, ComponentChildren, TargetedEvent } from '../_vendor/preact/src/index';
|
|
2
|
+
type TooltipPresentation = {
|
|
3
|
+
className?: string;
|
|
4
|
+
placement?: 'above';
|
|
5
|
+
delay?: number;
|
|
6
|
+
content?: ComponentChildren;
|
|
7
|
+
};
|
|
8
|
+
/** Preact adapter; the session owns all tooltip behavior and DOM lifecycle. */
|
|
9
|
+
export declare function useControlTooltip(text: string, _floating?: boolean, presentation?: TooltipPresentation): {
|
|
10
|
+
readonly id: string;
|
|
11
|
+
readonly hide: () => void;
|
|
12
|
+
readonly triggerProps: {
|
|
13
|
+
readonly 'aria-describedby': string;
|
|
14
|
+
readonly onFocus: (event: TargetedEvent<HTMLElement>) => void;
|
|
15
|
+
readonly onBlur: () => void;
|
|
16
|
+
readonly onMouseEnter: (event: TargetedEvent<HTMLElement>) => void;
|
|
17
|
+
readonly onMouseLeave: (event?: TargetedEvent<HTMLElement>) => void;
|
|
18
|
+
readonly onPointerDown: (_event: TargetedEvent<HTMLElement>) => void;
|
|
19
|
+
readonly onPointerCancel: () => void;
|
|
20
|
+
readonly onKeyDown: (event: KeyboardEvent) => void;
|
|
21
|
+
};
|
|
22
|
+
readonly tooltip: h.JSX.Element;
|
|
23
|
+
};
|
|
24
|
+
/** Controlled surface adapter retained for existing consumers. */
|
|
25
|
+
export declare function ControlTooltip({ id, text, content, visible, anchor, className }: {
|
|
26
|
+
readonly id: string;
|
|
27
|
+
readonly text: string;
|
|
28
|
+
readonly content?: ComponentChildren;
|
|
29
|
+
readonly visible: boolean;
|
|
30
|
+
readonly anchor?: HTMLElement | null;
|
|
31
|
+
readonly className?: string;
|
|
32
|
+
readonly placement?: 'above';
|
|
33
|
+
}): h.JSX.Element;
|
|
34
|
+
export declare const useTooltip: typeof useControlTooltip;
|
|
35
|
+
export {};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export { ensureTooltipStyles, prepareTooltipSurface, TOOLTIP_STYLES } from './tooltip-surface';
|
|
2
|
+
export { ownsPopupTarget } from './popup-ownership';
|
|
1
3
|
export type TopLayerPopupMode = 'popover' | 'fallback';
|
|
2
4
|
export type TopLayerPopupElement = HTMLElement & {
|
|
3
5
|
showPopover?: () => void;
|
|
@@ -7,3 +9,5 @@ export type TopLayerPopupElement = HTMLElement & {
|
|
|
7
9
|
export declare function showTopLayerPopup(element: TopLayerPopupElement, visibleDisplay?: string): TopLayerPopupMode;
|
|
8
10
|
/** Hides an overlay opened by `showTopLayerPopup`; safe to call repeatedly. */
|
|
9
11
|
export declare function hideTopLayerPopup(element: TopLayerPopupElement, mode?: TopLayerPopupMode): void;
|
|
12
|
+
/** Includes portalled popup content linked by descendant aria-controls triggers. */
|
|
13
|
+
export declare function popupOwnsTarget(panel: HTMLElement, target: Node | null): boolean;
|
package/core/top-layer-popup.js
CHANGED
|
@@ -1,23 +1 @@
|
|
|
1
|
-
|
|
2
|
-
var e = /* @__PURE__ */ new WeakMap();
|
|
3
|
-
function t(t, n = "flex") {
|
|
4
|
-
if (e.has(t) || e.set(t, t.getAttribute("data-rv-ui-surface")), t.setAttribute("data-rv-ui-surface", ""), t.style.display = n, typeof t.showPopover == "function") {
|
|
5
|
-
t.setAttribute("popover", "manual");
|
|
6
|
-
try {
|
|
7
|
-
return t.showPopover(), "popover";
|
|
8
|
-
} catch {
|
|
9
|
-
t.removeAttribute("popover");
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
return t.style.display = n, "fallback";
|
|
13
|
-
}
|
|
14
|
-
function n(t, n) {
|
|
15
|
-
let r = e.get(t);
|
|
16
|
-
if (r !== void 0 && (r === null ? t.removeAttribute("data-rv-ui-surface") : t.setAttribute("data-rv-ui-surface", r), e.delete(t)), n === "popover" && typeof t.hidePopover == "function") try {
|
|
17
|
-
t.hidePopover(), t.style.removeProperty("display");
|
|
18
|
-
return;
|
|
19
|
-
} catch {}
|
|
20
|
-
t.style.display = "none";
|
|
21
|
-
}
|
|
22
|
-
//#endregion
|
|
23
|
-
export { n as hideTopLayerPopup, t as showTopLayerPopup };
|
|
1
|
+
export { a as TOOLTIP_STYLES, s as ensureTooltipStyles, t as hideTopLayerPopup, i as ownsPopupTarget, n as popupOwnsTarget, c as prepareTooltipSurface, r as showTopLayerPopup } from "../_chunks/top-layer-popup-CNSDdfJV.js";
|
package/date-time/attach.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { TemporalPickerOptions } from './types';
|
|
2
|
-
/** Adds the shared picker
|
|
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;
|
package/date-time/field.d.ts
CHANGED
|
@@ -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;
|
package/date-time/index.js
CHANGED
|
@@ -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-
|
|
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";
|
package/date-time/style.scss
CHANGED
|
@@ -25,6 +25,15 @@
|
|
|
25
25
|
width: 100%;
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
+
|
|
29
|
+
// Validation follows the picker's width without contributing to popup sizing.
|
|
30
|
+
.rv-temporal-picker > .rv-alert,
|
|
31
|
+
.rv-temporal-draft > .rv-alert {
|
|
32
|
+
inline-size: 0;
|
|
33
|
+
min-inline-size: 100%;
|
|
34
|
+
white-space: normal;
|
|
35
|
+
}
|
|
36
|
+
|
|
28
37
|
.rv-date-time-field {
|
|
29
38
|
display: inline-flex;
|
|
30
39
|
align-items: center;
|
|
@@ -66,12 +75,13 @@
|
|
|
66
75
|
display: flex;
|
|
67
76
|
align-items: center;
|
|
68
77
|
gap: 6px;
|
|
69
|
-
flex: 0 1
|
|
78
|
+
flex: 0 1 224px;
|
|
70
79
|
min-width: 0;
|
|
71
|
-
|
|
80
|
+
// Ten date characters plus the control's horizontal padding and borders.
|
|
81
|
+
> .rv-control { flex: 0 0 auto; min-width: 0; width: calc(10ch + 26px); }
|
|
72
82
|
> .rv-temporal-picker__time { flex: 0 1 100px; min-width: 86px; }
|
|
73
83
|
}
|
|
74
|
-
.rv-temporal-picker__endpoint:not(:has(.rv-temporal-picker__time)) { flex
|
|
84
|
+
.rv-temporal-picker__endpoint:not(:has(.rv-temporal-picker__time)) { flex: 0 0 auto; }
|
|
75
85
|
|
|
76
86
|
.rv-temporal-picker .rv-temporal-picker__endpoint > .rv-temporal-picker__time { flex: 0 1 100px; }
|
|
77
87
|
|
|
@@ -80,19 +90,25 @@
|
|
|
80
90
|
min-width: min(240px, calc(100vw - 16px));
|
|
81
91
|
width: 240px;
|
|
82
92
|
}
|
|
83
|
-
.rv-editor-popup.rv-editor-popup--datetime { width: min(540px, calc(100vw - 16px)); }
|
|
84
93
|
.rv-temporal-picker__body { display: flex; align-items: start; flex-wrap: wrap; gap: 16px; }
|
|
85
|
-
.rv-temporal-picker--datetime .rv-temporal-picker__body
|
|
94
|
+
.rv-temporal-picker--datetime .rv-temporal-picker__body { flex-direction: column; align-items: stretch; }
|
|
95
|
+
.rv-temporal-picker--datetime .rv-temporal-picker__body > .rv-time-selection { flex: 0 0 auto; }
|
|
86
96
|
.rv-temporal-picker--time .rv-temporal-picker__body > .rv-time-selection { flex: 1 1 0; }
|
|
87
97
|
.rv-temporal-picker--time .rv-temporal-picker__header { margin: 0; }
|
|
88
98
|
.rv-temporal-picker__times { flex-wrap: wrap; }
|
|
89
99
|
.rv-temporal-picker__times > .rv-time-selection { flex: 1 1 196px; }
|
|
90
100
|
.rv-time-selection {
|
|
101
|
+
max-width: 208px;
|
|
91
102
|
display: grid;
|
|
92
103
|
gap: 12px;
|
|
93
104
|
min-width: 0;
|
|
94
105
|
width: 100%;
|
|
95
106
|
font-variant-numeric: tabular-nums;
|
|
107
|
+
&__entry-row { display: flex; align-items: end; gap: 4px; min-width: 0; }
|
|
108
|
+
&__entry-row > .rv-time-selection__entry { flex: 1 1 0; }
|
|
109
|
+
&__clock { display: grid; gap: 12px; min-width: 0; }
|
|
110
|
+
&__toggle { flex: 0 0 auto; }
|
|
111
|
+
&__toggle[aria-expanded='true'] .rv-svg-icon { transform: rotate(180deg); }
|
|
96
112
|
&__entry { display: grid; gap: 6px; min-width: 0; font-size: 12px; font-weight: 500; }
|
|
97
113
|
&__entry > .rv-control { width: 100%; min-width: 0; height: var(--rv-control-height, 32px); font: inherit; font-size: var(--rv-control-font-size, 0.875rem); font-weight: 400; }
|
|
98
114
|
&__entry input[type='time']::-webkit-calendar-picker-indicator { display: none; }
|
|
@@ -103,13 +119,54 @@
|
|
|
103
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; }
|
|
104
120
|
&__list .rv-editor-list__item { min-height: 32px; height: 32px; padding: 4px; text-align: center; font-size: 13px; }
|
|
105
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; }
|
|
106
123
|
&__period .rv-editor-list { display: flex; height: auto; overflow: visible; }
|
|
107
124
|
&__period .rv-editor-list__item { flex: 1 1 0; }
|
|
108
125
|
&__empty { margin: 0; color: var(--rv-ui-text-muted); font-size: 12px; }
|
|
109
126
|
}
|
|
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; }
|
|
110
130
|
.rv-temporal-draft--time .rv-editor-actions { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--rv-ui-border); }
|
|
111
131
|
.rv-temporal-draft--time .rv-editor-actions__clear { margin-inline-end: auto; }
|
|
132
|
+
|
|
133
|
+
// One calendar keeps its clock visible alongside it; multi-month calendars keep
|
|
134
|
+
// the optional clock below the calendar panels.
|
|
135
|
+
.rv-editor-popup:has(.rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month) .rv-time-selection) {
|
|
136
|
+
width: min(480px, calc(100vw - 16px));
|
|
137
|
+
}
|
|
138
|
+
.rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month) .rv-temporal-picker__body {
|
|
139
|
+
flex-direction: row;
|
|
140
|
+
flex-wrap: nowrap;
|
|
141
|
+
gap: 8px;
|
|
142
|
+
}
|
|
143
|
+
.rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month) .rv-temporal-picker__body > .rv-time-selection {
|
|
144
|
+
flex: 0 1 208px;
|
|
145
|
+
border-inline-start: 1px solid var(--rv-ui-border);
|
|
146
|
+
padding-inline-start: 8px;
|
|
147
|
+
}
|
|
112
148
|
@media (max-width: 540px) {
|
|
113
|
-
.rv-temporal-picker--datetime .rv-temporal-picker__body { flex-direction: column;
|
|
114
|
-
.rv-temporal-picker--datetime .rv-temporal-picker__body > .rv-time-selection {
|
|
149
|
+
.rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month) .rv-temporal-picker__body { flex-direction: column; }
|
|
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
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.rv-editor-popup:has(.rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month) .revo-calendar--week-numbers):has(.rv-time-selection) {
|
|
160
|
+
width: min(512px, calc(100vw - 16px));
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// Paired clocks need a wider surface than a single time-only field.
|
|
164
|
+
.rv-editor-popup:has(.rv-temporal-picker--time > .rv-temporal-picker__times) {
|
|
165
|
+
width: min(458px, calc(100vw - 16px));
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// Grid adapters and standalone fields share the same compact single-clock size.
|
|
169
|
+
.rv-editor-popup:has(.rv-temporal-picker--time):not(:has(.rv-temporal-picker__times)) {
|
|
170
|
+
min-width: min(234px, calc(100vw - 16px));
|
|
171
|
+
width: 234px;
|
|
115
172
|
}
|
|
@@ -10,6 +10,8 @@ export interface TimeSelectionProps {
|
|
|
10
10
|
min?: string;
|
|
11
11
|
max?: string;
|
|
12
12
|
step?: number;
|
|
13
|
+
/** Calendar compositions keep clock columns behind an explicit toggle. */
|
|
14
|
+
collapsible?: boolean;
|
|
13
15
|
}
|
|
14
16
|
/** Shared typed entry and bounded clock columns for time-only and date-time pickers. */
|
|
15
|
-
export declare function TimeSelection({ value, label, text, onChange, format, precision, locale, min, max, step }: TimeSelectionProps): import("../_vendor/preact/src/index").JSX.Element;
|
|
17
|
+
export declare function TimeSelection({ value, label, text, onChange, format, precision, locale, min, max, step, collapsible }: TimeSelectionProps): import("../_vendor/preact/src/index").JSX.Element;
|
package/date-time/types.d.ts
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
2
|
-
export
|
|
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
|
+
};
|
package/dialog/dialog.dom.d.ts
CHANGED
|
@@ -1,2 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
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[];
|
package/dialog/dialog.dom.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { t as e } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
|
|
2
|
-
import { t } from "../
|
|
3
|
-
import {
|
|
4
|
-
import { a as r, i, n as a, r as o, s } from "../_chunks/dialog.parts-
|
|
5
|
-
//#region src/dialog/dialog.dom.
|
|
6
|
-
function c(
|
|
2
|
+
import { createPreactElement as t } from "../preact-mount.js";
|
|
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
|
+
function c(n, c, l) {
|
|
7
7
|
let u = f(), d, p, m, h, g;
|
|
8
8
|
return {
|
|
9
|
-
root: n
|
|
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(
|
|
61
|
-
return n
|
|
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
|
|
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,
|
package/dialog/dialog.parts.d.ts
CHANGED
|
@@ -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):
|
|
62
|
+
export declare function DialogActionFooter(props: DialogActionFooterProps): h.JSX.Element;
|
package/dialog/dialog.parts.js
CHANGED
|
@@ -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-
|
|
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";
|
|
@@ -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,21 @@
|
|
|
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)); }
|
|
136
|
+
.rv-distribution-chart__legend i { display: block; width: 8px; height: 8px; border-radius: 2px; background: var(--rv-distribution-accent, var(--rv-ui-accent)); }
|
|
184
137
|
.rv-distribution-chart__tooltip {
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
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
|
+
}
|
|
189
144
|
&--line i { width: 3px; height: 22px; }
|
|
190
|
-
&--dashed i {
|
|
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
|
+
}
|
|
191
150
|
}
|
|
192
|
-
|
|
193
151
|
// Numeric/category progression stays left-to-right, including on RTL pages.
|
|
194
152
|
// Keep SVG points, flex bars, labels and arrow-key order on the same axis.
|
|
195
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-
|
|
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-
|
|
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
|
-
/**
|
|
7
|
+
/** Chart-type composition; each presentation has its own standalone owner. */
|
|
8
8
|
export declare function DistributionChart({ type, ...props }: DistributionChartProps): h.JSX.Element;
|
|
@@ -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-
|
|
2
|
+
import { i as t, n, r, t as i } from "../_chunks/chart-frame-hcOlnQ1K.js";
|
|
3
3
|
//#region src/distribution-chart/line-chart.tsx
|
|
4
4
|
function a(a) {
|
|
5
5
|
let { points: o } = r(a.data);
|
package/dropdown/content.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { f as DropdownContent, p as DropdownPopupContent } from "../_chunks/native-control-
|
|
1
|
+
export { f as DropdownContent, p as DropdownPopupContent } from "../_chunks/native-control-pFMuHf3G.js";
|
package/dropdown/control.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as createDropdownControl, n as renderDropdownControl } from "../_chunks/control-
|
|
1
|
+
export { t as createDropdownControl, n as renderDropdownControl } from "../_chunks/control-mlH7l0Uq.js";
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
revo-grid,
|
|
18
18
|
.rv-formula-bar,
|
|
19
|
+
.rv-native-controls,
|
|
19
20
|
:root {
|
|
20
21
|
--rv-dropdown-container-tag-background: #{palette.$gray-eeeeee};
|
|
21
22
|
--rv-dropdown-placeholder-color: var(--rv-ui-text-muted);
|
|
@@ -150,6 +151,10 @@ revo-grid,
|
|
|
150
151
|
padding-inline-end: 0;
|
|
151
152
|
font-size: 14px;
|
|
152
153
|
|
|
154
|
+
// Custom tag palettes also own the remove glyph's foreground.
|
|
155
|
+
> button.rv-remove-button {
|
|
156
|
+
color: inherit;
|
|
157
|
+
}
|
|
153
158
|
}
|
|
154
159
|
|
|
155
160
|
.placeholder {
|
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-
|
|
2
|
-
import { t as i } from "../_chunks/popup-
|
|
1
|
+
import { d as e, l as t, p as n, u as r } from "../_chunks/native-control-pFMuHf3G.js";
|
|
2
|
+
import { t as i } from "../_chunks/popup-C35Isk7p.js";
|
|
3
3
|
export { t as Dropdown, i as DropdownPopup, n as DropdownPopupContent, r as defineDropdown, e as destroyDropdown };
|
|
@@ -21,9 +21,14 @@ export interface LookupFieldOptions extends EditorCommitOptions {
|
|
|
21
21
|
renderValue?: import('./dropdown.types').DropdownProps<LookupId>['renderValue'];
|
|
22
22
|
}
|
|
23
23
|
export declare function LookupField({ initial, options, context, apply, cancel, }: {
|
|
24
|
+
/** Initial selected record ID, multiple IDs, or null for an empty selection. */
|
|
24
25
|
initial: LookupId | LookupId[] | null;
|
|
26
|
+
/** Remote data source, selection mode, validation, text and commit behavior. */
|
|
25
27
|
options: LookupFieldOptions;
|
|
28
|
+
/** Application context forwarded to the remote data source as dataContext. */
|
|
26
29
|
context: unknown;
|
|
30
|
+
/** Commits the selected record IDs. Update application state and close the editor. */
|
|
27
31
|
apply: (value: LookupId | LookupId[] | null) => void;
|
|
32
|
+
/** Closes the editor without applying the current draft. */
|
|
28
33
|
cancel: () => void;
|
|
29
34
|
}): import("../_vendor/preact/src/index").JSX.Element;
|
package/dropdown/lookup-field.js
CHANGED
|
@@ -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-
|
|
3
|
+
import { l as r } from "../_chunks/native-control-pFMuHf3G.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,
|