@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
|
@@ -58,8 +58,11 @@
|
|
|
58
58
|
height: 14px;
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
.rv-format-color-picker__trigger-swatch--empty
|
|
62
|
-
.rv-format-color-
|
|
61
|
+
.rv-format-color-picker__trigger-swatch--empty
|
|
62
|
+
.rv-format-color-picker__empty-icon,
|
|
63
|
+
.rv-format-color-picker__trigger-swatch--empty
|
|
64
|
+
.rv-format-color-picker__empty-icon
|
|
65
|
+
svg {
|
|
63
66
|
display: inline-flex;
|
|
64
67
|
}
|
|
65
68
|
|
|
@@ -86,14 +89,18 @@
|
|
|
86
89
|
max-height: calc(100dvh - 24px);
|
|
87
90
|
margin: 6px 0 0;
|
|
88
91
|
padding: 12px;
|
|
89
|
-
border: 1px solid
|
|
92
|
+
border: 1px solid
|
|
93
|
+
var(--rv-format-divider, var(--rv-dialog-border, var(--rv-ui-border)));
|
|
90
94
|
border-radius: 10px;
|
|
91
95
|
background: var(--rv-dialog-bg, var(--rv-ui-surface-elevated));
|
|
92
96
|
color: var(--rv-dialog-color, var(--rv-ui-text));
|
|
93
97
|
box-shadow: 0 16px 36px var(--rv-ui-shadow);
|
|
94
98
|
overflow: auto;
|
|
95
99
|
scrollbar-gutter: stable;
|
|
96
|
-
position-try-fallbacks:
|
|
100
|
+
position-try-fallbacks:
|
|
101
|
+
flip-block,
|
|
102
|
+
flip-inline,
|
|
103
|
+
flip-block flip-inline;
|
|
97
104
|
}
|
|
98
105
|
|
|
99
106
|
.rv-format-color-picker__custom-action {
|
|
@@ -106,7 +113,8 @@
|
|
|
106
113
|
margin: 12px -12px -12px;
|
|
107
114
|
padding: 9px 12px;
|
|
108
115
|
border: 0;
|
|
109
|
-
border-top: 1px solid
|
|
116
|
+
border-top: 1px solid
|
|
117
|
+
var(--rv-format-divider, var(--rv-dialog-border, var(--rv-ui-border)));
|
|
110
118
|
border-radius: 0 0 10px 10px;
|
|
111
119
|
background: transparent;
|
|
112
120
|
color: var(--rv-ui-accent-text, var(--rv-ui-accent));
|
|
@@ -166,26 +174,31 @@
|
|
|
166
174
|
.rv-format-color-picker__custom-action:disabled,
|
|
167
175
|
.rv-format-color-picker__native:disabled {
|
|
168
176
|
cursor: default;
|
|
169
|
-
opacity: .55;
|
|
177
|
+
opacity: 0.55;
|
|
170
178
|
}
|
|
171
179
|
|
|
172
180
|
.rv-format-color-picker__custom-controls[data-selection-only] {
|
|
173
181
|
grid-template-columns: minmax(0, 1fr);
|
|
174
182
|
}
|
|
175
183
|
|
|
176
|
-
.rv-format-color-picker__custom-controls[data-selection-only]
|
|
184
|
+
.rv-format-color-picker__custom-controls[data-selection-only]
|
|
185
|
+
.rv-format-color-picker__native {
|
|
177
186
|
width: 100%;
|
|
178
187
|
}
|
|
179
188
|
|
|
180
189
|
@media (max-width: 520px) {
|
|
181
|
-
.rv-format-color-picker__popover {
|
|
190
|
+
.rv-format-color-picker__popover {
|
|
191
|
+
min-width: 258px;
|
|
192
|
+
}
|
|
182
193
|
}
|
|
183
194
|
|
|
184
195
|
.rv-format-color-picker__trigger,
|
|
185
196
|
.rv-format-color-picker__custom-action {
|
|
186
197
|
transition:
|
|
187
|
-
background-color var(--rv-ui-motion-fast, 120ms)
|
|
188
|
-
|
|
198
|
+
background-color var(--rv-ui-motion-fast, 120ms)
|
|
199
|
+
var(--rv-ui-motion-ease, ease-out),
|
|
200
|
+
border-color var(--rv-ui-motion-fast, 120ms)
|
|
201
|
+
var(--rv-ui-motion-ease, ease-out),
|
|
189
202
|
opacity var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, ease-out);
|
|
190
203
|
}
|
|
191
204
|
|
|
@@ -737,5 +737,5 @@ export declare const commonPalettes: readonly [{
|
|
|
737
737
|
readonly colors: {
|
|
738
738
|
[k: string]: "linear-gradient(135deg, #7dd3fc, #2563eb)" | "linear-gradient(135deg, #facc15, #b45309)" | "linear-gradient(135deg, #f9a8d4, #be185d)" | "linear-gradient(135deg, #a5b4fc, #4f46e5)" | "linear-gradient(135deg, #86efac, #15803d)" | "linear-gradient(135deg, #fda4af, #be123c)" | "linear-gradient(135deg, #c4b5fd, #7c3aed)" | "linear-gradient(135deg, #fdba74, #c2410c)";
|
|
739
739
|
};
|
|
740
|
-
readonly consumers: readonly ["packages/ui/src/avatar/index.
|
|
740
|
+
readonly consumers: readonly ["packages/ui/src/avatar/index.tsx", "packages/ui/src/avatar/avatar.style.scss"];
|
|
741
741
|
}];
|
|
@@ -380,7 +380,7 @@ var e = {
|
|
|
380
380
|
title: "Avatar backgrounds",
|
|
381
381
|
usage: "Indexed avatar gradients shared by runtime background helpers and avatar styles.",
|
|
382
382
|
colors: Object.fromEntries(t.map((e, t) => [String(t), e])),
|
|
383
|
-
consumers: ["packages/ui/src/avatar/index.
|
|
383
|
+
consumers: ["packages/ui/src/avatar/index.tsx", "packages/ui/src/avatar/avatar.style.scss"]
|
|
384
384
|
}];
|
|
385
385
|
//#endregion
|
|
386
386
|
export { t as AVATAR_CELL_BACKGROUNDS, e as commonColors, n as commonPalettes };
|
|
@@ -1,2 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export interface NativeColorPickerProps {
|
|
2
|
+
label: string;
|
|
3
|
+
value?: string;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
optional?: boolean;
|
|
6
|
+
defaultLabel: string;
|
|
7
|
+
customLabel: string;
|
|
8
|
+
invalidColor?: string;
|
|
9
|
+
colorLabels: Readonly<Record<string, string>>;
|
|
10
|
+
onChange(value: string | undefined): void;
|
|
11
|
+
}
|
|
12
|
+
/** Native mount API; palette markup and interaction belong to ColorPicker. */
|
|
13
|
+
export declare function mountColorPicker(host: HTMLElement, props: NativeColorPickerProps): {
|
|
14
|
+
destroy(): void;
|
|
15
|
+
};
|
package/component-catalog.d.ts
CHANGED
|
@@ -1,24 +1,34 @@
|
|
|
1
|
+
import { LookupField } from './dropdown/lookup-field';
|
|
1
2
|
import { NumberDraft as PreactNumberDraft } from './number-input/index';
|
|
2
3
|
import { MaskedDraft as PreactMaskedDraft } from './masked-input/index';
|
|
3
4
|
import { DurationField as PreactDurationField, DurationDraft as PreactDurationDraft } from './duration/index';
|
|
4
|
-
import {
|
|
5
|
+
import { HtmlEditor as PreactHtmlEditor } from './rich-text/index';
|
|
5
6
|
import { TemporalPicker as PreactTemporalPicker, TemporalDraft as PreactTemporalDraft, DateTimeField as PreactDateTimeField } from './date-time/index';
|
|
6
7
|
import { AssigneePicker as PreactAssigneePicker, AssigneeField as PreactAssigneeField, AssigneePickerLayout as PreactAssigneePickerLayout } from './assignee/index';
|
|
7
8
|
import * as ui from './preact';
|
|
8
9
|
export declare const uiComponents: {
|
|
10
|
+
readonly AiChat: typeof ui.AiChat;
|
|
11
|
+
readonly AiChatContent: typeof ui.AiChatContent;
|
|
12
|
+
readonly AiChatComposer: typeof ui.AiChatComposer;
|
|
13
|
+
readonly AiChatEmptyState: typeof ui.AiChatEmptyState;
|
|
14
|
+
readonly AiMessage: typeof ui.AiMessage;
|
|
15
|
+
readonly AiMessageContent: typeof ui.AiMessageContent;
|
|
16
|
+
readonly AiMessageActions: typeof ui.AiMessageActions;
|
|
17
|
+
readonly AiReasoning: typeof ui.AiReasoning;
|
|
18
|
+
readonly AiTask: typeof ui.AiTask;
|
|
19
|
+
readonly AiTaskItem: typeof ui.AiTaskItem;
|
|
9
20
|
readonly AiPromptInput: typeof ui.AiPromptInput;
|
|
10
21
|
readonly AiSuggestions: typeof ui.AiSuggestions;
|
|
11
22
|
readonly AiActionStatus: typeof ui.AiActionStatus;
|
|
12
23
|
readonly AiResult: typeof ui.AiResult;
|
|
24
|
+
readonly AiResultView: typeof ui.AiResultView;
|
|
25
|
+
readonly AiResultTable: typeof ui.AiResultTable;
|
|
26
|
+
readonly AiResultMetrics: typeof ui.AiResultMetrics;
|
|
27
|
+
readonly AiResultText: typeof ui.AiResultText;
|
|
28
|
+
readonly AiChangePreview: typeof ui.AiChangePreview;
|
|
13
29
|
readonly AiAssistant: typeof ui.AiAssistant;
|
|
14
30
|
readonly AiRequestTrail: typeof ui.AiRequestTrail;
|
|
15
|
-
readonly
|
|
16
|
-
readonly RemovableChip: typeof ui.FilterChip;
|
|
17
|
-
readonly Slider: typeof ui.SingleValueSlider;
|
|
18
|
-
readonly RangeSlider: typeof ui.PreactRangeSlider;
|
|
19
|
-
readonly ResourcePicker: typeof ui.SharedResourcePicker;
|
|
20
|
-
readonly FeedbackPanel: typeof ui.StatusFeedbackPanel;
|
|
21
|
-
readonly Input: import('./_vendor/preact/src/index').FunctionalComponent<import('./_vendor/preact/compat/src/index').PropsWithoutRef<Omit<import("./_vendor/preact/src/index").JSX.InputHTMLAttributes<HTMLInputElement>, "className" | "class" | "ref"> & {
|
|
31
|
+
readonly Input: import('./_vendor/preact/src/index').FunctionalComponent<import('./_vendor/preact/compat/src/index').PropsWithoutRef<Omit<import("./_vendor/preact/src/index").JSX.InputHTMLAttributes<HTMLInputElement>, "ref" | "className" | "class"> & {
|
|
22
32
|
class?: import("./_vendor/preact/src/index").JSX.Signalish<string | undefined> | Record<string, boolean | undefined>;
|
|
23
33
|
className?: import("./_vendor/preact/src/index").JSX.Signalish<string | undefined>;
|
|
24
34
|
}> & {
|
|
@@ -26,9 +36,10 @@ export declare const uiComponents: {
|
|
|
26
36
|
}>;
|
|
27
37
|
readonly SvgIcon: typeof ui.SvgIcon;
|
|
28
38
|
readonly SvgButton: typeof ui.SvgButton;
|
|
29
|
-
readonly DeleteButton: ({ onClick, disabled, className, onMouseDown, onDblClick, locale, }: {
|
|
39
|
+
readonly DeleteButton: ({ onClick, disabled, rounded, className, onMouseDown, onDblClick, locale, }: {
|
|
30
40
|
onClick: (e: MouseEvent) => void;
|
|
31
41
|
disabled?: boolean;
|
|
42
|
+
rounded?: boolean;
|
|
32
43
|
onMouseDown?: (event: MouseEvent) => void;
|
|
33
44
|
onDblClick?: (event: MouseEvent) => void;
|
|
34
45
|
className?: string;
|
|
@@ -90,6 +101,8 @@ export declare const uiComponents: {
|
|
|
90
101
|
readonly FieldError: typeof ui.FieldError;
|
|
91
102
|
readonly FormSection: typeof ui.FormSection;
|
|
92
103
|
readonly Disclosure: typeof ui.Disclosure;
|
|
104
|
+
readonly CollapsibleSection: typeof ui.CollapsibleSection;
|
|
105
|
+
readonly LookupField: typeof LookupField;
|
|
93
106
|
readonly Panel: typeof ui.Panel;
|
|
94
107
|
readonly Toolbar: typeof ui.Toolbar;
|
|
95
108
|
readonly ToolbarGroup: typeof ui.ToolbarGroup;
|
|
@@ -189,6 +202,7 @@ export declare const uiComponents: {
|
|
|
189
202
|
readonly ReorderList: typeof ui.ReorderList;
|
|
190
203
|
readonly ReorderHandle: typeof ui.ReorderHandle;
|
|
191
204
|
readonly TimelineTrack: typeof ui.TimelineTrack;
|
|
205
|
+
readonly IconToolbar: typeof ui.IconToolbar;
|
|
192
206
|
readonly ActivityMessage: typeof ui.ActivityMessage;
|
|
193
207
|
readonly PdfViewer: typeof ui.PdfViewer;
|
|
194
208
|
readonly PdfViewerToolbar: typeof ui.PdfViewerToolbar;
|
|
@@ -196,14 +210,13 @@ export declare const uiComponents: {
|
|
|
196
210
|
readonly MaskedDraft: typeof PreactMaskedDraft;
|
|
197
211
|
readonly DurationField: typeof PreactDurationField;
|
|
198
212
|
readonly DurationDraft: typeof PreactDurationDraft;
|
|
199
|
-
readonly
|
|
213
|
+
readonly HtmlEditor: typeof PreactHtmlEditor;
|
|
200
214
|
readonly TemporalPicker: typeof PreactTemporalPicker;
|
|
201
215
|
readonly TemporalDraft: typeof PreactTemporalDraft;
|
|
202
216
|
readonly DateTimeField: typeof PreactDateTimeField;
|
|
203
217
|
readonly AssigneePicker: typeof PreactAssigneePicker;
|
|
204
218
|
readonly AssigneeField: typeof PreactAssigneeField;
|
|
205
219
|
readonly AssigneePickerLayout: typeof PreactAssigneePickerLayout;
|
|
206
|
-
readonly NativeSelect: typeof ui.NativeSelect;
|
|
207
220
|
};
|
|
208
221
|
export type UiComponentName = keyof typeof uiComponents;
|
|
209
222
|
export type UiComponentProps<K extends UiComponentName> = import('./_vendor/preact/src/index').ComponentProps<(typeof uiComponents)[K]>;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { FieldRemoveButton as DeleteButton } from './field-configurator';
|
|
2
|
+
import { h, ComponentChildren, ComponentProps, JSX, Ref } from './_vendor/preact/src/index';
|
|
3
|
+
import { DropdownPopup } from './dropdown/popup';
|
|
4
|
+
import { SearchInput } from './search-input/index';
|
|
5
|
+
type ElementRenderer = (...args: any[]) => any;
|
|
6
|
+
export declare const CONFIGURATOR_AREA_ICONS: {
|
|
7
|
+
rows: string;
|
|
8
|
+
columns: string;
|
|
9
|
+
values: string;
|
|
10
|
+
filters: string;
|
|
11
|
+
};
|
|
12
|
+
type ActionTriggerProps = Omit<JSX.IntrinsicElements['button'], 'children' | 'ref'> & {
|
|
13
|
+
icon: 'plus' | 'gear';
|
|
14
|
+
buttonRef?: Ref<HTMLButtonElement>;
|
|
15
|
+
};
|
|
16
|
+
/** The same control renders in Core Fields cells and Preact panels. */
|
|
17
|
+
export declare function renderConfiguratorActionTrigger(createElement: ElementRenderer, { icon, buttonRef, ...props }: ActionTriggerProps): any;
|
|
18
|
+
/** Native button refs and event handlers stay with the adapter. */
|
|
19
|
+
export declare function ConfiguratorActionTrigger(props: ActionTriggerProps): JSX.Element;
|
|
20
|
+
export declare function ConfiguratorRemoveButton(props: ComponentProps<typeof DeleteButton>): h.JSX.Element;
|
|
21
|
+
/** Shared menu row; integrations supply policy, labels and callbacks. */
|
|
22
|
+
export declare function ConfiguratorActionButton({ text, icon, explanation, checked, ...props }: Omit<JSX.IntrinsicElements['button'], 'children'> & {
|
|
23
|
+
text: string;
|
|
24
|
+
icon?: ComponentChildren;
|
|
25
|
+
explanation?: string;
|
|
26
|
+
checked?: boolean;
|
|
27
|
+
}): h.JSX.Element;
|
|
28
|
+
export declare function ConfiguratorActionIcon({ svg }: {
|
|
29
|
+
svg: string;
|
|
30
|
+
}): h.JSX.Element;
|
|
31
|
+
export declare function ConfiguratorZoneActions({ add, clear, children, }: {
|
|
32
|
+
add: ComponentProps<typeof ConfiguratorActionTrigger>;
|
|
33
|
+
clear?: ComponentProps<typeof ConfiguratorRemoveButton>;
|
|
34
|
+
children?: ComponentChildren;
|
|
35
|
+
}): h.JSX.Element;
|
|
36
|
+
export declare function ConfiguratorFilterStatus({ label }: {
|
|
37
|
+
label: string;
|
|
38
|
+
}): h.JSX.Element;
|
|
39
|
+
export declare function ConfiguratorFieldCaption({ children, annotation, }: {
|
|
40
|
+
children: ComponentChildren;
|
|
41
|
+
annotation?: string;
|
|
42
|
+
}): h.JSX.Element;
|
|
43
|
+
export declare function ConfiguratorHint({ children, }: {
|
|
44
|
+
children: ComponentChildren;
|
|
45
|
+
}): h.JSX.Element;
|
|
46
|
+
export declare function ConfiguratorFieldSearch(props: ComponentProps<typeof SearchInput>): h.JSX.Element;
|
|
47
|
+
export declare function ConfiguratorFieldPicker({ children, emptyText, }: {
|
|
48
|
+
children?: ComponentChildren;
|
|
49
|
+
emptyText?: string;
|
|
50
|
+
}): h.JSX.Element;
|
|
51
|
+
export declare function ConfiguratorActionGroup({ section, children, }: {
|
|
52
|
+
section: 'settings' | 'layout' | 'removal';
|
|
53
|
+
children: ComponentChildren;
|
|
54
|
+
}): h.JSX.Element | null;
|
|
55
|
+
export declare function ConfiguratorActionPanel({ title, accessibleLabel, header, panelRef, onKeyDown, children, ...popup }: Omit<ComponentProps<typeof DropdownPopup>, 'children' | 'popupClassName' | 'topLayer' | 'closeOnClickOutside'> & {
|
|
56
|
+
title: string;
|
|
57
|
+
accessibleLabel?: string;
|
|
58
|
+
header?: ComponentChildren;
|
|
59
|
+
panelRef?: Ref<HTMLDivElement>;
|
|
60
|
+
onKeyDown?: JSX.HTMLAttributes<HTMLDivElement>['onKeyDown'];
|
|
61
|
+
children: ComponentChildren;
|
|
62
|
+
}): h.JSX.Element;
|
|
63
|
+
/** Field identity shared by grid and report authoring controls. */
|
|
64
|
+
export declare function ConfiguratorFieldTypeIcon({ field, }: {
|
|
65
|
+
field?: import('./configurator-field-icon').ConfiguratorFieldMetadata;
|
|
66
|
+
}): h.JSX.Element;
|
|
67
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { t as CONFIGURATOR_AREA_ICONS, n as ConfiguratorActionButton, r as ConfiguratorActionGroup, i as ConfiguratorActionIcon, a as ConfiguratorActionPanel, o as ConfiguratorActionTrigger, s as ConfiguratorFieldCaption, c as ConfiguratorFieldPicker, l as ConfiguratorFieldSearch, u as ConfiguratorFieldTypeIcon, d as ConfiguratorFilterStatus, f as ConfiguratorHint, p as ConfiguratorRemoveButton, m as ConfiguratorZoneActions, h as renderConfiguratorActionTrigger } from "./_chunks/configurator-actions-DnStE6Yl.js";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { h } from './_vendor/preact/src/index';
|
|
2
|
+
export interface AggregationListLabels {
|
|
3
|
+
measureAggregation: string;
|
|
4
|
+
aggregationNames: Record<string, string>;
|
|
5
|
+
measureCurrentUnavailable: (operation: string) => string;
|
|
6
|
+
}
|
|
7
|
+
/** Arrow keys explore choices; Enter/Space commit through the existing configuration owner. */
|
|
8
|
+
export declare function ConfiguratorAggregationList({ value, aggregators, i18n, disabled, onChange, }: {
|
|
9
|
+
value: string;
|
|
10
|
+
aggregators: string[];
|
|
11
|
+
i18n: AggregationListLabels;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
onChange: (value: string, origin: HTMLButtonElement) => void;
|
|
14
|
+
}): h.JSX.Element;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { i as e } from "./_chunks/hooks.module-CG3gN83z.js";
|
|
2
|
+
import { t } from "./_chunks/jsxRuntime.module-F6UFnpT-.js";
|
|
3
|
+
import { t as n } from "./_chunks/native-control-B_fVA5bL.js";
|
|
4
|
+
import { t as r } from "./_chunks/selection-list-tooltips-C5oMJe26.js";
|
|
5
|
+
import "./_chunks/check-BwI7iCAm.js";
|
|
6
|
+
import { t as i } from "./_chunks/calculator-CDWOuAcp.js";
|
|
7
|
+
//#region src/configurator-aggregation-list.tsx
|
|
8
|
+
function a({ value: a, aggregators: o, i18n: s, disabled: c, onChange: l }) {
|
|
9
|
+
let u = r("[role=\"menuitemradio\"]"), d = o.includes(a) ? o : [a, ...o], [f, p] = e(), m = f && o.includes(f) ? f : o.includes(a) ? a : o[0];
|
|
10
|
+
return /* @__PURE__ */ t("section", {
|
|
11
|
+
className: "pivot-aggregation-menu",
|
|
12
|
+
children: [/* @__PURE__ */ t("div", {
|
|
13
|
+
className: "pivot-aggregation-heading",
|
|
14
|
+
children: s.measureAggregation
|
|
15
|
+
}), /* @__PURE__ */ t("div", {
|
|
16
|
+
ref: u,
|
|
17
|
+
role: "menu",
|
|
18
|
+
"aria-label": s.measureAggregation,
|
|
19
|
+
children: d.map((e) => /* @__PURE__ */ t(n, {
|
|
20
|
+
type: "button",
|
|
21
|
+
role: "menuitemradio",
|
|
22
|
+
className: "rv-btn pivot-aggregation-option",
|
|
23
|
+
"data-value": e,
|
|
24
|
+
"aria-checked": e === a,
|
|
25
|
+
disabled: c || !o.includes(e),
|
|
26
|
+
tabIndex: !c && e === m ? 0 : -1,
|
|
27
|
+
onFocus: () => p(e),
|
|
28
|
+
onKeyDown: (e) => {
|
|
29
|
+
if (![
|
|
30
|
+
"ArrowUp",
|
|
31
|
+
"ArrowDown",
|
|
32
|
+
"ArrowLeft",
|
|
33
|
+
"ArrowRight",
|
|
34
|
+
"Home",
|
|
35
|
+
"End"
|
|
36
|
+
].includes(e.key)) return;
|
|
37
|
+
e.preventDefault(), e.stopPropagation();
|
|
38
|
+
let t = [...e.currentTarget.parentElement.querySelectorAll("button:not(:disabled)")], n = t.indexOf(e.currentTarget);
|
|
39
|
+
t[e.key === "Home" ? 0 : e.key === "End" ? t.length - 1 : (n + (e.key === "ArrowUp" || e.key === "ArrowLeft" ? -1 : 1) + t.length) % t.length]?.focus();
|
|
40
|
+
},
|
|
41
|
+
onClick: (t) => l(e, t.currentTarget),
|
|
42
|
+
children: [
|
|
43
|
+
/* @__PURE__ */ t("span", {
|
|
44
|
+
className: "pivot-field-action-symbol",
|
|
45
|
+
"aria-hidden": "true",
|
|
46
|
+
dangerouslySetInnerHTML: { __html: i }
|
|
47
|
+
}),
|
|
48
|
+
/* @__PURE__ */ t("span", {
|
|
49
|
+
className: "pivot-aggregation-name",
|
|
50
|
+
children: o.includes(e) ? s.aggregationNames[e] ?? e : s.measureCurrentUnavailable(e)
|
|
51
|
+
}),
|
|
52
|
+
e === a && /* @__PURE__ */ t("span", {
|
|
53
|
+
className: "pivot-aggregation-check",
|
|
54
|
+
"aria-hidden": "true",
|
|
55
|
+
dangerouslySetInnerHTML: { __html: "<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=\"M434.8 70.1c14.3 10.4 17.5 30.4 7.1 44.7l-256 352c-5.5 7.6-14 12.3-23.4 13.1s-18.5-2.7-25.1-9.3l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l101.5 101.5 234-321.7c10.4-14.3 30.4-17.5 44.7-7.1z\"/></svg>" }
|
|
56
|
+
})
|
|
57
|
+
]
|
|
58
|
+
}, e))
|
|
59
|
+
})]
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
//#endregion
|
|
63
|
+
export { a as ConfiguratorAggregationList };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { h, JSX, ComponentChildren } from './_vendor/preact/src/index';
|
|
2
|
+
export interface ConfiguratorDropZoneProps<Prop extends string | number, Field extends {
|
|
3
|
+
prop: Prop;
|
|
4
|
+
name?: string;
|
|
5
|
+
}, Area extends string> {
|
|
6
|
+
label?: string;
|
|
7
|
+
id?: string;
|
|
8
|
+
footer?: ComponentChildren;
|
|
9
|
+
removeLabel?: (index: number, prop: Prop) => string;
|
|
10
|
+
title: string | JSX.Element;
|
|
11
|
+
headerActions?: JSX.Element | null;
|
|
12
|
+
renderActions?: (index: number, prop: Prop) => JSX.Element | null;
|
|
13
|
+
allowFieldRemoving?: boolean;
|
|
14
|
+
panel: Area;
|
|
15
|
+
items: Prop[];
|
|
16
|
+
/** Optional stable identities for repeated measure instances; other zones use their field identities. */
|
|
17
|
+
itemKeys?: readonly (string | number)[];
|
|
18
|
+
dimensions: ReadonlyMap<Prop, Field>;
|
|
19
|
+
placeholder?: string;
|
|
20
|
+
i18n: {
|
|
21
|
+
dragHere: string;
|
|
22
|
+
remove: string;
|
|
23
|
+
};
|
|
24
|
+
onRemove: (index: number) => void;
|
|
25
|
+
onDrop: (target: Area, index?: number, event?: DragEvent) => void;
|
|
26
|
+
canDrop?: (event: DragEvent) => boolean;
|
|
27
|
+
onDragOver: (e: Event) => void;
|
|
28
|
+
onDragEnter: (e: Event) => void;
|
|
29
|
+
onItemDragStart: (index: number, prop: Prop, event?: DragEvent) => void;
|
|
30
|
+
onItemDragEnd: () => void;
|
|
31
|
+
renderItem?: (index: number, item?: Field) => ComponentChildren;
|
|
32
|
+
allowFieldDragging?: boolean;
|
|
33
|
+
dragActive?: boolean;
|
|
34
|
+
renderIcon?: (field?: Field) => ComponentChildren;
|
|
35
|
+
}
|
|
36
|
+
export declare function ConfiguratorDropZone<Prop extends string | number, Field extends {
|
|
37
|
+
prop: Prop;
|
|
38
|
+
name?: string;
|
|
39
|
+
}, Area extends string>({ title, label, id, footer, removeLabel, headerActions, renderActions, allowFieldRemoving, panel, items, itemKeys, dimensions, placeholder, i18n, renderItem, onRemove, onDrop, onDragOver, canDrop, onDragEnter, onItemDragStart, onItemDragEnd, allowFieldDragging, dragActive, renderIcon, }: ConfiguratorDropZoneProps<Prop, Field, Area>): h.JSX.Element;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { i as e } from "./_chunks/preact.module-BBM36DnO.js";
|
|
2
|
+
import { t } from "./_chunks/jsxRuntime.module-F6UFnpT-.js";
|
|
3
|
+
import { a as n, f as r, o as i, p as a, v as o } from "./_chunks/field-configurator-D5dZRhDe.js";
|
|
4
|
+
import { useFieldDropTarget as s } from "./field-reorder.hook.js";
|
|
5
|
+
//#region src/configurator-drop-zone.tsx
|
|
6
|
+
function c({ title: c, label: l, id: u, footer: d, removeLabel: f, headerActions: p, renderActions: m, allowFieldRemoving: h = !0, panel: g, items: _, itemKeys: v, dimensions: y, placeholder: b, i18n: x, renderItem: S, onRemove: C, onDrop: w, onDragOver: T, canDrop: E = () => !0, onDragEnter: D, onItemDragStart: O, onItemDragEnd: k, allowFieldDragging: A = !0, dragActive: j, renderIcon: M }) {
|
|
7
|
+
let N = _.length === 0, P = s(_.length, {
|
|
8
|
+
enabled: A,
|
|
9
|
+
active: j,
|
|
10
|
+
canDrop: E,
|
|
11
|
+
onDragOver: T,
|
|
12
|
+
onDrop: (e, t) => w(g, e, t)
|
|
13
|
+
});
|
|
14
|
+
return /* @__PURE__ */ t(i, {
|
|
15
|
+
...P.list,
|
|
16
|
+
id: u,
|
|
17
|
+
tabIndex: u ? -1 : void 0,
|
|
18
|
+
className: "pivot-layout-zone",
|
|
19
|
+
"aria-label": l,
|
|
20
|
+
"data-pivot-area": g,
|
|
21
|
+
heading: c,
|
|
22
|
+
headingClassName: "zone-title",
|
|
23
|
+
actions: p,
|
|
24
|
+
children: [/* @__PURE__ */ t(r, {
|
|
25
|
+
empty: N,
|
|
26
|
+
placeholder: b ?? x.dragHere,
|
|
27
|
+
className: `min-h-[3rem] overflow-auto grow panel-card ${N ? "empty" : ""} ${P.isOver ? "drag-over" : ""}`,
|
|
28
|
+
...P.list,
|
|
29
|
+
onDragEnter: D,
|
|
30
|
+
children: _.map((r, i) => {
|
|
31
|
+
let s = y.get(r), l = P.position(i);
|
|
32
|
+
return /* @__PURE__ */ t(o, {
|
|
33
|
+
...P.row(i),
|
|
34
|
+
draggable: A,
|
|
35
|
+
onDragStart: (e) => {
|
|
36
|
+
A ? (e.dataTransfer?.setData("text/plain", String(r)), e.dataTransfer && (e.dataTransfer.effectAllowed = "move"), P.start(i), O(i, r, e)) : e.preventDefault();
|
|
37
|
+
},
|
|
38
|
+
onDragEnd: () => {
|
|
39
|
+
P.clear(), k();
|
|
40
|
+
},
|
|
41
|
+
indicator: l && /* @__PURE__ */ t(n, {
|
|
42
|
+
position: l,
|
|
43
|
+
index: P.boundary ?? void 0,
|
|
44
|
+
className: `pivot-zone-drop-divider ${l}`
|
|
45
|
+
}),
|
|
46
|
+
contentClassName: "pivot-dimension-cell",
|
|
47
|
+
icon: M?.(s),
|
|
48
|
+
label: /* @__PURE__ */ t("span", {
|
|
49
|
+
className: "pivot-zone-field-caption flex grow",
|
|
50
|
+
children: S?.(i, s) ?? s?.name ?? r
|
|
51
|
+
}),
|
|
52
|
+
actions: /* @__PURE__ */ t(e, { children: [m?.(i, r), h && /* @__PURE__ */ t(a, {
|
|
53
|
+
className: "pivot-remove-button",
|
|
54
|
+
onClick: () => C(i),
|
|
55
|
+
locale: {
|
|
56
|
+
title: f?.(i, r) ?? x.remove,
|
|
57
|
+
ariaLabel: f?.(i, r) ?? x.remove
|
|
58
|
+
}
|
|
59
|
+
})] })
|
|
60
|
+
}, v?.[i] ?? `${c}-${i}`);
|
|
61
|
+
})
|
|
62
|
+
}), d]
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
//#endregion
|
|
66
|
+
export { c as ConfiguratorDropZone };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface ConfiguratorFieldMetadata {
|
|
2
|
+
columnType?: string;
|
|
3
|
+
dataType?: 'string' | 'number' | 'date' | 'boolean';
|
|
4
|
+
}
|
|
5
|
+
/** Shared descriptive field identity; never infers or formats source values. */
|
|
6
|
+
export declare function resolveConfiguratorFieldIcon(dimension?: ConfiguratorFieldMetadata): {
|
|
7
|
+
kind: string;
|
|
8
|
+
svg: string;
|
|
9
|
+
label: string;
|
|
10
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { t as resolveConfiguratorFieldIcon } from "./_chunks/configurator-field-icon-CmcM_sPs.js";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Return focus only from this editor. Release a temporary tab stop on blur or disposal. */
|
|
2
|
+
export declare function focusConfiguratorOrigin(origin: HTMLElement, root: HTMLElement | null): () => void;
|
|
3
|
+
/** A single mounted owner's lease; synchronous focus callbacks cannot revive a disposed lease. */
|
|
4
|
+
export declare function useConfiguratorOriginFocus(): (origin: HTMLElement, root: HTMLElement | null) => void;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { r as e, t } from "./_chunks/hooks.module-CG3gN83z.js";
|
|
2
|
+
//#region src/configurator-focus.ts
|
|
3
|
+
var n = () => {};
|
|
4
|
+
function r(e, t) {
|
|
5
|
+
if (!e.isConnected || !t?.isConnected || e.ownerDocument !== t.ownerDocument) return !1;
|
|
6
|
+
let n = e.ownerDocument.activeElement;
|
|
7
|
+
return !n || n === e.ownerDocument.body || n === e || t.contains(n);
|
|
8
|
+
}
|
|
9
|
+
function i(e, t) {
|
|
10
|
+
if (!r(e, t)) return n;
|
|
11
|
+
let i = e.ownerDocument, a = i.activeElement;
|
|
12
|
+
if (e.focus({ preventScroll: !0 }), i.activeElement === e || e.hasAttribute("tabindex") || !e.isConnected || !t.isConnected || i.activeElement !== a && i.activeElement !== i.body) return n;
|
|
13
|
+
let o = !0, s = () => {
|
|
14
|
+
o && (o = !1, e.removeEventListener("blur", s), e.getAttribute("tabindex") === "-1" && e.removeAttribute("tabindex"));
|
|
15
|
+
};
|
|
16
|
+
e.setAttribute("tabindex", "-1"), e.addEventListener("blur", s);
|
|
17
|
+
try {
|
|
18
|
+
e.focus({ preventScroll: !0 }), (i.activeElement !== e || !e.isConnected || !t.isConnected) && s();
|
|
19
|
+
} catch (e) {
|
|
20
|
+
throw s(), e;
|
|
21
|
+
}
|
|
22
|
+
return s;
|
|
23
|
+
}
|
|
24
|
+
function a() {
|
|
25
|
+
let a = t(n), o = t(0), s = t(!0);
|
|
26
|
+
return e(() => (s.current = !0, () => {
|
|
27
|
+
s.current = !1, o.current++;
|
|
28
|
+
let e = a.current;
|
|
29
|
+
a.current = n, e();
|
|
30
|
+
}), []), (e, t) => {
|
|
31
|
+
if (!s.current || !r(e, t)) return;
|
|
32
|
+
let c = ++o.current, l = a.current;
|
|
33
|
+
if (a.current = n, l(), !s.current || c !== o.current) return;
|
|
34
|
+
let u = i(e, t);
|
|
35
|
+
!s.current || c !== o.current ? u() : a.current = u;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
export { i as focusConfiguratorOrigin, a as useConfiguratorOriginFocus };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { h, ComponentChildren } from './_vendor/preact/src/index';
|
|
2
|
+
/** Application-owned content. Return cleanup when mounting another framework or UI. */
|
|
3
|
+
export interface ConfiguratorSection {
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
hidden?: boolean;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
render?: () => ComponentChildren;
|
|
9
|
+
mount?: (host: HTMLElement) => void | (() => void);
|
|
10
|
+
}
|
|
11
|
+
export interface ConfiguratorSectionsConfig {
|
|
12
|
+
/** Custom tabs appended after the built-in tabs. IDs must be unique and cannot replace built-ins. */
|
|
13
|
+
sections?: readonly ConfiguratorSection[];
|
|
14
|
+
initialSection?: string;
|
|
15
|
+
onSectionChange?: (id: string) => void;
|
|
16
|
+
}
|
|
17
|
+
/** Selection follows current availability, without discarding mounted editor drafts. */
|
|
18
|
+
export declare function useConfiguratorSections(config: ConfiguratorSectionsConfig, builtins: readonly ConfiguratorSection[], disabled?: boolean): {
|
|
19
|
+
sections: ConfiguratorSection[];
|
|
20
|
+
custom: ConfiguratorSection[];
|
|
21
|
+
active: string | undefined;
|
|
22
|
+
select: (id: string) => void;
|
|
23
|
+
};
|
|
24
|
+
/** Shared switch spacing and opaque sticky backdrop for every configurator. */
|
|
25
|
+
export declare function ConfiguratorHeader({ children, className, }: {
|
|
26
|
+
children?: ComponentChildren;
|
|
27
|
+
className?: string;
|
|
28
|
+
}): h.JSX.Element;
|
|
29
|
+
export declare function ConfiguratorSectionTabs({ sections, active, onChange, prefix, label, className, }: {
|
|
30
|
+
sections: readonly ConfiguratorSection[];
|
|
31
|
+
active?: string;
|
|
32
|
+
onChange: (id: string) => void;
|
|
33
|
+
prefix: string;
|
|
34
|
+
label: string;
|
|
35
|
+
className?: string;
|
|
36
|
+
}): h.JSX.Element;
|
|
37
|
+
/** Inactive sections retain chat transcripts and host drafts until removed. */
|
|
38
|
+
export declare function ConfiguratorSectionPanels({ sections, active, prefix, }: {
|
|
39
|
+
sections: readonly ConfiguratorSection[];
|
|
40
|
+
active?: string;
|
|
41
|
+
prefix: string;
|
|
42
|
+
}): h.JSX.Element;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { i as e } from "./_chunks/preact.module-BBM36DnO.js";
|
|
2
|
+
import { i as t, r as n, t as r } from "./_chunks/hooks.module-CG3gN83z.js";
|
|
3
|
+
import { t as i } from "./_chunks/jsxRuntime.module-F6UFnpT-.js";
|
|
4
|
+
import { SegmentedSwitch as a } from "./segmented-switch/index.js";
|
|
5
|
+
//#region src/configurator-sections.tsx
|
|
6
|
+
function o(e, n, r = !1) {
|
|
7
|
+
let i = new Set(n.map((e) => e.id)), a = (e.sections ?? []).filter((e) => !e.id || i.has(e.id) ? !1 : (i.add(e.id), !0)), o = [...n, ...a].filter((e) => !e.hidden).map((e) => r ? {
|
|
8
|
+
...e,
|
|
9
|
+
disabled: !0
|
|
10
|
+
} : e), [s, c] = t(e.initialSection ?? n[0]?.id), l = o.find((e) => e.id === s && (r || !e.disabled))?.id ?? o.find((e) => !e.disabled)?.id ?? (r ? o[0]?.id : void 0);
|
|
11
|
+
return {
|
|
12
|
+
sections: o,
|
|
13
|
+
custom: o.filter((e) => !n.some((t) => t.id === e.id)),
|
|
14
|
+
active: l,
|
|
15
|
+
select: (t) => {
|
|
16
|
+
t !== l && o.some((e) => e.id === t && !e.disabled) && (c(t), e.onSectionChange?.(t));
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function s({ children: e, className: t = "" }) {
|
|
21
|
+
return /* @__PURE__ */ i("header", {
|
|
22
|
+
className: `rv-configurator-header ${t}`,
|
|
23
|
+
children: e
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
function c({ sections: e, active: t, onChange: n, prefix: r, label: o, className: s = "" }) {
|
|
27
|
+
return /* @__PURE__ */ i(a, {
|
|
28
|
+
value: t ?? "",
|
|
29
|
+
ariaLabel: o,
|
|
30
|
+
role: "tablist",
|
|
31
|
+
className: `rv-configurator-section-tabs ${s}`,
|
|
32
|
+
options: e.map((e) => ({
|
|
33
|
+
value: e.id,
|
|
34
|
+
label: e.label,
|
|
35
|
+
disabled: e.disabled,
|
|
36
|
+
id: `${r}-tab-${e.id}`,
|
|
37
|
+
ariaControls: `${r}-panel-${e.id}`
|
|
38
|
+
})),
|
|
39
|
+
onChange: n
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
function l({ section: e }) {
|
|
43
|
+
let t = r(null);
|
|
44
|
+
return n(() => {
|
|
45
|
+
if (t.current && e.mount) return e.mount(t.current);
|
|
46
|
+
}, [e.mount]), /* @__PURE__ */ i("div", {
|
|
47
|
+
ref: t,
|
|
48
|
+
class: "rv-configurator-section-content",
|
|
49
|
+
children: e.render?.()
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
function u({ sections: t, active: n, prefix: r }) {
|
|
53
|
+
return /* @__PURE__ */ i(e, { children: t.map((e) => /* @__PURE__ */ i(d, {
|
|
54
|
+
section: e,
|
|
55
|
+
active: n === e.id,
|
|
56
|
+
prefix: r
|
|
57
|
+
}, e.id)) });
|
|
58
|
+
}
|
|
59
|
+
function d({ section: e, active: t, prefix: n }) {
|
|
60
|
+
let a = r(!1);
|
|
61
|
+
return t && (a.current = !0), /* @__PURE__ */ i("section", {
|
|
62
|
+
hidden: !t,
|
|
63
|
+
role: "tabpanel",
|
|
64
|
+
id: `${n}-panel-${e.id}`,
|
|
65
|
+
"aria-labelledby": `${n}-tab-${e.id}`,
|
|
66
|
+
class: "rv-configurator-custom-section",
|
|
67
|
+
children: a.current && /* @__PURE__ */ i(l, { section: e })
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
//#endregion
|
|
71
|
+
export { s as ConfiguratorHeader, u as ConfiguratorSectionPanels, c as ConfiguratorSectionTabs, o as useConfiguratorSections };
|