@revolist/ui 4.0.2-rc → 4.0.4-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/LICENSE +21 -0
- package/README.md +345 -263
- package/_chunks/{calendar-CpaUK7w1.js → calendar-xpZ0v3xf.js} +39 -29
- package/_chunks/{chart-frame-BC99KjGa.js → chart-frame-Cmc7xU1i.js} +16 -13
- package/_chunks/{choice-chips-Cs4D-3nH.js → choice-chips-CHQTUdLs.js} +10 -10
- package/_chunks/clock-BOhPNlW3.js +4 -0
- package/_chunks/{color-palette-BBMFmUNA.js → color-palette-D8vyPfld.js} +1 -1
- package/_chunks/{color-picker-D90Jg-M8.js → color-picker-CudqPYZo.js} +10 -10
- package/_chunks/{component-YDcfoOLz.js → component-C_T2VN5u.js} +182 -178
- package/_chunks/{component-metadata-BENbgTjU.js → component-metadata-BMOOmqx5.js} +0 -4
- package/_chunks/control-AHKXD5Eu.js +93 -0
- package/_chunks/{control-tooltip-ztgmsG7H.js → control-tooltip-uscKfAnV.js} +15 -15
- package/_chunks/{controls-DIum-E66.js → controls-DsNi8V8I.js} +144 -129
- package/_chunks/{date-control-BJSzu79z.js → date-control-DrVFX13g.js} +1 -1
- package/_chunks/{date-time-BxPJusp9.js → date-time-qIhp5vaX.js} +143 -145
- package/_chunks/{delete-button-Bblyah10.js → delete-button-CW9vjLnk.js} +6 -6
- package/_chunks/{dialog.parts-DBqo3Qwb.js → dialog.parts-CKGkC5zP.js} +20 -20
- package/_chunks/{duration-87U2EoMS.js → duration-CL68Em0o.js} +16 -15
- package/_chunks/{editor-popup-D3JdS8l3.js → editor-popup-WDdtVDNA.js} +5 -5
- package/_chunks/field-context-D57PnBbH.js +5 -0
- package/_chunks/{framework-mount-C-Zwm44H.js → framework-mount--RTLIqE-.js} +1 -1
- package/_chunks/history-controls-B3u3INEK.js +27 -0
- package/_chunks/mount-DQ1cpppK.js +257 -0
- package/_chunks/native-control-C_yok8_-.js +605 -0
- package/_chunks/{number-input-BeIadZuL.js → number-input-BKwA5FnM.js} +2 -2
- package/_chunks/{picker-DpP7iQLA.js → picker-h1P5RUgp.js} +2 -2
- package/_chunks/popup-CT2uD3go.js +367 -0
- package/_chunks/{rating-choice-Ca8ZBty3.js → rating-choice-DZgmaic0.js} +1 -1
- package/_chunks/render-m5eMMwFR.js +83 -0
- package/_chunks/{reorder-list-Cc3KmfAN.js → reorder-list-CSlqAGHw.js} +1 -1
- package/_chunks/request-trail-DSlFix6i.js +618 -0
- package/_chunks/rich-text-CH7gIqOS.js +636 -0
- package/_chunks/rotate-right-Iha5ScJ1.js +4 -0
- package/_form.scss +1 -1
- package/ai/_chat.scss +195 -0
- package/ai/_style.scss +105 -34
- package/ai/chat.d.ts +63 -0
- package/ai/components.d.ts +19 -3
- package/ai/index.d.ts +2 -0
- package/ai/index.js +3 -3
- package/ai/mount.d.ts +30 -1
- package/ai/prompt-history.d.ts +13 -0
- package/ai/transcript.d.ts +25 -0
- package/ai/translations.d.ts +1 -1
- package/angular/angular.js +0 -3
- package/assignee/index.js +34 -35
- package/buttons/delete-button.d.ts +2 -1
- package/buttons/delete-button.js +1 -1
- package/buttons/remove-button.js +1 -1
- package/buttons/svg-button.d.ts +1 -0
- package/buttons/svg-button.js +5 -5
- package/calendar/_calendar.scss +7 -2
- package/calendar/calendar.js +1 -1
- package/calendar/index.js +2 -2
- package/choice-chips/index.js +1 -1
- package/color-palette/color-palette.js +1 -1
- package/color-palette/color-picker.js +2 -2
- package/component-catalog.d.ts +16 -5
- package/control-attributes.js +7 -7
- package/controls.d.ts +8 -6
- package/controls.js +3 -3
- package/core/editor-popup.js +1 -1
- package/date-time/index.js +1 -1
- package/date-time/style.scss +4 -4
- package/dialog/dialog.dom.js +8 -8
- package/dialog/dialog.parts.js +1 -1
- 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/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 +4 -0
- package/dropdown/editor-dropdown.style.scss +37 -9
- package/dropdown/index.d.ts +1 -1
- package/dropdown/index.js +3 -4
- package/dropdown/lookup-field.js +1 -1
- 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/field-configurator.js +6 -6
- package/fieldset.d.ts +3 -0
- package/filter/filters/slider/single.js +1 -1
- package/filter-badge.js +1 -1
- package/filter-controls.js +7 -7
- package/form-controls/field-context.d.ts +5 -0
- package/form-controls/index.js +7 -12
- package/form-controls/index.view.d.ts +2 -4
- package/form-controls/presentation.js +51 -43
- package/formatting/index.js +25 -21
- package/framework.js +215 -207
- package/history-controls.d.ts +14 -0
- package/history-controls.js +1 -0
- package/masked-input/index.js +1 -1
- package/native-control.d.ts +6 -4
- package/native-control.js +3 -26
- package/native-styles.css +1 -1
- package/native.js +31 -30
- package/number-input/index.js +1 -1
- package/package.json +53 -14
- package/pagination.d.ts +3 -0
- package/pagination.js +43 -33
- package/pdf-viewer/index.js +1 -1
- package/pdf-viewer/style.scss +3 -4
- package/preact.d.ts +2 -0
- package/preact.js +62 -62
- package/rating-choice.js +1 -1
- package/react-control.d.ts +0 -1
- package/react-control.js +2 -2
- package/react.d.ts +13 -3
- package/react.js +71 -88
- package/reorder-list.js +1 -1
- package/resource-picker/resource-picker-popup.js +1 -1
- package/resource-picker/resource-picker.js +4 -4
- package/resource-picker/resource-picker.scss +6 -3
- package/rich-text/engine.d.ts +16 -19
- package/rich-text/index.d.ts +7 -7
- package/rich-text/index.js +1 -1
- package/rich-text/model.d.ts +4 -3
- package/rich-text/render-model.d.ts +4 -5
- package/rich-text/style.scss +3 -12
- package/rich-text/toolbar.d.ts +6 -6
- package/rich-text/translations.d.ts +3 -15
- package/select.d.ts +20 -0
- package/select.js +1 -0
- package/status-feedback/exit-snapshot.js +4 -4
- package/status-feedback/index.js +2 -2
- package/status-feedback/popover.js +10 -10
- package/status-feedback/render.js +3 -44
- package/status-feedback/status-feedback.scss +7 -0
- package/status-feedback/types.d.ts +4 -0
- package/status-feedback/use-auto-dismiss.d.ts +3 -0
- package/styles/_compositions.scss +3 -1
- package/styles/_control.scss +12 -4
- package/styles/_primitives.scss +9 -8
- package/styles.css +1 -1
- package/surfaces.js +45 -45
- package/svelte/UiComponent.server.js +1 -48
- package/svelte/UiComponent.svelte +0 -21
- package/svelte.js +33 -68
- package/time-grid.js +1 -1
- 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/vue.d.ts +24 -5
- package/vue.js +140 -164
- package/_chunks/compat.module-DDB2pm9O.js +0 -229
- package/_chunks/dropdown-voWqmwAe.js +0 -357
- 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/react-native-select.d.ts +0 -6
- package/rich-text/syntax.d.ts +0 -2
- package/vue-native-select.d.ts +0 -9
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-C_yok8_-.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-AHKXD5Eu.js";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { JSX } from '../_vendor/preact/src/index';
|
|
1
2
|
import { DropdownDataSource, DropdownRemoteText } from './remote';
|
|
2
3
|
export type { DropdownDataSource, DropdownRemoteText, LookupId, LookupCursor } from './remote';
|
|
3
4
|
export type DropdownRenderable = any;
|
|
@@ -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,5 +1,6 @@
|
|
|
1
1
|
@use '../styles/motion';
|
|
2
2
|
@use '../styles/palette';
|
|
3
|
+
@use '../styles/control';
|
|
3
4
|
|
|
4
5
|
|
|
5
6
|
// Mixins
|
|
@@ -86,7 +87,7 @@ 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
93
|
transition: transform var(--rv-ui-motion-normal, 160ms) var(--rv-ui-motion-ease, ease-out);
|
|
@@ -112,8 +113,8 @@ revo-grid,
|
|
|
112
113
|
align-items: center;
|
|
113
114
|
min-width: 0;
|
|
114
115
|
overflow: hidden;
|
|
115
|
-
padding-
|
|
116
|
-
padding-
|
|
116
|
+
padding-inline-start: 5px;
|
|
117
|
+
padding-inline-end: var(--rv-dropdown-value-right-space);
|
|
117
118
|
}
|
|
118
119
|
|
|
119
120
|
.selected-value {
|
|
@@ -125,8 +126,8 @@ revo-grid,
|
|
|
125
126
|
max-width: 100%;
|
|
126
127
|
min-width: 0;
|
|
127
128
|
overflow: hidden;
|
|
128
|
-
padding-
|
|
129
|
-
padding-
|
|
129
|
+
padding-inline-start: 5px;
|
|
130
|
+
padding-inline-end: var(--rv-dropdown-value-right-space);
|
|
130
131
|
text-overflow: ellipsis;
|
|
131
132
|
white-space: nowrap;
|
|
132
133
|
width: 100%;
|
|
@@ -146,7 +147,7 @@ revo-grid,
|
|
|
146
147
|
background-color: var(--rv-dropdown-container-tag-background);
|
|
147
148
|
border-radius: 3px;
|
|
148
149
|
padding: 2px 6px;
|
|
149
|
-
padding-
|
|
150
|
+
padding-inline-end: 0;
|
|
150
151
|
font-size: 14px;
|
|
151
152
|
|
|
152
153
|
}
|
|
@@ -158,7 +159,7 @@ revo-grid,
|
|
|
158
159
|
max-width: 100%;
|
|
159
160
|
min-width: 0;
|
|
160
161
|
overflow: hidden;
|
|
161
|
-
padding-
|
|
162
|
+
padding-inline-end: var(--rv-dropdown-value-right-space);
|
|
162
163
|
text-overflow: ellipsis;
|
|
163
164
|
white-space: nowrap;
|
|
164
165
|
width: 100%;
|
|
@@ -247,6 +248,7 @@ revo-grid,
|
|
|
247
248
|
background-color: var(--rv-dropdown-menu-background);
|
|
248
249
|
|
|
249
250
|
.dropdown-option {
|
|
251
|
+
box-sizing: border-box;
|
|
250
252
|
display: flex;
|
|
251
253
|
min-height: 38px;
|
|
252
254
|
align-items: center;
|
|
@@ -255,7 +257,7 @@ revo-grid,
|
|
|
255
257
|
font-size: 14px;
|
|
256
258
|
font-weight: 400;
|
|
257
259
|
list-style: none;
|
|
258
|
-
padding:
|
|
260
|
+
padding: 8px 10px;
|
|
259
261
|
cursor: pointer;
|
|
260
262
|
user-select: none;
|
|
261
263
|
margin: 1px 0;
|
|
@@ -289,7 +291,7 @@ revo-grid,
|
|
|
289
291
|
@include flex-center;
|
|
290
292
|
gap: 8px;
|
|
291
293
|
width: 100%;
|
|
292
|
-
|
|
294
|
+
min-width: 0;
|
|
293
295
|
}
|
|
294
296
|
.no-results {
|
|
295
297
|
padding: 12px;
|
|
@@ -306,3 +308,29 @@ revo-grid,
|
|
|
306
308
|
opacity: 1;
|
|
307
309
|
}
|
|
308
310
|
}
|
|
311
|
+
|
|
312
|
+
// Standalone controls share Dropdown behavior with grid editors and have form chrome.
|
|
313
|
+
.dropdown-container.rv-select {
|
|
314
|
+
height: auto;
|
|
315
|
+
min-width: 0;
|
|
316
|
+
.dropdown-trigger {
|
|
317
|
+
@include control.action-size;
|
|
318
|
+
padding-inline-end: 24px;
|
|
319
|
+
border: 1px solid var(--rv-ui-border);
|
|
320
|
+
border-radius: var(--rv-control-radius, 8px);
|
|
321
|
+
background: var(--rv-ui-surface-sunken);
|
|
322
|
+
color: var(--rv-ui-text);
|
|
323
|
+
&:focus-visible { outline: 2px solid var(--rv-ui-accent); outline-offset: 1px; }
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
// Standalone controls own the padding once; grid editors retain their compact insets.
|
|
328
|
+
.dropdown-container:is(.rv-select, .rv-combobox, .rv-multi-select) .dropdown-trigger {
|
|
329
|
+
--rv-dropdown-arrow-size: 9px;
|
|
330
|
+
--rv-dropdown-arrow-right: 12px;
|
|
331
|
+
padding-inline-end: 32px;
|
|
332
|
+
> .selected-value,
|
|
333
|
+
> .selected-values {
|
|
334
|
+
padding-inline: 0;
|
|
335
|
+
}
|
|
336
|
+
}
|
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-C_yok8_-.js";
|
|
2
|
+
import { t as i } from "../_chunks/popup-CT2uD3go.js";
|
|
3
|
+
export { t as Dropdown, i as DropdownPopup, n as DropdownPopupContent, r as defineDropdown, e as destroyDropdown };
|
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-C_yok8_-.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
|
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-CT2uD3go.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-CL68Em0o.js";
|
package/duration/style.scss
CHANGED
package/editor-actions.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { i as e } from "./_chunks/preact.module-BBM36DnO.js";
|
|
2
2
|
import { t } from "./_chunks/jsxRuntime.module-F6UFnpT-.js";
|
|
3
|
-
import { n } from "./_chunks/controls-
|
|
3
|
+
import { n } from "./_chunks/controls-DsNi8V8I.js";
|
|
4
4
|
//#region src/editor-actions.tsx
|
|
5
5
|
var r = {
|
|
6
6
|
apply: "Apply",
|
package/field-configurator.js
CHANGED
|
@@ -2,9 +2,9 @@ import { c as e } from "./_chunks/preact.module-BBM36DnO.js";
|
|
|
2
2
|
import { t } from "./_chunks/hooks.module-CG3gN83z.js";
|
|
3
3
|
import { t as n } from "./_chunks/jsxRuntime.module-F6UFnpT-.js";
|
|
4
4
|
import { SvgIcon as r } from "./icons/icon.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import { n as i } from "./_chunks/delete-button-CW9vjLnk.js";
|
|
6
|
+
import { RemoveButton as a } from "./buttons/remove-button.js";
|
|
7
|
+
import { t as o } from "./_chunks/chevron-right-sxHQMSkq.js";
|
|
8
8
|
import { DisclosureSummary as s } from "./form-controls/presentation.js";
|
|
9
9
|
import { fieldDropIndex as c, reorderFields as l } from "./field-reorder.js";
|
|
10
10
|
import { useFieldDropTarget as u, useFieldReorder as d } from "./field-reorder.hook.js";
|
|
@@ -20,7 +20,7 @@ function p({ children: e, className: t = "", ...r }) {
|
|
|
20
20
|
...r,
|
|
21
21
|
className: `rv-configurator-summary ${t}`,
|
|
22
22
|
iconPosition: "after",
|
|
23
|
-
icon: /* @__PURE__ */ n(f, { svg:
|
|
23
|
+
icon: /* @__PURE__ */ n(f, { svg: o }),
|
|
24
24
|
children: e
|
|
25
25
|
});
|
|
26
26
|
}
|
|
@@ -133,13 +133,13 @@ function w({ children: e, active: t = !1, label: r, className: i = "" }) {
|
|
|
133
133
|
});
|
|
134
134
|
}
|
|
135
135
|
function T(e) {
|
|
136
|
-
return /* @__PURE__ */ n(
|
|
136
|
+
return /* @__PURE__ */ n(a, {
|
|
137
137
|
...e,
|
|
138
138
|
className: `rv-configurator-remove-button ${e.className ?? ""}`
|
|
139
139
|
});
|
|
140
140
|
}
|
|
141
141
|
function E() {
|
|
142
|
-
return /* @__PURE__ */ n(r, { svg:
|
|
142
|
+
return /* @__PURE__ */ n(r, { svg: i });
|
|
143
143
|
}
|
|
144
144
|
function D({ position: e, index: t, className: r = "" }) {
|
|
145
145
|
return /* @__PURE__ */ n("span", {
|
package/fieldset.d.ts
ADDED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as e } from "../../../_chunks/jsxRuntime.module-F6UFnpT-.js";
|
|
2
|
-
import {
|
|
2
|
+
import { n as t } from "../../../_chunks/native-control-C_yok8_-.js";
|
|
3
3
|
//#region src/filter/filters/slider/single.tsx
|
|
4
4
|
function n({ min: n, max: r, value: i, step: a = 1, disabled: o = !1, id: s, className: c = "", ariaLabel: l, ariaValueText: u, ariaDescribedBy: d, onChange: f, onCommit: p, onKeyDown: m }) {
|
|
5
5
|
let h = r - n, g = h > 0 ? Math.max(0, Math.min(100, (i - n) / h * 100)) : 0;
|
package/filter-badge.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { i as e } from "./_chunks/preact.module-BBM36DnO.js";
|
|
2
2
|
import { a as t } from "./_chunks/hooks.module-CG3gN83z.js";
|
|
3
3
|
import { t as n } from "./_chunks/jsxRuntime.module-F6UFnpT-.js";
|
|
4
|
-
import { n as r, t as i } from "./_chunks/choice-chips-
|
|
4
|
+
import { n as r, t as i } from "./_chunks/choice-chips-CHQTUdLs.js";
|
|
5
5
|
//#region src/filter-badge.tsx
|
|
6
6
|
function a(e) {
|
|
7
7
|
return /* @__PURE__ */ n(r, {
|
package/filter-controls.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { t as e } from "./_chunks/hooks.module-CG3gN83z.js";
|
|
2
2
|
import { t } from "./_chunks/jsxRuntime.module-F6UFnpT-.js";
|
|
3
|
-
import {
|
|
3
|
+
import { a as n, t as r } from "./_chunks/native-control-C_yok8_-.js";
|
|
4
4
|
import { Legend as i } from "./legend.js";
|
|
5
5
|
//#region src/filter-controls.tsx
|
|
6
|
-
function a({ label: e, detail:
|
|
7
|
-
return /* @__PURE__ */ t(
|
|
6
|
+
function a({ label: e, detail: n, selected: i, className: a = "", detailClassName: o = "", ...s }) {
|
|
7
|
+
return /* @__PURE__ */ t(r, {
|
|
8
8
|
...s,
|
|
9
9
|
class: `rv-option-button ${a}`,
|
|
10
10
|
"aria-pressed": i,
|
|
11
11
|
children: [/* @__PURE__ */ t("strong", { children: e }), /* @__PURE__ */ t("span", {
|
|
12
12
|
class: `rv-option-button__detail ${o}`,
|
|
13
|
-
children:
|
|
13
|
+
children: n
|
|
14
14
|
})]
|
|
15
15
|
});
|
|
16
16
|
}
|
|
17
|
-
function o({ highlight:
|
|
17
|
+
function o({ highlight: r, className: i = "", inputClassName: a = "", highlightClassName: o = "", ...s }) {
|
|
18
18
|
let c = e(null);
|
|
19
19
|
return /* @__PURE__ */ t("div", {
|
|
20
20
|
class: `rv-highlighted-input ${i}`,
|
|
@@ -23,8 +23,8 @@ function o({ highlight: n, className: i = "", inputClassName: a = "", highlightC
|
|
|
23
23
|
class: `rv-highlighted-input__highlight ${o}`,
|
|
24
24
|
"aria-hidden": "true",
|
|
25
25
|
ref: c,
|
|
26
|
-
children:
|
|
27
|
-
}), /* @__PURE__ */ t(
|
|
26
|
+
children: r
|
|
27
|
+
}), /* @__PURE__ */ t(n, {
|
|
28
28
|
...s,
|
|
29
29
|
class: `rv-highlighted-input__input ${a}`,
|
|
30
30
|
spellcheck: s.spellcheck ?? !1,
|
package/form-controls/index.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { t as e } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { n as t } from "../_chunks/native-control-C_yok8_-.js";
|
|
3
|
+
import { createPreactElement as n } from "../preact-mount.js";
|
|
4
|
+
import { t as r } from "../_chunks/control-AHKXD5Eu.js";
|
|
4
5
|
//#region src/form-controls/index.view.tsx
|
|
5
|
-
function i(
|
|
6
|
-
return t
|
|
6
|
+
function i(t, r) {
|
|
7
|
+
return n(t, /* @__PURE__ */ e("label", {
|
|
7
8
|
class: ["rv-field", r.className].filter(Boolean).join(" "),
|
|
8
9
|
children: [
|
|
9
10
|
/* @__PURE__ */ e("span", {
|
|
@@ -24,16 +25,10 @@ function i(n, r) {
|
|
|
24
25
|
}));
|
|
25
26
|
}
|
|
26
27
|
function a(r, i) {
|
|
27
|
-
return
|
|
28
|
+
return n(r, /* @__PURE__ */ e(t, {
|
|
28
29
|
type: "text",
|
|
29
30
|
placeholder: i
|
|
30
31
|
}));
|
|
31
32
|
}
|
|
32
|
-
function o(n, i) {
|
|
33
|
-
return t(n, /* @__PURE__ */ e(r, { children: i.map((t) => /* @__PURE__ */ e("option", {
|
|
34
|
-
value: t.value,
|
|
35
|
-
children: t.label
|
|
36
|
-
}, t.value)) }));
|
|
37
|
-
}
|
|
38
33
|
//#endregion
|
|
39
|
-
export {
|
|
34
|
+
export { r as createDropdownControl, i as createFormField, a as createTextControl };
|
|
@@ -6,7 +6,5 @@ export interface FormFieldOptions {
|
|
|
6
6
|
}
|
|
7
7
|
export declare function createFormField(document: Document, options: FormFieldOptions): HTMLLabelElement;
|
|
8
8
|
export declare function createTextControl(document: Document, placeholder: string): HTMLInputElement;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
label: string;
|
|
12
|
-
}[]): HTMLSelectElement;
|
|
9
|
+
/** DOM counterpart of Dropdown; callers own its lifetime. */
|
|
10
|
+
export { createDropdownControl } from '../dropdown/control';
|