@leavepulse/ui 0.58.1 → 0.60.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 (173) hide show
  1. package/dist/assets/{LpCommandPalette-DmQUsJqA.css → LpCommandPalette-DA5pmuPi.css} +21 -21
  2. package/dist/assets/{LpTable-BNzavdlv.css → LpTable-BZZf_rrt.css} +19 -19
  3. package/dist/chunks/{ContextMenuItems-BY5sTVQF.js → ContextMenuItems-qXReFtQW.js} +2 -2
  4. package/dist/chunks/{LayoutCanvas-BcGLJVBq.js → LayoutCanvas-t7LWFCEn.js} +1 -1
  5. package/dist/chunks/{LayoutNode-BkBn6dvM.js → LayoutNode-DHsE6GwM.js} +1 -1
  6. package/dist/chunks/{LpActionBar-DCN-_pZP.js → LpActionBar-BsSp66S_.js} +2 -2
  7. package/dist/chunks/{LpAddressInput-Dio6Sqed.js → LpAddressInput-DD4zTN4P.js} +7 -7
  8. package/dist/chunks/{LpAlert-CXMn1GYE.js → LpAlert--KLL4NLk.js} +1 -1
  9. package/dist/chunks/{LpAppShell-Be6T96td.js → LpAppShell-Cv-Y9qNA.js} +3 -3
  10. package/dist/chunks/{LpAutocomplete-hJ_6CHlh.js → LpAutocomplete-PnL2ntKl.js} +1 -1
  11. package/dist/chunks/{LpAvatar-BxNs23Xu.js → LpAvatar-CwGs1JCQ.js} +2 -2
  12. package/dist/chunks/{LpBreadcrumbs-BLzOEgAF.js → LpBreadcrumbs-CndzPYiG.js} +1 -1
  13. package/dist/chunks/{LpButton-vhlwmpBy.js → LpButton-CJSD7N0Z.js} +1 -1
  14. package/dist/chunks/{LpCalendar-BLoE8Qm7.js → LpCalendar-CXVDbb2M.js} +1 -1
  15. package/dist/chunks/{LpCard-DhR7u0d8.js → LpCard-B2D0GIUU.js} +1 -1
  16. package/dist/chunks/{LpCheckbox-B_C8sOoT.js → LpCheckbox-DV9W6T3H.js} +1 -1
  17. package/dist/chunks/{LpCodeBlock-CXsqJwDy.js → LpCodeBlock-t6MLA3fb.js} +5 -5
  18. package/dist/chunks/{LpColorPicker-DQ88niXq.js → LpColorPicker-CvBF8TeL.js} +6 -6
  19. package/dist/chunks/{LpConfirmDialog-DxlSdjmk.js → LpConfirmDialog-tkgyY3eu.js} +3 -3
  20. package/dist/chunks/{LpConfirmHost-BcrmTNu_.js → LpConfirmHost-CoYIcUdl.js} +1 -1
  21. package/dist/chunks/{LpContextMenu-B1NGfpp1.js → LpContextMenu-BnN1k7ga.js} +17 -5
  22. package/dist/chunks/{LpDatePicker-B-VMHMgy.js → LpDatePicker-DxdrVNCG.js} +3 -3
  23. package/dist/chunks/{LpDateRangePicker-B68KPKPl.js → LpDateRangePicker-DjeaqikC.js} +2 -2
  24. package/dist/chunks/{LpDisclosure-Ct-VBHxt.js → LpDisclosure-s8cQ7KQq.js} +1 -1
  25. package/dist/chunks/{LpDrawer-DSknigxH.js → LpDrawer-C97yoWmh.js} +2 -2
  26. package/dist/chunks/{LpDropdownMenu-C7oHVlKY.js → LpDropdownMenu-CbyYu4Rw.js} +12 -5
  27. package/dist/chunks/{LpEmptyState-CBwwkkdA.js → LpEmptyState-CX8fdGSU.js} +1 -1
  28. package/dist/chunks/{LpFieldNotice-9hH4ITZa.js → LpFieldNotice-B--RzKfj.js} +1 -1
  29. package/dist/chunks/{LpFileTree-CMA0_rsB.js → LpFileTree-DEqh2ySW.js} +2 -2
  30. package/dist/chunks/{LpFileTreeNode-B4T258hF.js → LpFileTreeNode-DCZA7sQ-.js} +3 -3
  31. package/dist/chunks/{LpFormField-BpQ6WJPe.js → LpFormField-DMPPL1jF.js} +1 -1
  32. package/dist/chunks/{LpHintLayer-B5-6FyEf.js → LpHintLayer-DsclGYcD.js} +1 -1
  33. package/dist/chunks/{LpHints-BqoZXHZk.js → LpHints-BTpvisgP.js} +10 -4
  34. package/dist/chunks/{LpIcon-B5guGKrW.js → LpIcon-CTuDVTYv.js} +1 -1
  35. package/dist/chunks/{LpInput-WvyP02ID.js → LpInput-C7FHxzj2.js} +2 -2
  36. package/dist/chunks/{LpLightbox-Dq-e36uT.js → LpLightbox-DiksFa4L.js} +1 -1
  37. package/dist/chunks/{LpLogViewer-DwiYE32z.js → LpLogViewer-BuPe23sZ.js} +2 -2
  38. package/dist/chunks/{LpMapPicker-BH5csaBt.js → LpMapPicker-DybIlWnF.js} +1 -1
  39. package/dist/chunks/{LpMediaGallery-B1kDypJ-.js → LpMediaGallery-Cic9UHsa.js} +2 -2
  40. package/dist/chunks/{LpModal-BxYssnXg.js → LpModal-QFfctZsj.js} +2 -2
  41. package/dist/chunks/{LpModalNav-Bn2ws64b.js → LpModalNav-Cw7m-eks.js} +4 -4
  42. package/dist/chunks/{LpNotificationBell-DJfs4JjQ.js → LpNotificationBell-xH_JphpS.js} +6 -6
  43. package/dist/chunks/{LpNumberField-CJPjmoDz.js → LpNumberField-BFSRVGkJ.js} +1 -1
  44. package/dist/chunks/{LpPagination-DehAaJLY.js → LpPagination-BFl0I7tL.js} +1 -1
  45. package/dist/chunks/{LpPasswordInput-Bg5uTZbx.js → LpPasswordInput-C1G4k_r0.js} +3 -3
  46. package/dist/chunks/{LpPhoneInput-DStwcbnQ.js → LpPhoneInput-CZrpVxla.js} +3 -3
  47. package/dist/chunks/{LpPie-DeTkbbOK.js → LpPie-BD5Lsh-2.js} +3 -3
  48. package/dist/chunks/{LpRangeCalendar-D5sDID9W.js → LpRangeCalendar-COeOYF52.js} +1 -1
  49. package/dist/chunks/{LpSection-B19VPYmr.js → LpSection-BAkbf0OK.js} +1 -1
  50. package/dist/chunks/{LpSegmented-D3Eam8sa.js → LpSegmented-DslFku0N.js} +3 -3
  51. package/dist/chunks/{LpSelect-DynjWK1A.js → LpSelect-C4OXN_q3.js} +1 -1
  52. package/dist/chunks/{LpSidebar-CshW0fqC.js → LpSidebar-B3E_iViL.js} +3 -3
  53. package/dist/chunks/{LpSidebarNav-C9b3i9G2.js → LpSidebarNav-32sAXNM-.js} +4 -4
  54. package/dist/chunks/{LpStat-BS2TEXYK.js → LpStat-oYk6V1LZ.js} +1 -1
  55. package/dist/chunks/{LpStepper-BSglWF45.js → LpStepper-YgHGzgfD.js} +1 -1
  56. package/dist/chunks/{LpTableFilter-CwHXVxJt.js → LpTableFilter-Ba-rS4H1.js} +2 -2
  57. package/dist/chunks/{LpTabs-BBGRHY38.js → LpTabs-00v3VQx4.js} +7 -6
  58. package/dist/chunks/{LpTagsInput-CHbQoAAA.js → LpTagsInput-Sc56iy_j.js} +3 -3
  59. package/dist/chunks/{LpTextarea-Bz2IWhTH.js → LpTextarea-CQZccQI3.js} +1 -1
  60. package/dist/chunks/{LpThemeSwitcher-B_qhSl7q.js → LpThemeSwitcher-CeBG0e_D.js} +2 -2
  61. package/dist/chunks/{LpTimeField-DvGXgdES.js → LpTimeField-BTEt0kvL.js} +1 -1
  62. package/dist/chunks/{LpToaster-Bo9Q4QBP.js → LpToaster-BcKs7vX7.js} +3 -3
  63. package/dist/chunks/{LpTour-D7m9ZxNk.js → LpTour-C29-1wha.js} +4 -1
  64. package/dist/chunks/{MenuTitle-DQP6hc2N.js → MenuTitle-FeC6I24N.js} +3 -3
  65. package/dist/chunks/{TourCard-DCHOjr6e.js → TourCard-AjN0uhs1.js} +2 -2
  66. package/dist/chunks/{icons-QqBscG5I.js → icons-CuO3W46H.js} +1 -1
  67. package/dist/components/ContextMenuItems.vue.js +1 -1
  68. package/dist/components/LayoutCanvas.vue.js +1 -1
  69. package/dist/components/LayoutNode.vue.js +1 -1
  70. package/dist/components/LpActionBar.vue.js +1 -1
  71. package/dist/components/LpAddressInput.vue.js +1 -1
  72. package/dist/components/LpAlert.vue.js +1 -1
  73. package/dist/components/LpAppShell.vue.js +1 -1
  74. package/dist/components/LpAutocomplete.vue.js +1 -1
  75. package/dist/components/LpAvatar.vue.js +1 -1
  76. package/dist/components/LpBreadcrumbs.vue.js +1 -1
  77. package/dist/components/LpButton.vue.js +1 -1
  78. package/dist/components/LpCalendar.vue.js +1 -1
  79. package/dist/components/LpCard.vue.js +1 -1
  80. package/dist/components/LpChart.vue.js +4 -4
  81. package/dist/components/LpCheckbox.vue.js +1 -1
  82. package/dist/components/LpCodeBlock.vue.js +1 -1
  83. package/dist/components/LpColorPicker.vue.js +1 -1
  84. package/dist/components/LpCommandPalette.vue.js +38 -27
  85. package/dist/components/LpConfirmDialog.vue.js +1 -1
  86. package/dist/components/LpConfirmHost.vue.js +1 -1
  87. package/dist/components/LpContextMenu.vue.d.ts +7 -2
  88. package/dist/components/LpContextMenu.vue.js +1 -1
  89. package/dist/components/LpDatePicker.vue.js +1 -1
  90. package/dist/components/LpDateRangePicker.vue.js +1 -1
  91. package/dist/components/LpDisclosure.vue.js +1 -1
  92. package/dist/components/LpDrawer.vue.js +1 -1
  93. package/dist/components/LpDropdownMenu.vue.d.ts +7 -2
  94. package/dist/components/LpDropdownMenu.vue.js +1 -1
  95. package/dist/components/LpDropzone.vue.js +1 -1
  96. package/dist/components/LpEmptyState.vue.js +1 -1
  97. package/dist/components/LpFieldNotice.vue.js +1 -1
  98. package/dist/components/LpFileTree.vue.js +1 -1
  99. package/dist/components/LpFileTreeNode.vue.js +1 -1
  100. package/dist/components/LpFormField.vue.js +1 -1
  101. package/dist/components/LpHintLayer.vue.js +1 -1
  102. package/dist/components/LpHints.vue.js +1 -1
  103. package/dist/components/LpIcon.vue.js +1 -1
  104. package/dist/components/LpImageEditor.vue.js +4 -2
  105. package/dist/components/LpInput.vue.js +1 -1
  106. package/dist/components/LpLightbox.vue.js +1 -1
  107. package/dist/components/LpLogViewer.vue.js +1 -1
  108. package/dist/components/LpMapPicker.vue.js +1 -1
  109. package/dist/components/LpMediaGallery.vue.js +1 -1
  110. package/dist/components/LpModal.vue.js +1 -1
  111. package/dist/components/LpModalNav.vue.js +1 -1
  112. package/dist/components/LpNotificationBell.vue.js +1 -1
  113. package/dist/components/LpNumberField.vue.js +1 -1
  114. package/dist/components/LpPagination.vue.js +1 -1
  115. package/dist/components/LpPaletteFacts.vue.js +1 -1
  116. package/dist/components/LpPaletteHeader.vue.js +2 -2
  117. package/dist/components/LpPasswordInput.vue.js +1 -1
  118. package/dist/components/LpPhoneInput.vue.js +1 -1
  119. package/dist/components/LpPie.vue.js +1 -1
  120. package/dist/components/LpRangeCalendar.vue.js +1 -1
  121. package/dist/components/LpSection.vue.js +1 -1
  122. package/dist/components/LpSegmented.vue.js +1 -1
  123. package/dist/components/LpSelect.vue.js +1 -1
  124. package/dist/components/LpShortcutsDialog.vue.js +1 -1
  125. package/dist/components/LpSidebar.vue.js +1 -1
  126. package/dist/components/LpSidebarNav.vue.js +1 -1
  127. package/dist/components/LpStat.vue.js +1 -1
  128. package/dist/components/LpStepper.vue.js +1 -1
  129. package/dist/components/LpTable.vue.js +13 -12
  130. package/dist/components/LpTableFilter.vue.js +1 -1
  131. package/dist/components/LpTabs.vue.d.ts +7 -0
  132. package/dist/components/LpTabs.vue.js +1 -1
  133. package/dist/components/LpTagsInput.vue.js +1 -1
  134. package/dist/components/LpTextarea.vue.js +1 -1
  135. package/dist/components/LpThemeSwitcher.vue.js +1 -1
  136. package/dist/components/LpTimeField.vue.js +1 -1
  137. package/dist/components/LpToaster.vue.js +1 -1
  138. package/dist/components/LpTour.vue.js +1 -1
  139. package/dist/components/MenuTitle.vue.js +1 -1
  140. package/dist/components/TourCard.vue.js +1 -1
  141. package/dist/components/dropdown.js +1 -1
  142. package/dist/composables/useHintSystem.d.ts +65 -0
  143. package/dist/composables/useHintSystem.js +98 -12
  144. package/dist/icons-all.js +1 -1
  145. package/dist/index.d.ts +2 -2
  146. package/dist/index.js +62 -58
  147. package/package.json +1 -1
  148. package/src/components/ContextMenuItems.vue +1 -1
  149. package/src/components/LpChart.vue +1 -1
  150. package/src/components/LpCodeBlock.vue +4 -4
  151. package/src/components/LpColorPicker.vue +4 -4
  152. package/src/components/LpCommandPalette.vue +36 -14
  153. package/src/components/LpContextMenu.vue +19 -1
  154. package/src/components/LpDrawer.vue +1 -1
  155. package/src/components/LpDropdownMenu.vue +14 -3
  156. package/src/components/LpHints.vue +7 -1
  157. package/src/components/LpModal.vue +1 -1
  158. package/src/components/LpNotificationBell.vue +2 -2
  159. package/src/components/LpPasswordInput.vue +1 -1
  160. package/src/components/LpPhoneInput.vue +1 -1
  161. package/src/components/LpPie.vue +1 -1
  162. package/src/components/LpSegmented.vue +2 -2
  163. package/src/components/LpSidebarNav.vue +2 -2
  164. package/src/components/LpTable.vue +3 -3
  165. package/src/components/LpTabs.vue +11 -5
  166. package/src/components/LpToaster.vue +2 -2
  167. package/src/components/LpTour.vue +3 -0
  168. package/src/components/MenuTitle.vue +2 -2
  169. package/src/components/dropdown.ts +1 -1
  170. package/src/composables/useHintSystem.ts +130 -12
  171. package/src/index.ts +2 -1
  172. package/src/kit-icons.ts +1 -1
  173. package/src/tokens/tokens.css +6 -0
@@ -5,81 +5,81 @@
5
5
  * pane from its right edge as it grows. Animating the columns themselves made
6
6
  * every line of the list and the pane re-wrap on every frame.
7
7
  */
8
- .lp-cmd-dialog[data-v-6da7fe88] {
8
+ .lp-cmd-dialog[data-v-a545acf6] {
9
9
  --lp-cmd-list: min(92vw, 40rem);
10
10
  --lp-cmd-pane: max(0px, min(26rem, 96vw - var(--lp-cmd-list)));
11
11
  width: var(--lp-cmd-list);
12
12
  }
13
- .lp-cmd-split[data-v-6da7fe88] {
13
+ .lp-cmd-split[data-v-a545acf6] {
14
14
  transition:
15
15
  width 300ms var(--ease-emphasized, ease),
16
16
  min-height 300ms var(--ease-emphasized, ease);
17
17
  }
18
18
  @media (min-width: 768px) {
19
- .lp-cmd-split .lp-cmd-list[data-v-6da7fe88] {
19
+ .lp-cmd-split .lp-cmd-list[data-v-a545acf6] {
20
20
  flex: 0 0 auto;
21
21
  /* the dialog's 1px border on each side */
22
22
  width: calc(var(--lp-cmd-list) - 2px);
23
23
  }
24
- .lp-cmd-dialog[data-pane="open"][data-v-6da7fe88] {
24
+ .lp-cmd-dialog[data-pane="open"][data-v-a545acf6] {
25
25
  width: calc(var(--lp-cmd-list) + var(--lp-cmd-pane));
26
26
  min-height: min(76vh, 36rem);
27
27
  }
28
28
  }
29
- .lp-cmd-pane[data-v-6da7fe88] {
29
+ .lp-cmd-pane[data-v-a545acf6] {
30
30
  width: var(--lp-cmd-pane);
31
31
  }
32
32
  /*
33
33
  * The pane rides in from the right edge while the dialog opens up to it, and
34
34
  * leaves the same way, for as long as the dialog takes to close over it.
35
35
  */
36
- .lp-cmd-pane-enter-active[data-v-6da7fe88],
37
- .lp-cmd-pane-leave-active[data-v-6da7fe88] {
36
+ .lp-cmd-pane-enter-active[data-v-a545acf6],
37
+ .lp-cmd-pane-leave-active[data-v-a545acf6] {
38
38
  transition:
39
39
  transform 300ms var(--ease-emphasized, ease),
40
40
  opacity 300ms ease;
41
41
  }
42
- .lp-cmd-pane-enter-from[data-v-6da7fe88],
43
- .lp-cmd-pane-leave-to[data-v-6da7fe88] {
42
+ .lp-cmd-pane-enter-from[data-v-a545acf6],
43
+ .lp-cmd-pane-leave-to[data-v-a545acf6] {
44
44
  opacity: 0;
45
45
  transform: translateX(40%);
46
46
  }
47
- .lp-cmd-para[data-v-6da7fe88] {
48
- animation: lp-cmd-para-in-6da7fe88 260ms ease-out both;
47
+ .lp-cmd-para[data-v-a545acf6] {
48
+ animation: lp-cmd-para-in-a545acf6 260ms ease-out both;
49
49
  }
50
- @keyframes lp-cmd-para-in-6da7fe88 {
50
+ @keyframes lp-cmd-para-in-a545acf6 {
51
51
  from {
52
52
  opacity: 0;
53
53
  transform: translateY(4px);
54
54
  }
55
55
  }
56
56
  @media (prefers-reduced-motion: reduce) {
57
- .lp-cmd-split[data-v-6da7fe88],
58
- .lp-cmd-pane-enter-active[data-v-6da7fe88],
59
- .lp-cmd-pane-leave-active[data-v-6da7fe88] {
57
+ .lp-cmd-split[data-v-a545acf6],
58
+ .lp-cmd-pane-enter-active[data-v-a545acf6],
59
+ .lp-cmd-pane-leave-active[data-v-a545acf6] {
60
60
  transition: none;
61
61
  }
62
- .lp-cmd-para[data-v-6da7fe88] {
62
+ .lp-cmd-para[data-v-a545acf6] {
63
63
  animation: none;
64
64
  }
65
65
  }
66
- .lp-cmd-excerpt[data-v-6da7fe88] {
66
+ .lp-cmd-excerpt[data-v-a545acf6] {
67
67
  display: -webkit-box;
68
68
  -webkit-box-orient: vertical;
69
69
  overflow: hidden;
70
70
  }
71
71
  /* Each result eases in; honours reduced motion. */
72
- .lp-cmd-item[data-v-6da7fe88] {
73
- animation: lp-cmd-in-6da7fe88 140ms ease-out both;
72
+ .lp-cmd-item[data-v-a545acf6] {
73
+ animation: lp-cmd-in-a545acf6 140ms ease-out both;
74
74
  }
75
- @keyframes lp-cmd-in-6da7fe88 {
75
+ @keyframes lp-cmd-in-a545acf6 {
76
76
  from {
77
77
  opacity: 0;
78
78
  transform: translateY(3px);
79
79
  }
80
80
  }
81
81
  @media (prefers-reduced-motion: reduce) {
82
- .lp-cmd-item[data-v-6da7fe88] {
82
+ .lp-cmd-item[data-v-a545acf6] {
83
83
  animation: none;
84
84
  }
85
85
  }
@@ -11,17 +11,17 @@
11
11
  * fade before closing the gap and the whole list lurches at the end instead of
12
12
  * gliding.
13
13
  */
14
- .lp-row-enter-active[data-v-a6bdc221],
15
- .lp-row-leave-active[data-v-a6bdc221] {
14
+ .lp-row-enter-active[data-v-1d2375a8],
15
+ .lp-row-leave-active[data-v-1d2375a8] {
16
16
  transition:
17
17
  opacity var(--duration-fast) var(--ease-emphasized),
18
18
  transform var(--duration-fast) var(--ease-emphasized);
19
19
  }
20
- .lp-row-move[data-v-a6bdc221] {
20
+ .lp-row-move[data-v-1d2375a8] {
21
21
  transition: transform var(--duration-medium) var(--ease-emphasized);
22
22
  }
23
- .lp-row-enter-from[data-v-a6bdc221],
24
- .lp-row-leave-to[data-v-a6bdc221] {
23
+ .lp-row-enter-from[data-v-1d2375a8],
24
+ .lp-row-leave-to[data-v-1d2375a8] {
25
25
  opacity: 0;
26
26
  transform: translateX(-0.5rem);
27
27
  }
@@ -35,7 +35,7 @@
35
35
  * drops out of the table layout entirely. Nothing sits below this row to be
36
36
  * dragged around, so simply not animating its exit costs nothing.
37
37
  */
38
- .lp-row-empty.lp-row-leave-active[data-v-a6bdc221] {
38
+ .lp-row-empty.lp-row-leave-active[data-v-1d2375a8] {
39
39
  display: none;
40
40
  }
41
41
 
@@ -54,7 +54,7 @@
54
54
  * once anything is selected. An earlier version collapsed the column to nothing
55
55
  * and floated the hover box over the first cell, where it sat on the text.
56
56
  */
57
- .lp-tick[data-v-a6bdc221] {
57
+ .lp-tick[data-v-1d2375a8] {
58
58
  display: flex;
59
59
  align-items: center;
60
60
  max-width: 0;
@@ -66,17 +66,17 @@
66
66
  padding var(--duration-medium) var(--ease-emphasized),
67
67
  opacity var(--duration-fast) ease;
68
68
  }
69
- .lp-tick-open[data-v-a6bdc221] {
69
+ .lp-tick-open[data-v-1d2375a8] {
70
70
  max-width: 3.25rem;
71
71
  padding-inline: 1rem;
72
72
  opacity: 1;
73
73
  }
74
- .lp-tick-hidden[data-v-a6bdc221],
75
- .lp-tick-cue[data-v-a6bdc221] {
74
+ .lp-tick-hidden[data-v-1d2375a8],
75
+ .lp-tick-cue[data-v-1d2375a8] {
76
76
  opacity: 0;
77
77
  }
78
- tr:hover .lp-tick-cue[data-v-a6bdc221],
79
- .lp-tick-cue[data-v-a6bdc221]:focus-within {
78
+ tr:hover .lp-tick-cue[data-v-1d2375a8],
79
+ .lp-tick-cue[data-v-1d2375a8]:focus-within {
80
80
  opacity: 1;
81
81
  }
82
82
 
@@ -84,24 +84,24 @@ tr:hover .lp-tick-cue[data-v-a6bdc221],
84
84
  turned down the rows change without animating rather than not changing. */
85
85
  /* Only where there is a hover to reveal it; a finger long-presses instead. */
86
86
  @media (hover: none) {
87
- tr:hover .lp-tick-cue[data-v-a6bdc221] {
87
+ tr:hover .lp-tick-cue[data-v-1d2375a8] {
88
88
  opacity: 0;
89
89
  }
90
90
 
91
91
  /* Nor is there anything for the column's width to hold until then: on a
92
92
  touch screen it stays closed until a long press starts selecting, and
93
93
  eases open like the rest of the column. */
94
- .lp-tick-hidden[data-v-a6bdc221],
95
- .lp-tick-cue[data-v-a6bdc221] {
94
+ .lp-tick-hidden[data-v-1d2375a8],
95
+ .lp-tick-cue[data-v-1d2375a8] {
96
96
  max-width: 0;
97
97
  padding-inline: 0;
98
98
  }
99
99
  }
100
100
  @media (prefers-reduced-motion: reduce) {
101
- .lp-row-enter-active[data-v-a6bdc221],
102
- .lp-row-leave-active[data-v-a6bdc221],
103
- .lp-row-move[data-v-a6bdc221],
104
- .lp-tick[data-v-a6bdc221] {
101
+ .lp-row-enter-active[data-v-1d2375a8],
102
+ .lp-row-leave-active[data-v-1d2375a8],
103
+ .lp-row-move[data-v-1d2375a8],
104
+ .lp-tick[data-v-1d2375a8] {
105
105
  transition: none;
106
106
  }
107
107
  }
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, resolveComponent, openBlock, createElementBlock, Fragment, renderList, createBlock, unref, createCommentVNode, withCtx, createVNode, normalizeClass, createElementVNode, createTextVNode, toDisplayString, withModifiers } from "vue";
2
2
  import { ContextMenuSeparator, ContextMenuSub, ContextMenuSubTrigger, ContextMenuPortal, ContextMenuSubContent, ContextMenuCheckboxItem, ContextMenuItem } from "reka-ui";
3
- import { _ as _sfc_main$1 } from "./LpIcon-B5guGKrW.js";
3
+ import { _ as _sfc_main$1 } from "./LpIcon-CTuDVTYv.js";
4
4
  const _hoisted_1 = { class: "flex items-center gap-2" };
5
5
  const _hoisted_2 = { class: "flex items-center gap-2" };
6
6
  const _hoisted_3 = {
@@ -12,7 +12,7 @@ const _hoisted_5 = {
12
12
  key: 0,
13
13
  class: "text-xs text-muted"
14
14
  };
15
- const ITEM = "group/item flex cursor-pointer select-none items-center gap-2 rounded-md px-2.5 py-1.5 text-sm outline-none transition-[background-color,color] duration-[var(--duration-fast)] data-[disabled]:pointer-events-none data-[disabled]:opacity-45 data-[highlighted]:bg-brand-soft";
15
+ const ITEM = "group/item flex cursor-pointer select-none items-center gap-2 rounded-inner px-2.5 py-1.5 text-sm outline-none transition-[background-color,color] duration-[var(--duration-fast)] data-[disabled]:pointer-events-none data-[disabled]:opacity-45 data-[highlighted]:bg-brand-soft";
16
16
  const ICON = "transition-transform duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] group-data-[highlighted]/item:translate-x-0.5";
17
17
  const _sfc_main = /* @__PURE__ */ defineComponent({
18
18
  ...{ name: "ContextMenuItems" },
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, ref, computed, openBlock, createElementBlock, createVNode, withCtx, renderSlot, normalizeProps, guardReactiveProps } from "vue";
2
- import { _ as _sfc_main$1 } from "./LayoutNode-BkBn6dvM.js";
2
+ import { _ as _sfc_main$1 } from "./LayoutNode-DHsE6GwM.js";
3
3
  import { resizeAt, setActiveTab, reorderTab, removeBlock, moveLeaf } from "../layout/tree.js";
4
4
  import { layoutController } from "../layout/useLayout.js";
5
5
  const _hoisted_1 = { class: "flex min-h-0 min-w-0 flex-1" };
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, computed, ref, onBeforeUnmount, resolveComponent, openBlock, createElementBlock, normalizeClass, Fragment, renderList, createVNode, normalizeStyle, withCtx, renderSlot, mergeProps, createElementVNode, createCommentVNode, createBlock, unref, withModifiers, toDisplayString } from "vue";
2
2
  import { useReducedMotion, Motion } from "motion-v";
3
3
  import { blockTitle } from "../layout/registry.js";
4
- import { _ as _sfc_main$1 } from "./LpIcon-B5guGKrW.js";
4
+ import { _ as _sfc_main$1 } from "./LpIcon-CTuDVTYv.js";
5
5
  const _hoisted_1 = ["onPointerdown"];
6
6
  const _hoisted_2 = {
7
7
  key: 1,
@@ -2,8 +2,8 @@ import { defineComponent, useSlots, computed, ref, watch, onBeforeUnmount, openB
2
2
  import { useLabels } from "../composables/useLpConfig.js";
3
3
  import { useBarStack } from "../components/actionBar.js";
4
4
  import { CLOSE_ICON } from "../components/dropdown.js";
5
- import { _ as _sfc_main$2 } from "./LpButton-vhlwmpBy.js";
6
- import { _ as _sfc_main$1 } from "./LpIcon-B5guGKrW.js";
5
+ import { _ as _sfc_main$2 } from "./LpButton-CJSD7N0Z.js";
6
+ import { _ as _sfc_main$1 } from "./LpIcon-CTuDVTYv.js";
7
7
  const _hoisted_1 = ["aria-label"];
8
8
  const _hoisted_2 = {
9
9
  key: 1,
@@ -2,13 +2,13 @@ import { defineComponent, defineAsyncComponent, computed, watch, ref, onMounted,
2
2
  import { useAsyncTask } from "../composables/useAsyncTask.js";
3
3
  import { OSM_TILES, createNominatimProvider, emptyAddress, formatAddress } from "../components/address.js";
4
4
  import { flagEmoji, loadCountries } from "../components/countries.js";
5
- import { _ as _sfc_main$2 } from "./LpAutocomplete-hJ_6CHlh.js";
6
- import { _ as _sfc_main$3 } from "./LpButton-vhlwmpBy.js";
7
- import { _ as _sfc_main$1 } from "./LpFormField-BpQ6WJPe.js";
8
- import { _ as _sfc_main$4 } from "./LpIcon-B5guGKrW.js";
9
- import { _ as _sfc_main$5 } from "./LpInput-WvyP02ID.js";
10
- import { _ as _sfc_main$7 } from "./LpModal-BxYssnXg.js";
11
- import { _ as _sfc_main$6 } from "./LpSelect-DynjWK1A.js";
5
+ import { _ as _sfc_main$2 } from "./LpAutocomplete-PnL2ntKl.js";
6
+ import { _ as _sfc_main$3 } from "./LpButton-CJSD7N0Z.js";
7
+ import { _ as _sfc_main$1 } from "./LpFormField-DMPPL1jF.js";
8
+ import { _ as _sfc_main$4 } from "./LpIcon-CTuDVTYv.js";
9
+ import { _ as _sfc_main$5 } from "./LpInput-C7FHxzj2.js";
10
+ import { _ as _sfc_main$7 } from "./LpModal-QFfctZsj.js";
11
+ import { _ as _sfc_main$6 } from "./LpSelect-C4OXN_q3.js";
12
12
  import { useMergedAttrs } from "../composables/useMergedClass.js";
13
13
  const _hoisted_1 = { class: "flex items-stretch gap-2" };
14
14
  const _hoisted_2 = { class: "grid gap-3 sm:grid-cols-[minmax(0,1fr)_10rem]" };
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, openBlock, createElementBlock, normalizeClass, createVNode, createElementVNode, toDisplayString, createCommentVNode, renderSlot } from "vue";
2
2
  import { tv } from "tailwind-variants";
3
- import { _ as _sfc_main$1 } from "./LpIcon-B5guGKrW.js";
3
+ import { _ as _sfc_main$1 } from "./LpIcon-CTuDVTYv.js";
4
4
  const _hoisted_1 = ["role"];
5
5
  const _hoisted_2 = { class: "min-w-0" };
6
6
  const _hoisted_3 = {
@@ -1,10 +1,10 @@
1
1
  import { defineComponent, computed, ref, useId, watch, openBlock, createElementBlock, mergeProps, unref, createElementVNode, withModifiers, toDisplayString, createVNode, createSlots, withCtx, renderSlot, normalizeProps, guardReactiveProps, normalizeClass, createBlock } from "vue";
2
2
  import { useLabels } from "../composables/useLpConfig.js";
3
- import { _ as _sfc_main$2 } from "./LpButton-vhlwmpBy.js";
4
- import { _ as _sfc_main$3 } from "./LpIcon-B5guGKrW.js";
3
+ import { _ as _sfc_main$2 } from "./LpButton-CJSD7N0Z.js";
4
+ import { _ as _sfc_main$3 } from "./LpIcon-CTuDVTYv.js";
5
5
  import { _ as _sfc_main$5 } from "./LpScrollArea-Hz3-JWUG.js";
6
6
  import { _ as _sfc_main$4 } from "./LpShift-DXNsauQZ.js";
7
- import { _ as _sfc_main$1 } from "./LpSidebar-CshW0fqC.js";
7
+ import { _ as _sfc_main$1 } from "./LpSidebar-B3E_iViL.js";
8
8
  import { useMergedAttrs } from "../composables/useMergedClass.js";
9
9
  const _hoisted_1 = ["href"];
10
10
  const _hoisted_2 = { class: "flex min-w-0 flex-1 flex-col" };
@@ -4,7 +4,7 @@ import { useFieldControl } from "../composables/useField.js";
4
4
  import { useInputFilter } from "../composables/useInputFilter.js";
5
5
  import { useLabels } from "../composables/useLpConfig.js";
6
6
  import { CLOSE_ICON, POPOVER_PANEL, OPTION_ITEM } from "../components/dropdown.js";
7
- import { _ as _sfc_main$1 } from "./LpIcon-B5guGKrW.js";
7
+ import { _ as _sfc_main$1 } from "./LpIcon-CTuDVTYv.js";
8
8
  const _hoisted_1 = ["aria-label"];
9
9
  const _hoisted_2 = {
10
10
  key: 0,
@@ -1,8 +1,8 @@
1
1
  import { defineComponent, computed, ref, onMounted, openBlock, createBlock, withCtx, createVNode, unref, mergeProps, createCommentVNode, createElementBlock, Fragment, createTextVNode, toDisplayString } from "vue";
2
2
  import { AvatarRoot, AvatarImage, AvatarFallback } from "reka-ui";
3
3
  import { tv } from "tailwind-variants";
4
- import { _ as _sfc_main$1 } from "./LpContextMenu-B1NGfpp1.js";
5
- import { _ as _sfc_main$2 } from "./LpIcon-B5guGKrW.js";
4
+ import { _ as _sfc_main$1 } from "./LpContextMenu-BnN1k7ga.js";
5
+ import { _ as _sfc_main$2 } from "./LpIcon-CTuDVTYv.js";
6
6
  import { useMergedAttrs } from "../composables/useMergedClass.js";
7
7
  const __default__ = { inheritAttrs: false };
8
8
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, computed, openBlock, createElementBlock, mergeProps, unref, createElementVNode, normalizeClass, Fragment, renderList, createBlock, createCommentVNode, resolveDynamicComponent, withCtx, toDisplayString } from "vue";
2
- import { _ as _sfc_main$1 } from "./LpIcon-B5guGKrW.js";
2
+ import { _ as _sfc_main$1 } from "./LpIcon-CTuDVTYv.js";
3
3
  import { useLabels, useLinkComponent } from "../composables/useLpConfig.js";
4
4
  import { useMergedAttrs } from "../composables/useMergedClass.js";
5
5
  import { resolveLink } from "../components/link.js";
@@ -2,7 +2,7 @@ import { defineComponent, computed, openBlock, createBlock, resolveDynamicCompon
2
2
  import { tv } from "tailwind-variants";
3
3
  import { useLinkComponent } from "../composables/useLpConfig.js";
4
4
  import { useMergedAttrs } from "../composables/useMergedClass.js";
5
- import { _ as _sfc_main$1 } from "./LpIcon-B5guGKrW.js";
5
+ import { _ as _sfc_main$1 } from "./LpIcon-CTuDVTYv.js";
6
6
  import { resolveLink } from "../components/link.js";
7
7
  const __default__ = { inheritAttrs: false };
8
8
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, computed, openBlock, createBlock, unref, mergeProps, withCtx, createVNode, normalizeClass, createElementBlock, Fragment, renderList, createTextVNode, toDisplayString } from "vue";
2
2
  import { today, getLocalTimeZone, parseDate } from "@internationalized/date";
3
3
  import { CalendarRoot, CalendarHeader, CalendarPrev, CalendarHeading, CalendarNext, CalendarGrid, CalendarGridHead, CalendarGridRow, CalendarHeadCell, CalendarGridBody, CalendarCell, CalendarCellTrigger } from "reka-ui";
4
- import { _ as _sfc_main$1 } from "./LpIcon-B5guGKrW.js";
4
+ import { _ as _sfc_main$1 } from "./LpIcon-CTuDVTYv.js";
5
5
  import { useMergedAttrs } from "../composables/useMergedClass.js";
6
6
  const __default__ = { inheritAttrs: false };
7
7
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, computed, openBlock, createBlock, withCtx, resolveDynamicComponent, mergeProps, unref, renderSlot } from "vue";
2
2
  import { tv } from "tailwind-variants";
3
3
  import { useMergedAttrs } from "../composables/useMergedClass.js";
4
- import { _ as _sfc_main$1 } from "./LpContextMenu-B1NGfpp1.js";
4
+ import { _ as _sfc_main$1 } from "./LpContextMenu-BnN1k7ga.js";
5
5
  const __default__ = { inheritAttrs: false };
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
7
7
  ...__default__,
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, openBlock, createElementBlock, mergeProps, unref, createVNode, withCtx, renderSlot, createTextVNode, toDisplayString } from "vue";
2
2
  import { CheckboxRoot, CheckboxIndicator } from "reka-ui";
3
- import { _ as _sfc_main$1 } from "./LpIcon-B5guGKrW.js";
3
+ import { _ as _sfc_main$1 } from "./LpIcon-CTuDVTYv.js";
4
4
  import { useFieldControl } from "../composables/useField.js";
5
5
  import { useMergedAttrs } from "../composables/useMergedClass.js";
6
6
  const __default__ = { inheritAttrs: false };
@@ -2,7 +2,7 @@ import { defineComponent, computed, reactive, watch, ref, openBlock, createEleme
2
2
  import { useClipboard } from "../composables/useClipboard.js";
3
3
  import { tokenizeLines } from "../components/codeHighlight.js";
4
4
  import { useLabels } from "../composables/useLpConfig.js";
5
- import { _ as _sfc_main$1 } from "./LpIcon-B5guGKrW.js";
5
+ import { _ as _sfc_main$1 } from "./LpIcon-CTuDVTYv.js";
6
6
  import { useMergedAttrs } from "../composables/useMergedClass.js";
7
7
  const _hoisted_1 = {
8
8
  key: 0,
@@ -14,7 +14,7 @@ const _hoisted_2 = {
14
14
  };
15
15
  const _hoisted_3 = {
16
16
  key: 1,
17
- class: "rounded bg-surface px-1.5 py-0.5 text-[10px] uppercase tracking-wide"
17
+ class: "rounded-small bg-surface px-1.5 py-0.5 text-[10px] uppercase tracking-wide"
18
18
  };
19
19
  const _hoisted_4 = { class: "ml-auto flex items-center gap-1" };
20
20
  const _hoisted_5 = ["aria-label"];
@@ -178,7 +178,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
178
178
  __props.lockToggle ? (openBlock(), createElementBlock("button", {
179
179
  key: 0,
180
180
  type: "button",
181
- class: "group/lock flex items-center gap-1 rounded px-1.5 py-1 outline-none transition-colors duration-[var(--duration-fast)] hover:text-ink focus-visible:ring-2 focus-visible:ring-ring",
181
+ class: "group/lock flex items-center gap-1 rounded-small px-1.5 py-1 outline-none transition-colors duration-[var(--duration-fast)] hover:text-ink focus-visible:ring-2 focus-visible:ring-ring",
182
182
  "aria-label": __props.locked ? unref(text).unlock : unref(text).lock,
183
183
  onClick: toggleLock
184
184
  }, [
@@ -191,7 +191,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
191
191
  __props.copyable ? (openBlock(), createElementBlock("button", {
192
192
  key: 1,
193
193
  type: "button",
194
- class: "group/copy flex items-center gap-1 rounded px-1.5 py-1 outline-none transition-colors duration-[var(--duration-fast)] hover:text-ink focus-visible:ring-2 focus-visible:ring-ring",
194
+ class: "group/copy flex items-center gap-1 rounded-small px-1.5 py-1 outline-none transition-colors duration-[var(--duration-fast)] hover:text-ink focus-visible:ring-2 focus-visible:ring-ring",
195
195
  "aria-label": unref(copied) ? unref(text).copied : unref(text).copy,
196
196
  onClick: copy
197
197
  }, [
@@ -243,7 +243,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
243
243
  }), 128)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
244
244
  createElementVNode("button", {
245
245
  type: "button",
246
- class: "lp-fold-toggle flex w-full items-center gap-1.5 rounded px-1 py-0.5 text-left text-muted outline-none transition-colors duration-[var(--duration-fast)] hover:text-ink focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",
246
+ class: "lp-fold-toggle flex w-full items-center gap-1.5 rounded-small px-1 py-0.5 text-left text-muted outline-none transition-colors duration-[var(--duration-fast)] hover:text-ink focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",
247
247
  "aria-expanded": openState[seg.id],
248
248
  onClick: ($event) => toggleFold(seg.id)
249
249
  }, [
@@ -5,8 +5,8 @@ import { useFieldControl } from "../composables/useField.js";
5
5
  import { DEFAULT_SWATCHES, formatColor, opaqueCss, parseColor, rgbToHsv, isLight, clampHsv } from "../components/color.js";
6
6
  import { useClipboard } from "../composables/useClipboard.js";
7
7
  import { POPOVER_PANEL } from "../components/dropdown.js";
8
- import { _ as _sfc_main$1 } from "./LpContextMenu-B1NGfpp1.js";
9
- import { _ as _sfc_main$2 } from "./LpIcon-B5guGKrW.js";
8
+ import { _ as _sfc_main$1 } from "./LpContextMenu-BnN1k7ga.js";
9
+ import { _ as _sfc_main$2 } from "./LpIcon-CTuDVTYv.js";
10
10
  import { _ as _sfc_main$3 } from "./LpRollingText-DB7upf-5.js";
11
11
  const _hoisted_1 = ["id", "disabled", "aria-label", "aria-invalid", "aria-describedby"];
12
12
  const _hoisted_2 = { class: "min-w-0 flex-1 truncate font-mono text-xs text-muted-strong" };
@@ -350,14 +350,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
350
350
  ]])
351
351
  }, [
352
352
  createElementVNode("span", {
353
- class: "relative size-5 shrink-0 overflow-hidden rounded-md",
353
+ class: "relative size-5 shrink-0 overflow-hidden rounded-inner",
354
354
  style: normalizeStyle({ background: CHECKERBOARD })
355
355
  }, [
356
356
  createElementVNode("span", {
357
357
  class: "block size-full",
358
358
  style: normalizeStyle({ backgroundColor: previewCss.value })
359
359
  }, null, 4),
360
- _cache[4] || (_cache[4] = createElementVNode("span", { class: "pointer-events-none absolute inset-0 rounded-md ring-1 ring-inset ring-line" }, null, -1))
360
+ _cache[4] || (_cache[4] = createElementVNode("span", { class: "pointer-events-none absolute inset-0 rounded-inner ring-1 ring-inset ring-line" }, null, -1))
361
361
  ], 4),
362
362
  createElementVNode("span", _hoisted_2, toDisplayString(__props.label ?? current.value), 1),
363
363
  createVNode(_sfc_main$2, {
@@ -495,7 +495,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
495
495
  disabled: __props.disabled,
496
496
  "aria-label": c,
497
497
  "aria-pressed": isActiveSwatch(c),
498
- class: normalizeClass(["relative flex items-center justify-center overflow-hidden rounded-md outline-none transition-transform duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] hover:scale-110 active:scale-95 focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed motion-reduce:hover:scale-100 motion-reduce:active:scale-95", row.size]),
498
+ class: normalizeClass(["relative flex items-center justify-center overflow-hidden rounded-inner outline-none transition-transform duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] hover:scale-110 active:scale-95 focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed motion-reduce:hover:scale-100 motion-reduce:active:scale-95", row.size]),
499
499
  style: normalizeStyle({ background: CHECKERBOARD }),
500
500
  onClick: ($event) => pickSwatch(c)
501
501
  }, [
@@ -503,7 +503,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
503
503
  class: "absolute inset-0",
504
504
  style: normalizeStyle({ backgroundColor: c })
505
505
  }, null, 4),
506
- _cache[5] || (_cache[5] = createElementVNode("span", { class: "pointer-events-none absolute inset-0 rounded-md ring-1 ring-inset ring-line" }, null, -1)),
506
+ _cache[5] || (_cache[5] = createElementVNode("span", { class: "pointer-events-none absolute inset-0 rounded-inner ring-1 ring-inset ring-line" }, null, -1)),
507
507
  isActiveSwatch(c) ? (openBlock(), createBlock(_sfc_main$2, {
508
508
  key: 0,
509
509
  name: "lucide:check",
@@ -1,8 +1,8 @@
1
1
  import { defineComponent, computed, ref, watch, openBlock, createBlock, createSlots, withCtx, renderSlot, createElementBlock, toDisplayString, createCommentVNode, createVNode, createTextVNode, unref, createElementVNode, normalizeClass, nextTick } from "vue";
2
2
  import { useLabels } from "../composables/useLpConfig.js";
3
- import { _ as _sfc_main$2 } from "./LpButton-vhlwmpBy.js";
4
- import { _ as _sfc_main$3 } from "./LpIcon-B5guGKrW.js";
5
- import { _ as _sfc_main$1 } from "./LpModal-BxYssnXg.js";
3
+ import { _ as _sfc_main$2 } from "./LpButton-CJSD7N0Z.js";
4
+ import { _ as _sfc_main$3 } from "./LpIcon-CTuDVTYv.js";
5
+ import { _ as _sfc_main$1 } from "./LpModal-QFfctZsj.js";
6
6
  const _hoisted_1 = { class: "inline-flex items-center gap-2.5" };
7
7
  const _hoisted_2 = {
8
8
  key: 0,
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, ref, watch, openBlock, createBlock, createCommentVNode } from "vue";
2
2
  import { confirmQueue, settleConfirm } from "../components/confirm.js";
3
- import { _ as _sfc_main$1 } from "./LpConfirmDialog-DxlSdjmk.js";
3
+ import { _ as _sfc_main$1 } from "./LpConfirmDialog-tkgyY3eu.js";
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
5
5
  __name: "LpConfirmHost",
6
6
  props: {
@@ -1,7 +1,9 @@
1
1
  import { defineComponent, computed, openBlock, createBlock, unref, withCtx, createVNode, renderSlot, normalizeClass, createCommentVNode } from "vue";
2
2
  import { ContextMenuRoot, ContextMenuTrigger, ContextMenuPortal, ContextMenuContent } from "reka-ui";
3
- import { _ as _sfc_main$2 } from "./ContextMenuItems-BY5sTVQF.js";
4
- import { _ as _sfc_main$1 } from "./MenuTitle-DQP6hc2N.js";
3
+ import { hints } from "../composables/useHints.js";
4
+ import { HINT_SIGNALS } from "../composables/useHintSystem.js";
5
+ import { _ as _sfc_main$2 } from "./ContextMenuItems-qXReFtQW.js";
6
+ import { _ as _sfc_main$1 } from "./MenuTitle-FeC6I24N.js";
5
7
  import { POPOVER_PANEL } from "../components/dropdown.js";
6
8
  const _sfc_main = /* @__PURE__ */ defineComponent({
7
9
  __name: "LpContextMenu",
@@ -11,11 +13,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
11
13
  title: {},
12
14
  subtitle: {},
13
15
  titleIcon: {},
14
- titleImage: {}
16
+ titleImage: {},
17
+ noHint: { type: Boolean }
15
18
  },
16
19
  setup(__props) {
17
20
  const props = __props;
18
21
  const enabled = computed(() => props.always || props.items.length > 0);
22
+ const hinted = computed(() => enabled.value && !props.noHint);
19
23
  const PANEL = `${POPOVER_PANEL} z-(--z-popover) min-w-48 p-1 outline-none`;
20
24
  const SELECTABLE = /* @__PURE__ */ new Set(["text", "search", "url", "tel", "password"]);
21
25
  let field = null;
@@ -27,6 +31,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
27
31
  function keepContextMenu(event) {
28
32
  if (enabled.value) event.stopPropagation();
29
33
  }
34
+ function opened(open) {
35
+ if (open) hints.use(HINT_SIGNALS.contextMenu);
36
+ }
37
+ function leftClick() {
38
+ if (hinted.value) hints.use(HINT_SIGNALS.contextTarget);
39
+ }
30
40
  function returnFocus(event) {
31
41
  const saved = field;
32
42
  field = null;
@@ -36,11 +46,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
36
46
  if (saved.el.value === saved.value) saved.el.setSelectionRange(saved.start, saved.end);
37
47
  }
38
48
  return (_ctx, _cache) => {
39
- return openBlock(), createBlock(unref(ContextMenuRoot), null, {
49
+ return openBlock(), createBlock(unref(ContextMenuRoot), { "onUpdate:open": opened }, {
40
50
  default: withCtx(() => [
41
51
  createVNode(unref(ContextMenuTrigger), {
42
52
  "as-child": "",
43
53
  disabled: !enabled.value,
54
+ "data-lp-context-menu": hinted.value ? "" : void 0,
55
+ onClickCapture: leftClick,
44
56
  onContextmenuCapture: rememberField,
45
57
  onContextmenu: keepContextMenu
46
58
  }, {
@@ -48,7 +60,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
48
60
  renderSlot(_ctx.$slots, "default")
49
61
  ]),
50
62
  _: 3
51
- }, 8, ["disabled"]),
63
+ }, 8, ["disabled", "data-lp-context-menu"]),
52
64
  __props.items.length ? (openBlock(), createBlock(unref(ContextMenuPortal), { key: 0 }, {
53
65
  default: withCtx(() => [
54
66
  createVNode(unref(ContextMenuContent), {
@@ -5,10 +5,10 @@ import { useLocale } from "../composables/useLocale.js";
5
5
  import { useLabels } from "../composables/useLpConfig.js";
6
6
  import { mergeClass } from "../composables/useMergedClass.js";
7
7
  import { POPOVER_PANEL } from "../components/dropdown.js";
8
- import { _ as _sfc_main$3 } from "./LpCalendar-BLoE8Qm7.js";
9
- import { _ as _sfc_main$1 } from "./LpIcon-B5guGKrW.js";
8
+ import { _ as _sfc_main$3 } from "./LpCalendar-CXVDbb2M.js";
9
+ import { _ as _sfc_main$1 } from "./LpIcon-CTuDVTYv.js";
10
10
  import { _ as _sfc_main$2 } from "./LpRollingText-DB7upf-5.js";
11
- import { _ as _sfc_main$4 } from "./LpTimeField-DvGXgdES.js";
11
+ import { _ as _sfc_main$4 } from "./LpTimeField-BTEt0kvL.js";
12
12
  const _hoisted_1 = ["id", "disabled", "aria-invalid", "aria-describedby"];
13
13
  const _hoisted_2 = {
14
14
  key: 0,
@@ -7,9 +7,9 @@ import { mergeClass } from "../composables/useMergedClass.js";
7
7
  import { useMediaQuery } from "../composables/useMediaQuery.js";
8
8
  import { normalizeRange, formatRange, defaultRangePresets, sameRange, clampRange } from "../components/dateRange.js";
9
9
  import { POPOVER_PANEL } from "../components/dropdown.js";
10
- import { _ as _sfc_main$1 } from "./LpIcon-B5guGKrW.js";
10
+ import { _ as _sfc_main$1 } from "./LpIcon-CTuDVTYv.js";
11
11
  import { _ as _sfc_main$2 } from "./LpRollingText-DB7upf-5.js";
12
- import { _ as _sfc_main$3 } from "./LpRangeCalendar-D5sDID9W.js";
12
+ import { _ as _sfc_main$3 } from "./LpRangeCalendar-COeOYF52.js";
13
13
  const _hoisted_1 = ["id", "disabled", "aria-invalid", "aria-describedby"];
14
14
  const _hoisted_2 = {
15
15
  key: 0,
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, getCurrentInstance, computed, ref, openBlock, createBlock, unref, mergeProps, withCtx, createVNode, createCommentVNode, createElementVNode, renderSlot, createTextVNode, toDisplayString, nextTick } from "vue";
2
2
  import { CollapsibleRoot, CollapsibleTrigger, CollapsibleContent } from "reka-ui";
3
- import { _ as _sfc_main$1 } from "./LpIcon-B5guGKrW.js";
3
+ import { _ as _sfc_main$1 } from "./LpIcon-CTuDVTYv.js";
4
4
  import { useMergedAttrs } from "../composables/useMergedClass.js";
5
5
  const _hoisted_1 = { class: "min-w-0 flex-1 text-left" };
6
6
  const _hoisted_2 = { class: "grid gap-2.5 px-3 pt-1 pb-3 group-data-[state=open]/content:animate-[disclosure-body-in_300ms_var(--ease-emphasized)] motion-reduce:animate-none" };
@@ -4,7 +4,7 @@ import { CLOSE_ICON } from "../components/dropdown.js";
4
4
  import { prefersReducedMotion } from "../composables/easing.js";
5
5
  import { useGlass } from "../composables/useGlass.js";
6
6
  import { useLabels } from "../composables/useLpConfig.js";
7
- import { _ as _sfc_main$1 } from "./LpIcon-B5guGKrW.js";
7
+ import { _ as _sfc_main$1 } from "./LpIcon-CTuDVTYv.js";
8
8
  import { _ as _sfc_main$2 } from "./LpScrollArea-Hz3-JWUG.js";
9
9
  import { useModalLayer, anyModalOpen } from "../components/modalDepth.js";
10
10
  const _hoisted_1 = { class: "text-base font-semibold text-ink" };
@@ -392,7 +392,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
392
392
  })) : createCommentVNode("", true)
393
393
  ]),
394
394
  createVNode(unref(DrawerClose), {
395
- class: "group flex shrink-0 items-center rounded-md p-1 text-muted outline-none transition-colors duration-[var(--duration-fast)] hover:text-ink focus-visible:ring-2 focus-visible:ring-ring",
395
+ class: "group flex shrink-0 items-center rounded-inner p-1 text-muted outline-none transition-colors duration-[var(--duration-fast)] hover:text-ink focus-visible:ring-2 focus-visible:ring-ring",
396
396
  "aria-label": unref(text).close
397
397
  }, {
398
398
  default: withCtx(() => [