@revolist/ui 4.0.5-rc → 4.0.5
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 +36 -36
- package/README.md +65 -408
- package/_button.scss +6 -2
- package/_chunks/{calendar-DsXIhybL.js → calendar-BQYQLu8Q.js} +5 -5
- package/_chunks/{cell-visuals-E-2oEKHg.js → cell-visuals-r6DOOhGh.js} +7 -7
- package/_chunks/{chart-frame-CuZABXVI.js → chart-frame-GprenwEg.js} +17 -13
- package/_chunks/{chevron-left-D0nc4Z5S.js → chevron-right-CM3ljziP.js} +2 -2
- package/_chunks/{choice-chips-BhP8MZjs.js → choice-chips-C5OxD0GV.js} +3 -3
- package/_chunks/{color-palette-DMJUChWC.js → color-palette-7siNch__.js} +3 -3
- package/_chunks/{color-picker-B4TQvxxB.js → color-picker-Cfc9eqZb.js} +4 -4
- package/_chunks/{component-qKctqdzk.js → component-C3k_8uIq.js} +44 -45
- package/_chunks/{component-metadata-BMOOmqx5.js → component-metadata-DlVkpW3h.js} +1 -9
- package/_chunks/{configurator-actions-C19O1rda.js → configurator-actions-vRnI54mO.js} +3 -3
- package/_chunks/{control-BkWukVt9.js → control-BRfF5DWQ.js} +32 -7
- package/_chunks/{controller-hRBm_Lfz.js → controller-BbiQuRt-.js} +5 -5
- package/_chunks/{controls-BLQnWEd7.js → controls-B3EgM_DS.js} +160 -132
- package/_chunks/{date-control-Cgw5PwlZ.js → date-control-87dcA5br.js} +5 -5
- package/_chunks/{date-time-B8rK5gpC.js → date-time-CfiFYodx.js} +316 -293
- package/_chunks/{delete-button-CW9vjLnk.js → delete-button-jneO24wa.js} +1 -1
- package/_chunks/dialog.parts-NqEEVc9P.js +131 -0
- package/_chunks/{duration-DwFXonEV.js → duration-BGZ_qJ99.js} +10 -7
- package/_chunks/{editor-commit-Bq3wSgvr.js → editor-commit-Dyo-FMgD.js} +1 -1
- package/_chunks/{editor-popup-BaaxL89T.js → editor-popup-NNP9Fh9U.js} +12 -11
- package/_chunks/field-configurator-DPulsY3l.js +288 -0
- package/_chunks/{field-context-D57PnBbH.js → field-context-C4_WrO2z.js} +1 -1
- package/_chunks/{framework-mount--RTLIqE-.js → framework-mount-D4I8HpVp.js} +2 -2
- package/_chunks/{icon-toolbar-xbqa0hu9.js → icon-toolbar-BAAdEvr9.js} +41 -35
- package/_chunks/{icons-Ci5mADVc.js → icons-B4qN13Yj.js} +1 -1
- package/_chunks/{iso-B0YHBK7m.js → iso-CJQl2kmq.js} +1 -1
- package/_chunks/{model-mPO2tG2f.js → model-CFrBgRHm.js} +3 -3
- package/_chunks/mount-C8CnIW9k.js +267 -0
- package/_chunks/{native.view-ByyZ1CT5.js → native-CJm3eq3-.js} +1 -1
- package/_chunks/{native-control-DO0d1kgx.js → native-control-um1L1wgZ.js} +124 -111
- package/_chunks/{number-input-s9ddPwX6.js → number-input-CKiA4d1N.js} +4 -4
- package/_chunks/{picker-AY05b41W.js → picker-igNshTRC.js} +5 -5
- package/_chunks/{popup-UXGCiv3n.js → popup-DECYM9FI.js} +21 -10
- package/_chunks/{rating-choice-BEs_QFZC.js → rating-choice-CepVfGUq.js} +2 -2
- package/_chunks/{render-m5eMMwFR.js → render-bTk3curw.js} +2 -2
- package/_chunks/{reorder-list-A49l172e.js → reorder-list-B4w3aARt.js} +2 -2
- package/_chunks/{request-trail-DCOfa5zw.js → request-trail-B1zVRPEf.js} +151 -142
- package/_chunks/{rich-text-xfMWadGi.js → rich-text-Ci4d6dHn.js} +11 -11
- package/_chunks/selection-list-tooltips-m00U3L6z.js +42 -0
- package/_chunks/{title-tooltip-Cw6LOZhb.js → title-tooltip-ncldbUwS.js} +2 -2
- package/_chunks/{tooltip-D4xkio5G.js → tooltip-h-Z8yFBY.js} +2 -2
- package/_chunks/{tooltip-owner-DjdvqKzz.js → tooltip-owner-BYho-vJl.js} +1 -1
- package/_chunks/{tooltip-session-B6X6x8G_.js → tooltip-session-CBtRMBPr.js} +3 -3
- package/_chunks/{tooltip-text-BXsUEmBH.js → tooltip-text-BN5WdGHn.js} +2 -2
- package/_chunks/{top-layer-popup-CNSDdfJV.js → top-layer-popup-CKJ7VJOF.js} +3 -3
- package/_dialog.scss +57 -22
- package/_form.scss +71 -21
- package/_legend.scss +25 -7
- package/_variables.scss +34 -32
- package/_view-switcher.scss +6 -0
- package/activity-message.d.ts +1 -1
- package/activity-message.js +1 -1
- package/ai/_chat.scss +7 -0
- package/ai/_style.scss +27 -20
- package/ai/components.d.ts +3 -1
- package/ai/index.js +2 -2
- package/ai/mount.d.ts +15 -7
- package/ai/request-trail.d.ts +9 -3
- package/ai/results/_style.scss +3 -0
- package/ai/results/index.d.ts +1 -1
- 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 +6 -6
- package/avatar/avatar.style.scss +23 -6
- package/avatar/index.d.ts +25 -2
- package/avatar/index.js +2 -2
- package/badge.d.ts +1 -1
- package/badge.js +1 -1
- package/badge.view.d.ts +1 -1
- package/brush-range/_brush-range.scss +55 -49
- package/brush-range/component.d.ts +1 -3
- package/brush-range/component.js +10 -11
- 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 +2 -2
- package/buttons/remove-button.style.scss +1 -1
- package/buttons/svg-button.js +3 -3
- package/calendar/_calendar.scss +19 -23
- package/calendar/calendar.js +1 -1
- package/calendar/day.js +2 -2
- package/calendar/header.js +2 -3
- package/calendar/index.js +3 -3
- package/calendar/model.js +1 -1
- package/calendar/month-grid.js +2 -2
- package/calendar/translations.js +1 -1
- package/calendar/year-grid.js +2 -2
- package/cell-input.js +1 -1
- 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/index.js +1 -1
- 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/checkbox/index.js +1 -1
- package/choice-chips/index.js +1 -1
- package/color-palette/built-in-palettes.js +1 -1
- package/color-palette/chart-palettes.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.constants.js +1 -1
- 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 +2 -2
- package/color-palette/gantt-palettes.js +1 -1
- package/color-palette/native.d.ts +15 -2
- package/color-palette/palette.js +1 -1
- package/color-palette/pivot-palettes.js +1 -1
- package/color-palette/platform-palettes.js +1 -1
- package/color-palette/pro-palettes.js +1 -1
- package/color-palette/scheduler-palettes.js +1 -1
- package/component-catalog.d.ts +3 -6
- package/configurator-actions.d.ts +6 -6
- package/configurator-actions.js +1 -1
- package/configurator-aggregation-list.d.ts +1 -1
- package/configurator-aggregation-list.js +19 -17
- package/configurator-drop-zone.d.ts +3 -2
- package/configurator-drop-zone.js +34 -32
- package/configurator-focus.js +1 -1
- package/configurator-sections.d.ts +3 -3
- package/configurator-sections.js +1 -1
- package/control-attributes.js +1 -1
- package/control-presentation.d.ts +8 -2
- package/control-presentation.js +2 -2
- package/controls.d.ts +11 -0
- package/controls.js +4 -4
- package/core/anchored-popover.js +1 -1
- package/core/control-id.js +1 -1
- 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/motion.js +1 -1
- package/{_chunks/popover-controller-D-AvKQ7B.js → core/popover-controller.js} +8 -8
- package/core/selection-list-tooltips.d.ts +2 -0
- package/core/tooltip.d.ts +1 -1
- package/core/top-layer-popup.d.ts +1 -1
- package/core/top-layer-popup.js +1 -1
- package/date-time/attach.d.ts +1 -1
- package/date-time/date-control.d.ts +1 -1
- package/date-time/field.d.ts +4 -2
- package/date-time/index.js +1 -1
- package/date-time/style.scss +206 -46
- package/date-time/time-selection.d.ts +1 -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.drag.js +1 -1
- package/dialog/dialog.parts.d.ts +1 -1
- package/dialog/dialog.parts.js +1 -1
- package/dialog/dialog.preact.js +1 -1
- package/distribution-chart/_distribution-chart.scss +115 -23
- package/distribution-chart/area-chart.js +2 -2
- package/distribution-chart/bar-chart.js +2 -2
- package/distribution-chart/chart-frame.d.ts +1 -1
- package/distribution-chart/index.d.ts +1 -1
- package/distribution-chart/index.js +1 -1
- package/distribution-chart/line-chart.js +2 -2
- package/dropdown/content.js +1 -1
- package/dropdown/control.js +1 -1
- package/dropdown/dropdown.service.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 +3 -3
- package/dropdown/popup.js +1 -1
- package/duration/index.js +1 -1
- package/editor-actions.js +2 -2
- package/editor-layout/index.d.ts +4 -4
- package/editor-layout/index.js +40 -35
- package/editor-layout/style.scss +82 -18
- package/favicon.svg +9 -0
- package/field-configurator.d.ts +22 -3
- package/field-configurator.js +1 -1
- package/field-reorder.hook.js +1 -1
- package/field-reorder.js +1 -1
- package/filter/filters/slider/_single-slider.scss +57 -38
- package/filter/filters/slider/_slider.scss +41 -16
- package/filter/filters/slider/component.js +1 -1
- package/filter/filters/slider/control.js +1 -1
- package/filter/filters/slider/inputs.js +1 -1
- package/filter/filters/slider/logic.js +1 -1
- package/filter/filters/slider/preact.js +1 -1
- package/filter/filters/slider/runtime.js +3 -3
- package/filter/filters/slider/single.js +2 -2
- package/filter-badge.js +2 -2
- package/filter-controls.d.ts +0 -1
- package/filter-controls.js +6 -7
- package/form-controls/index.d.ts +10 -2
- package/form-controls/index.js +3 -3
- package/form-controls/presentation.d.ts +1 -1
- package/form-controls/presentation.js +2 -2
- package/formatting/index.d.ts +1 -1
- package/formatting/index.js +7 -7
- package/formatting/styles.scss +13 -11
- package/framework.js +201 -205
- package/history-controls.js +1 -1
- package/html-controls.js +1 -1
- package/icon-toolbar.d.ts +6 -2
- package/icon-toolbar.js +1 -1
- package/icons/icon.d.ts +1 -1
- package/icons/icon.js +1 -1
- package/legend.d.ts +1 -1
- package/legend.js +1 -1
- package/masked-input/index.js +4 -4
- 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 +35 -35
- package/number-input/index.d.ts +1 -1
- package/number-input/index.js +1 -1
- package/package.json +49 -1
- package/pagination.js +12 -12
- package/pdf-viewer/controller.js +1 -1
- package/pdf-viewer/header.d.ts +1 -1
- package/pdf-viewer/index.d.ts +2 -2
- package/pdf-viewer/index.js +3 -3
- 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/preact-mount.js +1 -1
- package/preact.d.ts +6 -10
- package/preact.js +108 -70
- package/progress/_bar.scss +9 -3
- package/progress/_circular.scss +2 -1
- package/progress/bar.js +1 -1
- package/progress/circular.js +1 -1
- package/progress/range.js +1 -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 +3 -3
- package/react.d.ts +2 -8
- package/react.js +55 -56
- package/reorder-list.d.ts +1 -1
- package/reorder-list.js +1 -1
- package/reorder-list.scss +59 -17
- package/resource-picker/resource-picker-avatar.js +1 -1
- package/resource-picker/resource-picker-option.js +1 -1
- package/resource-picker/resource-picker-popup.js +2 -2
- package/resource-picker/resource-picker.js +74 -72
- package/resource-picker/resource-picker.scss +62 -34
- package/resource-picker/resource-picker.utils.js +1 -1
- package/rich-text/index.js +1 -1
- package/rich-text/style.scss +203 -49
- package/rich-text/toolbar.d.ts +1 -1
- package/robots.txt +4 -0
- package/search-input/index.js +2 -2
- package/search-input/native.d.ts +21 -2
- package/segmented-switch/index.js +1 -1
- package/select.js +1 -1
- package/selection-list.d.ts +1 -0
- package/selection-list.js +3 -1
- package/status-feedback/badge.js +2 -2
- package/status-feedback/exit-snapshot.js +2 -2
- package/status-feedback/header.js +2 -2
- package/status-feedback/icons.js +1 -1
- package/status-feedback/index.js +1 -1
- package/status-feedback/item.js +2 -2
- package/status-feedback/motion.js +1 -1
- package/status-feedback/placement.js +1 -1
- package/status-feedback/popover.js +2 -2
- package/status-feedback/render.js +1 -1
- 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 +399 -79
- 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 +194 -42
- package/styles/_fields-grid.scss +18 -4
- 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 +348 -96
- 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/color-roles.js +1 -1
- package/styles/configurator-actions.scss +126 -26
- 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 +37 -4
- package/surfaces.js +8 -8
- package/svelte/UiComponent.svelte +44 -11
- package/svelte-control.js +1 -1
- package/svelte.d.ts +1 -1
- package/svelte.js +5 -5
- package/switch/index.js +2 -2
- package/time-grid.d.ts +0 -1
- package/time-grid.js +6 -6
- package/timeline-track/_style.scss +96 -24
- package/timeline-track/index.js +3 -3
- package/timeline-track/model.js +1 -1
- package/ui.css +1 -1
- package/view-switcher.d.ts +23 -0
- package/vue-badge.js +1 -1
- package/vue-control.js +1 -1
- package/vue-segmented-switch.js +1 -1
- package/vue.d.ts +5 -23
- package/vue.js +84 -91
- package/_chunks/badge.view-D30pMUfi.js +0 -14
- package/_chunks/chevron-right-sxHQMSkq.js +0 -4
- package/_chunks/dialog.parts-BSbvnEwX.js +0 -134
- package/_chunks/field-configurator-1eQP0tKy.js +0 -223
- package/_chunks/mount-D1i5DLRn.js +0 -266
- package/_shared/data-query/binding.d.ts +0 -30
- package/_shared/data-query/blocks.d.ts +0 -30
- package/_shared/data-query/commands.d.ts +0 -47
- package/_shared/data-query/contracts.d.ts +0 -106
- package/_shared/data-query/cursor-reader.d.ts +0 -25
- package/_shared/data-query/direct-binding.d.ts +0 -3
- package/_shared/data-query/index.d.ts +0 -23
- package/_shared/data-query/infinite-binding.d.ts +0 -18
- package/_shared/data-query/keys.d.ts +0 -9
- package/_shared/data-query/limiter.d.ts +0 -12
- package/_shared/data-query/load-options.d.ts +0 -25
- package/_shared/data-query/materialize.d.ts +0 -2
- package/_shared/data-query/policy.d.ts +0 -14
- package/_shared/data-query/provider-queries.d.ts +0 -22
- package/_shared/data-query/reader.d.ts +0 -23
- package/_shared/data-query/remote-load.d.ts +0 -7
- package/_shared/data-query/source.d.ts +0 -40
- 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 -2
- package/native-controls.view.d.ts +0 -54
- package/search-input/native.view.d.ts +0 -21
- package/styles/legacy-pagination.css +0 -129
- package/surfaces.view.d.ts +0 -33
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
import { c as e } from "./preact.module-BBM36DnO.js";
|
|
2
|
-
import { t } from "./hooks.module-CG3gN83z.js";
|
|
3
|
-
import { t as n } from "./jsxRuntime.module-F6UFnpT-.js";
|
|
4
|
-
import { SvgIcon as r } from "../icons/icon.js";
|
|
5
|
-
import { t as i } from "./native-control-DO0d1kgx.js";
|
|
6
|
-
import { n as a } from "./delete-button-CW9vjLnk.js";
|
|
7
|
-
import { RemoveButton as o } from "../buttons/remove-button.js";
|
|
8
|
-
import { t as s } from "./chevron-right-sxHQMSkq.js";
|
|
9
|
-
import { t as c } from "./tooltip-text-BXsUEmBH.js";
|
|
10
|
-
import { t as l } from "./badge.view-D30pMUfi.js";
|
|
11
|
-
import { DisclosureSummary as u } from "../form-controls/presentation.js";
|
|
12
|
-
//#region ../../node_modules/.pnpm/@fortawesome+fontawesome-free@7.3.1/node_modules/@fortawesome/fontawesome-free/svgs/solid/table-columns.svg?raw
|
|
13
|
-
var d = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Free 7.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2026 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 64l0 256 128 0 0-256-128 0zm320 0l-128 0 0 256 128 0 0-256z\"/></svg>";
|
|
14
|
-
//#endregion
|
|
15
|
-
//#region src/field-expansion.ts
|
|
16
|
-
function f() {
|
|
17
|
-
return {
|
|
18
|
-
known: /* @__PURE__ */ new Set(),
|
|
19
|
-
expanded: /* @__PURE__ */ new Set(),
|
|
20
|
-
collapsed: /* @__PURE__ */ new Set()
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
function p(e, t, n) {
|
|
24
|
-
for (let n of t) e.known.has(n) || (e.known.add(n), e.expanded.add(n));
|
|
25
|
-
return new Set(n ? t : e.expanded);
|
|
26
|
-
}
|
|
27
|
-
function m(e, t) {
|
|
28
|
-
e.expanded = new Set([...t].map(String)), e.collapsed = new Set([...e.known].filter((t) => !e.expanded.has(t)));
|
|
29
|
-
}
|
|
30
|
-
//#endregion
|
|
31
|
-
//#region src/field-configurator.tsx
|
|
32
|
-
function h({ svg: e, className: t = "" }) {
|
|
33
|
-
return /* @__PURE__ */ n(r, {
|
|
34
|
-
svg: e,
|
|
35
|
-
className: `rv-configurator-icon ${t}`
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
function g({ children: e, className: t = "", ...r }) {
|
|
39
|
-
return /* @__PURE__ */ n(u, {
|
|
40
|
-
...r,
|
|
41
|
-
className: `rv-configurator-summary ${t}`,
|
|
42
|
-
iconPosition: "after",
|
|
43
|
-
icon: /* @__PURE__ */ n(h, { svg: s }),
|
|
44
|
-
children: e
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
function _({ title: e, count: t, children: r, className: i = "" }) {
|
|
48
|
-
return /* @__PURE__ */ n("details", {
|
|
49
|
-
class: `rv-configurator-available-fields ${i}`,
|
|
50
|
-
open: !0,
|
|
51
|
-
children: [/* @__PURE__ */ n(g, { children: [e, t != null && /* @__PURE__ */ n("span", {
|
|
52
|
-
class: "rv-configurator-field-count",
|
|
53
|
-
children: t
|
|
54
|
-
})] }), /* @__PURE__ */ n("div", {
|
|
55
|
-
class: "rv-configurator-library-content",
|
|
56
|
-
children: r
|
|
57
|
-
})]
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
function v({ children: e, actions: t, className: r = "" }) {
|
|
61
|
-
return /* @__PURE__ */ n("div", {
|
|
62
|
-
class: `rv-configurator-zone-heading ${r}`,
|
|
63
|
-
children: [/* @__PURE__ */ n("span", {
|
|
64
|
-
class: "rv-configurator-zone-label",
|
|
65
|
-
children: e
|
|
66
|
-
}), t && /* @__PURE__ */ n("span", {
|
|
67
|
-
class: "rv-configurator-zone-actions",
|
|
68
|
-
children: t
|
|
69
|
-
})]
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
function y({ heading: e, actions: t, headingClassName: r, className: i = "", children: a, ...o }) {
|
|
73
|
-
return /* @__PURE__ */ n("section", {
|
|
74
|
-
...o,
|
|
75
|
-
className: `rv-configurator-zone ${i}`,
|
|
76
|
-
children: [/* @__PURE__ */ n(v, {
|
|
77
|
-
className: r,
|
|
78
|
-
actions: t,
|
|
79
|
-
children: e
|
|
80
|
-
}), a]
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
function b({ empty: e, placeholder: t, className: r = "", children: i, ...a }) {
|
|
84
|
-
return /* @__PURE__ */ n("ul", {
|
|
85
|
-
...a,
|
|
86
|
-
className: `rv-configurator-field-list ${e ? "empty" : ""} ${r}`,
|
|
87
|
-
children: e ? /* @__PURE__ */ n("li", {
|
|
88
|
-
className: "rv-configurator-empty-zone empty",
|
|
89
|
-
children: t
|
|
90
|
-
}) : i
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
function x({ className: e = "", children: t, indicator: r, dropPosition: i, ...a }) {
|
|
94
|
-
return /* @__PURE__ */ n("li", {
|
|
95
|
-
...a,
|
|
96
|
-
className: `rv-configurator-field rv-configurator-field-row ${e}`,
|
|
97
|
-
children: [
|
|
98
|
-
r ?? (i && /* @__PURE__ */ n(A, { position: i })),
|
|
99
|
-
/* @__PURE__ */ n("span", {
|
|
100
|
-
className: "rv-configurator-drag-handle",
|
|
101
|
-
"aria-hidden": "true"
|
|
102
|
-
}),
|
|
103
|
-
t
|
|
104
|
-
]
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
function S({ icon: e, children: t, className: r = "" }) {
|
|
108
|
-
return /* @__PURE__ */ n("span", {
|
|
109
|
-
class: `rv-configurator-field-content ${r}`,
|
|
110
|
-
children: [e, /* @__PURE__ */ n("span", {
|
|
111
|
-
class: "rv-configurator-field-caption",
|
|
112
|
-
children: t
|
|
113
|
-
})]
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
function C({ as: t = "div", children: n, className: r = "", ...i }) {
|
|
117
|
-
return e(t, {
|
|
118
|
-
...i,
|
|
119
|
-
class: `rv-configurator-field ${r}`
|
|
120
|
-
}, n);
|
|
121
|
-
}
|
|
122
|
-
function w({ children: e, ...t }) {
|
|
123
|
-
return /* @__PURE__ */ n("div", {
|
|
124
|
-
...t,
|
|
125
|
-
className: `rv-configurator-library-list ${t.className ?? ""}`,
|
|
126
|
-
children: e
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
function T({ label: e, icon: t, actions: r, contentClassName: i, ...a }) {
|
|
130
|
-
return /* @__PURE__ */ n(x, {
|
|
131
|
-
...a,
|
|
132
|
-
children: [/* @__PURE__ */ n(S, {
|
|
133
|
-
className: i,
|
|
134
|
-
icon: t,
|
|
135
|
-
children: e
|
|
136
|
-
}), r]
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
function E({ children: e, className: t = "", ...r }) {
|
|
140
|
-
return /* @__PURE__ */ n("div", {
|
|
141
|
-
...r,
|
|
142
|
-
className: `rv-configurator-field-actions ${t}`,
|
|
143
|
-
children: e
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
function D({ children: e, active: t = !1, label: r, className: i = "" }) {
|
|
147
|
-
return /* @__PURE__ */ n(c, {
|
|
148
|
-
className: `rv-configurator-status-badge ${i}`,
|
|
149
|
-
"data-active": t ? "true" : void 0,
|
|
150
|
-
title: r,
|
|
151
|
-
"aria-label": r,
|
|
152
|
-
children: e
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
function O(e) {
|
|
156
|
-
return /* @__PURE__ */ n(o, {
|
|
157
|
-
...e,
|
|
158
|
-
className: `rv-configurator-remove-button ${e.className ?? ""}`
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
function k() {
|
|
162
|
-
return /* @__PURE__ */ n(r, { svg: a });
|
|
163
|
-
}
|
|
164
|
-
function A({ position: e, index: t, className: r = "" }) {
|
|
165
|
-
return /* @__PURE__ */ n("span", {
|
|
166
|
-
className: `rv-configurator-drop-indicator ${r}`,
|
|
167
|
-
"data-position": e,
|
|
168
|
-
"data-drop-index": t,
|
|
169
|
-
"aria-hidden": "true"
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
function j({ title: e, description: r, defaultOpen: i = !1, children: a, className: o = "", summaryClassName: s = "", contentClassName: c = "", descriptionClassName: l = "", renderRoot: u }) {
|
|
173
|
-
let d = t(i), f = {
|
|
174
|
-
class: `rv-collapsible-section rv-configurator-section ${o}`.trim(),
|
|
175
|
-
open: d.current,
|
|
176
|
-
children: [/* @__PURE__ */ n(g, {
|
|
177
|
-
className: s,
|
|
178
|
-
children: e
|
|
179
|
-
}), /* @__PURE__ */ n("div", {
|
|
180
|
-
class: `rv-collapsible-section__content ${c}`.trim(),
|
|
181
|
-
children: [r && /* @__PURE__ */ n("p", {
|
|
182
|
-
class: `rv-collapsible-section__description ${l}`.trim(),
|
|
183
|
-
children: r
|
|
184
|
-
}), a]
|
|
185
|
-
})]
|
|
186
|
-
};
|
|
187
|
-
return u ? u(f) : /* @__PURE__ */ n("details", { ...f });
|
|
188
|
-
}
|
|
189
|
-
function M({ panelRef: e, standalone: t = !1, children: r, compactItems: a, compact: o = !1, onExpand: s, ...c }) {
|
|
190
|
-
let u = (e) => {
|
|
191
|
-
s?.(), e.onOpen?.();
|
|
192
|
-
};
|
|
193
|
-
return /* @__PURE__ */ n("div", {
|
|
194
|
-
...c,
|
|
195
|
-
ref: e,
|
|
196
|
-
"data-compact": o ? "true" : void 0,
|
|
197
|
-
className: `rv-configurator-panel ${t ? "rv-configurator-panel--standalone" : ""} ${c.className ?? ""}`,
|
|
198
|
-
children: [o && a && /* @__PURE__ */ n("div", {
|
|
199
|
-
className: "rv-configurator-rail",
|
|
200
|
-
role: "group",
|
|
201
|
-
"aria-label": c["aria-label"] ?? "Configurator",
|
|
202
|
-
children: o && a.map((e) => /* @__PURE__ */ n(i, {
|
|
203
|
-
unstyled: !0,
|
|
204
|
-
class: "rv-btn rv-btn-ghost rv-configurator-rail__button",
|
|
205
|
-
"aria-label": `${e.label}${e.count === void 0 ? "" : ` (${e.count})`}`,
|
|
206
|
-
title: `${e.label}${e.count === void 0 ? "" : ` (${e.count})`}`,
|
|
207
|
-
disabled: e.disabled,
|
|
208
|
-
onClick: () => u(e),
|
|
209
|
-
children: [/* @__PURE__ */ n(h, { svg: e.icon ?? "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Free 7.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2026 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 64l0 256 128 0 0-256-128 0zm320 0l-128 0 0 256 128 0 0-256z\"/></svg>" }), e.count !== void 0 && /* @__PURE__ */ n(l, {
|
|
210
|
-
className: "rv-configurator-rail__count",
|
|
211
|
-
variant: e.count ? "accent" : "neutral",
|
|
212
|
-
children: e.count
|
|
213
|
-
})]
|
|
214
|
-
}, e.id))
|
|
215
|
-
}), a ? /* @__PURE__ */ n("div", {
|
|
216
|
-
class: "rv-configurator-panel__content",
|
|
217
|
-
hidden: o,
|
|
218
|
-
children: r
|
|
219
|
-
}) : r]
|
|
220
|
-
});
|
|
221
|
-
}
|
|
222
|
-
//#endregion
|
|
223
|
-
export { d as S, g as _, A as a, p as b, h as c, w as d, b as f, D as g, x as h, S as i, C as l, k as m, M as n, y as o, O as p, E as r, v as s, j as t, _ as u, T as v, m as x, f as y };
|
|
@@ -1,266 +0,0 @@
|
|
|
1
|
-
import { i as e, r as t } from "./preact.module-BBM36DnO.js";
|
|
2
|
-
import { c as n, i as r, t as i } from "./hooks.module-CG3gN83z.js";
|
|
3
|
-
import { E as a, _ as o, a as s, c, i as l, m as u, n as d, o as f, p, r as m, t as h, u as g, v as _, y as v } from "./request-trail-DCOfa5zw.js";
|
|
4
|
-
import { t as y } from "./jsxRuntime.module-F6UFnpT-.js";
|
|
5
|
-
import { n as b } from "./popup-UXGCiv3n.js";
|
|
6
|
-
import { t as x } from "./controls-BLQnWEd7.js";
|
|
7
|
-
import { HistoryControls as S } from "../history-controls.js";
|
|
8
|
-
import { n as C } from "./render-m5eMMwFR.js";
|
|
9
|
-
//#region src/ai/transcript.ts
|
|
10
|
-
var w = (e) => new TextEncoder().encode(JSON.stringify(e)).byteLength, T = (e) => {
|
|
11
|
-
if (!e) return "";
|
|
12
|
-
if (w(e) <= 16384) return e;
|
|
13
|
-
let t = 0, n = Math.min(e.length, 16384);
|
|
14
|
-
for (; t < n;) {
|
|
15
|
-
let r = Math.ceil((t + n) / 2);
|
|
16
|
-
w(e.slice(0, r) + "…") <= 16384 ? t = r : n = r - 1;
|
|
17
|
-
}
|
|
18
|
-
return /[\uD800-\uDBFF]/.test(e.charAt(t - 1)) && t--, e.slice(0, t) + "…";
|
|
19
|
-
}, E = class {
|
|
20
|
-
messages = [];
|
|
21
|
-
epoch = 0;
|
|
22
|
-
initialized = !1;
|
|
23
|
-
requestId;
|
|
24
|
-
ignoredRequest;
|
|
25
|
-
currentId;
|
|
26
|
-
active = !1;
|
|
27
|
-
lastPhase;
|
|
28
|
-
key = "";
|
|
29
|
-
sequence = 0;
|
|
30
|
-
update(e) {
|
|
31
|
-
if (this.initialized ||= (this.epoch = e.chatKey ?? 0, !0), (e.chatKey ?? 0) !== this.epoch) {
|
|
32
|
-
this.epoch = e.chatKey ?? 0, this.messages = [], this.requestId = void 0, this.ignoredRequest = e.request?.id, this.currentId = void 0, this.active = !1, this.key = "", this.lastPhase = void 0;
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
if (e.phase === "idle" || e.request?.id === this.ignoredRequest && this.ignoredRequest !== void 0) return;
|
|
36
|
-
let t = e.request, n = !!t && t.id !== this.requestId, r = e.phase === "completed" && e.result && w(e.result) <= 16384 ? structuredClone(e.result) : void 0, i = {
|
|
37
|
-
text: T(e.message),
|
|
38
|
-
phase: e.phase,
|
|
39
|
-
details: e.phase === "completed" && !r && e.resultDetails ? T(e.resultDetails) : void 0,
|
|
40
|
-
pending: !!e.pendingAction,
|
|
41
|
-
result: r
|
|
42
|
-
}, a = JSON.stringify([t?.id, i]);
|
|
43
|
-
if (!n && a === this.key || !n && !i.text && !i.pending) return;
|
|
44
|
-
let o = this.messages.find((e) => e.id === this.currentId), s = this.lastPhase === "completed" && e.phase === "understanding" && o?.from === "assistant", c = o?.from === "system" && o.phase === "completed" && (e.phase === "applying" || e.phase === "completed");
|
|
45
|
-
if (n) {
|
|
46
|
-
this.requestId = t.id, this.ignoredRequest = void 0;
|
|
47
|
-
let e = "turn:" + ++this.sequence;
|
|
48
|
-
this.currentId = e + ":assistant", this.messages = [
|
|
49
|
-
...this.messages,
|
|
50
|
-
{
|
|
51
|
-
id: e + ":user",
|
|
52
|
-
group: e,
|
|
53
|
-
from: "user",
|
|
54
|
-
text: T(t.prompt)
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
id: this.currentId,
|
|
58
|
-
group: e,
|
|
59
|
-
from: "assistant",
|
|
60
|
-
...i
|
|
61
|
-
}
|
|
62
|
-
];
|
|
63
|
-
} else if ((this.active || s || c) && o) this.messages = this.messages.map((e) => e.id === this.currentId ? {
|
|
64
|
-
...e,
|
|
65
|
-
...i
|
|
66
|
-
} : e);
|
|
67
|
-
else {
|
|
68
|
-
let e = "system:" + ++this.sequence;
|
|
69
|
-
this.currentId = e, this.messages = [...this.messages, {
|
|
70
|
-
id: e,
|
|
71
|
-
group: e,
|
|
72
|
-
from: "system",
|
|
73
|
-
...i
|
|
74
|
-
}];
|
|
75
|
-
}
|
|
76
|
-
for (this.active = e.phase === "understanding" || e.phase === "applying" || !!e.pendingAction, this.lastPhase = e.phase, this.key = a; this.messages.length > 50 || w(this.messages) > 65536;) {
|
|
77
|
-
let e = this.messages[0].group;
|
|
78
|
-
this.messages = this.messages.filter((t) => t.group !== e);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
clear() {
|
|
82
|
-
this.messages = [], this.requestId = void 0, this.currentId = void 0, this.active = !1, this.key = "";
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
//#endregion
|
|
86
|
-
//#region src/ai/mount.tsx
|
|
87
|
-
function D(w, T) {
|
|
88
|
-
let D = (e) => a(e, T.translations), O = !1, k = T.suggestions ?? [], A, j = _(T.promptHistory?.items ?? []), M = new E(), N = T.mode === "chat", P = [], F = 0, I = !1, L = "";
|
|
89
|
-
function R(e) {
|
|
90
|
-
if (e.phase === "idle" || !e.message || e.pendingAction) return;
|
|
91
|
-
let t = e.phase === "understanding" || e.phase === "applying", n = JSON.stringify([
|
|
92
|
-
e.phase,
|
|
93
|
-
e.message,
|
|
94
|
-
e.matchedRows,
|
|
95
|
-
e.resultDetails
|
|
96
|
-
]);
|
|
97
|
-
if (n === L) return;
|
|
98
|
-
let r = P.at(-1), i = {
|
|
99
|
-
id: I && r ? r.id : String(++F),
|
|
100
|
-
title: e.message,
|
|
101
|
-
busy: t,
|
|
102
|
-
tone: e.phase === "error" ? "danger" : e.phase === "completed" ? "success" : "neutral",
|
|
103
|
-
description: e.phase === "completed" && e.matchedRows !== void 0 ? T.countLabel?.(e.matchedRows) ?? D("{count} matching rows").replace("{count}", e.matchedRows.toLocaleString()) : void 0,
|
|
104
|
-
detail: e.phase === "completed" && !e.result ? e.resultDetails : void 0
|
|
105
|
-
};
|
|
106
|
-
P = [...I && r ? P.slice(0, -1) : P, i].slice(-50), I = t, L = n;
|
|
107
|
-
}
|
|
108
|
-
function z({ state: t }) {
|
|
109
|
-
let [a, E] = r(""), [O, A] = r(j), [F, I] = r(!1), L = i();
|
|
110
|
-
n(() => {
|
|
111
|
-
E(""), L.current = void 0;
|
|
112
|
-
}, [t.chatKey]);
|
|
113
|
-
let R = t.phase === "understanding" || t.phase === "applying", z = !!t.pendingAction, V = t.steps ?? [], H = i(!1);
|
|
114
|
-
n(() => {
|
|
115
|
-
H.current && !z && !R && w.querySelector("textarea")?.focus(), H.current = z || R && H.current;
|
|
116
|
-
}, [z, R]), n(() => {
|
|
117
|
-
if (R || z || t.phase === "idle" || L.current === void 0) return;
|
|
118
|
-
let e = L.current;
|
|
119
|
-
L.current = void 0, t.phase === "completed" && E((t) => t.trim() === e ? "" : t);
|
|
120
|
-
}, [t]);
|
|
121
|
-
let U = (e) => {
|
|
122
|
-
L.current = e.trim(), T.promptHistory && (j = _([...j, e]), A(j), T.promptHistory.onChange?.([...j])), T.onSubmit(e);
|
|
123
|
-
}, W = /* @__PURE__ */ y(o, {
|
|
124
|
-
items: t.choices?.length ? t.choices : t.suggestions?.length ? t.suggestions : k,
|
|
125
|
-
onSelect: (e) => {
|
|
126
|
-
R || z || (E(e), U(e));
|
|
127
|
-
},
|
|
128
|
-
disabled: R || z
|
|
129
|
-
}), G = /* @__PURE__ */ y(m, {
|
|
130
|
-
label: T.prompt?.label ?? "Ask AI to change this view",
|
|
131
|
-
...T.prompt,
|
|
132
|
-
value: a,
|
|
133
|
-
onValueChange: E,
|
|
134
|
-
onSubmit: U,
|
|
135
|
-
onStop: T.onStop,
|
|
136
|
-
busy: R,
|
|
137
|
-
promptHistory: T.promptHistory ? O : void 0,
|
|
138
|
-
disabled: z,
|
|
139
|
-
hint: V.length ? "" : T.prompt?.hint,
|
|
140
|
-
footer: W,
|
|
141
|
-
actions: /* @__PURE__ */ y(h, {
|
|
142
|
-
...T.trail,
|
|
143
|
-
items: V,
|
|
144
|
-
onRemove: (e) => T.onRemoveStep?.(e),
|
|
145
|
-
onClear: T.onReset,
|
|
146
|
-
onEmpty: () => w.querySelector("textarea")?.focus(),
|
|
147
|
-
disabled: R || z,
|
|
148
|
-
removalsDisabled: !T.onRemoveStep || t.canEditSteps === !1,
|
|
149
|
-
clearDescription: T.trail?.clearDescription ?? "Restore the starting view",
|
|
150
|
-
clearLabel: T.trail?.clearLabel ?? T.resetLabel ?? "Clear all",
|
|
151
|
-
changedMessage: !R && V.length > 0 && t.canEditSteps === !1 ? T.trail?.changedMessage ?? "The view changed manually. Start a new request to continue." : void 0
|
|
152
|
-
})
|
|
153
|
-
}), K = t.pendingAction && /* @__PURE__ */ y(u, {
|
|
154
|
-
...t.pendingAction,
|
|
155
|
-
disabled: R || !T.onApplyAction,
|
|
156
|
-
onApply: () => T.onApplyAction?.(),
|
|
157
|
-
onCancel: () => T.onCancelAction?.()
|
|
158
|
-
}), q = /* @__PURE__ */ y("div", {
|
|
159
|
-
class: "rv-ai-result-actions",
|
|
160
|
-
children: [
|
|
161
|
-
(T.onUndoData || T.onRedoData) && /* @__PURE__ */ y(S, {
|
|
162
|
-
onUndo: T.onUndoData,
|
|
163
|
-
onRedo: T.onRedoData,
|
|
164
|
-
canUndo: !R && !z && !!t.canUndoData,
|
|
165
|
-
canRedo: !R && !z && !!t.canRedoData,
|
|
166
|
-
undoLabel: D("Undo data change"),
|
|
167
|
-
redoLabel: D("Redo data change"),
|
|
168
|
-
label: D("Data history")
|
|
169
|
-
}),
|
|
170
|
-
/* @__PURE__ */ y(x, {
|
|
171
|
-
disabled: R || z || !t.canRestore,
|
|
172
|
-
onClick: T.onRestore,
|
|
173
|
-
size: "compact",
|
|
174
|
-
children: D(T.restoreLabel ?? "Restore previous view")
|
|
175
|
-
}),
|
|
176
|
-
!V.length && /* @__PURE__ */ y(x, {
|
|
177
|
-
disabled: R || z,
|
|
178
|
-
onClick: T.onReset,
|
|
179
|
-
size: "compact",
|
|
180
|
-
variant: "ghost",
|
|
181
|
-
children: D(T.resetLabel ?? "Reset view")
|
|
182
|
-
}),
|
|
183
|
-
N && T.showClearChat !== !1 && /* @__PURE__ */ y(x, {
|
|
184
|
-
size: "compact",
|
|
185
|
-
variant: "ghost",
|
|
186
|
-
disabled: R || z || !T.onClearChat || !M.messages.length,
|
|
187
|
-
onClick: () => T.onClearChat?.(),
|
|
188
|
-
children: D("Clear chat")
|
|
189
|
-
})
|
|
190
|
-
]
|
|
191
|
-
}), J = T.showHistoryControls === !1 ? null : T.controlsMountTo ? b(q, T.controlsMountTo) : q;
|
|
192
|
-
return /* @__PURE__ */ y(p, {
|
|
193
|
-
layout: T.layout,
|
|
194
|
-
translations: T.translations,
|
|
195
|
-
label: T.label,
|
|
196
|
-
busy: R,
|
|
197
|
-
footer: T.footer,
|
|
198
|
-
children: N ? /* @__PURE__ */ y(d, {
|
|
199
|
-
className: "rv-ai-mounted-chat",
|
|
200
|
-
children: [
|
|
201
|
-
/* @__PURE__ */ y(l, {
|
|
202
|
-
busy: R,
|
|
203
|
-
children: [!M.messages.length && T.emptyState && /* @__PURE__ */ y(s, { ...T.emptyState }), M.messages.map((e) => /* @__PURE__ */ y(f, {
|
|
204
|
-
from: e.from,
|
|
205
|
-
isStreaming: e.phase === "understanding" || e.phase === "applying",
|
|
206
|
-
children: [
|
|
207
|
-
e.from === "user" ? /* @__PURE__ */ y(c, { children: e.text }) : e.phase === "preview" && e.pending && e.id === M.messages.at(-1)?.id && t.pendingAction ? null : /* @__PURE__ */ y(c, { children: e.phase === "understanding" || e.phase === "applying" || e.phase === "error" || e.phase === "cancelled" ? /* @__PURE__ */ y(g, {
|
|
208
|
-
title: e.text,
|
|
209
|
-
status: e.phase === "understanding" || e.phase === "applying" ? "running" : e.phase === "error" ? "error" : "cancelled"
|
|
210
|
-
}) : e.text }),
|
|
211
|
-
e.result ? /* @__PURE__ */ y(v, {
|
|
212
|
-
result: e.result,
|
|
213
|
-
renderTable: T.renderTable
|
|
214
|
-
}) : e.details && /* @__PURE__ */ y("pre", {
|
|
215
|
-
class: "rv-ai-chat-result",
|
|
216
|
-
children: e.details
|
|
217
|
-
}),
|
|
218
|
-
e.id === M.messages.at(-1)?.id && e.pending && K
|
|
219
|
-
]
|
|
220
|
-
}, e.id))]
|
|
221
|
-
}),
|
|
222
|
-
G,
|
|
223
|
-
J
|
|
224
|
-
]
|
|
225
|
-
}) : /* @__PURE__ */ y(e, { children: [
|
|
226
|
-
G,
|
|
227
|
-
K,
|
|
228
|
-
t.phase === "completed" && t.result && /* @__PURE__ */ y(v, {
|
|
229
|
-
result: t.result,
|
|
230
|
-
renderTable: T.renderTable
|
|
231
|
-
}),
|
|
232
|
-
!!P.length && /* @__PURE__ */ y(C, {
|
|
233
|
-
className: "rv-ai-activity",
|
|
234
|
-
title: D("Activity"),
|
|
235
|
-
compact: !0,
|
|
236
|
-
autoDismissMs: T.activityDurationMs,
|
|
237
|
-
onDismissItem: (e) => {
|
|
238
|
-
P = P.filter((t) => t.id !== e), B();
|
|
239
|
-
},
|
|
240
|
-
collapsed: F,
|
|
241
|
-
onCollapsedChange: I,
|
|
242
|
-
collapseLabel: D("Collapse activity"),
|
|
243
|
-
expandLabel: D("Expand activity"),
|
|
244
|
-
items: P
|
|
245
|
-
}),
|
|
246
|
-
J
|
|
247
|
-
] })
|
|
248
|
-
});
|
|
249
|
-
}
|
|
250
|
-
let B = () => {
|
|
251
|
-
!O && A && t(/* @__PURE__ */ y(z, { state: A }), w);
|
|
252
|
-
};
|
|
253
|
-
return {
|
|
254
|
-
update(e) {
|
|
255
|
-
N ? M.update(e) : R(e), A = e, B();
|
|
256
|
-
},
|
|
257
|
-
setSuggestions(e) {
|
|
258
|
-
k = [...e], B();
|
|
259
|
-
},
|
|
260
|
-
destroy() {
|
|
261
|
-
O || (O = !0, j = [], M.clear(), t(null, w));
|
|
262
|
-
}
|
|
263
|
-
};
|
|
264
|
-
}
|
|
265
|
-
//#endregion
|
|
266
|
-
export { D as t };
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { QueryObserverOptions } from '@tanstack/query-core';
|
|
2
|
-
import type { ReadBinding, ReadIntent, ReadPort, ReadProvider } from './contracts.js';
|
|
3
|
-
import type { DataQueryScope, ReadValue } from './source.js';
|
|
4
|
-
import { type NativeReadOptions } from './load-options.js';
|
|
5
|
-
export interface QueryRead<Request, Result> {
|
|
6
|
-
readonly source: DataQueryScope;
|
|
7
|
-
readonly resource: string;
|
|
8
|
-
readonly operation: string;
|
|
9
|
-
/** Semantic request only: no AbortSignal, transport request ID or component ID. */
|
|
10
|
-
readonly request: Request;
|
|
11
|
-
readonly read: ReadProvider<Request, Result>;
|
|
12
|
-
readonly observerOptions?: NativeReadOptions;
|
|
13
|
-
/** Product-owned bounded transport copying; omit for structured cloning. */
|
|
14
|
-
readonly materialize?: (data: Result) => Result;
|
|
15
|
-
}
|
|
16
|
-
export interface BindingOptions<Result> {
|
|
17
|
-
/** Explicitly fetch before delivering cached data, independently of mount/freshness policy. */
|
|
18
|
-
readonly force?: boolean;
|
|
19
|
-
readonly port: ReadPort<Result>;
|
|
20
|
-
/** Default structuredClone supports cloneable transport data, including nested values. */
|
|
21
|
-
readonly materialize?: (data: Result) => Result;
|
|
22
|
-
/** Optional product revision/completeness check; returning false suppresses hydration. */
|
|
23
|
-
readonly canHydrate?: (data: Result) => boolean;
|
|
24
|
-
}
|
|
25
|
-
export declare function claimReadOwner(owner: object): () => void;
|
|
26
|
-
export declare function observerPolicy<FnData, Data = FnData>(source: DataQueryScope, options?: NativeReadOptions): Pick<QueryObserverOptions<FnData, unknown, Data, Data>, keyof NativeReadOptions | 'placeholderData' | 'initialData' | 'select' | 'notifyOnChangeProps'>;
|
|
27
|
-
export declare function queryOptions<Request, Result>(definition: QueryRead<Request, Result>): QueryObserverOptions<ReadValue<Result>, unknown>;
|
|
28
|
-
export declare function bindQuery<Request, Result>(initial: QueryRead<Request, Result>, options: BindingOptions<Result>): ReadBinding<QueryRead<Request, Result>>;
|
|
29
|
-
/** Connect a product-owned request subscription; dispose stops only this subscription. */
|
|
30
|
-
export declare function bindQueryIntent<Request, Result>(intent: ReadIntent<Request>, describe: (request: Request) => QueryRead<Request, Result>, options: BindingOptions<Result>): ReadBinding<QueryRead<Request, Result>>;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { RemoteBlockController, RemoteBlockPort } from './contracts.js';
|
|
2
|
-
import type { ReadProvider, ReadStatus } from './contracts.js';
|
|
3
|
-
import type { DataQueryScope } from './source.js';
|
|
4
|
-
import type { NativeReadOptions } from './load-options.js';
|
|
5
|
-
/** Providers must order offsets deterministically, with a unique tie-breaker. */
|
|
6
|
-
export type BlockConsistency<Result> = {
|
|
7
|
-
readonly mode: 'eventual';
|
|
8
|
-
readonly reload: 'sequence' | 'route';
|
|
9
|
-
} | {
|
|
10
|
-
readonly mode: 'snapshot';
|
|
11
|
-
readonly revision: string;
|
|
12
|
-
readonly getRevision: (result: Result) => string;
|
|
13
|
-
};
|
|
14
|
-
export interface BlockQueryOptions<Request, Result> {
|
|
15
|
-
readonly source?: DataQueryScope;
|
|
16
|
-
/** Internal uncached transport mode; no QueryClient or observers. */
|
|
17
|
-
readonly uncached?: boolean;
|
|
18
|
-
readonly concurrency?: number;
|
|
19
|
-
readonly read: ReadProvider<Request, Result>;
|
|
20
|
-
readonly consistency: BlockConsistency<Result>;
|
|
21
|
-
readonly resource?: string;
|
|
22
|
-
readonly observerOptions?: NativeReadOptions;
|
|
23
|
-
/** Semantic key normalization only. The provider still receives its original typed request. */
|
|
24
|
-
readonly keyRequest?: (request: Request) => unknown;
|
|
25
|
-
/** Application-owned pending proposals, applied only to detached data. */
|
|
26
|
-
readonly reconcile?: (result: Result, request: Request) => Result;
|
|
27
|
-
readonly onStatus?: (request: Request, status: ReadStatus) => void;
|
|
28
|
-
}
|
|
29
|
-
/** Subscription registry: cached reads use Query; bypass keeps only live operations. */
|
|
30
|
-
export declare function createBlockQueries<Request, Result>(port: RemoteBlockPort<Request, Result>, options: BlockQueryOptions<Request, Result>, operation: string): RemoteBlockController<Request>;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import type { CommandEnvelope, CommandReceipt } from './contracts.js';
|
|
2
|
-
export type CommandProvider<Command, Changes, Revision = string, Conflict = Changes> = (envelope: CommandEnvelope<Command, Revision>, context: {
|
|
3
|
-
readonly signal: AbortSignal;
|
|
4
|
-
}) => CommandReceipt<Changes, Revision, Conflict> | Promise<CommandReceipt<Changes, Revision, Conflict>>;
|
|
5
|
-
export interface CommandState<Changes, Revision = string, Conflict = Changes> {
|
|
6
|
-
readonly status: 'idle' | 'submitting' | 'recovering' | 'accepted' | 'rejected' | 'conflict' | 'unknown' | 'disposed';
|
|
7
|
-
readonly attempt: number;
|
|
8
|
-
readonly receipt?: CommandReceipt<Changes, Revision, Conflict>;
|
|
9
|
-
/** Local application/refetch errors never change a definitive server receipt. */
|
|
10
|
-
readonly error?: unknown;
|
|
11
|
-
}
|
|
12
|
-
/** Write policy and domain hooks.
|
|
13
|
-
* @see https://pro.rv-grid.com/guides/server-data-commands/#configuration-types
|
|
14
|
-
*/
|
|
15
|
-
export interface CommandOptions<Command, Changes, Revision = string, Conflict = Changes> {
|
|
16
|
-
/** Restore a previously submitted envelope as unknown; execute() must not resubmit it. */
|
|
17
|
-
readonly resume?: boolean;
|
|
18
|
-
readonly submit: CommandProvider<Command, Changes, Revision, Conflict>;
|
|
19
|
-
/** Read a durable receipt by operation ID. Never resubmit from this callback. */
|
|
20
|
-
readonly recover?: CommandProvider<Command, Changes, Revision, Conflict>;
|
|
21
|
-
/** Explicit backend guarantee: identical operation IDs/payloads cannot execute twice. */
|
|
22
|
-
readonly idempotent?: boolean;
|
|
23
|
-
/** Validate product-specific revision, completeness and canonical-change semantics. */
|
|
24
|
-
readonly validateReceipt?: (receipt: CommandReceipt<Changes, Revision, Conflict>) => boolean;
|
|
25
|
-
/** Apply canonical changes atomically; domain pending/history state remains product-owned. */
|
|
26
|
-
readonly applyAccepted?: (changes: Changes, receipt: CommandReceipt<Changes, Revision, Conflict>) => void | Promise<void>;
|
|
27
|
-
readonly source?: {
|
|
28
|
-
accepted(): Promise<void>;
|
|
29
|
-
};
|
|
30
|
-
readonly onStatus?: (state: CommandState<Changes, Revision, Conflict>) => void;
|
|
31
|
-
}
|
|
32
|
-
export interface CommandExecution<Command, Changes, Revision = string, Conflict = Changes> {
|
|
33
|
-
/** A detached snapshot. Mutating it cannot change a submitted command. */
|
|
34
|
-
readonly envelope: CommandEnvelope<Command, Revision>;
|
|
35
|
-
getState(): CommandState<Changes, Revision, Conflict>;
|
|
36
|
-
execute(): Promise<CommandReceipt<Changes, Revision, Conflict>>;
|
|
37
|
-
recover(): Promise<CommandReceipt<Changes, Revision, Conflict>>;
|
|
38
|
-
retry(): Promise<CommandReceipt<Changes, Revision, Conflict>>;
|
|
39
|
-
/** Retry local canonical application/refetch after acceptance, without another write. */
|
|
40
|
-
reconcile(): Promise<void>;
|
|
41
|
-
cancel(): void;
|
|
42
|
-
dispose(): void;
|
|
43
|
-
}
|
|
44
|
-
/** One logical write. Keep this handle for recovery/retry; backend receipts provide durability.
|
|
45
|
-
* @see https://pro.rv-grid.com/guides/server-data-commands/
|
|
46
|
-
*/
|
|
47
|
-
export declare function createCommandExecution<Command, Changes, Revision = string, Conflict = Changes>(envelope: CommandEnvelope<Command, Revision>, options: CommandOptions<Command, Changes, Revision, Conflict>): CommandExecution<Command, Changes, Revision, Conflict>;
|