@leavepulse/ui 0.45.1 → 0.47.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 (125) hide show
  1. package/dist/assets/HighlightText-BwC5xbqn.css +6 -0
  2. package/dist/assets/{LpCommandPalette-HzAA4gri.css → LpCommandPalette-DmQUsJqA.css} +21 -21
  3. package/dist/assets/{LpDropzone-i4BdMi1H.css → LpDropzone-Ev6X03zj.css} +12 -12
  4. package/dist/assets/LpKeys-BxRhfQda.css +36 -0
  5. package/dist/assets/LpPaletteFacts-B9FdVmIO.css +93 -0
  6. package/dist/assets/LpPaletteHeader-BVOu1UX5.css +70 -0
  7. package/dist/assets/LpPalettePreview-CJmAKgYW.css +43 -0
  8. package/dist/assets/LpPaletteStats-ClE-37MK.css +33 -0
  9. package/dist/assets/LpPaletteSwatches-CA0B8y2E.css +21 -0
  10. package/dist/assets/{LpShortcutsDialog-CqYX3yy6.css → LpShortcutsDialog-BUp_BX4s.css} +7 -28
  11. package/dist/assets/{LpTable-CPwWxTJS.css → LpTable-xWwI4KPZ.css} +17 -17
  12. package/dist/chunks/HighlightText-BvnYZkhi.js +27 -0
  13. package/dist/chunks/{LpAddressInput-CJOYGZlI.js → LpAddressInput-iOJhmRzy.js} +1 -1
  14. package/dist/chunks/{LpAppShell-B07Lf48e.js → LpAppShell-BmMYcEVx.js} +2 -2
  15. package/dist/chunks/{LpAvatar-C1XStdOo.js → LpAvatar-Cb1jtOVv.js} +22 -4
  16. package/dist/chunks/{LpCard-C2IvucmX.js → LpCard-BdxkMXjo.js} +1 -1
  17. package/dist/chunks/{LpColorPicker-zz4VGkG4.js → LpColorPicker-BLqPX5Vw.js} +1 -1
  18. package/dist/chunks/{LpConfirmDialog-BTVAR4tF.js → LpConfirmDialog-Ca-CTlxT.js} +1 -1
  19. package/dist/chunks/{LpConfirmHost-Ci_uCHgQ.js → LpConfirmHost-BAaSaT2b.js} +1 -1
  20. package/dist/chunks/{LpContextMenu-BqkAYa9X.js → LpContextMenu-1cKew_Dc.js} +17 -4
  21. package/dist/chunks/{LpDrawer-CfRhHwmE.js → LpDrawer-CBFVD624.js} +1 -1
  22. package/dist/chunks/{LpDropdownMenu-DdJGQzPn.js → LpDropdownMenu-DrpJJBp0.js} +22 -8
  23. package/dist/chunks/{LpFileTree-CNurOvkV.js → LpFileTree-bk5VjBey.js} +2 -2
  24. package/dist/chunks/{LpFileTreeNode-D_qRRdsH.js → LpFileTreeNode-BvMSBM7X.js} +1 -1
  25. package/dist/chunks/{LpLightbox-DSDahF23.js → LpLightbox-EVXzAq62.js} +3 -3
  26. package/dist/chunks/{LpLogViewer-KypbgOyo.js → LpLogViewer-BDFXzvcl.js} +2 -2
  27. package/dist/chunks/{LpMediaGallery-YKr-cQPN.js → LpMediaGallery-BnlkN_1f.js} +1 -1
  28. package/dist/chunks/{LpModal-BzTVeNqe.js → LpModal-JNa3B_Lr.js} +12 -5
  29. package/dist/chunks/{LpModalNav-CjABSGCu.js → LpModalNav-BAxC9et7.js} +10 -3
  30. package/dist/chunks/{LpNotificationBell-CCwyJP5C.js → LpNotificationBell-DsqSyMwS.js} +2 -2
  31. package/dist/chunks/LpPalettePreview-CFav_7co.js +19 -0
  32. package/dist/chunks/{LpPie-BEJ2SfI6.js → LpPie-BdSnta11.js} +1 -1
  33. package/dist/chunks/{LpScrollArea-Bry1fdOM.js → LpScrollArea-Hz3-JWUG.js} +23 -5
  34. package/dist/chunks/{LpSidebar-Bwws_X29.js → LpSidebar-DpEiGi8L.js} +2 -2
  35. package/dist/chunks/{LpSidebarNav-kx-LdqNU.js → LpSidebarNav-BUuxipX-.js} +2 -2
  36. package/dist/chunks/{LpThemeSwitcher-B4aVPbNC.js → LpThemeSwitcher-BbYFFT5w.js} +1 -1
  37. package/dist/chunks/MenuTitle-J3ZDYjpV.js +56 -0
  38. package/dist/component-names.d.ts +1 -1
  39. package/dist/components/HighlightText.vue.d.ts +7 -0
  40. package/dist/components/HighlightText.vue.js +4 -0
  41. package/dist/components/LpAddressInput.vue.js +1 -1
  42. package/dist/components/LpAppShell.vue.js +1 -1
  43. package/dist/components/LpAvatar.vue.d.ts +12 -0
  44. package/dist/components/LpAvatar.vue.js +1 -1
  45. package/dist/components/LpCard.vue.js +1 -1
  46. package/dist/components/LpChart.vue.js +1 -1
  47. package/dist/components/LpColorPicker.vue.js +1 -1
  48. package/dist/components/LpCommandPalette.vue.d.ts +152 -15
  49. package/dist/components/LpCommandPalette.vue.js +181 -92
  50. package/dist/components/LpConfirmDialog.vue.js +1 -1
  51. package/dist/components/LpConfirmHost.vue.js +1 -1
  52. package/dist/components/LpContextMenu.vue.d.ts +11 -0
  53. package/dist/components/LpContextMenu.vue.js +1 -1
  54. package/dist/components/LpDrawer.vue.js +1 -1
  55. package/dist/components/LpDropdownMenu.vue.d.ts +6 -0
  56. package/dist/components/LpDropdownMenu.vue.js +1 -1
  57. package/dist/components/LpDropzone.vue.d.ts +14 -0
  58. package/dist/components/LpDropzone.vue.js +9 -7
  59. package/dist/components/LpFileTree.vue.js +1 -1
  60. package/dist/components/LpFileTreeNode.vue.js +1 -1
  61. package/dist/components/LpKeys.vue.d.ts +22 -0
  62. package/dist/components/LpKeys.vue.js +52 -0
  63. package/dist/components/LpLightbox.vue.js +1 -1
  64. package/dist/components/LpLogViewer.vue.js +1 -1
  65. package/dist/components/LpMediaGallery.vue.js +1 -1
  66. package/dist/components/LpModal.vue.d.ts +7 -5
  67. package/dist/components/LpModal.vue.js +1 -1
  68. package/dist/components/LpModalNav.vue.d.ts +5 -3
  69. package/dist/components/LpModalNav.vue.js +1 -1
  70. package/dist/components/LpNotificationBell.vue.js +1 -1
  71. package/dist/components/LpPaletteFacts.vue.d.ts +25 -0
  72. package/dist/components/LpPaletteFacts.vue.js +85 -0
  73. package/dist/components/LpPaletteHeader.vue.d.ts +32 -0
  74. package/dist/components/LpPaletteHeader.vue.js +103 -0
  75. package/dist/components/LpPalettePreview.vue.d.ts +19 -0
  76. package/dist/components/LpPalettePreview.vue.js +4 -0
  77. package/dist/components/LpPaletteStats.vue.d.ts +11 -0
  78. package/dist/components/LpPaletteStats.vue.js +47 -0
  79. package/dist/components/LpPaletteSwatches.vue.d.ts +10 -0
  80. package/dist/components/LpPaletteSwatches.vue.js +34 -0
  81. package/dist/components/LpPie.vue.js +1 -1
  82. package/dist/components/LpScrollArea.vue.d.ts +2 -2
  83. package/dist/components/LpScrollArea.vue.js +1 -1
  84. package/dist/components/LpShortcutsDialog.vue.js +9 -29
  85. package/dist/components/LpSidebar.vue.js +1 -1
  86. package/dist/components/LpSidebarNav.vue.js +1 -1
  87. package/dist/components/LpTable.vue.js +8 -6
  88. package/dist/components/LpThemeSwitcher.vue.js +1 -1
  89. package/dist/components/MenuTitle.vue.d.ts +9 -0
  90. package/dist/components/MenuTitle.vue.js +4 -0
  91. package/dist/components/commandPalette.d.ts +157 -0
  92. package/dist/components/commandPalette.js +103 -0
  93. package/dist/components/commandSearch.d.ts +32 -0
  94. package/dist/components/commandSearch.js +48 -0
  95. package/dist/components/keys.d.ts +2 -0
  96. package/dist/components/keys.js +11 -0
  97. package/dist/composables/useClipboard.js +35 -2
  98. package/dist/index.d.ts +12 -3
  99. package/dist/index.js +161 -138
  100. package/package.json +1 -1
  101. package/src/component-names.ts +6 -0
  102. package/src/components/HighlightText.vue +28 -0
  103. package/src/components/LpAvatar.vue +21 -2
  104. package/src/components/LpCommandPalette.vue +392 -86
  105. package/src/components/LpContextMenu.vue +19 -1
  106. package/src/components/LpDropdownMenu.vue +14 -2
  107. package/src/components/LpDropzone.vue +13 -5
  108. package/src/components/LpKeys.vue +79 -0
  109. package/src/components/LpLightbox.vue +4 -1
  110. package/src/components/LpModal.vue +7 -1
  111. package/src/components/LpModalNav.vue +4 -0
  112. package/src/components/LpPaletteFacts.vue +165 -0
  113. package/src/components/LpPaletteHeader.vue +155 -0
  114. package/src/components/LpPalettePreview.vue +77 -0
  115. package/src/components/LpPaletteStats.vue +81 -0
  116. package/src/components/LpPaletteSwatches.vue +56 -0
  117. package/src/components/LpScrollArea.vue +30 -2
  118. package/src/components/LpShortcutsDialog.vue +2 -45
  119. package/src/components/LpTable.vue +7 -2
  120. package/src/components/MenuTitle.vue +34 -0
  121. package/src/components/commandPalette.ts +264 -0
  122. package/src/components/commandSearch.ts +79 -0
  123. package/src/components/keys.ts +13 -0
  124. package/src/composables/useClipboard.ts +49 -7
  125. package/src/index.ts +12 -3
package/dist/index.js CHANGED
@@ -1,101 +1,109 @@
1
1
  import { _ } from "./chunks/LayoutCanvas-BkaGXTjx.js";
2
- import { _ as _2 } from "./chunks/LpAddressInput-CJOYGZlI.js";
2
+ import { _ as _2 } from "./chunks/LpAddressInput-iOJhmRzy.js";
3
3
  import { _ as _3 } from "./chunks/LpMapPicker-Cc84LaM3.js";
4
4
  import { OSM_TILES, createNominatimProvider, emptyAddress, formatAddress, project, tileUrl, unproject } from "./components/address.js";
5
5
  import { _ as _4 } from "./chunks/LpActionBar-CnfFVIwC.js";
6
6
  import { _ as _5 } from "./chunks/LpAlert-B6ilrM7T.js";
7
- import { _ as _6 } from "./chunks/LpAppShell-B07Lf48e.js";
7
+ import { _ as _6 } from "./chunks/LpAppShell-BmMYcEVx.js";
8
8
  import { _ as _7 } from "./chunks/LpAutocomplete-C8IgSMsi.js";
9
- import { _ as _8 } from "./chunks/LpAvatar-C1XStdOo.js";
9
+ import { _ as _8 } from "./chunks/LpAvatar-Cb1jtOVv.js";
10
10
  import { _ as _9 } from "./chunks/LpBadge-Fe0D1bYx.js";
11
11
  import { _ as _10 } from "./chunks/LpBreadcrumbs-CQJd73Gm.js";
12
12
  import { _ as _11 } from "./chunks/LpButton-CKSwC6Mu.js";
13
13
  import { _ as _12 } from "./chunks/LpCalendar-DrA2McTU.js";
14
- import { _ as _13 } from "./chunks/LpCard-C2IvucmX.js";
14
+ import { _ as _13 } from "./chunks/LpCard-BdxkMXjo.js";
15
15
  import { default as default2 } from "./components/LpChart.vue.js";
16
16
  import { backgroundOf, csvField, downloadFile, fileStem, inlineSvg, resolveCssColor, svgToPng, toCsv } from "./components/exportData.js";
17
17
  import { CHART_PALETTE, axisTicks, chartSummary, formatTick, markerIndex, niceScale, resolveSlices } from "./components/chart.js";
18
18
  import { _ as _14 } from "./chunks/LpCheckbox-Bkj13CbW.js";
19
19
  import { _ as _15 } from "./chunks/LpCodeBlock-ca7ANFyW.js";
20
20
  import { tokenizeLines } from "./components/codeHighlight.js";
21
- import { _ as _16 } from "./chunks/LpColorPicker-zz4VGkG4.js";
21
+ import { _ as _16 } from "./chunks/LpColorPicker-BLqPX5Vw.js";
22
22
  import { DEFAULT_SWATCHES, clampHsv, formatColor, hsvToHsl, hsvToRgb, isLight, normalizeHue, opaqueCss, parseColor, parseHex, rgbToHex, rgbToHsv } from "./components/color.js";
23
23
  import { default as default3 } from "./components/LpCommandPalette.vue.js";
24
- import { parseCommandQuery, rankCommandItems } from "./components/commandSearch.js";
25
- import { _ as _17 } from "./chunks/LpConfirmDialog-BTVAR4tF.js";
26
- import { _ as _18 } from "./chunks/LpConfirmHost-Ci_uCHgQ.js";
24
+ import { applyQueryFilters, highlightParts, parseCommandQuery, parsePaletteQuery, rankCommandItems } from "./components/commandSearch.js";
25
+ import { commandHasPreview, pushRecent, readRecent, toRecentItem } from "./components/commandPalette.js";
26
+ import { _ as _17 } from "./chunks/LpPalettePreview-CFav_7co.js";
27
+ import { default as default4 } from "./components/LpPaletteHeader.vue.js";
28
+ import { default as default5 } from "./components/LpPaletteFacts.vue.js";
29
+ import { default as default6 } from "./components/LpPaletteStats.vue.js";
30
+ import { default as default7 } from "./components/LpPaletteSwatches.vue.js";
31
+ import { default as default8 } from "./components/LpKeys.vue.js";
32
+ import { comboKeys, comboSteps } from "./components/keys.js";
33
+ import { _ as _18 } from "./chunks/LpConfirmDialog-Ca-CTlxT.js";
34
+ import { _ as _19 } from "./chunks/LpConfirmHost-BAaSaT2b.js";
27
35
  import { confirm, useConfirm } from "./components/confirm.js";
28
- import { _ as _19 } from "./chunks/LpContextMenu-BqkAYa9X.js";
29
- import { _ as _20 } from "./chunks/LpDatePicker-BrdFtSTy.js";
30
- import { _ as _21 } from "./chunks/LpDateRangePicker-Drd7EbIz.js";
31
- import { _ as _22 } from "./chunks/LpRangeCalendar-DZuaRV0W.js";
36
+ import { _ as _20 } from "./chunks/LpContextMenu-1cKew_Dc.js";
37
+ import { _ as _21 } from "./chunks/LpDatePicker-BrdFtSTy.js";
38
+ import { _ as _22 } from "./chunks/LpDateRangePicker-Drd7EbIz.js";
39
+ import { _ as _23 } from "./chunks/LpRangeCalendar-DZuaRV0W.js";
32
40
  import { clampRange, defaultRangePresets, formatRange, normalizeRange, sameRange } from "./components/dateRange.js";
33
- import { _ as _23 } from "./chunks/LpDisclosure-Cc23-JOT.js";
34
- import { _ as _24 } from "./chunks/LpDivider-CUX46KR0.js";
35
- import { _ as _25 } from "./chunks/LpDrawer-CfRhHwmE.js";
36
- import { _ as _26 } from "./chunks/LpDropdownMenu-DdJGQzPn.js";
37
- import { default as default4 } from "./components/LpDropzone.vue.js";
38
- import { _ as _27 } from "./chunks/LpEmptyState-BJbZXC8D.js";
39
- import { _ as _28 } from "./chunks/LpFileTree-CNurOvkV.js";
41
+ import { _ as _24 } from "./chunks/LpDisclosure-Cc23-JOT.js";
42
+ import { _ as _25 } from "./chunks/LpDivider-CUX46KR0.js";
43
+ import { _ as _26 } from "./chunks/LpDrawer-CBFVD624.js";
44
+ import { _ as _27 } from "./chunks/LpDropdownMenu-DrpJJBp0.js";
45
+ import { default as default9 } from "./components/LpDropzone.vue.js";
46
+ import { _ as _28 } from "./chunks/LpEmptyState-BJbZXC8D.js";
47
+ import { _ as _29 } from "./chunks/LpFileTree-bk5VjBey.js";
40
48
  import { ancestorIds, checkStateOf, checkedCount, computeStats, fileIcon, formatModified, formatSize, sortNodes, subtreeIds, subtreeSize } from "./components/fileTree.js";
41
- import { _ as _29 } from "./chunks/LpFieldNotice-wtieLUTj.js";
42
- import { _ as _30 } from "./chunks/LpFormField-CtVYj6tO.js";
43
- import { _ as _31 } from "./chunks/LpIcon-DYtaid0K.js";
49
+ import { _ as _30 } from "./chunks/LpFieldNotice-wtieLUTj.js";
50
+ import { _ as _31 } from "./chunks/LpFormField-CtVYj6tO.js";
51
+ import { _ as _32 } from "./chunks/LpIcon-DYtaid0K.js";
44
52
  import { i, b, a, c } from "./chunks/icons-CkA0njzm.js";
45
- import { default as default5 } from "./components/LpImageEditor.vue.js";
46
- import { _ as _32 } from "./chunks/LpInfraNode-Ds_8SZgN.js";
47
- import { _ as _33 } from "./chunks/LpInput-D-YGQbEv.js";
48
- import { _ as _34 } from "./chunks/LpLightbox-DSDahF23.js";
53
+ import { default as default10 } from "./components/LpImageEditor.vue.js";
54
+ import { _ as _33 } from "./chunks/LpInfraNode-Ds_8SZgN.js";
55
+ import { _ as _34 } from "./chunks/LpInput-D-YGQbEv.js";
56
+ import { _ as _35 } from "./chunks/LpLightbox-EVXzAq62.js";
49
57
  import { fileNameOf } from "./components/lightbox.js";
50
- import { _ as _35 } from "./chunks/LpLink-Krkjhe_y.js";
51
- import { _ as _36 } from "./chunks/LpLogViewer-KypbgOyo.js";
58
+ import { _ as _36 } from "./chunks/LpLink-Krkjhe_y.js";
59
+ import { _ as _37 } from "./chunks/LpLogViewer-BDFXzvcl.js";
52
60
  import { countLevels, matchPositions, matchesTerm, ringWindow, stepMatch } from "./components/logSearch.js";
53
- import { _ as _37 } from "./chunks/LpMediaGallery-YKr-cQPN.js";
54
- import { _ as _38 } from "./chunks/LpModal-BzTVeNqe.js";
55
- import { _ as _39 } from "./chunks/LpModalNav-CjABSGCu.js";
56
- import { _ as _40 } from "./chunks/LpNotificationBell-CCwyJP5C.js";
57
- import { _ as _41 } from "./chunks/LpNumberField-B77O-z28.js";
58
- import { _ as _42 } from "./chunks/LpTimeField-Cqe7fXnh.js";
59
- import { _ as _43 } from "./chunks/LpNumberFlow-z4WPZcZu.js";
60
- import { _ as _44 } from "./chunks/LpOtpInput-CziPF3Oq.js";
61
- import { _ as _45 } from "./chunks/LpPagination-BcDlo3r_.js";
62
- import { _ as _46 } from "./chunks/LpPasswordInput-eKzQhbQP.js";
63
- import { _ as _47 } from "./chunks/LpPie-BEJ2SfI6.js";
64
- import { _ as _48 } from "./chunks/LpPhoneInput-BCbrrhgE.js";
61
+ import { _ as _38 } from "./chunks/LpMediaGallery-BnlkN_1f.js";
62
+ import { _ as _39 } from "./chunks/LpModal-JNa3B_Lr.js";
63
+ import { _ as _40 } from "./chunks/LpModalNav-BAxC9et7.js";
64
+ import { _ as _41 } from "./chunks/LpNotificationBell-DsqSyMwS.js";
65
+ import { _ as _42 } from "./chunks/LpNumberField-B77O-z28.js";
66
+ import { _ as _43 } from "./chunks/LpTimeField-Cqe7fXnh.js";
67
+ import { _ as _44 } from "./chunks/LpNumberFlow-z4WPZcZu.js";
68
+ import { _ as _45 } from "./chunks/LpOtpInput-CziPF3Oq.js";
69
+ import { _ as _46 } from "./chunks/LpPagination-BcDlo3r_.js";
70
+ import { _ as _47 } from "./chunks/LpPasswordInput-eKzQhbQP.js";
71
+ import { _ as _48 } from "./chunks/LpPie-BdSnta11.js";
72
+ import { _ as _49 } from "./chunks/LpPhoneInput-BCbrrhgE.js";
65
73
  import { filterCountries, flagEmoji, loadCountries, matchCountryByValue } from "./components/countries.js";
66
- import { _ as _49 } from "./chunks/LpPopover-DCKeqiVn.js";
67
- import { _ as _50 } from "./chunks/LpProgress-CBU1iI69.js";
68
- import { _ as _51 } from "./chunks/LpRadio-B5AfqTpZ.js";
69
- import { _ as _52 } from "./chunks/LpRadioGroup-DmEW0l78.js";
70
- import { _ as _53 } from "./chunks/LpRollingText-DB7upf-5.js";
71
- import { _ as _54 } from "./chunks/LpScrollArea-Bry1fdOM.js";
72
- import { _ as _55 } from "./chunks/LpSegmented-C09EEam2.js";
73
- import { _ as _56 } from "./chunks/LpSection-tKEH0jYf.js";
74
- import { _ as _57 } from "./chunks/LpSelect-DNIL6MB9.js";
75
- import { _ as _58 } from "./chunks/LpServiceNode-D8uJ8sGk.js";
76
- import { _ as _59 } from "./chunks/LpShift-DXNsauQZ.js";
77
- import { default as default6 } from "./components/LpShortcutsDialog.vue.js";
78
- import { _ as _60 } from "./chunks/LpSidebar-Bwws_X29.js";
79
- import { _ as _61 } from "./chunks/LpSkeleton-BB6XIV-w.js";
80
- import { _ as _62 } from "./chunks/LpSlider-Cuzmrd7p.js";
81
- import { _ as _63 } from "./chunks/LpSparkline-CB80N8SJ.js";
82
- import { _ as _64 } from "./chunks/LpStat-B-7udBRP.js";
83
- import { _ as _65 } from "./chunks/LpStepper-C7XiVKZj.js";
84
- import { _ as _66 } from "./chunks/LpSwitch-OrcOJX9m.js";
85
- import { default as default7 } from "./components/LpTable.vue.js";
74
+ import { _ as _50 } from "./chunks/LpPopover-DCKeqiVn.js";
75
+ import { _ as _51 } from "./chunks/LpProgress-CBU1iI69.js";
76
+ import { _ as _52 } from "./chunks/LpRadio-B5AfqTpZ.js";
77
+ import { _ as _53 } from "./chunks/LpRadioGroup-DmEW0l78.js";
78
+ import { _ as _54 } from "./chunks/LpRollingText-DB7upf-5.js";
79
+ import { _ as _55 } from "./chunks/LpScrollArea-Hz3-JWUG.js";
80
+ import { _ as _56 } from "./chunks/LpSegmented-C09EEam2.js";
81
+ import { _ as _57 } from "./chunks/LpSection-tKEH0jYf.js";
82
+ import { _ as _58 } from "./chunks/LpSelect-DNIL6MB9.js";
83
+ import { _ as _59 } from "./chunks/LpServiceNode-D8uJ8sGk.js";
84
+ import { _ as _60 } from "./chunks/LpShift-DXNsauQZ.js";
85
+ import { default as default11 } from "./components/LpShortcutsDialog.vue.js";
86
+ import { _ as _61 } from "./chunks/LpSidebar-DpEiGi8L.js";
87
+ import { _ as _62 } from "./chunks/LpSkeleton-BB6XIV-w.js";
88
+ import { _ as _63 } from "./chunks/LpSlider-Cuzmrd7p.js";
89
+ import { _ as _64 } from "./chunks/LpSparkline-CB80N8SJ.js";
90
+ import { _ as _65 } from "./chunks/LpStat-B-7udBRP.js";
91
+ import { _ as _66 } from "./chunks/LpStepper-C7XiVKZj.js";
92
+ import { _ as _67 } from "./chunks/LpSwitch-OrcOJX9m.js";
93
+ import { default as default12 } from "./components/LpTable.vue.js";
86
94
  import { compareValues } from "./components/tableSort.js";
87
- import { _ as _67 } from "./chunks/LpTableOfContents-BUcAfGPQ.js";
88
- import { _ as _68 } from "./chunks/LpTabs-29iW1XOx.js";
89
- import { _ as _69 } from "./chunks/LpTagsInput-D1SuqbhB.js";
95
+ import { _ as _68 } from "./chunks/LpTableOfContents-BUcAfGPQ.js";
96
+ import { _ as _69 } from "./chunks/LpTabs-29iW1XOx.js";
97
+ import { _ as _70 } from "./chunks/LpTagsInput-D1SuqbhB.js";
90
98
  import { addTags, splitTags } from "./components/tags.js";
91
- import { _ as _70 } from "./chunks/LpTextarea-uuScWo6-.js";
92
- import { _ as _71 } from "./chunks/LpThemeSwitcher-B4aVPbNC.js";
93
- import { _ as _72 } from "./chunks/LpTilt-B7KHX1zH.js";
94
- import { _ as _73 } from "./chunks/LpToaster-DTtWuKvq.js";
95
- import { _ as _74 } from "./chunks/LpTooltip-CXVKcOXT.js";
96
- import { _ as _75 } from "./chunks/LpTooltipProvider-CftjV7Xc.js";
97
- import { _ as _76 } from "./chunks/LpTopologyCanvas-6ozNrQKh.js";
98
- import { _ as _77 } from "./chunks/LpUptimeBar-ugcv25xj.js";
99
+ import { _ as _71 } from "./chunks/LpTextarea-uuScWo6-.js";
100
+ import { _ as _72 } from "./chunks/LpThemeSwitcher-BbYFFT5w.js";
101
+ import { _ as _73 } from "./chunks/LpTilt-B7KHX1zH.js";
102
+ import { _ as _74 } from "./chunks/LpToaster-DTtWuKvq.js";
103
+ import { _ as _75 } from "./chunks/LpTooltip-CXVKcOXT.js";
104
+ import { _ as _76 } from "./chunks/LpTooltipProvider-CftjV7Xc.js";
105
+ import { _ as _77 } from "./chunks/LpTopologyCanvas-6ozNrQKh.js";
106
+ import { _ as _78 } from "./chunks/LpUptimeBar-ugcv25xj.js";
99
107
  import { deserializeLayout, serializeLayout } from "./layout/tree.js";
100
108
  import { addLeaf, addTab, countBlocks, countLeaves, makeLayout, moveLeaf, removeBlock, removeLeaf, reorderTab, resizeAt, setActiveTab } from "./layout/tree.js";
101
109
  import { blockTitle, defineBlocks } from "./layout/registry.js";
@@ -124,7 +132,7 @@ import { useShift } from "./composables/useShift.js";
124
132
  import { useTilt } from "./composables/useTilt.js";
125
133
  import { useZoomPan } from "./composables/useZoomPan.js";
126
134
  import { useToast } from "./composables/useToast.js";
127
- import { _ as _78 } from "./chunks/LpThemeProvider-Be4r2TQX.js";
135
+ import { _ as _79 } from "./chunks/LpThemeProvider-Be4r2TQX.js";
128
136
  import { isInternalHref, resolveLink } from "./components/link.js";
129
137
  function defineTheme(base, overrides = {}) {
130
138
  const src = typeof base === "string" ? presets[base] : base;
@@ -182,73 +190,79 @@ export {
182
190
  _15 as LpCodeBlock,
183
191
  _16 as LpColorPicker,
184
192
  default3 as LpCommandPalette,
185
- _17 as LpConfirmDialog,
186
- _18 as LpConfirmHost,
187
- _19 as LpContextMenu,
188
- _20 as LpDatePicker,
189
- _21 as LpDateRangePicker,
190
- _23 as LpDisclosure,
191
- _24 as LpDivider,
192
- _25 as LpDrawer,
193
- _26 as LpDropdownMenu,
194
- default4 as LpDropzone,
195
- _27 as LpEmptyState,
196
- _29 as LpFieldNotice,
197
- _28 as LpFileTree,
198
- _30 as LpFormField,
199
- _31 as LpIcon,
200
- default5 as LpImageEditor,
201
- _32 as LpInfraNode,
202
- _33 as LpInput,
203
- _34 as LpLightbox,
204
- _35 as LpLink,
205
- _36 as LpLogViewer,
193
+ _18 as LpConfirmDialog,
194
+ _19 as LpConfirmHost,
195
+ _20 as LpContextMenu,
196
+ _21 as LpDatePicker,
197
+ _22 as LpDateRangePicker,
198
+ _24 as LpDisclosure,
199
+ _25 as LpDivider,
200
+ _26 as LpDrawer,
201
+ _27 as LpDropdownMenu,
202
+ default9 as LpDropzone,
203
+ _28 as LpEmptyState,
204
+ _30 as LpFieldNotice,
205
+ _29 as LpFileTree,
206
+ _31 as LpFormField,
207
+ _32 as LpIcon,
208
+ default10 as LpImageEditor,
209
+ _33 as LpInfraNode,
210
+ _34 as LpInput,
211
+ default8 as LpKeys,
212
+ _35 as LpLightbox,
213
+ _36 as LpLink,
214
+ _37 as LpLogViewer,
206
215
  _3 as LpMapPicker,
207
- _37 as LpMediaGallery,
208
- _38 as LpModal,
209
- _39 as LpModalNav,
210
- _40 as LpNotificationBell,
211
- _41 as LpNumberField,
212
- _43 as LpNumberFlow,
213
- _44 as LpOtpInput,
214
- _45 as LpPagination,
215
- _46 as LpPasswordInput,
216
- _48 as LpPhoneInput,
217
- _47 as LpPie,
218
- _49 as LpPopover,
219
- _50 as LpProgress,
220
- _51 as LpRadio,
221
- _52 as LpRadioGroup,
222
- _22 as LpRangeCalendar,
223
- _53 as LpRollingText,
224
- _54 as LpScrollArea,
225
- _56 as LpSection,
226
- _55 as LpSegmented,
227
- _57 as LpSelect,
228
- _58 as LpServiceNode,
229
- _59 as LpShift,
230
- default6 as LpShortcutsDialog,
231
- _60 as LpSidebar,
232
- _61 as LpSkeleton,
233
- _62 as LpSlider,
234
- _63 as LpSparkline,
235
- _64 as LpStat,
236
- _65 as LpStepper,
237
- _66 as LpSwitch,
238
- default7 as LpTable,
239
- _67 as LpTableOfContents,
240
- _68 as LpTabs,
241
- _69 as LpTagsInput,
242
- _70 as LpTextarea,
243
- _78 as LpThemeProvider,
244
- _71 as LpThemeSwitcher,
245
- _72 as LpTilt,
246
- _42 as LpTimeField,
247
- _73 as LpToaster,
248
- _74 as LpTooltip,
249
- _75 as LpTooltipProvider,
250
- _76 as LpTopologyCanvas,
251
- _77 as LpUptimeBar,
216
+ _38 as LpMediaGallery,
217
+ _39 as LpModal,
218
+ _40 as LpModalNav,
219
+ _41 as LpNotificationBell,
220
+ _42 as LpNumberField,
221
+ _44 as LpNumberFlow,
222
+ _45 as LpOtpInput,
223
+ _46 as LpPagination,
224
+ default5 as LpPaletteFacts,
225
+ default4 as LpPaletteHeader,
226
+ _17 as LpPalettePreview,
227
+ default6 as LpPaletteStats,
228
+ default7 as LpPaletteSwatches,
229
+ _47 as LpPasswordInput,
230
+ _49 as LpPhoneInput,
231
+ _48 as LpPie,
232
+ _50 as LpPopover,
233
+ _51 as LpProgress,
234
+ _52 as LpRadio,
235
+ _53 as LpRadioGroup,
236
+ _23 as LpRangeCalendar,
237
+ _54 as LpRollingText,
238
+ _55 as LpScrollArea,
239
+ _57 as LpSection,
240
+ _56 as LpSegmented,
241
+ _58 as LpSelect,
242
+ _59 as LpServiceNode,
243
+ _60 as LpShift,
244
+ default11 as LpShortcutsDialog,
245
+ _61 as LpSidebar,
246
+ _62 as LpSkeleton,
247
+ _63 as LpSlider,
248
+ _64 as LpSparkline,
249
+ _65 as LpStat,
250
+ _66 as LpStepper,
251
+ _67 as LpSwitch,
252
+ default12 as LpTable,
253
+ _68 as LpTableOfContents,
254
+ _69 as LpTabs,
255
+ _70 as LpTagsInput,
256
+ _71 as LpTextarea,
257
+ _79 as LpThemeProvider,
258
+ _72 as LpThemeSwitcher,
259
+ _73 as LpTilt,
260
+ _43 as LpTimeField,
261
+ _74 as LpToaster,
262
+ _75 as LpTooltip,
263
+ _76 as LpTooltipProvider,
264
+ _77 as LpTopologyCanvas,
265
+ _78 as LpUptimeBar,
252
266
  N as NO_BACKDROP_ATTR,
253
267
  OSM_TILES,
254
268
  T as THEME_COOKIE,
@@ -263,6 +277,7 @@ export {
263
277
  anyModalOpen,
264
278
  appleModifierLabel,
265
279
  applyMask,
280
+ applyQueryFilters,
266
281
  c2 as applyTheme,
267
282
  d as applyThemeWithTransition,
268
283
  axisTicks,
@@ -275,6 +290,9 @@ export {
275
290
  checkedCount,
276
291
  clampHsv,
277
292
  clampRange,
293
+ comboKeys,
294
+ comboSteps,
295
+ commandHasPreview,
278
296
  compareValues,
279
297
  computeStats,
280
298
  confirm,
@@ -308,6 +326,7 @@ export {
308
326
  formatRange,
309
327
  formatSize,
310
328
  formatTick,
329
+ highlightParts,
311
330
  hotkeyConflicts,
312
331
  hotkeySteps,
313
332
  hsvToHsl,
@@ -345,6 +364,7 @@ export {
345
364
  parseConfig,
346
365
  parseHex,
347
366
  parseMask,
367
+ parsePaletteQuery,
348
368
  parseTheme,
349
369
  pendingHotkey,
350
370
  m as prefersDarkScheme,
@@ -354,7 +374,9 @@ export {
354
374
  provideField,
355
375
  provideGlass,
356
376
  provideLpConfig,
377
+ pushRecent,
357
378
  rankCommandItems,
379
+ readRecent,
358
380
  b as registerAllIcons,
359
381
  a as registerIconCollection,
360
382
  c as registerIcons,
@@ -389,6 +411,7 @@ export {
389
411
  w as themeToCssVars,
390
412
  tileUrl,
391
413
  toCsv,
414
+ toRecentItem,
392
415
  tokenizeLines,
393
416
  topModalElement,
394
417
  unproject,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leavepulse/ui",
3
- "version": "0.45.1",
3
+ "version": "0.47.0",
4
4
  "type": "module",
5
5
  "description": "LeavePulse token-driven Vue component kit.",
6
6
  "repository": {
@@ -37,6 +37,7 @@ export const COMPONENT_NAMES = [
37
37
  "LpImageEditor",
38
38
  "LpInfraNode",
39
39
  "LpInput",
40
+ "LpKeys",
40
41
  "LpLightbox",
41
42
  "LpLink",
42
43
  "LpLogViewer",
@@ -49,6 +50,11 @@ export const COMPONENT_NAMES = [
49
50
  "LpNumberFlow",
50
51
  "LpOtpInput",
51
52
  "LpPagination",
53
+ "LpPaletteFacts",
54
+ "LpPaletteHeader",
55
+ "LpPalettePreview",
56
+ "LpPaletteStats",
57
+ "LpPaletteSwatches",
52
58
  "LpPasswordInput",
53
59
  "LpPhoneInput",
54
60
  "LpPie",
@@ -0,0 +1,28 @@
1
+ <script setup lang="ts">
2
+ /*
3
+ * Text that may arrive already split into matched and unmatched runs (the
4
+ * palette preview slot's `highlight(text)`), drawn with the same <mark> the
5
+ * palette's rows use. A plain string is drawn as is.
6
+ */
7
+ import type { HighlightPart } from "./commandSearch"
8
+
9
+ defineProps<{ text: string | HighlightPart[] }>()
10
+ </script>
11
+
12
+ <template>
13
+ <template v-if="typeof text === 'string'">{{ text }}</template>
14
+ <template v-else>
15
+ <template v-for="(part, index) in text" :key="index">
16
+ <mark v-if="part.hit" class="lp-highlight">{{ part.text }}</mark>
17
+ <template v-else>{{ part.text }}</template>
18
+ </template>
19
+ </template>
20
+ </template>
21
+
22
+ <style>
23
+ .lp-highlight {
24
+ border-radius: 2px;
25
+ background: color-mix(in srgb, var(--color-brand) 25%, transparent);
26
+ color: var(--color-ink);
27
+ }
28
+ </style>
@@ -10,6 +10,7 @@ import { AvatarFallback, AvatarImage, AvatarRoot } from "reka-ui"
10
10
  import { tv, type VariantProps } from "tailwind-variants"
11
11
  import { computed, onMounted, ref } from "vue"
12
12
  import LpContextMenu, { type ContextMenuItemDef } from "./LpContextMenu.vue"
13
+ import LpIcon from "./LpIcon.vue"
13
14
  import { useMergedAttrs } from "../composables/useMergedClass"
14
15
 
15
16
  const avatar = tv({
@@ -41,6 +42,12 @@ const props = withDefaults(
41
42
  src?: string
42
43
  alt?: string
43
44
  fallback?: string
45
+ /**
46
+ * An icon shown while there is no picture, instead of initials. For things
47
+ * that have no name worth abbreviating (a world, a mod, a file), where two
48
+ * letters read as noise. `fallback` text still wins when both are given.
49
+ */
50
+ icon?: string
44
51
  size?: AvatarVariants["size"]
45
52
  /** Explicit pixel size, wins over `size` — for avatars keyed to a layout. */
46
53
  pixelSize?: number
@@ -54,6 +61,12 @@ const props = withDefaults(
54
61
  { size: "md", shape: "circle", ring: false },
55
62
  )
56
63
 
64
+ // The icon follows the box the way the initials do: about half of it.
65
+ const ICON_SIZE = { xs: 11, sm: 14, md: 18, lg: 24, xl: 30 } as const
66
+ const iconSize = computed(() =>
67
+ props.pixelSize ? Math.max(10, Math.round(props.pixelSize * 0.55)) : ICON_SIZE[props.size ?? "md"],
68
+ )
69
+
57
70
  // A pixel size drives both box and glyph, so the initials keep their
58
71
  // proportion instead of staying at the preset's step.
59
72
  const sizeStyle = computed(() =>
@@ -99,11 +112,17 @@ onMounted(() => {
99
112
  <LpContextMenu v-if="menuItems?.length" :items="menuItems">
100
113
  <AvatarRoot :class="rootClass" :style="sizeStyle" v-bind="rest">
101
114
  <AvatarImage v-if="src && mounted" :src="src" :alt="alt" class="size-full object-cover animate-[fade-in_var(--duration-medium)_ease] motion-reduce:animate-none" />
102
- <AvatarFallback>{{ initials }}</AvatarFallback>
115
+ <AvatarFallback>
116
+ <LpIcon v-if="icon && !fallback" :name="icon" :size="iconSize" />
117
+ <template v-else>{{ initials }}</template>
118
+ </AvatarFallback>
103
119
  </AvatarRoot>
104
120
  </LpContextMenu>
105
121
  <AvatarRoot v-else :class="rootClass" :style="sizeStyle" v-bind="rest">
106
122
  <AvatarImage v-if="src && mounted" :src="src" :alt="alt" class="size-full object-cover animate-[fade-in_var(--duration-medium)_ease] motion-reduce:animate-none" />
107
- <AvatarFallback>{{ initials }}</AvatarFallback>
123
+ <AvatarFallback>
124
+ <LpIcon v-if="icon && !fallback" :name="icon" :size="iconSize" />
125
+ <template v-else>{{ initials }}</template>
126
+ </AvatarFallback>
108
127
  </AvatarRoot>
109
128
  </template>