@milaboratories/uikit 2.15.42 → 2.16.0

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.
Files changed (63) hide show
  1. package/.turbo/turbo-build.log +27 -22
  2. package/.turbo/turbo-formatter$colon$check.log +2 -2
  3. package/.turbo/turbo-linter$colon$check.log +2 -2
  4. package/.turbo/turbo-types$colon$check.log +1 -1
  5. package/CHANGELOG.md +22 -0
  6. package/dist/components/DropdownListItem.js.map +1 -1
  7. package/dist/components/DropdownListItem.vue.d.ts.map +1 -1
  8. package/dist/components/DropdownListItem.vue2.js +22 -20
  9. package/dist/components/DropdownListItem.vue2.js.map +1 -1
  10. package/dist/components/PlAlert/PlAlert.vue.d.ts +1 -1
  11. package/dist/components/PlAlert/PlAlert.vue.d.ts.map +1 -1
  12. package/dist/components/PlAutocomplete/PlAutocomplete.vue2.js +27 -27
  13. package/dist/components/PlAutocomplete/PlAutocomplete.vue2.js.map +1 -1
  14. package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue2.js +17 -17
  15. package/dist/components/PlBtnSplit/PlBtnSplit.vue2.js +11 -11
  16. package/dist/components/PlColumnLabel/PlColumnLabel.js +8 -0
  17. package/dist/components/PlColumnLabel/PlColumnLabel.js.map +1 -0
  18. package/dist/components/PlColumnLabel/PlColumnLabel.style.js +8 -0
  19. package/dist/components/PlColumnLabel/PlColumnLabel.style.js.map +1 -0
  20. package/dist/components/PlColumnLabel/PlColumnLabel.vue.css +1 -0
  21. package/dist/components/PlColumnLabel/PlColumnLabel.vue.d.ts +23 -0
  22. package/dist/components/PlColumnLabel/PlColumnLabel.vue.d.ts.map +1 -0
  23. package/dist/components/PlColumnLabel/PlColumnLabel.vue2.js +28 -0
  24. package/dist/components/PlColumnLabel/PlColumnLabel.vue2.js.map +1 -0
  25. package/dist/components/PlColumnLabel/index.d.ts +2 -0
  26. package/dist/components/PlColumnLabel/index.d.ts.map +1 -0
  27. package/dist/components/PlColumnLabel/index.js +1 -0
  28. package/dist/components/PlDropdown/PlDropdown.js.map +1 -1
  29. package/dist/components/PlDropdown/PlDropdown.vue.d.ts.map +1 -1
  30. package/dist/components/PlDropdown/PlDropdown.vue2.js +124 -112
  31. package/dist/components/PlDropdown/PlDropdown.vue2.js.map +1 -1
  32. package/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue2.js +32 -32
  33. package/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue2.js.map +1 -1
  34. package/dist/components/PlDropdownLine/PlDropdownLine.vue2.js +30 -30
  35. package/dist/components/PlDropdownMulti/PlDropdownMulti.vue2.js +12 -12
  36. package/dist/components/PlDropdownMultiRef/PlDropdownMultiRef.vue.d.ts +1 -1
  37. package/dist/components/PlDropdownMultiRef/PlDropdownMultiRef.vue.d.ts.map +1 -1
  38. package/dist/components/PlElementList/PlElementListItem.vue2.js +7 -7
  39. package/dist/components/PlFileDialog/Remote.vue2.js +1 -1
  40. package/dist/components/PlFileInput/PlFileInput.vue2.js +10 -10
  41. package/dist/components/PlFileInput/PlFileInput.vue2.js.map +1 -1
  42. package/dist/components/PlNumberField/PlNumberField.vue2.js +5 -5
  43. package/dist/components/PlSearchField/PlSearchField.vue2.js +7 -7
  44. package/dist/components/PlTextArea/PlTextArea.vue2.js +11 -11
  45. package/dist/components/PlTextField/PlTextField.vue2.js +16 -16
  46. package/dist/components/Slider.vue2.js +7 -7
  47. package/dist/components/SliderRange.vue2.js +11 -11
  48. package/dist/components/SliderRangeTriple.vue2.js +9 -9
  49. package/dist/helpers/utils.d.ts.map +1 -1
  50. package/dist/helpers/utils.js +2 -1
  51. package/dist/helpers/utils.js.map +1 -1
  52. package/dist/index.d.ts +1 -0
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +103 -101
  55. package/dist/index.js.map +1 -1
  56. package/dist/utils/useLabelNotch.js +6 -6
  57. package/package.json +10 -5
  58. package/src/components/DropdownListItem.vue +2 -1
  59. package/src/components/PlColumnLabel/PlColumnLabel.vue +46 -0
  60. package/src/components/PlColumnLabel/index.ts +1 -0
  61. package/src/components/PlDropdown/PlDropdown.vue +13 -10
  62. package/src/helpers/utils.ts +1 -0
  63. package/src/index.ts +1 -0
package/dist/index.js CHANGED
@@ -8,168 +8,170 @@ import { DataTable_exports as r } from "./components/DataTable/index.js";
8
8
  import { useLocalStorage as i } from "./composition/useLocalStorage.js";
9
9
  import { useTheme as a } from "./composition/useTheme.js";
10
10
  import o from "./components/ThemeSwitcher.js";
11
- import s from "./components/DropdownListItem.js";
12
- import c from "./components/ContextProvider.js";
11
+ import s from "./components/PlSvg/PlSvg.js";
12
+ import "./components/PlSvg/index.js";
13
+ import c from "./components/PlIcon16/PlIcon16.js";
14
+ import "./components/PlIcon16/index.js";
13
15
  import { animate as l, animateInfinite as u, call as d, delay as f, listToOptions as p, makeEaseInOut as m, makeEaseOut as h, normalizeListOptions as g, randomInt as _, randomString as v, requestTick as y, throttle as b, timeout as x } from "./helpers/utils.js";
14
16
  import { useClickOutside as S } from "./composition/useClickOutside.js";
15
17
  import C from "./components/PlTooltip/PlTooltip.js";
16
18
  import "./components/PlTooltip/index.js";
17
- import w from "./components/Slider.js";
18
- import T from "./components/LongText.js";
19
- import { downloadContent as E } from "./helpers/downloadContent.js";
20
- import { detectOutside as D, eventListener as O, getElementScrollPosition as k, isElementVisible as A, scrollIntoView as j } from "./helpers/dom.js";
21
- import { useResizeObserver as M } from "./composition/useResizeObserver.js";
22
- import N from "./components/Scrollable.js";
23
- import P from "./components/SliderRange.js";
24
- import F from "./components/SliderRangeTriple.js";
25
- import { allCssVariables as I } from "./demo-site-data/all-css-variables.js";
26
- import L from "./components/PlSvg/PlSvg.js";
27
- import "./components/PlSvg/index.js";
28
- import R from "./components/PlIcon24/PlIcon24.js";
19
+ import w from "./components/PlColumnLabel/PlColumnLabel.js";
20
+ import "./components/PlColumnLabel/index.js";
21
+ import T from "./components/DropdownListItem.js";
22
+ import E from "./components/ContextProvider.js";
23
+ import D from "./components/Slider.js";
24
+ import O from "./components/LongText.js";
25
+ import { downloadContent as k } from "./helpers/downloadContent.js";
26
+ import { detectOutside as A, eventListener as j, getElementScrollPosition as M, isElementVisible as N, scrollIntoView as P } from "./helpers/dom.js";
27
+ import { useResizeObserver as F } from "./composition/useResizeObserver.js";
28
+ import I from "./components/Scrollable.js";
29
+ import L from "./components/SliderRange.js";
30
+ import R from "./components/SliderRangeTriple.js";
31
+ import { allCssVariables as z } from "./demo-site-data/all-css-variables.js";
32
+ import B from "./components/PlIcon24/PlIcon24.js";
29
33
  import "./components/PlIcon24/index.js";
30
- import z from "./components/PlLoaderLogo.js";
31
- import B from "./layout/PlPlaceholder/PlPlaceholder.js";
32
- import { PL_PLACEHOLDER_TEXTS as V } from "./layout/PlPlaceholder/index.js";
33
- import H from "./layout/PlBlockPage/PlBlockPage.js";
34
- import { usePlBlockPageTitleTeleportTarget as U } from "./layout/PlBlockPage/usePlBlockPageTitleTeleportTarget.js";
34
+ import V from "./components/PlLoaderLogo.js";
35
+ import H from "./layout/PlPlaceholder/PlPlaceholder.js";
36
+ import { PL_PLACEHOLDER_TEXTS as U } from "./layout/PlPlaceholder/index.js";
37
+ import W from "./layout/PlBlockPage/PlBlockPage.js";
38
+ import { usePlBlockPageTitleTeleportTarget as G } from "./layout/PlBlockPage/usePlBlockPageTitleTeleportTarget.js";
35
39
  import "./layout/PlBlockPage/index.js";
36
- import W from "./components/PlLoaderCircular/PlLoaderCircular.js";
40
+ import K from "./components/PlLoaderCircular/PlLoaderCircular.js";
37
41
  import "./components/PlLoaderCircular/index.js";
38
- import G from "./components/PlSplash/PlSplash.js";
39
- import K from "./layout/PlContainer/PlContainer.js";
42
+ import q from "./components/PlSplash/PlSplash.js";
43
+ import J from "./layout/PlContainer/PlContainer.js";
40
44
  import "./layout/PlContainer/index.js";
41
- import q from "./layout/PlGrid/PlGrid.js";
45
+ import Y from "./layout/PlGrid/PlGrid.js";
42
46
  import "./layout/PlGrid/index.js";
43
- import J from "./layout/PlRow/PlRow.js";
47
+ import X from "./layout/PlRow/PlRow.js";
44
48
  import "./layout/PlRow/index.js";
45
- import Y from "./layout/PlSpacer/PlSpacer.js";
49
+ import Z from "./layout/PlSpacer/PlSpacer.js";
46
50
  import "./layout/PlSpacer/index.js";
47
- import X from "./components/PlIcon16/PlIcon16.js";
48
51
  import "./components/PlMaskIcon16/index.js";
49
- import Z from "./components/PlErrorBoundary/PlErrorBoundary.js";
52
+ import Q from "./components/PlErrorBoundary/PlErrorBoundary.js";
50
53
  import "./components/PlErrorBoundary/index.js";
51
- import Q from "./components/PlAccordion/PlAccordion.js";
52
- import ne from "./components/PlSectionSeparator/PlSectionSeparator.js";
54
+ import ne from "./components/PlAccordion/PlAccordion.js";
55
+ import re from "./components/PlSectionSeparator/PlSectionSeparator.js";
53
56
  import "./components/PlSectionSeparator/index.js";
54
- import re from "./components/PlAccordion/PlAccordionSection.js";
57
+ import ie from "./components/PlAccordion/PlAccordionSection.js";
55
58
  import "./components/PlAccordion/index.js";
56
- import ie from "./utils/PlCloseModalBtn.js";
57
- import ae from "./components/PlAlert/PlAlert.js";
59
+ import ae from "./utils/PlCloseModalBtn.js";
60
+ import oe from "./components/PlAlert/PlAlert.js";
58
61
  import "./components/PlAlert/index.js";
59
- import { useLabelNotch as oe } from "./utils/useLabelNotch.js";
60
- import "./components/PlIcon16/index.js";
62
+ import { useLabelNotch as se } from "./utils/useLabelNotch.js";
61
63
  import "./components/PlMaskIcon24/index.js";
62
- import { useElementPosition as se } from "./composition/usePosition.js";
63
- import ce from "./utils/DropdownOverlay/DropdownOverlay.js";
64
+ import { useElementPosition as ce } from "./composition/usePosition.js";
65
+ import le from "./utils/DropdownOverlay/DropdownOverlay.js";
64
66
  import "./utils/DropdownOverlay/index.js";
65
- import { useWatchFetch as le } from "./composition/useWatchFetch.js";
66
- import ue from "./components/PlAutocomplete/PlAutocomplete.js";
67
+ import { useWatchFetch as ue } from "./composition/useWatchFetch.js";
68
+ import de from "./components/PlAutocomplete/PlAutocomplete.js";
67
69
  import "./components/PlAutocomplete/index.js";
68
- import de from "./components/PlChip/PlChip.js";
70
+ import fe from "./components/PlChip/PlChip.js";
69
71
  import "./components/PlChip/index.js";
70
- import fe from "./components/PlAutocompleteMulti/PlAutocompleteMulti.js";
72
+ import pe from "./components/PlAutocompleteMulti/PlAutocompleteMulti.js";
71
73
  import "./components/PlAutocompleteMulti/index.js";
72
- import pe from "./components/PlBtnAccent/PlBtnAccent.js";
74
+ import me from "./components/PlBtnAccent/PlBtnAccent.js";
73
75
  import "./components/PlBtnAccent/index.js";
74
- import me from "./components/PlBtnDanger/PlBtnDanger.js";
76
+ import he from "./components/PlBtnDanger/PlBtnDanger.js";
75
77
  import "./components/PlBtnDanger/index.js";
76
- import he from "./components/PlBtnGhost/PlBtnGhost.js";
78
+ import ge from "./components/PlBtnGhost/PlBtnGhost.js";
77
79
  import "./components/PlBtnGhost/index.js";
78
- import ge from "./components/PlBtnGroup/PlBtnGroup.js";
80
+ import _e from "./components/PlBtnGroup/PlBtnGroup.js";
79
81
  import "./components/PlBtnGroup/index.js";
80
- import _e from "./components/PlBtnSecondary/PlBtnSecondary.js";
81
- import ve from "./components/PlBtnLink/PlBtnLink.js";
82
+ import ve from "./components/PlBtnSecondary/PlBtnSecondary.js";
83
+ import $ from "./components/PlBtnLink/PlBtnLink.js";
82
84
  import "./components/PlBtnLink/index.js";
83
- import $ from "./components/PlBtnPrimary/PlBtnPrimary.js";
85
+ import ye from "./components/PlBtnPrimary/PlBtnPrimary.js";
84
86
  import "./components/PlBtnPrimary/index.js";
85
87
  import "./components/PlBtnSecondary/index.js";
86
- import ye from "./components/PlBtnSplit/PlBtnSplit.js";
88
+ import be from "./components/PlBtnSplit/PlBtnSplit.js";
87
89
  import "./components/PlBtnSplit/index.js";
88
- import be from "./components/PlCheckbox/PlCheckbox.js";
90
+ import xe from "./components/PlCheckbox/PlCheckbox.js";
89
91
  import "./components/PlCheckbox/index.js";
90
- import xe from "./components/PlCheckboxGroup/PlCheckboxGroup.js";
92
+ import Se from "./components/PlCheckboxGroup/PlCheckboxGroup.js";
91
93
  import "./components/PlCheckboxGroup/index.js";
92
- import Se from "./components/PlDialogModal/PlDialogModal.js";
94
+ import Ce from "./components/PlDialogModal/PlDialogModal.js";
93
95
  import "./components/PlDialogModal/index.js";
94
- import Ce from "./components/PlDropdown/PlDropdown.js";
96
+ import we from "./components/PlDropdown/PlDropdown.js";
95
97
  import "./components/PlDropdown/index.js";
96
- import we from "./components/PlDropdownLegacy/PlDropdownLegacy.js";
98
+ import Te from "./components/PlDropdownLegacy/PlDropdownLegacy.js";
97
99
  import "./components/PlDropdownLegacy/index.js";
98
- import Te from "./components/PlDropdownLine/PlDropdownLine.js";
100
+ import Ee from "./components/PlDropdownLine/PlDropdownLine.js";
99
101
  import "./components/PlDropdownLine/index.js";
100
- import Ee from "./components/PlDropdownMulti/PlDropdownMulti.js";
102
+ import De from "./components/PlDropdownMulti/PlDropdownMulti.js";
101
103
  import "./components/PlDropdownMulti/index.js";
102
- import De from "./components/PlDropdownMultiRef/PlDropdownMultiRef.js";
104
+ import Oe from "./components/PlDropdownMultiRef/PlDropdownMultiRef.js";
103
105
  import "./components/PlDropdownMultiRef/index.js";
104
- import Oe from "./components/PlDropdownRef/PlDropdownRef.js";
106
+ import ke from "./components/PlDropdownRef/PlDropdownRef.js";
105
107
  import "./components/PlDropdownRef/index.js";
106
- import ke from "./components/PlEditableTitle/PlEditableTitle.js";
108
+ import Ae from "./components/PlEditableTitle/PlEditableTitle.js";
107
109
  import "./components/PlEditableTitle/index.js";
108
- import Ae from "./components/PlElementList/PlElementList.js";
110
+ import je from "./components/PlElementList/PlElementList.js";
109
111
  import "./components/PlElementList/index.js";
110
- import je from "./components/PlLogView/PlLogView.js";
112
+ import Me from "./components/PlLogView/PlLogView.js";
111
113
  import "./components/PlLogView/index.js";
112
- import Me from "./components/PlNumberField/PlNumberField.js";
114
+ import Ne from "./components/PlNumberField/PlNumberField.js";
113
115
  import "./components/PlNumberField/index.js";
114
- import Ne from "./components/PlProgressBar/PlProgressBar.js";
116
+ import Pe from "./components/PlProgressBar/PlProgressBar.js";
115
117
  import "./components/PlProgressBar/index.js";
116
- import Pe from "./components/PlProgressCell/PlProgressCell.js";
118
+ import Fe from "./components/PlProgressCell/PlProgressCell.js";
117
119
  import "./components/PlProgressCell/index.js";
118
- import Fe from "./components/PlSearchField/PlSearchField.js";
120
+ import Ie from "./components/PlSearchField/PlSearchField.js";
119
121
  import "./components/PlSearchField/index.js";
120
- import Ie from "./components/PlSlideModal/PlPureSlideModal.js";
121
- import Le from "./components/PlSlideModal/PlSlideModal.js";
122
+ import Le from "./components/PlSlideModal/PlPureSlideModal.js";
123
+ import Re from "./components/PlSlideModal/PlSlideModal.js";
122
124
  import "./components/PlSlideModal/index.js";
123
125
  import "./components/PlSplash/index.js";
124
- import Re from "./components/PlStatusTag/PlStatusTag.js";
126
+ import ze from "./components/PlStatusTag/PlStatusTag.js";
125
127
  import "./components/PlStatusTag/index.js";
126
- import ze from "./components/PlTabs/PlTabs.js";
128
+ import Be from "./components/PlTabs/PlTabs.js";
127
129
  import "./components/PlTabs/index.js";
128
- import Be from "./components/PlTextArea/PlTextArea.js";
130
+ import Ve from "./components/PlTextArea/PlTextArea.js";
129
131
  import "./components/PlTextArea/index.js";
130
- import Ve from "./components/PlTextField/PlTextField.js";
132
+ import He from "./components/PlTextField/PlTextField.js";
131
133
  import "./components/PlTextField/index.js";
132
- import He from "./components/PlToggleSwitch/PlToggleSwitch.js";
134
+ import Ue from "./components/PlToggleSwitch/PlToggleSwitch.js";
133
135
  import "./components/PlToggleSwitch/index.js";
134
- import Ue from "./components/PlFileDialog/PlFileDialog.js";
136
+ import We from "./components/PlFileDialog/PlFileDialog.js";
135
137
  import "./components/PlFileDialog/index.js";
136
- import We from "./components/PlFileInput/PlFileInput.js";
138
+ import Ge from "./components/PlFileInput/PlFileInput.js";
137
139
  import "./components/PlFileInput/index.js";
138
- import Ge from "./components/PlNotificationAlert/PlNotificationAlert.js";
140
+ import Ke from "./components/PlNotificationAlert/PlNotificationAlert.js";
139
141
  import "./components/PlNotificationAlert/index.js";
140
- import Ke from "./components/PlSidebar/PlSidebarGroup.js";
141
- import qe from "./components/PlSidebar/PlSidebarItem.js";
142
+ import qe from "./components/PlSidebar/PlSidebarGroup.js";
143
+ import Je from "./components/PlSidebar/PlSidebarItem.js";
142
144
  import "./components/PlSidebar/index.js";
143
- import Je from "./components/PlChartHistogram/PlChartHistogram.js";
145
+ import Ye from "./components/PlChartHistogram/PlChartHistogram.js";
144
146
  import "./components/PlChartHistogram/index.js";
145
- import Ye from "./components/PlChartStackedBar/PlChartStackedBar.js";
146
- import Xe from "./components/PlChartStackedBar/PlChartStackedBarCompact.js";
147
+ import Xe from "./components/PlChartStackedBar/PlChartStackedBar.js";
148
+ import Ze from "./components/PlChartStackedBar/PlChartStackedBarCompact.js";
147
149
  import "./components/PlChartStackedBar/index.js";
148
- import Ze from "./components/PlRadio/PlRadio.js";
149
- import Qe from "./components/PlRadio/PlRadioGroup.js";
150
+ import Qe from "./components/PlRadio/PlRadio.js";
151
+ import $e from "./components/PlRadio/PlRadioGroup.js";
150
152
  import "./components/PlRadio/index.js";
151
- import { categoricalColors as $e, magma as et, palettes as tt, viridis as nt } from "./colors/palette.js";
152
- import { Color as rt } from "./colors/color.js";
153
- import { Gradient as it, interpolateColor as at, normalizeGradient as ot } from "./colors/gradient.js";
153
+ import { categoricalColors as et, magma as tt, palettes as nt, viridis as rt } from "./colors/palette.js";
154
+ import { Color as it } from "./colors/color.js";
155
+ import { Gradient as at, interpolateColor as ot, normalizeGradient as st } from "./colors/gradient.js";
154
156
  import "./colors/index.js";
155
- import { useComponentProp as st } from "./composition/useComponentProp.js";
156
- import { useConfirm as ct } from "./composition/useConfirm.js";
157
- import { useDraggable as lt } from "./composition/useDraggable.js";
158
- import { useFormState as ut } from "./composition/useFormState.js";
159
- import { useInterval as dt } from "./composition/useInterval.js";
160
- import { usePollingQuery as ft } from "./composition/usePollingQuery.js";
161
- import { useQuery as pt } from "./composition/useQuery.js";
162
- import { useScroll as mt } from "./composition/useScroll.js";
163
- import { useSortable as ht } from "./composition/useSortable.js";
164
- import { useSortable2 as gt } from "./composition/useSortable2.js";
165
- import { computedCached as _t } from "./composition/computedCached.js";
166
- import { filterUiMetadata as vt, getFilterUiMetadata as yt, getFilterUiTypeOptions as bt } from "./composition/filters/metadata.js";
167
- import { watchCached as xt } from "./composition/watchCached.js";
168
- import { icons16 as St } from "./generated/icons-16.js";
169
- import { icons24 as Ct } from "./generated/icons-24.js";
157
+ import { useComponentProp as ct } from "./composition/useComponentProp.js";
158
+ import { useConfirm as lt } from "./composition/useConfirm.js";
159
+ import { useDraggable as ut } from "./composition/useDraggable.js";
160
+ import { useFormState as dt } from "./composition/useFormState.js";
161
+ import { useInterval as ft } from "./composition/useInterval.js";
162
+ import { usePollingQuery as pt } from "./composition/usePollingQuery.js";
163
+ import { useQuery as mt } from "./composition/useQuery.js";
164
+ import { useScroll as ht } from "./composition/useScroll.js";
165
+ import { useSortable as gt } from "./composition/useSortable.js";
166
+ import { useSortable2 as _t } from "./composition/useSortable2.js";
167
+ import { computedCached as vt } from "./composition/computedCached.js";
168
+ import { filterUiMetadata as yt, getFilterUiMetadata as bt, getFilterUiTypeOptions as xt } from "./composition/filters/metadata.js";
169
+ import { watchCached as St } from "./composition/watchCached.js";
170
+ import { icons16 as Ct } from "./generated/icons-16.js";
171
+ import { icons24 as wt } from "./generated/icons-24.js";
170
172
  //#region src/index.ts
171
- var wt = { allCssVariables: I() };
173
+ var Tt = { allCssVariables: z() };
172
174
  //#endregion
173
- export { rt as Color, c as ContextProvider, r as DataTable, wt as DemoData, s as DropdownListItem, ce as DropdownOverlay, it as Gradient, T as LongText, V as PL_PLACEHOLDER_TEXTS, Q as PlAccordion, re as PlAccordionSection, ae as PlAlert, ue as PlAutocomplete, fe as PlAutocompleteMulti, H as PlBlockPage, pe as PlBtnAccent, me as PlBtnDanger, he as PlBtnGhost, ge as PlBtnGroup, ve as PlBtnLink, $ as PlBtnPrimary, _e as PlBtnSecondary, ye as PlBtnSplit, Je as PlChartHistogram, Ye as PlChartStackedBar, Xe as PlChartStackedBarCompact, be as PlCheckbox, xe as PlCheckboxGroup, de as PlChip, ie as PlCloseModalBtn, K as PlContainer, Se as PlDialogModal, Ce as PlDropdown, we as PlDropdownLegacy, Te as PlDropdownLine, Ee as PlDropdownMulti, De as PlDropdownMultiRef, Oe as PlDropdownRef, ke as PlEditableTitle, Ae as PlElementList, Z as PlErrorBoundary, Ue as PlFileDialog, We as PlFileInput, q as PlGrid, X as PlIcon16, R as PlIcon24, W as PlLoaderCircular, z as PlLoaderLogo, je as PlLogView, X as PlMaskIcon16, R as PlMaskIcon24, Ge as PlNotificationAlert, Me as PlNumberField, B as PlPlaceholder, Ne as PlProgressBar, Pe as PlProgressCell, Ie as PlPureSlideModal, Ze as PlRadio, Qe as PlRadioGroup, J as PlRow, Fe as PlSearchField, ne as PlSectionSeparator, Ke as PlSidebarGroup, qe as PlSidebarItem, Le as PlSlideModal, Y as PlSpacer, G as PlSplash, Re as PlStatusTag, L as PlSvg, ze as PlTabs, Be as PlTextArea, Ve as PlTextField, He as PlToggleSwitch, C as PlTooltip, N as Scrollable, w as Slider, P as SliderRange, F as SliderRangeTriple, o as ThemeSwitcher, l as animate, u as animateInfinite, d as call, $e as categoricalColors, _t as computedCached, f as delay, D as detectOutside, E as downloadContent, O as eventListener, vt as filterUiMetadata, k as getElementScrollPosition, yt as getFilterUiMetadata, bt as getFilterUiTypeOptions, St as icons16, Ct as icons24, at as interpolateColor, A as isElementVisible, p as listToOptions, et as magma, m as makeEaseInOut, h as makeEaseOut, ot as normalizeGradient, g as normalizeListOptions, tt as palettes, _ as randomInt, v as randomString, y as requestTick, j as scrollIntoView, ee as showContextMenu, b as throttle, x as timeout, S as useClickOutside, st as useComponentProp, ct as useConfirm, lt as useDraggable, te as useEventListener, ut as useFormState, t as useHover, dt as useInterval, oe as useLabelNotch, i as useLocalStorage, e as useMouse, n as useMouseCapture, U as usePlBlockPageTitleTeleportTarget, ft as usePollingQuery, se as usePosition, pt as useQuery, M as useResizeObserver, mt as useScroll, ht as useSortable, gt as useSortable2, a as useTheme, le as useWatchFetch, nt as viridis, xt as watchCached };
175
+ export { it as Color, E as ContextProvider, r as DataTable, Tt as DemoData, T as DropdownListItem, le as DropdownOverlay, at as Gradient, O as LongText, U as PL_PLACEHOLDER_TEXTS, ne as PlAccordion, ie as PlAccordionSection, oe as PlAlert, de as PlAutocomplete, pe as PlAutocompleteMulti, W as PlBlockPage, me as PlBtnAccent, he as PlBtnDanger, ge as PlBtnGhost, _e as PlBtnGroup, $ as PlBtnLink, ye as PlBtnPrimary, ve as PlBtnSecondary, be as PlBtnSplit, Ye as PlChartHistogram, Xe as PlChartStackedBar, Ze as PlChartStackedBarCompact, xe as PlCheckbox, Se as PlCheckboxGroup, fe as PlChip, ae as PlCloseModalBtn, w as PlColumnLabel, J as PlContainer, Ce as PlDialogModal, we as PlDropdown, Te as PlDropdownLegacy, Ee as PlDropdownLine, De as PlDropdownMulti, Oe as PlDropdownMultiRef, ke as PlDropdownRef, Ae as PlEditableTitle, je as PlElementList, Q as PlErrorBoundary, We as PlFileDialog, Ge as PlFileInput, Y as PlGrid, c as PlIcon16, B as PlIcon24, K as PlLoaderCircular, V as PlLoaderLogo, Me as PlLogView, c as PlMaskIcon16, B as PlMaskIcon24, Ke as PlNotificationAlert, Ne as PlNumberField, H as PlPlaceholder, Pe as PlProgressBar, Fe as PlProgressCell, Le as PlPureSlideModal, Qe as PlRadio, $e as PlRadioGroup, X as PlRow, Ie as PlSearchField, re as PlSectionSeparator, qe as PlSidebarGroup, Je as PlSidebarItem, Re as PlSlideModal, Z as PlSpacer, q as PlSplash, ze as PlStatusTag, s as PlSvg, Be as PlTabs, Ve as PlTextArea, He as PlTextField, Ue as PlToggleSwitch, C as PlTooltip, I as Scrollable, D as Slider, L as SliderRange, R as SliderRangeTriple, o as ThemeSwitcher, l as animate, u as animateInfinite, d as call, et as categoricalColors, vt as computedCached, f as delay, A as detectOutside, k as downloadContent, j as eventListener, yt as filterUiMetadata, M as getElementScrollPosition, bt as getFilterUiMetadata, xt as getFilterUiTypeOptions, Ct as icons16, wt as icons24, ot as interpolateColor, N as isElementVisible, p as listToOptions, tt as magma, m as makeEaseInOut, h as makeEaseOut, st as normalizeGradient, g as normalizeListOptions, nt as palettes, _ as randomInt, v as randomString, y as requestTick, P as scrollIntoView, ee as showContextMenu, b as throttle, x as timeout, S as useClickOutside, ct as useComponentProp, lt as useConfirm, ut as useDraggable, te as useEventListener, dt as useFormState, t as useHover, ft as useInterval, se as useLabelNotch, i as useLocalStorage, e as useMouse, n as useMouseCapture, G as usePlBlockPageTitleTeleportTarget, pt as usePollingQuery, ce as usePosition, mt as useQuery, F as useResizeObserver, ht as useScroll, gt as useSortable, _t as useSortable2, a as useTheme, ue as useWatchFetch, rt as viridis, St as watchCached };
174
176
 
175
177
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import \"./assets/ui.scss\";\n\n// @TODO review\nimport * as DataTable from \"./components/DataTable\";\nimport ThemeSwitcher from \"./components/ThemeSwitcher.vue\";\n// @TODO review (may be private)\nimport DropdownListItem from \"./components/DropdownListItem.vue\";\n\n// @TODO review\nimport ContextProvider from \"./components/ContextProvider.vue\";\nimport Slider from \"./components/Slider.vue\";\nimport { showContextMenu } from \"./components/contextMenu\";\n// for new version\nimport LongText from \"./components/LongText.vue\";\nimport Scrollable from \"./components/Scrollable.vue\";\nimport SliderRange from \"./components/SliderRange.vue\";\nimport SliderRangeTriple from \"./components/SliderRangeTriple.vue\";\n\nimport { allCssVariables } from \"./demo-site-data/all-css-variables.ts\";\n\n/**\n * Layout components\n */\n\nexport * from \"./layout/PlBlockPage\";\nexport * from \"./layout/PlContainer\";\nexport * from \"./layout/PlGrid\";\nexport * from \"./layout/PlPlaceholder\";\nexport * from \"./layout/PlRow\";\nexport * from \"./layout/PlSpacer\";\n\n/**\n * Components\n */\nexport * from \"./components/PlErrorBoundary\";\n// export * from './components/PlErrorAlert'; // @TODO discuss if we should export it\nexport * from \"./components/PlAccordion\";\nexport * from \"./components/PlAlert\";\nexport * from \"./components/PlAutocomplete\";\nexport * from \"./components/PlAutocompleteMulti\";\nexport * from \"./components/PlBtnAccent\";\nexport * from \"./components/PlBtnDanger\";\nexport * from \"./components/PlBtnGhost\";\nexport * from \"./components/PlBtnGroup\";\nexport * from \"./components/PlBtnLink\";\nexport * from \"./components/PlBtnPrimary\";\nexport * from \"./components/PlBtnSecondary\";\nexport * from \"./components/PlBtnSplit\";\nexport * from \"./components/PlCheckbox\";\nexport * from \"./components/PlCheckboxGroup\";\nexport * from \"./components/PlChip\";\nexport * from \"./components/PlDialogModal\";\nexport * from \"./components/PlDropdown\";\nexport * from \"./components/PlDropdownLegacy\";\nexport * from \"./components/PlDropdownLine\";\nexport * from \"./components/PlDropdownMulti\";\nexport * from \"./components/PlDropdownMultiRef\";\nexport * from \"./components/PlDropdownRef\";\nexport * from \"./components/PlEditableTitle\";\nexport * from \"./components/PlElementList\";\nexport * from \"./components/PlLoaderCircular\";\nexport * from \"./components/PlLogView\";\nexport * from \"./components/PlNumberField\";\nexport * from \"./components/PlProgressBar\";\nexport * from \"./components/PlProgressCell\";\nexport * from \"./components/PlSearchField\";\nexport * from \"./components/PlSectionSeparator\";\nexport * from \"./components/PlSlideModal\";\nexport * from \"./components/PlSplash\";\nexport * from \"./components/PlStatusTag\";\nexport * from \"./components/PlTabs\";\nexport * from \"./components/PlTextArea\";\nexport * from \"./components/PlTextField\";\nexport * from \"./components/PlToggleSwitch\";\nexport * from \"./components/PlTooltip\";\n\nexport * from \"./components/PlFileDialog\";\nexport * from \"./components/PlFileInput\";\nexport * from \"./components/PlNotificationAlert\";\n\nexport * from \"./components/PlSidebar\";\n\nexport * from \"./components/PlIcon16\";\nexport * from \"./components/PlIcon24\";\nexport * from \"./components/PlMaskIcon16\";\nexport * from \"./components/PlMaskIcon24\";\nexport * from \"./components/PlSvg\";\n\nexport * from \"./components/PlChartHistogram\";\nexport * from \"./components/PlChartStackedBar\";\n\nexport * from \"./components/PlRadio\";\n\nexport { default as PlLoaderLogo } from \"./components/PlLoaderLogo.vue\";\n\nexport * from \"./colors\";\n\n/**\n * Usables\n */\nexport { useClickOutside } from \"./composition/useClickOutside\";\nexport { useComponentProp } from \"./composition/useComponentProp\";\nexport { useConfirm } from \"./composition/useConfirm\";\nexport { useDraggable } from \"./composition/useDraggable\";\nexport { useEventListener } from \"./composition/useEventListener\";\nexport { useFormState } from \"./composition/useFormState\";\nexport { useHover } from \"./composition/useHover\";\nexport { useInterval } from \"./composition/useInterval\";\nexport { usePollingQuery } from \"./composition/usePollingQuery\";\nexport { useLocalStorage } from \"./composition/useLocalStorage\";\nexport { useMouse } from \"./composition/useMouse\";\nexport { useMouseCapture } from \"./composition/useMouseCapture\";\nexport { useElementPosition as usePosition } from \"./composition/usePosition\";\nexport { useQuery } from \"./composition/useQuery.ts\";\nexport { useResizeObserver } from \"./composition/useResizeObserver\";\nexport { useScroll } from \"./composition/useScroll\";\nexport { useSortable } from \"./composition/useSortable\";\nexport { useSortable2 } from \"./composition/useSortable2\";\nexport { useTheme } from \"./composition/useTheme\";\n\nexport * from \"./composition/computedCached\";\nexport * from \"./composition/filters\";\nexport * from \"./composition/useWatchFetch\";\nexport * from \"./composition/watchCached\";\n\n/**\n * Utils/Partials\n */\n\nexport * from \"./utils/DropdownOverlay\";\nexport { default as PlCloseModalBtn } from \"./utils/PlCloseModalBtn.vue\";\n\n/**\n * Technical\n * @TODO move it from here maybe\n */\nexport { useLabelNotch } from \"./utils/useLabelNotch.ts\";\n\nexport type * from \"./types\";\n\nexport { icons16, icons24 } from \"./types\";\n\nexport * from \"./helpers/dom\";\n\nexport * from \"./helpers/utils\";\n\n/**\n * @TODO review\n */\nexport { ContextProvider, DataTable, DropdownListItem, Slider, ThemeSwitcher };\n\n// Helpers\nexport { showContextMenu };\n\n// move to new version pl-uikit\nexport { LongText, Scrollable, SliderRange, SliderRangeTriple };\n\n// @todo\nconst DemoData = { allCssVariables: allCssVariables() };\nexport { DemoData };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8JA,IAAM,KAAW,EAAE,iBAAiB,GAAiB,EAAE"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import \"./assets/ui.scss\";\n\n// @TODO review\nimport * as DataTable from \"./components/DataTable\";\nimport ThemeSwitcher from \"./components/ThemeSwitcher.vue\";\n// @TODO review (may be private)\nimport DropdownListItem from \"./components/DropdownListItem.vue\";\n\n// @TODO review\nimport ContextProvider from \"./components/ContextProvider.vue\";\nimport Slider from \"./components/Slider.vue\";\nimport { showContextMenu } from \"./components/contextMenu\";\n// for new version\nimport LongText from \"./components/LongText.vue\";\nimport Scrollable from \"./components/Scrollable.vue\";\nimport SliderRange from \"./components/SliderRange.vue\";\nimport SliderRangeTriple from \"./components/SliderRangeTriple.vue\";\n\nimport { allCssVariables } from \"./demo-site-data/all-css-variables.ts\";\n\n/**\n * Layout components\n */\n\nexport * from \"./layout/PlBlockPage\";\nexport * from \"./layout/PlContainer\";\nexport * from \"./layout/PlGrid\";\nexport * from \"./layout/PlPlaceholder\";\nexport * from \"./layout/PlRow\";\nexport * from \"./layout/PlSpacer\";\n\n/**\n * Components\n */\nexport * from \"./components/PlErrorBoundary\";\n// export * from './components/PlErrorAlert'; // @TODO discuss if we should export it\nexport * from \"./components/PlAccordion\";\nexport * from \"./components/PlAlert\";\nexport * from \"./components/PlAutocomplete\";\nexport * from \"./components/PlAutocompleteMulti\";\nexport * from \"./components/PlBtnAccent\";\nexport * from \"./components/PlBtnDanger\";\nexport * from \"./components/PlBtnGhost\";\nexport * from \"./components/PlBtnGroup\";\nexport * from \"./components/PlBtnLink\";\nexport * from \"./components/PlBtnPrimary\";\nexport * from \"./components/PlBtnSecondary\";\nexport * from \"./components/PlBtnSplit\";\nexport * from \"./components/PlCheckbox\";\nexport * from \"./components/PlCheckboxGroup\";\nexport * from \"./components/PlChip\";\nexport * from \"./components/PlDialogModal\";\nexport * from \"./components/PlDropdown\";\nexport * from \"./components/PlDropdownLegacy\";\nexport * from \"./components/PlDropdownLine\";\nexport * from \"./components/PlDropdownMulti\";\nexport * from \"./components/PlDropdownMultiRef\";\nexport * from \"./components/PlDropdownRef\";\nexport * from \"./components/PlEditableTitle\";\nexport * from \"./components/PlElementList\";\nexport * from \"./components/PlLoaderCircular\";\nexport * from \"./components/PlLogView\";\nexport * from \"./components/PlNumberField\";\nexport * from \"./components/PlProgressBar\";\nexport * from \"./components/PlProgressCell\";\nexport * from \"./components/PlSearchField\";\nexport * from \"./components/PlSectionSeparator\";\nexport * from \"./components/PlSlideModal\";\nexport * from \"./components/PlSplash\";\nexport * from \"./components/PlStatusTag\";\nexport * from \"./components/PlTabs\";\nexport * from \"./components/PlTextArea\";\nexport * from \"./components/PlTextField\";\nexport * from \"./components/PlToggleSwitch\";\nexport * from \"./components/PlTooltip\";\nexport * from \"./components/PlColumnLabel\";\n\nexport * from \"./components/PlFileDialog\";\nexport * from \"./components/PlFileInput\";\nexport * from \"./components/PlNotificationAlert\";\n\nexport * from \"./components/PlSidebar\";\n\nexport * from \"./components/PlIcon16\";\nexport * from \"./components/PlIcon24\";\nexport * from \"./components/PlMaskIcon16\";\nexport * from \"./components/PlMaskIcon24\";\nexport * from \"./components/PlSvg\";\n\nexport * from \"./components/PlChartHistogram\";\nexport * from \"./components/PlChartStackedBar\";\n\nexport * from \"./components/PlRadio\";\n\nexport { default as PlLoaderLogo } from \"./components/PlLoaderLogo.vue\";\n\nexport * from \"./colors\";\n\n/**\n * Usables\n */\nexport { useClickOutside } from \"./composition/useClickOutside\";\nexport { useComponentProp } from \"./composition/useComponentProp\";\nexport { useConfirm } from \"./composition/useConfirm\";\nexport { useDraggable } from \"./composition/useDraggable\";\nexport { useEventListener } from \"./composition/useEventListener\";\nexport { useFormState } from \"./composition/useFormState\";\nexport { useHover } from \"./composition/useHover\";\nexport { useInterval } from \"./composition/useInterval\";\nexport { usePollingQuery } from \"./composition/usePollingQuery\";\nexport { useLocalStorage } from \"./composition/useLocalStorage\";\nexport { useMouse } from \"./composition/useMouse\";\nexport { useMouseCapture } from \"./composition/useMouseCapture\";\nexport { useElementPosition as usePosition } from \"./composition/usePosition\";\nexport { useQuery } from \"./composition/useQuery.ts\";\nexport { useResizeObserver } from \"./composition/useResizeObserver\";\nexport { useScroll } from \"./composition/useScroll\";\nexport { useSortable } from \"./composition/useSortable\";\nexport { useSortable2 } from \"./composition/useSortable2\";\nexport { useTheme } from \"./composition/useTheme\";\n\nexport * from \"./composition/computedCached\";\nexport * from \"./composition/filters\";\nexport * from \"./composition/useWatchFetch\";\nexport * from \"./composition/watchCached\";\n\n/**\n * Utils/Partials\n */\n\nexport * from \"./utils/DropdownOverlay\";\nexport { default as PlCloseModalBtn } from \"./utils/PlCloseModalBtn.vue\";\n\n/**\n * Technical\n * @TODO move it from here maybe\n */\nexport { useLabelNotch } from \"./utils/useLabelNotch.ts\";\n\nexport type * from \"./types\";\n\nexport { icons16, icons24 } from \"./types\";\n\nexport * from \"./helpers/dom\";\n\nexport * from \"./helpers/utils\";\n\n/**\n * @TODO review\n */\nexport { ContextProvider, DataTable, DropdownListItem, Slider, ThemeSwitcher };\n\n// Helpers\nexport { showContextMenu };\n\n// move to new version pl-uikit\nexport { LongText, Scrollable, SliderRange, SliderRangeTriple };\n\n// @todo\nconst DemoData = { allCssVariables: allCssVariables() };\nexport { DemoData };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+JA,IAAM,KAAW,EAAE,iBAAiB,GAAiB,EAAE"}
@@ -1,5 +1,5 @@
1
- import { tap as e, tapIf as t } from "../helpers/functions.js";
2
- import { call as n } from "../helpers/utils.js";
1
+ import { call as e } from "../helpers/utils.js";
2
+ import { tap as t, tapIf as n } from "../helpers/functions.js";
3
3
  import { onChanged as r } from "../composition/utils.js";
4
4
  import { startResizeObserving as i, stopResizeObserving as a } from "../global/resizeObserver.js";
5
5
  import { onBeforeUnmount as o } from "vue";
@@ -8,11 +8,11 @@ var s = 8, c = 4;
8
8
  function l(l, u = "label") {
9
9
  let d = /* @__PURE__ */ new Set();
10
10
  r(() => {
11
- t(l?.value, (t) => {
12
- let r = t.querySelector(u);
11
+ n(l?.value, (n) => {
12
+ let r = n.querySelector(u);
13
13
  r && (d.add(r), i(r, () => {
14
- let i = n(() => r.getBoundingClientRect().width + e(s, (e) => Number.isNaN(e) ? c : e + c));
15
- t.style.getPropertyValue("--label-offset-right-x") !== `${i}px` && t.style.setProperty("--label-offset-right-x", `${i}px`);
14
+ let i = e(() => r.getBoundingClientRect().width + t(s, (e) => Number.isNaN(e) ? c : e + c));
15
+ n.style.getPropertyValue("--label-offset-right-x") !== `${i}px` && n.style.setProperty("--label-offset-right-x", `${i}px`);
16
16
  }));
17
17
  });
18
18
  }), o(() => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milaboratories/uikit",
3
- "version": "2.15.42",
3
+ "version": "2.16.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "exports": {
@@ -31,8 +31,8 @@
31
31
  "resize-observer-polyfill": "^1.5.1",
32
32
  "sortablejs": "^1.15.6",
33
33
  "vue": "3.5.24",
34
- "@platforma-sdk/model": "1.85.0",
35
- "@milaboratories/helpers": "1.14.5"
34
+ "@milaboratories/helpers": "1.14.5",
35
+ "@platforma-sdk/model": "1.86.0"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@vitest/coverage-istanbul": "^4.1.3",
@@ -41,8 +41,13 @@
41
41
  "typescript": "7.0.2",
42
42
  "vitest": "^4.1.3",
43
43
  "@milaboratories/build-configs": "2.0.2",
44
- "@milaboratories/ts-configs": "1.4.0",
45
- "@milaboratories/ts-builder": "1.7.2"
44
+ "@milaboratories/ts-builder": "1.7.2",
45
+ "@milaboratories/ts-configs": "1.4.0"
46
+ },
47
+ "repository": {
48
+ "type": "git",
49
+ "url": "git+https://github.com/milaboratory/platforma.git",
50
+ "directory": "lib/ui/uikit"
46
51
  },
47
52
  "scripts": {
48
53
  "dev": "ts-builder serve --target browser-lib --build-config ./build.browser-lib.config.js",
@@ -3,6 +3,7 @@ import { computed } from "vue";
3
3
  import CheckboxUncheckedSvg from "../assets/images/24_checkbox-light-enabled-unchecked.svg?raw";
4
4
  import CheckboxCheckedSvg from "../assets/images/24_checkbox-light-enabled-checked.svg?raw";
5
5
  import type { ListOptionNormalized } from "../types";
6
+ import { PlColumnLabel } from "./PlColumnLabel";
6
7
 
7
8
  const props = withDefaults(
8
9
  defineProps<{
@@ -58,7 +59,7 @@ const checkboxSvg = computed(() => (props.isSelected ? CheckboxCheckedSvg : Chec
58
59
  <!--eslint-enable-->
59
60
  <div class="dropdown-list-item__title-container">
60
61
  <div class="dropdown-list-item__title text-s" data-testid="pl-dropdown-list-item-title">
61
- {{ option.label }}
62
+ <PlColumnLabel :option="option" />
62
63
  </div>
63
64
  <div
64
65
  v-if="option.description"
@@ -0,0 +1,46 @@
1
+ <script setup lang="ts">
2
+ import type { ListOptionBase } from "@platforma-sdk/model";
3
+ import { PlIcon16 } from "../PlIcon16";
4
+ import { PlTooltip } from "../PlTooltip";
5
+
6
+ /**
7
+ * A column's name as every table and dropdown shows it. A column reached through a link to
8
+ * another dataset gets a link icon in front, with `linkHint` on hover. Takes the whole option, so
9
+ * a new option field only needs handling here.
10
+ */
11
+ defineProps<{
12
+ option?: Pick<ListOptionBase, "label" | "linkHint">;
13
+ }>();
14
+ </script>
15
+
16
+ <template>
17
+ <span :class="$style.root" data-testid="pl-column-label">
18
+ <PlTooltip v-if="option?.linkHint" :class="$style.link" data-testid="pl-column-label-link">
19
+ <template #tooltip>{{ option.linkHint }}</template>
20
+ <PlIcon16 name="link" />
21
+ </PlTooltip>
22
+ <!-- For a label the caller renders itself, e.g. with search matches highlighted. -->
23
+ <slot>{{ option?.label }}</slot>
24
+ </span>
25
+ </template>
26
+
27
+ <style module>
28
+ .root {
29
+ display: inline-flex;
30
+ align-items: center;
31
+ gap: 4px;
32
+ min-width: 0;
33
+ max-width: 100%;
34
+ }
35
+
36
+ /* Lets a long label shrink, so it can truncate. */
37
+ .root > * {
38
+ min-width: 0;
39
+ }
40
+
41
+ /* PlTooltip's inline-block wrapper would lift the icon above the text's centre. */
42
+ .root > .link {
43
+ display: flex;
44
+ flex-shrink: 0;
45
+ }
46
+ </style>
@@ -0,0 +1 @@
1
+ export { default as PlColumnLabel } from "./PlColumnLabel.vue";
@@ -18,6 +18,7 @@ import type { ListOption, ListOptionNormalized, MaskIconName16, MaskIconName24 }
18
18
  import DoubleContour from "../../utils/DoubleContour.vue";
19
19
  import { useLabelNotch } from "../../utils/useLabelNotch";
20
20
  import LongText from "../LongText.vue";
21
+ import { PlColumnLabel } from "../PlColumnLabel";
21
22
  import { PlIcon16 } from "../PlIcon16";
22
23
  import { PlIcon24 } from "../PlIcon24";
23
24
  import { PlSvg } from "../PlSvg";
@@ -205,19 +206,21 @@ const optionsRef = computed<LOption<M>[]>(() =>
205
206
  })),
206
207
  );
207
208
 
208
- const textValue = computed(() => {
209
- const options = unref(optionsRef);
210
- const item: ListOption | undefined = options.find((o) => deepEqual(o.value, props.modelValue));
211
- return item?.label;
212
- });
209
+ const selectedOption = computed(() =>
210
+ unref(optionsRef).find((o) => deepEqual(o.value, props.modelValue)),
211
+ );
213
212
 
214
- // Native tooltip with the full selected value. The `.input-value` layer has
213
+ const textValue = computed(() => selectedOption.value?.label);
214
+
215
+ // Native tooltip with the full selected value and its link hint. The `.input-value` layer has
215
216
  // `pointer-events: none`, so the title must sit on the field wrapper, which is
216
217
  // what actually receives the hover.
217
218
  const fieldTitle = computed(() => {
218
219
  if (data.open) return undefined;
219
220
  if (isMissing.value) return props.missingValueLabel;
220
- return textValue.value !== undefined ? String(textValue.value) : undefined;
221
+ if (textValue.value === undefined) return undefined;
222
+ const hint = selectedOption.value?.linkHint;
223
+ return hint ? `${textValue.value}\n${hint}` : String(textValue.value);
221
224
  });
222
225
 
223
226
  const computedPlaceholder = computed(() => {
@@ -389,9 +392,9 @@ watchPostEffect(() => {
389
392
  >
390
393
  {{ missingValueLabel }}
391
394
  </LongText>
392
- <LongText v-else-if="textValue !== undefined">
393
- {{ textValue }}
394
- </LongText>
395
+ <PlColumnLabel v-else-if="textValue !== undefined" :option="selectedOption">
396
+ <LongText>{{ textValue }}</LongText>
397
+ </PlColumnLabel>
395
398
  </div>
396
399
 
397
400
  <div class="pl-dropdown__controls">
@@ -147,5 +147,6 @@ export function normalizeListOptions<V = unknown>(
147
147
  value: it.value,
148
148
  description: it.description,
149
149
  group: it.group,
150
+ linkHint: it.linkHint,
150
151
  }));
151
152
  }
package/src/index.ts CHANGED
@@ -73,6 +73,7 @@ export * from "./components/PlTextArea";
73
73
  export * from "./components/PlTextField";
74
74
  export * from "./components/PlToggleSwitch";
75
75
  export * from "./components/PlTooltip";
76
+ export * from "./components/PlColumnLabel";
76
77
 
77
78
  export * from "./components/PlFileDialog";
78
79
  export * from "./components/PlFileInput";