@leavepulse/ui 0.22.15 → 0.22.17

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.
@@ -5,7 +5,7 @@ import { _ as _sfc_main$2 } from "./LpAutocomplete-DExlIZe_.js";
5
5
  import { _ as _sfc_main$3 } from "./LpButton-5VXXCjwF.js";
6
6
  import { _ as _sfc_main$1 } from "./LpFormField-Bn-ZwC6z.js";
7
7
  import { _ as _sfc_main$4 } from "./LpIcon-CCnX5_2j.js";
8
- import { _ as _sfc_main$5 } from "./LpInput-DYc9O-db.js";
8
+ import { _ as _sfc_main$5 } from "./LpInput-BkomKdqQ.js";
9
9
  import { _ as _sfc_main$7 } from "./LpModal-CNNSf5pv.js";
10
10
  import { _ as _sfc_main$6 } from "./LpSelect-D5mU4cZO.js";
11
11
  const _hoisted_1 = { class: "flex flex-col gap-3" };
@@ -31,7 +31,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
31
31
  const shell = tv({
32
32
  base: [
33
33
  "flex w-full items-center bg-surface-soft text-ink",
34
- "rounded-control border border-line",
34
+ // `overflow-hidden` because rounding a box does NOT clip what is inside it:
35
+ // the shell carries the radius while the bare <input> is square, so any
36
+ // paint of its own — the background a browser applies to an autofilled
37
+ // field, most visibly — reached into the rounded corners.
38
+ "overflow-hidden rounded-control border border-line",
35
39
  "transition-colors duration-[var(--duration-fast)]",
36
40
  "focus-within:border-brand focus-within:ring-2 focus-within:ring-ring",
37
41
  "has-[:disabled]:cursor-not-allowed has-[:disabled]:opacity-55"
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, ref, openBlock, createBlock, createSlots, withCtx, createElementVNode, createVNode, renderSlot } from "vue";
2
2
  import { _ as _sfc_main$2 } from "./LpIcon-CCnX5_2j.js";
3
- import { _ as _sfc_main$1 } from "./LpInput-DYc9O-db.js";
3
+ import { _ as _sfc_main$1 } from "./LpInput-BkomKdqQ.js";
4
4
  const _hoisted_1 = ["aria-label"];
5
5
  const __default__ = { inheritAttrs: false };
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpAddressInput-DoiamNCt.js";
1
+ import { _ as _sfc_main } from "../chunks/LpAddressInput-C_zAwi_5.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpInput-DYc9O-db.js";
1
+ import { _ as _sfc_main } from "../chunks/LpInput-BkomKdqQ.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpPasswordInput-BvF2omhn.js";
1
+ import { _ as _sfc_main } from "../chunks/LpPasswordInput-DgUC2Ur7.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { _ } from "./chunks/LayoutCanvas-Dd20boUG.js";
2
- import { _ as _2 } from "./chunks/LpAddressInput-DoiamNCt.js";
2
+ import { _ as _2 } from "./chunks/LpAddressInput-C_zAwi_5.js";
3
3
  import { _ as _3 } from "./chunks/LpMapPicker-DFKrd1Ne.js";
4
4
  import { OSM_TILES, createNominatimProvider, emptyAddress, formatAddress, project, tileUrl, unproject } from "./components/address.js";
5
5
  import { _ as _4 } from "./chunks/LpAlert-BAYHDSS1.js";
@@ -27,7 +27,7 @@ import { ancestorIds, checkStateOf, checkedCount, computeStats, fileIcon, format
27
27
  import { _ as _24 } from "./chunks/LpFormField-Bn-ZwC6z.js";
28
28
  import { _ as _25 } from "./chunks/LpIcon-CCnX5_2j.js";
29
29
  import { _ as _26 } from "./chunks/LpInfraNode-qIL3l7IO.js";
30
- import { _ as _27 } from "./chunks/LpInput-DYc9O-db.js";
30
+ import { _ as _27 } from "./chunks/LpInput-BkomKdqQ.js";
31
31
  import { _ as _28 } from "./chunks/LpLightbox-Ci35Y_xP.js";
32
32
  import { fileNameOf } from "./components/lightbox.js";
33
33
  import { _ as _29 } from "./chunks/LpLink-DHwOEp4e.js";
@@ -37,7 +37,7 @@ import { _ as _32 } from "./chunks/LpNotificationBell-DWDEkmdA.js";
37
37
  import { _ as _33 } from "./chunks/LpNumberField-B3JuQFol.js";
38
38
  import { _ as _34 } from "./chunks/LpOtpInput-DqaT0Z75.js";
39
39
  import { _ as _35 } from "./chunks/LpPagination-CeGuNe_q.js";
40
- import { _ as _36 } from "./chunks/LpPasswordInput-BvF2omhn.js";
40
+ import { _ as _36 } from "./chunks/LpPasswordInput-DgUC2Ur7.js";
41
41
  import { _ as _37 } from "./chunks/LpPhoneInput-BxuDyXp3.js";
42
42
  import { flagEmoji, loadCountries, matchCountryByValue } from "./components/countries.js";
43
43
  import { _ as _38 } from "./chunks/LpPopover-8268UmlC.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leavepulse/ui",
3
- "version": "0.22.15",
3
+ "version": "0.22.17",
4
4
  "type": "module",
5
5
  "description": "LeavePulse token-driven Vue component kit.",
6
6
  "repository": {
@@ -14,7 +14,11 @@ import LpIcon from "./LpIcon.vue"
14
14
  const shell = tv({
15
15
  base: [
16
16
  "flex w-full items-center bg-surface-soft text-ink",
17
- "rounded-control border border-line",
17
+ // `overflow-hidden` because rounding a box does NOT clip what is inside it:
18
+ // the shell carries the radius while the bare <input> is square, so any
19
+ // paint of its own — the background a browser applies to an autofilled
20
+ // field, most visibly — reached into the rounded corners.
21
+ "overflow-hidden rounded-control border border-line",
18
22
  "transition-colors duration-[var(--duration-fast)]",
19
23
  "focus-within:border-brand focus-within:ring-2 focus-within:ring-ring",
20
24
  "has-[:disabled]:cursor-not-allowed has-[:disabled]:opacity-55",
@@ -38,26 +38,31 @@
38
38
  }
39
39
 
40
40
  /*
41
- * Autofilled fields keep the field's own colours.
41
+ * Autofilled fields, in the kit's own palette.
42
42
  *
43
- * A browser paints its own background on an autofilled control, and it wins
44
- * over `background` outright. Our inputs draw their surface and border on the
45
- * WRAPPER, so that paint lands on the bare <input> inside — a band of colour
46
- * that stops short of the field's real height and reads as a rendering fault.
43
+ * A browser paints its own background on an autofilled control and it beats any
44
+ * `background`, so the state cannot simply be styled — it has to be covered.
45
+ * Keeping it VISIBLE is the point: a filled-in field should still say it was
46
+ * filled in by the password manager. What it must not do is look broken, and
47
+ * the browser default did two things that read as a rendering fault.
47
48
  *
48
- * The background cannot be overridden, so it is covered: a large inset shadow
49
- * repaints the control in the field's own surface colour, and the text colour
50
- * is forced back with `-webkit-text-fill-color`, which the autofill style also
51
- * hijacks. The transition delay keeps Chrome from flashing its yellow during
52
- * the fade it runs on load.
49
+ * First, our fields draw their surface and border on the WRAPPER, so the paint
50
+ * landed on the bare <input> inside — a band of colour stopping short of the
51
+ * field's real height. The input now stretches the full inner height.
52
+ *
53
+ * Second, the wrapper carries the rounded corners while the <input> is square,
54
+ * so this paint reached into them. Rounding a box does not clip its contents —
55
+ * the shell does that with `overflow-hidden`, which fixes it for anything the
56
+ * field ever contains rather than for this one rule.
53
57
  */
54
58
  .lp-autofill:-webkit-autofill,
55
59
  .lp-autofill:-webkit-autofill:hover,
56
60
  .lp-autofill:-webkit-autofill:focus,
57
61
  .lp-autofill:-webkit-autofill:active {
58
- box-shadow: inset 0 0 0 1000px var(--color-surface-soft);
62
+ box-shadow: inset 0 0 0 1000px var(--color-brand-soft);
59
63
  -webkit-text-fill-color: var(--color-ink);
60
64
  caret-color: var(--color-ink);
65
+ /* Outruns the fade Chrome plays on load, which would flash its yellow. */
61
66
  transition: background-color 100000s ease-in-out 0s;
62
67
  }
63
68
 
@@ -69,7 +74,7 @@
69
74
  * nothing on Firefox.
70
75
  */
71
76
  .lp-autofill:autofill {
72
- box-shadow: inset 0 0 0 1000px var(--color-surface-soft);
77
+ box-shadow: inset 0 0 0 1000px var(--color-brand-soft);
73
78
  -webkit-text-fill-color: var(--color-ink);
74
79
  caret-color: var(--color-ink);
75
80
  filter: none;