@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.
- package/MIGRATION.md +36 -0
- package/OWNERSHIP.md +32 -32
- package/README.md +136 -78
- package/_button.scss +6 -2
- package/_chunks/arrow-up-Cw8hW9vp.js +4 -0
- package/_chunks/calculator-CDWOuAcp.js +4 -0
- package/_chunks/{calendar-xpZ0v3xf.js → calendar-CgXQgkga.js} +19 -19
- package/_chunks/chart-frame-hcOlnQ1K.js +145 -0
- package/_chunks/{chevron-right-sxHQMSkq.js → check-BwI7iCAm.js} +2 -2
- package/_chunks/{chevron-left-D0nc4Z5S.js → chevron-right-CM3ljziP.js} +2 -2
- package/_chunks/choice-chips-SkllS5Kl.js +126 -0
- package/_chunks/{color-palette-D8vyPfld.js → color-palette-DMJUChWC.js} +20 -22
- package/_chunks/color-picker-BpCTuIdm.js +143 -0
- package/_chunks/{component-C_T2VN5u.js → component-CfeHXgIw.js} +279 -264
- package/_chunks/{component-metadata-BMOOmqx5.js → component-metadata-BKd7U8OW.js} +0 -8
- package/_chunks/configurator-actions-DnStE6Yl.js +155 -0
- package/_chunks/configurator-field-icon-CmcM_sPs.js +53 -0
- package/_chunks/{control-AHKXD5Eu.js → control-Dcrjsunl.js} +42 -17
- package/_chunks/controls-B_6NJarZ.js +650 -0
- package/_chunks/{date-control-DrVFX13g.js → date-control-C4h4m75W.js} +1 -1
- package/_chunks/{date-time-qIhp5vaX.js → date-time-CTOSbzb0.js} +317 -278
- package/_chunks/dialog.parts-3w5FR06n.js +131 -0
- package/_chunks/{duration-CL68Em0o.js → duration-Bf2OS1V5.js} +5 -5
- package/_chunks/editor-popup-ByU7qiub.js +82 -0
- package/_chunks/field-configurator-D5dZRhDe.js +288 -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-BRdcG60g.js +267 -0
- package/_chunks/{native.view-ByyZ1CT5.js → native-Blr3byjO.js} +1 -1
- package/_chunks/native-control-B_fVA5bL.js +649 -0
- package/_chunks/{number-input-BKwA5FnM.js → number-input-CmM6_2vR.js} +7 -7
- package/_chunks/{picker-h1P5RUgp.js → picker-DTqET-2W.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-C-6wcb9U.js} +1 -1
- package/_chunks/{reorder-list-CSlqAGHw.js → reorder-list-DIl1gkV6.js} +1 -1
- package/_chunks/request-trail-DrhdpWiH.js +762 -0
- package/_chunks/rich-text-BnilBbhU.js +842 -0
- package/_chunks/rotate-left-BF6G883o.js +4 -0
- package/_chunks/selection-list-tooltips-C5oMJe26.js +42 -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/_dialog.scss +57 -22
- package/_form.scss +71 -21
- package/_legend.scss +25 -7
- package/_shared/data-query/index.d.ts +2 -2
- package/_shared/data-query/load-options.d.ts +2 -2
- package/_variables.scss +34 -32
- package/_view-switcher.scss +6 -0
- package/activity-message.d.ts +1 -1
- package/ai/_chat.scss +35 -3
- package/ai/_style.scss +76 -16
- package/ai/chat.d.ts +3 -1
- package/ai/components.d.ts +16 -3
- package/ai/index.d.ts +1 -0
- package/ai/index.js +3 -3
- package/ai/mount.d.ts +30 -6
- package/ai/request-trail.d.ts +9 -3
- 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/angular/angular.d.ts +1 -1
- package/angular/angular.js +13 -7
- package/assignee/assignee.scss +28 -6
- package/assignee/index.js +2 -2
- package/avatar/avatar.style.scss +23 -6
- package/avatar/index.d.ts +25 -2
- package/avatar/index.js +33 -32
- package/badge.d.ts +1 -1
- package/badge.view.d.ts +8 -0
- package/brush-range/_brush-range.scss +55 -49
- package/brush-range/component.d.ts +1 -3
- package/brush-range/component.js +27 -27
- package/buttons/delete-button.style.scss +6 -2
- 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 +21 -25
- package/calendar/calendar.js +1 -1
- package/calendar/header.js +1 -2
- package/calendar/index.js +2 -2
- package/cell-input.scss +3 -7
- package/cell-visuals/badge.style.scss +6 -3
- package/cell-visuals/bar-chart.style.scss +2 -1
- package/cell-visuals/column-type.style.css +12 -0
- package/cell-visuals/progress-line-value.renderer.style.scss +4 -2
- package/cell-visuals/progress-line.style.scss +1 -4
- package/cell-visuals/sparkline.style.scss +2 -1
- package/cell-visuals/timeline.style.css +4 -2
- package/checkbox/checkbox.scss +6 -24
- 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 +88 -25
- package/color-palette/color-picker.js +2 -2
- package/color-palette/color-picker.style.scss +23 -10
- 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 +63 -0
- package/configurator-drop-zone.d.ts +39 -0
- package/configurator-drop-zone.js +66 -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 +12 -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/selection-list-tooltips.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/date-control.d.ts +1 -1
- package/date-time/field.d.ts +3 -2
- package/date-time/index.js +1 -1
- package/date-time/style.scss +239 -36
- 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 +113 -77
- package/distribution-chart/area-chart.js +1 -1
- package/distribution-chart/bar-chart.js +1 -1
- package/distribution-chart/chart-frame.d.ts +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/dropdown.types.d.ts +1 -1
- package/dropdown/editor-dropdown.style.scss +19 -9
- 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/editor-layout/index.d.ts +4 -4
- package/editor-layout/index.js +39 -34
- package/editor-layout/style.scss +82 -18
- package/field-configurator.d.ts +39 -1
- package/field-configurator.js +4 -170
- package/field-expansion.d.ts +9 -0
- package/filter/filters/slider/_single-slider.scss +57 -38
- package/filter/filters/slider/_slider.scss +41 -33
- 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.d.ts +1 -1
- package/form-controls/presentation.js +12 -12
- package/formatting/index.d.ts +1 -1
- package/formatting/index.js +22 -21
- package/formatting/styles.scss +14 -57
- package/framework.js +227 -224
- package/history-controls.js +27 -1
- package/icon-toolbar.d.ts +62 -0
- package/icon-toolbar.js +1 -0
- package/icons/icon.d.ts +1 -1
- package/legend.d.ts +1 -1
- 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-styles.scss +6 -2
- package/native.d.ts +3 -3
- package/native.js +46 -43
- package/number-input/index.d.ts +1 -1
- package/number-input/index.js +1 -1
- package/package.json +71 -2
- package/pagination.js +11 -11
- package/pdf-viewer/header.d.ts +1 -1
- package/pdf-viewer/index.d.ts +2 -2
- package/pdf-viewer/index.js +1 -1
- package/pdf-viewer/search-bar.d.ts +1 -1
- package/pdf-viewer/status.d.ts +1 -1
- package/pdf-viewer/style.scss +203 -42
- package/pickers.d.ts +5 -1
- package/preact-mount.js +1 -1
- package/preact.d.ts +13 -10
- package/preact.js +109 -64
- package/progress/_bar.scss +9 -3
- package/progress/_circular.scss +2 -1
- package/rating-choice.js +1 -1
- package/react-adapter.d.ts +4 -2
- package/react-control.d.ts +2 -0
- package/react-control.js +2 -2
- package/react.d.ts +7 -8
- package/react.js +67 -66
- package/reorder-list.d.ts +1 -1
- package/reorder-list.js +1 -1
- package/reorder-list.scss +59 -17
- package/resource-picker/resource-picker-popup.js +1 -1
- package/resource-picker/resource-picker.js +74 -72
- package/resource-picker/resource-picker.scss +62 -34
- 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 +293 -44
- package/rich-text/syntax.d.ts +5 -0
- package/rich-text/toolbar.d.ts +1 -1
- 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/selection-list.d.ts +1 -0
- package/selection-list.js +3 -1
- package/status-feedback/exit-snapshot.js +4 -4
- package/status-feedback/popover.js +4 -4
- package/status-feedback/status-feedback.scss +124 -35
- package/styles/_activity-message.scss +24 -7
- package/styles/_alert.scss +78 -17
- package/styles/_cell-editor-frame.scss +11 -0
- package/styles/_compositions.scss +400 -80
- package/styles/_control.scss +30 -8
- package/styles/_disclosure.scss +15 -5
- package/styles/_editor-counter.scss +16 -6
- package/styles/_editor-slider.scss +8 -4
- package/styles/_field-configurator.scss +321 -23
- package/styles/_fields-grid.scss +49 -0
- package/styles/_filter-controls.scss +10 -2
- package/styles/_icon-action.scss +48 -15
- package/styles/_loading.scss +12 -3
- package/styles/_motion.scss +32 -9
- package/styles/_palette.scss +0 -24
- package/styles/_primitives.scss +369 -110
- package/styles/_theme.scss +130 -86
- package/styles/_thresholds.scss +28 -25
- package/styles/_time-grid.scss +8 -3
- package/styles/_tokens.scss +6 -1
- package/styles/configurator-actions.scss +241 -0
- package/styles/pagination.css +213 -0
- package/styles/{legacy-rating.css → rating.css} +8 -3
- package/styles.css +1 -1
- package/styles.scss +3 -5
- package/surfaces.d.ts +38 -2
- package/surfaces.js +37 -134
- package/svelte/UiComponent.svelte +44 -11
- package/svelte.d.ts +1 -1
- 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/_style.scss +96 -24
- package/timeline-track/index.js +2 -2
- package/ui.css +1 -1
- package/view-switcher.d.ts +23 -0
- package/vue.d.ts +29 -32
- package/vue.js +116 -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/controls-DsNi8V8I.js +0 -630
- 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/styles/legacy-pagination.css +0 -112
- package/surfaces.view.d.ts +0 -63
|
@@ -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;
|
|
@@ -4,7 +4,7 @@ export interface DateInputOptions extends DateEntryOptions {
|
|
|
4
4
|
/** Date-only multiple selection uses a semicolon-separated list by default. */
|
|
5
5
|
multipleSeparator?: string;
|
|
6
6
|
}
|
|
7
|
-
export declare function DateControl({ value, label, options, multiple, invalid, errorId, disabled, readOnly, minDate, maxDate, onChange, onFocus }: {
|
|
7
|
+
export declare function DateControl({ value, label, options, multiple, invalid, errorId, disabled, readOnly, minDate, maxDate, onChange, onFocus, }: {
|
|
8
8
|
value: string | string[];
|
|
9
9
|
label: string;
|
|
10
10
|
options?: DateInputOptions;
|
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-CTOSbzb0.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;
|
|
@@ -41,8 +50,14 @@
|
|
|
41
50
|
}
|
|
42
51
|
}
|
|
43
52
|
|
|
44
|
-
.rv-temporal-picker__dates {
|
|
45
|
-
|
|
53
|
+
.rv-temporal-picker__dates {
|
|
54
|
+
margin-block-end: 8px;
|
|
55
|
+
}
|
|
56
|
+
.rv-temporal-picker__dates > input {
|
|
57
|
+
min-width: 0;
|
|
58
|
+
width: 100%;
|
|
59
|
+
flex: 1 1 0;
|
|
60
|
+
}
|
|
46
61
|
|
|
47
62
|
.rv-temporal-picker__header {
|
|
48
63
|
display: flex;
|
|
@@ -50,9 +65,17 @@
|
|
|
50
65
|
align-items: end;
|
|
51
66
|
gap: 8px;
|
|
52
67
|
margin-block-end: 8px;
|
|
53
|
-
&:empty {
|
|
54
|
-
|
|
55
|
-
|
|
68
|
+
&:empty {
|
|
69
|
+
display: none;
|
|
70
|
+
}
|
|
71
|
+
> .rv-temporal-picker__dates {
|
|
72
|
+
flex: 1 1 112px;
|
|
73
|
+
margin-block-end: 0;
|
|
74
|
+
}
|
|
75
|
+
> .rv-temporal-picker__time--single {
|
|
76
|
+
flex: 0 1 132px;
|
|
77
|
+
min-width: 110px;
|
|
78
|
+
}
|
|
56
79
|
}
|
|
57
80
|
|
|
58
81
|
.rv-temporal-picker__header .rv-control,
|
|
@@ -61,55 +84,235 @@
|
|
|
61
84
|
min-height: var(--rv-control-height, 32px);
|
|
62
85
|
padding: var(--rv-control-padding, 6px 12px);
|
|
63
86
|
}
|
|
64
|
-
.rv-temporal-picker__dates {
|
|
87
|
+
.rv-temporal-picker__dates {
|
|
88
|
+
flex-wrap: wrap;
|
|
89
|
+
}
|
|
65
90
|
.rv-temporal-picker__endpoint {
|
|
66
91
|
display: flex;
|
|
67
92
|
align-items: center;
|
|
68
93
|
gap: 6px;
|
|
69
|
-
flex: 0 1
|
|
94
|
+
flex: 0 1 224px;
|
|
70
95
|
min-width: 0;
|
|
71
|
-
|
|
72
|
-
> .rv-
|
|
96
|
+
// Ten date characters plus the control's horizontal padding and borders.
|
|
97
|
+
> .rv-control {
|
|
98
|
+
flex: 0 0 auto;
|
|
99
|
+
min-width: 0;
|
|
100
|
+
width: calc(10ch + 26px);
|
|
101
|
+
}
|
|
102
|
+
> .rv-temporal-picker__time {
|
|
103
|
+
flex: 0 1 100px;
|
|
104
|
+
min-width: 86px;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
.rv-temporal-picker__endpoint:not(:has(.rv-temporal-picker__time)) {
|
|
108
|
+
flex: 0 0 auto;
|
|
73
109
|
}
|
|
74
|
-
.rv-temporal-picker__endpoint:not(:has(.rv-temporal-picker__time)) { flex-basis: 110px; }
|
|
75
110
|
|
|
76
|
-
.rv-temporal-picker .rv-temporal-picker__endpoint > .rv-temporal-picker__time {
|
|
111
|
+
.rv-temporal-picker .rv-temporal-picker__endpoint > .rv-temporal-picker__time {
|
|
112
|
+
flex: 0 1 100px;
|
|
113
|
+
}
|
|
77
114
|
|
|
78
115
|
// Time-only surfaces follow their content rather than the calendar's minimum width.
|
|
79
116
|
.rv-editor-popup.rv-editor-popup--time {
|
|
80
117
|
min-width: min(240px, calc(100vw - 16px));
|
|
81
118
|
width: 240px;
|
|
82
119
|
}
|
|
83
|
-
.rv-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
.rv-temporal-
|
|
120
|
+
.rv-temporal-picker__body {
|
|
121
|
+
display: flex;
|
|
122
|
+
align-items: start;
|
|
123
|
+
flex-wrap: wrap;
|
|
124
|
+
gap: 16px;
|
|
125
|
+
}
|
|
126
|
+
.rv-temporal-picker--datetime .rv-temporal-picker__body {
|
|
127
|
+
flex-direction: column;
|
|
128
|
+
align-items: stretch;
|
|
129
|
+
}
|
|
130
|
+
.rv-temporal-picker--datetime .rv-temporal-picker__body > .rv-time-selection {
|
|
131
|
+
flex: 0 0 auto;
|
|
132
|
+
}
|
|
133
|
+
.rv-temporal-picker--time .rv-temporal-picker__body > .rv-time-selection {
|
|
134
|
+
flex: 1 1 0;
|
|
135
|
+
}
|
|
136
|
+
.rv-temporal-picker--time .rv-temporal-picker__header {
|
|
137
|
+
margin: 0;
|
|
138
|
+
}
|
|
139
|
+
.rv-temporal-picker__times {
|
|
140
|
+
flex-wrap: wrap;
|
|
141
|
+
}
|
|
142
|
+
.rv-temporal-picker__times > .rv-time-selection {
|
|
143
|
+
flex: 1 1 196px;
|
|
144
|
+
}
|
|
90
145
|
.rv-time-selection {
|
|
146
|
+
max-width: 208px;
|
|
91
147
|
display: grid;
|
|
92
148
|
gap: 12px;
|
|
93
149
|
min-width: 0;
|
|
94
150
|
width: 100%;
|
|
95
151
|
font-variant-numeric: tabular-nums;
|
|
96
|
-
&__entry {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
&
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
&
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
|
|
152
|
+
&__entry-row {
|
|
153
|
+
display: flex;
|
|
154
|
+
align-items: end;
|
|
155
|
+
gap: 4px;
|
|
156
|
+
min-width: 0;
|
|
157
|
+
}
|
|
158
|
+
&__entry-row > .rv-time-selection__entry {
|
|
159
|
+
flex: 1 1 0;
|
|
160
|
+
}
|
|
161
|
+
&__clock {
|
|
162
|
+
display: grid;
|
|
163
|
+
gap: 12px;
|
|
164
|
+
min-width: 0;
|
|
165
|
+
}
|
|
166
|
+
&__toggle {
|
|
167
|
+
flex: 0 0 auto;
|
|
168
|
+
}
|
|
169
|
+
&__toggle[aria-expanded='true'] .rv-svg-icon {
|
|
170
|
+
transform: rotate(180deg);
|
|
171
|
+
}
|
|
172
|
+
&__entry {
|
|
173
|
+
display: grid;
|
|
174
|
+
gap: 6px;
|
|
175
|
+
min-width: 0;
|
|
176
|
+
font-size: 12px;
|
|
177
|
+
font-weight: 500;
|
|
178
|
+
}
|
|
179
|
+
&__entry > .rv-control {
|
|
180
|
+
width: 100%;
|
|
181
|
+
min-width: 0;
|
|
182
|
+
height: var(--rv-control-height, 32px);
|
|
183
|
+
font: inherit;
|
|
184
|
+
font-size: var(--rv-control-font-size, 0.875rem);
|
|
185
|
+
font-weight: 400;
|
|
186
|
+
}
|
|
187
|
+
&__entry input[type='time']::-webkit-calendar-picker-indicator {
|
|
188
|
+
display: none;
|
|
189
|
+
}
|
|
190
|
+
&__columns {
|
|
191
|
+
display: grid;
|
|
192
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
193
|
+
gap: 8px;
|
|
194
|
+
}
|
|
195
|
+
&__columns--seconds {
|
|
196
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
197
|
+
}
|
|
198
|
+
&__column {
|
|
199
|
+
display: grid;
|
|
200
|
+
gap: 6px;
|
|
201
|
+
min-width: 0;
|
|
202
|
+
}
|
|
203
|
+
&__label {
|
|
204
|
+
color: var(--rv-ui-text-muted);
|
|
205
|
+
font-size: 11px;
|
|
206
|
+
text-align: center;
|
|
207
|
+
}
|
|
208
|
+
&__list.rv-editor-list {
|
|
209
|
+
position: relative;
|
|
210
|
+
height: 174px;
|
|
211
|
+
overflow-y: auto;
|
|
212
|
+
overscroll-behavior: contain;
|
|
213
|
+
padding: 3px;
|
|
214
|
+
border: 1px solid var(--rv-ui-border);
|
|
215
|
+
border-radius: 6px;
|
|
216
|
+
scrollbar-width: thin;
|
|
217
|
+
}
|
|
218
|
+
&__list .rv-editor-list__item {
|
|
219
|
+
min-height: 32px;
|
|
220
|
+
height: 32px;
|
|
221
|
+
padding: 4px;
|
|
222
|
+
text-align: center;
|
|
223
|
+
font-size: 13px;
|
|
224
|
+
}
|
|
225
|
+
&__list .rv-editor-list__item:disabled {
|
|
226
|
+
opacity: 0.35;
|
|
227
|
+
cursor: default;
|
|
228
|
+
}
|
|
229
|
+
&__period {
|
|
230
|
+
border-block-start: 1px solid var(--rv-ui-border);
|
|
231
|
+
padding-block-start: 6px;
|
|
232
|
+
}
|
|
233
|
+
&__period .rv-editor-list {
|
|
234
|
+
display: flex;
|
|
235
|
+
height: auto;
|
|
236
|
+
overflow: visible;
|
|
237
|
+
}
|
|
238
|
+
&__period .rv-editor-list__item {
|
|
239
|
+
flex: 1 1 0;
|
|
240
|
+
}
|
|
241
|
+
&__empty {
|
|
242
|
+
margin: 0;
|
|
243
|
+
color: var(--rv-ui-text-muted);
|
|
244
|
+
font-size: 12px;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
// Keep validation and actions in scroll order when a calendar and clock are tall.
|
|
248
|
+
.rv-editor-popup--datetime .rv-temporal-draft .rv-editor-actions,
|
|
249
|
+
.rv-editor-popup
|
|
250
|
+
.rv-temporal-draft:has(.rv-temporal-picker--multi-month)
|
|
251
|
+
.rv-editor-actions {
|
|
252
|
+
position: static;
|
|
253
|
+
}
|
|
254
|
+
.rv-temporal-draft--time .rv-editor-actions {
|
|
255
|
+
margin-top: 10px;
|
|
256
|
+
padding-top: 10px;
|
|
257
|
+
border-top: 1px solid var(--rv-ui-border);
|
|
258
|
+
}
|
|
259
|
+
.rv-temporal-draft--time .rv-editor-actions__clear {
|
|
260
|
+
margin-inline-end: auto;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
// One calendar keeps its clock visible alongside it; multi-month calendars keep
|
|
264
|
+
// the optional clock below the calendar panels.
|
|
265
|
+
.rv-editor-popup:has(
|
|
266
|
+
.rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month)
|
|
267
|
+
.rv-time-selection
|
|
268
|
+
) {
|
|
269
|
+
width: min(480px, calc(100vw - 16px));
|
|
270
|
+
}
|
|
271
|
+
.rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month)
|
|
272
|
+
.rv-temporal-picker__body {
|
|
273
|
+
flex-direction: row;
|
|
274
|
+
flex-wrap: nowrap;
|
|
275
|
+
gap: 8px;
|
|
276
|
+
}
|
|
277
|
+
.rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month)
|
|
278
|
+
.rv-temporal-picker__body
|
|
279
|
+
> .rv-time-selection {
|
|
280
|
+
flex: 0 1 208px;
|
|
281
|
+
border-inline-start: 1px solid var(--rv-ui-border);
|
|
282
|
+
padding-inline-start: 8px;
|
|
283
|
+
}
|
|
112
284
|
@media (max-width: 540px) {
|
|
113
|
-
.rv-temporal-picker--datetime
|
|
114
|
-
|
|
285
|
+
.rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month)
|
|
286
|
+
.rv-temporal-picker__body {
|
|
287
|
+
flex-direction: column;
|
|
288
|
+
}
|
|
289
|
+
.rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month)
|
|
290
|
+
.rv-temporal-picker__body
|
|
291
|
+
> .rv-time-selection {
|
|
292
|
+
flex-basis: auto;
|
|
293
|
+
border-inline-start: 0;
|
|
294
|
+
padding-inline-start: 0;
|
|
295
|
+
border-block-start: 1px solid var(--rv-ui-border);
|
|
296
|
+
padding-block-start: 8px;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
.rv-editor-popup:has(
|
|
301
|
+
.rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month)
|
|
302
|
+
.revo-calendar--week-numbers
|
|
303
|
+
):has(.rv-time-selection) {
|
|
304
|
+
width: min(512px, calc(100vw - 16px));
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
// Paired clocks need a wider surface than a single time-only field.
|
|
308
|
+
.rv-editor-popup:has(.rv-temporal-picker--time > .rv-temporal-picker__times) {
|
|
309
|
+
width: min(458px, calc(100vw - 16px));
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
// Grid adapters and standalone fields share the same compact single-clock size.
|
|
313
|
+
.rv-editor-popup:has(.rv-temporal-picker--time):not(
|
|
314
|
+
:has(.rv-temporal-picker__times)
|
|
315
|
+
) {
|
|
316
|
+
min-width: min(234px, calc(100vw - 16px));
|
|
317
|
+
width: 234px;
|
|
115
318
|
}
|
|
@@ -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-B_fVA5bL.js";
|
|
4
|
+
import { a as r, i, n as a, r as o, s } from "../_chunks/dialog.parts-3w5FR06n.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-3w5FR06n.js";
|