@revolist/ui 4.0.2-rc → 4.0.2
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/LICENSE +21 -0
- package/MIGRATION.md +36 -0
- package/OWNERSHIP.md +32 -32
- package/README.md +405 -265
- package/_button.scss +6 -2
- package/_chunks/arrow-up-Cw8hW9vp.js +4 -0
- package/_chunks/calculator-CDWOuAcp.js +4 -0
- package/_chunks/{calendar-CpaUK7w1.js → calendar-CgXQgkga.js} +28 -18
- 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/clock-BOhPNlW3.js +4 -0
- package/_chunks/{color-palette-BBMFmUNA.js → color-palette-DMJUChWC.js} +20 -22
- package/_chunks/{color-picker-D90Jg-M8.js → color-picker-BpCTuIdm.js} +77 -72
- package/_chunks/{component-YDcfoOLz.js → component-CfeHXgIw.js} +301 -282
- package/_chunks/{component-metadata-BENbgTjU.js → component-metadata-BKd7U8OW.js} +0 -12
- package/_chunks/configurator-actions-DnStE6Yl.js +155 -0
- package/_chunks/configurator-field-icon-CmcM_sPs.js +53 -0
- package/_chunks/control-Dcrjsunl.js +118 -0
- package/_chunks/{controls-DIum-E66.js → controls-B_6NJarZ.js} +217 -182
- package/_chunks/{date-control-BJSzu79z.js → date-control-C4h4m75W.js} +1 -1
- package/_chunks/{date-time-BxPJusp9.js → date-time-CTOSbzb0.js} +344 -307
- package/_chunks/{delete-button-Bblyah10.js → delete-button-CW9vjLnk.js} +6 -6
- package/_chunks/dialog.parts-3w5FR06n.js +131 -0
- package/_chunks/{duration-87U2EoMS.js → duration-Bf2OS1V5.js} +19 -18
- package/_chunks/editor-popup-ByU7qiub.js +82 -0
- package/_chunks/field-configurator-D5dZRhDe.js +288 -0
- package/_chunks/field-context-D57PnBbH.js +5 -0
- package/_chunks/{framework-mount-C-Zwm44H.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-BeIadZuL.js → number-input-CmM6_2vR.js} +7 -7
- package/_chunks/{picker-DpP7iQLA.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-C35Isk7p.js +378 -0
- package/_chunks/{rating-choice-Ca8ZBty3.js → rating-choice-C-6wcb9U.js} +1 -1
- package/_chunks/render-m5eMMwFR.js +83 -0
- package/_chunks/{reorder-list-Cc3KmfAN.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/rotate-right-Iha5ScJ1.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 +55 -21
- 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 +227 -0
- package/ai/_style.scss +170 -39
- package/ai/chat.d.ts +65 -0
- package/ai/components.d.ts +34 -5
- package/ai/index.d.ts +3 -0
- package/ai/index.js +3 -3
- package/ai/mount.d.ts +59 -6
- package/ai/prompt-history.d.ts +13 -0
- 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 +27 -0
- package/ai/translations.d.ts +1 -1
- package/angular/angular.d.ts +1 -1
- package/angular/angular.js +13 -10
- package/assignee/assignee.scss +28 -6
- package/assignee/index.js +34 -35
- 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.d.ts +2 -1
- package/buttons/delete-button.js +1 -1
- package/buttons/delete-button.style.scss +6 -2
- package/buttons/remove-button.d.ts +1 -1
- package/buttons/remove-button.js +1 -1
- package/buttons/remove-button.style.scss +1 -1
- package/buttons/svg-button.d.ts +2 -1
- package/buttons/svg-button.js +19 -19
- package/calendar/_calendar.scss +27 -26
- 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 +24 -11
- 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-attributes.js +7 -7
- package/control-presentation.d.ts +8 -2
- package/control-presentation.js +25 -20
- package/controls.d.ts +19 -7
- 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 +242 -39
- 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 +3 -3
- 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.d.ts +5 -2
- package/distribution-chart/bar-chart.js +7 -3
- package/distribution-chart/chart-frame.d.ts +2 -1
- package/distribution-chart/index.d.ts +1 -1
- package/distribution-chart/line-chart.js +1 -1
- package/dropdown/content.d.ts +2 -1
- package/dropdown/content.js +1 -142
- package/dropdown/control.d.ts +14 -0
- package/dropdown/control.js +1 -0
- package/dropdown/control.view.d.ts +6 -0
- package/dropdown/dropdown.types.d.ts +5 -1
- package/dropdown/editor-dropdown.style.scss +54 -16
- package/dropdown/index.d.ts +1 -1
- package/dropdown/index.js +3 -4
- 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 -141
- package/duration/index.js +1 -1
- package/duration/style.scss +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/fieldset.d.ts +3 -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 +9 -10
- package/form-controls/field-context.d.ts +5 -0
- package/form-controls/index.d.ts +10 -2
- package/form-controls/index.js +4 -9
- package/form-controls/presentation.d.ts +1 -1
- package/form-controls/presentation.js +53 -45
- package/formatting/index.d.ts +1 -1
- package/formatting/index.js +40 -35
- package/formatting/styles.scss +14 -57
- package/framework.js +237 -226
- package/history-controls.d.ts +14 -0
- package/history-controls.js +27 -0
- 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 +6 -5
- package/native-control.js +3 -26
- 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 +41 -37
- package/number-input/index.d.ts +1 -1
- package/number-input/index.js +1 -1
- package/package.json +88 -14
- package/pagination.d.ts +3 -0
- package/pagination.js +50 -40
- 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 +205 -45
- package/pickers.d.ts +5 -1
- package/preact-mount.js +1 -1
- package/preact.d.ts +15 -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 +1 -0
- package/react.d.ts +20 -11
- package/react.js +72 -88
- 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 +73 -71
- package/resource-picker/resource-picker.scss +66 -35
- package/rich-text/engine.d.ts +17 -19
- package/rich-text/format-html.d.ts +2 -0
- package/rich-text/index.d.ts +11 -7
- package/rich-text/index.js +1 -1
- package/rich-text/model.d.ts +6 -3
- package/rich-text/render-model.d.ts +4 -5
- package/rich-text/style.scss +295 -55
- package/rich-text/syntax.d.ts +5 -2
- package/rich-text/toolbar.d.ts +6 -6
- package/rich-text/translations.d.ts +5 -15
- package/search-input/index.js +1 -1
- package/search-input/native.d.ts +21 -2
- package/select.d.ts +22 -0
- package/select.js +1 -0
- package/selection-list.d.ts +1 -0
- package/selection-list.js +3 -1
- package/status-feedback/exit-snapshot.js +1 -1
- package/status-feedback/index.js +2 -2
- package/status-feedback/popover.js +9 -9
- package/status-feedback/render.js +3 -44
- package/status-feedback/status-feedback.scss +130 -34
- package/status-feedback/types.d.ts +4 -0
- package/status-feedback/use-auto-dismiss.d.ts +3 -0
- 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 +404 -82
- package/styles/_control.scss +42 -12
- 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 +376 -116
- 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.server.js +1 -48
- package/svelte/UiComponent.svelte +44 -32
- package/svelte.d.ts +1 -1
- package/svelte.js +33 -68
- 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/component.d.ts +5 -1
- package/timeline-track/index.js +71 -54
- package/timeline-track/model.d.ts +9 -0
- package/timeline-track/model.js +10 -1
- package/ui.css +1 -1
- package/view-switcher.d.ts +23 -0
- package/vue.d.ts +51 -35
- package/vue.js +149 -178
- package/_chunks/chart-frame-BC99KjGa.js +0 -127
- package/_chunks/choice-chips-Cs4D-3nH.js +0 -110
- package/_chunks/compat.module-DDB2pm9O.js +0 -229
- package/_chunks/control-tooltip-ztgmsG7H.js +0 -100
- package/_chunks/dialog.parts-DBqo3Qwb.js +0 -134
- package/_chunks/dropdown-voWqmwAe.js +0 -357
- package/_chunks/editor-popup-D3JdS8l3.js +0 -81
- package/_chunks/mount-DZe_6VtR.js +0 -90
- package/_chunks/request-trail-IdNiFvKH.js +0 -347
- package/_chunks/rich-text-BzI1DyfF.js +0 -477
- 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 -12
- package/formatting/control-tooltip.d.ts +0 -27
- package/native-controls.view.d.ts +0 -54
- package/react-native-select.d.ts +0 -6
- package/search-input/native.view.d.ts +0 -21
- package/styles/legacy-pagination.css +0 -112
- package/surfaces.view.d.ts +0 -63
- package/vue-native-select.d.ts +0 -9
|
@@ -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,8 @@
|
|
|
1
1
|
import { h } from '../_vendor/preact/src/index';
|
|
2
|
-
import { StandaloneChartProps } from './types';
|
|
3
|
-
export
|
|
2
|
+
import { DistributionChartDatum, StandaloneChartProps } from './types';
|
|
3
|
+
export interface BarChartProps extends StandaloneChartProps {
|
|
4
|
+
/** CSS color or per-bar rule. Return undefined to retain the theme color. */
|
|
5
|
+
readonly barColor?: string | ((datum: DistributionChartDatum, index: number) => string | undefined);
|
|
6
|
+
}
|
|
4
7
|
/** Compact bar chart, independent of sliders, filters and grid instances. */
|
|
5
8
|
export declare function BarChart(props: BarChartProps): h.JSX.Element;
|
|
@@ -1,14 +1,18 @@
|
|
|
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
|
-
let { values: i, max: a } = t(r.data);
|
|
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);
|
|
6
6
|
return /* @__PURE__ */ e(n, {
|
|
7
7
|
...r,
|
|
8
|
+
datumColors: o,
|
|
8
9
|
variant: "bar",
|
|
9
10
|
renderDatum: (t, n) => /* @__PURE__ */ e("span", {
|
|
10
11
|
class: "rv-distribution-chart__bar",
|
|
11
|
-
style: {
|
|
12
|
+
style: {
|
|
13
|
+
backgroundColor: o[n],
|
|
14
|
+
height: `${Math.max(3, i[n] / a * 100)}%`
|
|
15
|
+
},
|
|
12
16
|
"aria-hidden": "true"
|
|
13
17
|
})
|
|
14
18
|
});
|
|
@@ -5,9 +5,10 @@ export interface ChartPoint {
|
|
|
5
5
|
readonly y: number;
|
|
6
6
|
}
|
|
7
7
|
/** Shared accessibility, focus and tooltip lifecycle for the chart primitives. */
|
|
8
|
-
export declare function ChartFrame({ data, ariaLabel, variant, height, className, showGrid, showLabels, showValues, legend, formatValue, tooltip, tooltipIndicator, renderTooltip, positions, renderDatum, children }: StandaloneChartProps & {
|
|
8
|
+
export declare function ChartFrame({ data, ariaLabel, variant, height, className, showGrid, showLabels, showValues, legend, formatValue, tooltip, tooltipIndicator, renderTooltip, positions, datumColors, renderDatum, children, }: StandaloneChartProps & {
|
|
9
9
|
variant: DistributionChartType;
|
|
10
10
|
positions?: readonly ChartPoint[];
|
|
11
|
+
datumColors?: readonly (string | undefined)[];
|
|
11
12
|
renderDatum: (datum: DistributionChartDatum, index: number) => ComponentChildren;
|
|
12
13
|
children?: ComponentChildren;
|
|
13
14
|
}): h.JSX.Element;
|
|
@@ -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.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ type DropdownContentProps<T = any> = {
|
|
|
16
16
|
theme?: string | null;
|
|
17
17
|
optionIdPrefix: string;
|
|
18
18
|
};
|
|
19
|
-
export declare function DropdownPopupContent<T = any>({ options, selectedValues, remote, value, onChange, config, multiSelect, search, searchPlaceholder, listboxId, searchId, renderOption, renderNoResults, onClose, theme, }: {
|
|
19
|
+
export declare function DropdownPopupContent<T = any>({ options, selectedValues, remote, value, onChange, config, multiSelect, search, searchPlaceholder, listboxId, searchId, renderOption, renderNoResults, onClose, onTabNavigation, theme, }: {
|
|
20
20
|
options: DropdownOption<T>[];
|
|
21
21
|
selectedValues?: DropdownOption<T>[];
|
|
22
22
|
remote?: RemoteDropdownState<T> & {
|
|
@@ -36,6 +36,7 @@ export declare function DropdownPopupContent<T = any>({ options, selectedValues,
|
|
|
36
36
|
renderOption?: (h: any, option: DropdownOption<T>, isSelected: boolean) => ComponentChildren;
|
|
37
37
|
renderNoResults?: (h: any) => ComponentChildren;
|
|
38
38
|
onClose: (focusNext?: boolean) => void;
|
|
39
|
+
onTabNavigation?: () => void;
|
|
39
40
|
theme?: string | null;
|
|
40
41
|
}): h.JSX.Element;
|
|
41
42
|
export declare function DropdownContent<T = any>({ options, filteredOptions, multiSelect, focusedIndex, selectedOptions, onKeyDown, onSelect, onFocusChange, renderOption, renderNoResults, dropdownListRef, theme, optionIdPrefix, }: DropdownContentProps<T>): h.JSX.Element;
|
package/dropdown/content.js
CHANGED
|
@@ -1,142 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { c as n, o as r, t as i } from "../_chunks/hooks.module-CG3gN83z.js";
|
|
3
|
-
import { t as a } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
|
|
4
|
-
import "../_chunks/compat.module-DDB2pm9O.js";
|
|
5
|
-
import { ButtonControl as o } from "../native-control.js";
|
|
6
|
-
import { useDropdownService as s } from "./dropdown.service.js";
|
|
7
|
-
//#region src/dropdown/content.tsx
|
|
8
|
-
function c({ options: e, selectedValues: t, remote: r, value: c, onChange: u, config: d, multiSelect: f, search: p, searchPlaceholder: m, listboxId: h, searchId: g, renderOption: _, renderNoResults: v, onClose: y, theme: b }) {
|
|
9
|
-
let x = i(null), S = i(null), C = i(null), { searchValue: w, focusedIndex: T, selectedOptions: E, filteredOptions: D, handleSelect: O, handleKeyDown: k, handleSearchChange: A, setFocusedIndex: j } = s(e, c, u, d, y, r && {
|
|
10
|
-
selected: t ?? [],
|
|
11
|
-
search: r.search
|
|
12
|
-
}), M = T >= 0 && T < D.length && !D[T].disabled ? `${h}-option-${T}` : void 0;
|
|
13
|
-
return n(() => {
|
|
14
|
-
if (!d.autoFocus) return;
|
|
15
|
-
let e = () => {
|
|
16
|
-
p && x.current ? x.current.focus({ preventScroll: !0 }) : S.current?.focus({ preventScroll: !0 });
|
|
17
|
-
}, t = S.current?.ownerDocument.defaultView ?? (typeof window < "u" ? window : void 0);
|
|
18
|
-
if (!t) return;
|
|
19
|
-
e();
|
|
20
|
-
let n = t.setTimeout(e, 0), r = t.requestAnimationFrame(e), i = t.setTimeout(e, 16);
|
|
21
|
-
return () => {
|
|
22
|
-
t.clearTimeout(n), t.cancelAnimationFrame(r), t.clearTimeout(i);
|
|
23
|
-
};
|
|
24
|
-
}, [d.autoFocus, p]), /* @__PURE__ */ a("div", {
|
|
25
|
-
ref: S,
|
|
26
|
-
className: "dropdown-listbox",
|
|
27
|
-
"data-theme": b ?? "default",
|
|
28
|
-
role: "listbox",
|
|
29
|
-
id: h,
|
|
30
|
-
"aria-multiselectable": f,
|
|
31
|
-
"aria-activedescendant": M,
|
|
32
|
-
tabIndex: -1,
|
|
33
|
-
"aria-busy": r?.loading,
|
|
34
|
-
onScrollCapture: (e) => {
|
|
35
|
-
let t = e.target;
|
|
36
|
-
r && t.scrollHeight - t.scrollTop - t.clientHeight < 48 && r.loadMore();
|
|
37
|
-
},
|
|
38
|
-
onKeyUp: (e) => e.stopPropagation(),
|
|
39
|
-
onKeyDown: (e) => {
|
|
40
|
-
e.stopPropagation(), e.key === "Escape" ? (e.preventDefault(), e.stopPropagation(), y(!1)) : e.key === "Tab" ? (e.preventDefault(), e.stopPropagation(), d.closeOnTab && y(!0)) : (e.key !== " " || e.target !== x.current) && k(e);
|
|
41
|
-
},
|
|
42
|
-
children: [
|
|
43
|
-
p && /* @__PURE__ */ a("div", {
|
|
44
|
-
className: "dropdown-search",
|
|
45
|
-
children: /* @__PURE__ */ a("input", {
|
|
46
|
-
ref: x,
|
|
47
|
-
type: "text",
|
|
48
|
-
id: g,
|
|
49
|
-
className: `dropdown-search-input ${b ? `theme-${b}` : ""}`,
|
|
50
|
-
placeholder: m,
|
|
51
|
-
value: w,
|
|
52
|
-
onChange: A,
|
|
53
|
-
onInput: A,
|
|
54
|
-
"aria-label": d.searchAriaLabel ?? "Search options"
|
|
55
|
-
})
|
|
56
|
-
}),
|
|
57
|
-
r?.loading && /* @__PURE__ */ a("div", {
|
|
58
|
-
role: "status",
|
|
59
|
-
children: r.text.loading
|
|
60
|
-
}),
|
|
61
|
-
r?.error && /* @__PURE__ */ a("div", {
|
|
62
|
-
role: "alert",
|
|
63
|
-
children: [
|
|
64
|
-
r.text.error,
|
|
65
|
-
" ",
|
|
66
|
-
/* @__PURE__ */ a(o, {
|
|
67
|
-
onClick: r.retry,
|
|
68
|
-
children: r.text.retry
|
|
69
|
-
})
|
|
70
|
-
]
|
|
71
|
-
}),
|
|
72
|
-
/* @__PURE__ */ a(l, {
|
|
73
|
-
options: e,
|
|
74
|
-
filteredOptions: D,
|
|
75
|
-
multiSelect: f,
|
|
76
|
-
focusedIndex: T,
|
|
77
|
-
selectedOptions: E,
|
|
78
|
-
onKeyDown: k,
|
|
79
|
-
onSelect: O,
|
|
80
|
-
onFocusChange: j,
|
|
81
|
-
renderOption: _,
|
|
82
|
-
renderNoResults: r ? () => r.loading || r.error ? null : r.text.empty : v,
|
|
83
|
-
dropdownListRef: C,
|
|
84
|
-
theme: b,
|
|
85
|
-
optionIdPrefix: h
|
|
86
|
-
}),
|
|
87
|
-
r?.hasMore && /* @__PURE__ */ a(o, {
|
|
88
|
-
disabled: r.loading,
|
|
89
|
-
onClick: r.loadMore,
|
|
90
|
-
children: r.text.loadMore
|
|
91
|
-
})
|
|
92
|
-
]
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
function l({ options: n, filteredOptions: i, multiSelect: o, focusedIndex: s, selectedOptions: c, onKeyDown: l, onSelect: u, onFocusChange: d, renderOption: f, renderNoResults: p, dropdownListRef: m, theme: h, optionIdPrefix: g }) {
|
|
96
|
-
let _ = r((e) => c.some((t) => JSON.stringify(t.value) === JSON.stringify(e.value)), [c]), v = r((t, n) => {
|
|
97
|
-
let r = _(t), i = s === n;
|
|
98
|
-
return /* @__PURE__ */ a("li", {
|
|
99
|
-
id: `${g}-option-${n}`,
|
|
100
|
-
role: "option",
|
|
101
|
-
"aria-selected": r,
|
|
102
|
-
"aria-disabled": t.disabled,
|
|
103
|
-
tabIndex: -1,
|
|
104
|
-
className: `dropdown-option ${r ? "selected" : ""} ${i ? "focused" : ""} ${t.disabled ? "disabled" : ""} ${h ? `theme-${h}` : ""}`,
|
|
105
|
-
onClick: () => u(t),
|
|
106
|
-
onMouseEnter: () => {
|
|
107
|
-
t.disabled || d(n);
|
|
108
|
-
},
|
|
109
|
-
children: f ? f(e, t, r) : /* @__PURE__ */ a("div", {
|
|
110
|
-
className: "option-content",
|
|
111
|
-
children: [o && /* @__PURE__ */ a("input", {
|
|
112
|
-
type: "checkbox",
|
|
113
|
-
checked: r,
|
|
114
|
-
readOnly: !0,
|
|
115
|
-
disabled: t.disabled,
|
|
116
|
-
tabIndex: -1,
|
|
117
|
-
"aria-hidden": "true"
|
|
118
|
-
}), /* @__PURE__ */ a("span", { children: t.label })]
|
|
119
|
-
})
|
|
120
|
-
}, `${t.label}-${n}`);
|
|
121
|
-
}, [
|
|
122
|
-
s,
|
|
123
|
-
u,
|
|
124
|
-
_,
|
|
125
|
-
o,
|
|
126
|
-
f,
|
|
127
|
-
d,
|
|
128
|
-
h
|
|
129
|
-
]);
|
|
130
|
-
return /* @__PURE__ */ a(t, { children: /* @__PURE__ */ a("ul", {
|
|
131
|
-
ref: m,
|
|
132
|
-
className: "dropdown-options",
|
|
133
|
-
role: "presentation",
|
|
134
|
-
tabIndex: -1,
|
|
135
|
-
children: i.length > 0 ? i.map(v) : /* @__PURE__ */ a("li", {
|
|
136
|
-
className: "no-results",
|
|
137
|
-
children: p ? p(e) : /* @__PURE__ */ a("span", { children: "No results found" })
|
|
138
|
-
})
|
|
139
|
-
}) });
|
|
140
|
-
}
|
|
141
|
-
//#endregion
|
|
142
|
-
export { l as DropdownContent, c as DropdownPopupContent };
|
|
1
|
+
export { f as DropdownContent, p as DropdownPopupContent } from "../_chunks/native-control-B_fVA5bL.js";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { DropdownOption, DropdownProps } from './dropdown.types';
|
|
2
|
+
/** Application-owned state for DOM consumers of the shared Dropdown. */
|
|
3
|
+
export interface DropdownControl<T = string> {
|
|
4
|
+
readonly element: HTMLDivElement;
|
|
5
|
+
value: T;
|
|
6
|
+
source: DropdownOption<T>[];
|
|
7
|
+
disabled: boolean;
|
|
8
|
+
onChange?: (value: T) => void;
|
|
9
|
+
update(props: Partial<DropdownProps<T>>): void;
|
|
10
|
+
destroy(): void;
|
|
11
|
+
}
|
|
12
|
+
export declare function createDropdownControl<T = string>(document: Document, initial: DropdownProps<T>): DropdownControl<T>;
|
|
13
|
+
/** Lifecycle boundary for Stencil/other VNode factories that cannot render Preact components. */
|
|
14
|
+
export declare function renderDropdownControl<T>(h: (tag: any, props: any, ...children: any[]) => T, props: DropdownProps): T;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { t as createDropdownControl, n as renderDropdownControl } from "../_chunks/control-Dcrjsunl.js";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { JSX } from '../_vendor/preact/src/index';
|
|
1
2
|
import { DropdownDataSource, DropdownRemoteText } from './remote';
|
|
2
|
-
export type { DropdownDataSource, DropdownRemoteText, LookupId, LookupCursor } from './remote';
|
|
3
|
+
export type { DropdownDataSource, DropdownRemoteText, LookupId, LookupCursor, } from './remote';
|
|
3
4
|
export type DropdownRenderable = any;
|
|
4
5
|
export type DropdownVNode = any;
|
|
5
6
|
export type DropdownStyle = string | Record<string, string | number | undefined>;
|
|
@@ -43,6 +44,8 @@ export type DropdownConfig<T = any> = {
|
|
|
43
44
|
initialSearch?: string;
|
|
44
45
|
/** Close the dropdown when Tab is pressed inside the open popup. */
|
|
45
46
|
closeOnTab?: boolean;
|
|
47
|
+
/** Dismiss then let the browser Tab from the trigger (standalone fields). */
|
|
48
|
+
nativeTabNavigation?: boolean;
|
|
46
49
|
portalTarget?: HTMLElement | null;
|
|
47
50
|
topLayer?: boolean;
|
|
48
51
|
ariaLabel?: string;
|
|
@@ -66,6 +69,7 @@ export interface DropdownEnvironment {
|
|
|
66
69
|
}
|
|
67
70
|
export type DropdownProps<T = any> = {
|
|
68
71
|
environment?: DropdownEnvironment;
|
|
72
|
+
triggerAttributes?: JSX.HTMLAttributes<HTMLDivElement>;
|
|
69
73
|
source: DropdownOption<T>[];
|
|
70
74
|
/** Optional application-owned remote search and ID resolver. Values must be string/number IDs. */
|
|
71
75
|
dataSource?: DropdownDataSource<T>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
@use '../styles/motion';
|
|
2
2
|
@use '../styles/palette';
|
|
3
|
-
|
|
3
|
+
@use '../styles/control';
|
|
4
4
|
|
|
5
5
|
// Mixins
|
|
6
6
|
@mixin focus-style {
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
|
|
16
16
|
revo-grid,
|
|
17
17
|
.rv-formula-bar,
|
|
18
|
+
.rv-native-controls,
|
|
18
19
|
:root {
|
|
19
20
|
--rv-dropdown-container-tag-background: #{palette.$gray-eeeeee};
|
|
20
21
|
--rv-dropdown-placeholder-color: var(--rv-ui-text-muted);
|
|
21
22
|
|
|
22
|
-
|
|
23
23
|
&[theme*='dark'] {
|
|
24
24
|
--rv-dropdown-container-tag-background: #{palette.$gray-2b2b2b};
|
|
25
25
|
--rv-dropdown-placeholder-color: var(--rv-ui-text-muted);
|
|
@@ -51,7 +51,8 @@ revo-grid,
|
|
|
51
51
|
--rv-dropdown-arrow-right: 5px;
|
|
52
52
|
--rv-dropdown-arrow-gap: 4px;
|
|
53
53
|
--rv-dropdown-value-right-space: calc(
|
|
54
|
-
var(--rv-dropdown-arrow-size) + var(--rv-dropdown-arrow-right) +
|
|
54
|
+
var(--rv-dropdown-arrow-size) + var(--rv-dropdown-arrow-right) +
|
|
55
|
+
var(--rv-dropdown-arrow-gap)
|
|
55
56
|
);
|
|
56
57
|
|
|
57
58
|
@include flex-center;
|
|
@@ -86,10 +87,11 @@ revo-grid,
|
|
|
86
87
|
justify-content: center;
|
|
87
88
|
margin: 0;
|
|
88
89
|
position: absolute;
|
|
89
|
-
|
|
90
|
+
inset-inline-end: var(--rv-dropdown-arrow-right);
|
|
90
91
|
top: 50%;
|
|
91
92
|
transform: translateY(-50%);
|
|
92
|
-
transition: transform var(--rv-ui-motion-normal, 160ms)
|
|
93
|
+
transition: transform var(--rv-ui-motion-normal, 160ms)
|
|
94
|
+
var(--rv-ui-motion-ease, ease-out);
|
|
93
95
|
z-index: 1;
|
|
94
96
|
|
|
95
97
|
svg {
|
|
@@ -112,8 +114,8 @@ revo-grid,
|
|
|
112
114
|
align-items: center;
|
|
113
115
|
min-width: 0;
|
|
114
116
|
overflow: hidden;
|
|
115
|
-
padding-
|
|
116
|
-
padding-
|
|
117
|
+
padding-inline-start: 5px;
|
|
118
|
+
padding-inline-end: var(--rv-dropdown-value-right-space);
|
|
117
119
|
}
|
|
118
120
|
|
|
119
121
|
.selected-value {
|
|
@@ -125,8 +127,8 @@ revo-grid,
|
|
|
125
127
|
max-width: 100%;
|
|
126
128
|
min-width: 0;
|
|
127
129
|
overflow: hidden;
|
|
128
|
-
padding-
|
|
129
|
-
padding-
|
|
130
|
+
padding-inline-start: 5px;
|
|
131
|
+
padding-inline-end: var(--rv-dropdown-value-right-space);
|
|
130
132
|
text-overflow: ellipsis;
|
|
131
133
|
white-space: nowrap;
|
|
132
134
|
width: 100%;
|
|
@@ -146,9 +148,13 @@ revo-grid,
|
|
|
146
148
|
background-color: var(--rv-dropdown-container-tag-background);
|
|
147
149
|
border-radius: 3px;
|
|
148
150
|
padding: 2px 6px;
|
|
149
|
-
padding-
|
|
151
|
+
padding-inline-end: 0;
|
|
150
152
|
font-size: 14px;
|
|
151
153
|
|
|
154
|
+
// Custom tag palettes also own the remove glyph's foreground.
|
|
155
|
+
> button.rv-remove-button {
|
|
156
|
+
color: inherit;
|
|
157
|
+
}
|
|
152
158
|
}
|
|
153
159
|
|
|
154
160
|
.placeholder {
|
|
@@ -158,7 +164,7 @@ revo-grid,
|
|
|
158
164
|
max-width: 100%;
|
|
159
165
|
min-width: 0;
|
|
160
166
|
overflow: hidden;
|
|
161
|
-
padding-
|
|
167
|
+
padding-inline-end: var(--rv-dropdown-value-right-space);
|
|
162
168
|
text-overflow: ellipsis;
|
|
163
169
|
white-space: nowrap;
|
|
164
170
|
width: 100%;
|
|
@@ -207,7 +213,8 @@ revo-grid,
|
|
|
207
213
|
padding: 6px;
|
|
208
214
|
flex-direction: column;
|
|
209
215
|
transform-origin: top left;
|
|
210
|
-
animation: revoDropdownMenuIn var(--rv-ui-motion-enter, 180ms)
|
|
216
|
+
animation: revoDropdownMenuIn var(--rv-ui-motion-enter, 180ms)
|
|
217
|
+
var(--rv-ui-motion-ease, ease-out);
|
|
211
218
|
|
|
212
219
|
.dropdown-listbox {
|
|
213
220
|
display: flex;
|
|
@@ -247,6 +254,7 @@ revo-grid,
|
|
|
247
254
|
background-color: var(--rv-dropdown-menu-background);
|
|
248
255
|
|
|
249
256
|
.dropdown-option {
|
|
257
|
+
box-sizing: border-box;
|
|
250
258
|
display: flex;
|
|
251
259
|
min-height: 38px;
|
|
252
260
|
align-items: center;
|
|
@@ -255,12 +263,13 @@ revo-grid,
|
|
|
255
263
|
font-size: 14px;
|
|
256
264
|
font-weight: 400;
|
|
257
265
|
list-style: none;
|
|
258
|
-
padding:
|
|
266
|
+
padding: 8px 10px;
|
|
259
267
|
cursor: pointer;
|
|
260
268
|
user-select: none;
|
|
261
269
|
margin: 1px 0;
|
|
262
270
|
transition:
|
|
263
|
-
background-color var(--rv-ui-motion-fast, 120ms)
|
|
271
|
+
background-color var(--rv-ui-motion-fast, 120ms)
|
|
272
|
+
var(--rv-ui-motion-ease, ease-out),
|
|
264
273
|
color var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, ease-out);
|
|
265
274
|
|
|
266
275
|
&[class*='theme-dark'] {
|
|
@@ -282,14 +291,13 @@ revo-grid,
|
|
|
282
291
|
opacity: 0.5;
|
|
283
292
|
cursor: not-allowed;
|
|
284
293
|
}
|
|
285
|
-
|
|
286
294
|
}
|
|
287
295
|
|
|
288
296
|
.option-content {
|
|
289
297
|
@include flex-center;
|
|
290
298
|
gap: 8px;
|
|
291
299
|
width: 100%;
|
|
292
|
-
|
|
300
|
+
min-width: 0;
|
|
293
301
|
}
|
|
294
302
|
.no-results {
|
|
295
303
|
padding: 12px;
|
|
@@ -306,3 +314,33 @@ revo-grid,
|
|
|
306
314
|
opacity: 1;
|
|
307
315
|
}
|
|
308
316
|
}
|
|
317
|
+
|
|
318
|
+
// Standalone controls share Dropdown behavior with grid editors and have form chrome.
|
|
319
|
+
.dropdown-container.rv-select {
|
|
320
|
+
height: auto;
|
|
321
|
+
min-width: 0;
|
|
322
|
+
.dropdown-trigger {
|
|
323
|
+
@include control.action-size;
|
|
324
|
+
padding-inline-end: 24px;
|
|
325
|
+
border: 1px solid var(--rv-ui-border);
|
|
326
|
+
border-radius: var(--rv-control-radius, 8px);
|
|
327
|
+
background: var(--rv-ui-surface-sunken);
|
|
328
|
+
color: var(--rv-ui-text);
|
|
329
|
+
&:focus-visible {
|
|
330
|
+
outline: 2px solid var(--rv-ui-accent);
|
|
331
|
+
outline-offset: 1px;
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
// Standalone controls own the padding once; grid editors retain their compact insets.
|
|
337
|
+
.dropdown-container:is(.rv-select, .rv-combobox, .rv-multi-select)
|
|
338
|
+
.dropdown-trigger {
|
|
339
|
+
--rv-dropdown-arrow-size: 9px;
|
|
340
|
+
--rv-dropdown-arrow-right: 12px;
|
|
341
|
+
padding-inline-end: 32px;
|
|
342
|
+
> .selected-value,
|
|
343
|
+
> .selected-values {
|
|
344
|
+
padding-inline: 0;
|
|
345
|
+
}
|
|
346
|
+
}
|
package/dropdown/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export type { DropdownPopupProps } from './popup';
|
|
|
6
6
|
/**
|
|
7
7
|
* Dropdown component
|
|
8
8
|
*/
|
|
9
|
-
export declare function Dropdown<T = any>({ source: localSource, dataSource, dataContext, remoteText, value, onChange, placeholder, disabled, name, id, className, style, config, renderContent, renderOption, renderValue, renderPlaceholder, renderSelectedValue, renderNoResults, onClose, beforeOutsideClose, environment, }: DropdownProps<T>): any;
|
|
9
|
+
export declare function Dropdown<T = any>({ source: localSource, triggerAttributes, dataSource, dataContext, remoteText, value, onChange, placeholder, disabled, name, id, className, style, config, renderContent, renderOption, renderValue, renderPlaceholder, renderSelectedValue, renderNoResults, onClose, beforeOutsideClose, environment, }: DropdownProps<T>): any;
|
|
10
10
|
/**
|
|
11
11
|
* Define the dropdown component
|
|
12
12
|
* @param el - The element to render the dropdown
|
package/dropdown/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export { r as Dropdown, e as DropdownPopup, i as DropdownPopupContent, t as defineDropdown, n as destroyDropdown };
|
|
1
|
+
import { d as e, l as t, p as n, u as r } from "../_chunks/native-control-B_fVA5bL.js";
|
|
2
|
+
import { t as i } from "../_chunks/popup-C35Isk7p.js";
|
|
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 {
|
|
3
|
+
import { l as r } from "../_chunks/native-control-B_fVA5bL.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,
|
package/dropdown/popup.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ComponentChildren, RefObject } from '../_vendor/preact/src/index';
|
|
2
2
|
export type DropdownPopupProps = {
|
|
3
3
|
onPointerRelease?: (event: MouseEvent | TouchEvent) => void;
|
|
4
4
|
triggerRef: RefObject<HTMLDivElement>;
|
|
@@ -24,4 +24,4 @@ export type DropdownPopupProps = {
|
|
|
24
24
|
* @param theme - The theme of the dropdown
|
|
25
25
|
* @param dropdownMenuId - The id of the dropdown menu
|
|
26
26
|
*/
|
|
27
|
-
export declare function DropdownPopup({ onPointerRelease, triggerRef, children, portalTarget, theme, dropdownMenuId, popupClassName, closeOnClickOutside, onClose, align, matchTriggerWidth, maxHeight, observePopupResize, topLayer, }: DropdownPopupProps):
|
|
27
|
+
export declare function DropdownPopup({ onPointerRelease, triggerRef, children, portalTarget, theme, dropdownMenuId, popupClassName, closeOnClickOutside, onClose, align, matchTriggerWidth, maxHeight, observePopupResize, topLayer, }: DropdownPopupProps): import('../_vendor/preact/src/index').VNode<any>;
|
package/dropdown/popup.js
CHANGED
|
@@ -1,141 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { t as i } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
|
|
3
|
-
import { t as a } from "../_chunks/compat.module-DDB2pm9O.js";
|
|
4
|
-
import { hideTopLayerPopup as o, showTopLayerPopup as s } from "../core/top-layer-popup.js";
|
|
5
|
-
import { inheritUiMotion as c } from "../core/motion.js";
|
|
6
|
-
//#region src/dropdown/popup.tsx
|
|
7
|
-
var l = 5, u = 4;
|
|
8
|
-
function d(e, t, n) {
|
|
9
|
-
let r = e.ownerDocument.defaultView;
|
|
10
|
-
if (!r || r.getComputedStyle(e).position === "fixed") return {
|
|
11
|
-
top: t,
|
|
12
|
-
left: n,
|
|
13
|
-
scaleX: 1,
|
|
14
|
-
scaleY: 1
|
|
15
|
-
};
|
|
16
|
-
let i = e.offsetParent, a = e.ownerDocument;
|
|
17
|
-
if (!i || i === a.body || i === a.documentElement) return {
|
|
18
|
-
top: t + r.scrollY,
|
|
19
|
-
left: n + r.scrollX,
|
|
20
|
-
scaleX: 1,
|
|
21
|
-
scaleY: 1
|
|
22
|
-
};
|
|
23
|
-
let o = i.getBoundingClientRect(), s = i, c = s.offsetWidth > 0 ? o.width / s.offsetWidth : 1, l = s.offsetHeight > 0 ? o.height / s.offsetHeight : 1, u = Number.isFinite(c) && c > 0 ? c : 1, d = Number.isFinite(l) && l > 0 ? l : 1;
|
|
24
|
-
return {
|
|
25
|
-
top: (t - o.top) / d - s.clientTop + s.scrollTop,
|
|
26
|
-
left: (n - o.left) / u - s.clientLeft + s.scrollLeft,
|
|
27
|
-
scaleX: u,
|
|
28
|
-
scaleY: d
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
function f({ onPointerRelease: f, triggerRef: p, children: m, portalTarget: h, theme: g, dropdownMenuId: _, popupClassName: v, closeOnClickOutside: y = !1, onClose: b, align: x = "start", matchTriggerWidth: S = !1, maxHeight: C, observePopupResize: w = !0, topLayer: T = !1 }) {
|
|
32
|
-
let E = r(null), [D, O] = t({
|
|
33
|
-
top: 0,
|
|
34
|
-
left: 0,
|
|
35
|
-
display: "none"
|
|
36
|
-
});
|
|
37
|
-
n(() => {
|
|
38
|
-
let e = p.current, t = E.current;
|
|
39
|
-
if (e && t) return c(e, t);
|
|
40
|
-
}, [h, p]), e(() => {
|
|
41
|
-
let e = p.current;
|
|
42
|
-
if (!e) return;
|
|
43
|
-
let t = e.ownerDocument.defaultView ?? window, n = () => {
|
|
44
|
-
let t = E.current;
|
|
45
|
-
if (!t) return;
|
|
46
|
-
let n = e.getBoundingClientRect(), r = d(t, n.bottom + u, n.left);
|
|
47
|
-
O({
|
|
48
|
-
top: r.top,
|
|
49
|
-
left: r.left,
|
|
50
|
-
display: "flex",
|
|
51
|
-
...S ? { width: n.width / r.scaleX } : {}
|
|
52
|
-
});
|
|
53
|
-
}, r = () => {
|
|
54
|
-
let n = E.current;
|
|
55
|
-
if (!n) return;
|
|
56
|
-
let r = e.getBoundingClientRect(), i = n.style.maxHeight;
|
|
57
|
-
n.style.maxHeight = "";
|
|
58
|
-
let a = n.getBoundingClientRect(), o = d(n, 0, 0), s = Math.max(a.height, n.offsetHeight * o.scaleY, n.scrollHeight * o.scaleY);
|
|
59
|
-
n.style.maxHeight = i;
|
|
60
|
-
let c = Math.max(a.width, n.offsetWidth * o.scaleX), f = Math.min(s, typeof C == "number" ? Math.max(0, C * o.scaleY) : Infinity), p = t.innerHeight, m = t.innerWidth, h = Math.max(0, r.top - u - l), g = Math.max(0, p - r.bottom - u - l), _ = f > g && h > g, v = Math.min(f, _ ? h : g), y = _ ? r.top - u - v : r.bottom + u, b = x === "end" ? r.right - c : r.left;
|
|
61
|
-
y = Math.max(l, Math.min(y, p - l - v)), b = Math.max(l, Math.min(b, m - c - l));
|
|
62
|
-
let w = d(n, y, b);
|
|
63
|
-
O({
|
|
64
|
-
top: w.top,
|
|
65
|
-
left: w.left,
|
|
66
|
-
display: "flex",
|
|
67
|
-
maxHeight: v / w.scaleY,
|
|
68
|
-
...S ? { width: r.width / w.scaleX } : {}
|
|
69
|
-
});
|
|
70
|
-
};
|
|
71
|
-
n();
|
|
72
|
-
let i = t.setTimeout(r, 0);
|
|
73
|
-
t.addEventListener("resize", r), t.addEventListener("scroll", r, !0);
|
|
74
|
-
let a = t.ResizeObserver, o = a ? new a(r) : void 0;
|
|
75
|
-
o?.observe(e);
|
|
76
|
-
let s = e.closest(".rv-dialog__surface, dialog");
|
|
77
|
-
return s && o?.observe(s), w && E.current && o?.observe(E.current), () => {
|
|
78
|
-
t.clearTimeout(i), t.removeEventListener("resize", r), t.removeEventListener("scroll", r, !0), o?.disconnect();
|
|
79
|
-
};
|
|
80
|
-
}, [
|
|
81
|
-
x,
|
|
82
|
-
S,
|
|
83
|
-
C,
|
|
84
|
-
w,
|
|
85
|
-
h,
|
|
86
|
-
p
|
|
87
|
-
]), n(() => {
|
|
88
|
-
let e = E.current;
|
|
89
|
-
if (!T || !e) return;
|
|
90
|
-
let t = s(e);
|
|
91
|
-
return () => {
|
|
92
|
-
o(e, t);
|
|
93
|
-
};
|
|
94
|
-
}, [h, T]), n(() => {
|
|
95
|
-
if (!y || !b) return;
|
|
96
|
-
let e = h?.ownerDocument ?? E.current?.ownerDocument ?? p.current?.ownerDocument ?? (typeof document < "u" ? document : void 0);
|
|
97
|
-
if (!e) return;
|
|
98
|
-
let t = (e) => {
|
|
99
|
-
let t = e.target;
|
|
100
|
-
t && (E.current?.contains(t) || p.current?.contains(t) || b());
|
|
101
|
-
};
|
|
102
|
-
e.addEventListener("mousedown", t);
|
|
103
|
-
let n = (t) => {
|
|
104
|
-
if (t.key !== "Escape") return;
|
|
105
|
-
let n = e.activeElement;
|
|
106
|
-
n && (E.current?.contains(n) || p.current?.contains(n)) && (t.preventDefault(), t.stopPropagation(), b(), p.current?.querySelector("button, input, select")?.focus());
|
|
107
|
-
};
|
|
108
|
-
return e.addEventListener("keydown", n), () => {
|
|
109
|
-
e.removeEventListener("mousedown", t), e.removeEventListener("keydown", n);
|
|
110
|
-
};
|
|
111
|
-
}, [
|
|
112
|
-
y,
|
|
113
|
-
b,
|
|
114
|
-
h,
|
|
115
|
-
p
|
|
116
|
-
]);
|
|
117
|
-
let k = /* @__PURE__ */ i("div", {
|
|
118
|
-
ref: E,
|
|
119
|
-
id: _,
|
|
120
|
-
className: `revo-dropdown-menu ${v || ""}`,
|
|
121
|
-
"data-theme": g ?? "default",
|
|
122
|
-
onMouseUp: f,
|
|
123
|
-
onTouchEnd: f,
|
|
124
|
-
style: {
|
|
125
|
-
top: `${D.top}px`,
|
|
126
|
-
left: `${D.left}px`,
|
|
127
|
-
...T ? {
|
|
128
|
-
right: "auto",
|
|
129
|
-
bottom: "auto",
|
|
130
|
-
margin: "0"
|
|
131
|
-
} : {},
|
|
132
|
-
display: D.display,
|
|
133
|
-
maxHeight: D.maxHeight === void 0 ? void 0 : `${D.maxHeight}px`,
|
|
134
|
-
width: D.width === void 0 ? void 0 : `${D.width}px`
|
|
135
|
-
},
|
|
136
|
-
children: m
|
|
137
|
-
});
|
|
138
|
-
return h ? a(k, h) : k;
|
|
139
|
-
}
|
|
140
|
-
//#endregion
|
|
141
|
-
export { f as DropdownPopup };
|
|
1
|
+
export { t as DropdownPopup } from "../_chunks/popup-C35Isk7p.js";
|
package/duration/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as DurationDraft, n as DurationField } from "../_chunks/duration-
|
|
1
|
+
export { t as DurationDraft, n as DurationField } from "../_chunks/duration-Bf2OS1V5.js";
|