@kungal/ui-vue 1.6.3 → 1.8.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,66 @@
1
1
  # @kungal/ui-vue
2
2
 
3
+ ## 1.8.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 3e821c4: feat(tokens,vue): surface-elevation system — cards & inputs pop by fill+shadow, not borders
8
+
9
+ Move from a border-defined look to an elevation scale. The page background is now
10
+ a soft neutral (light `#f5f5f7`, dark near-black `#0a0a0a`) instead of pure
11
+ white/black, so raised surfaces read as raised:
12
+
13
+ - **Card** is a raised surface — `bg-content1` (`#fff` / `#18181b`) + `shadow-kun-sm`;
14
+ border is now OFF by default (`bordered` is opt-in). It no longer shares the
15
+ page background.
16
+ - **Inputs are borderless and share the card surface**: Input, Textarea, Select,
17
+ NumberInput, TagInput, PinInput, Autocomplete, DatePicker trigger and the
18
+ Pagination field use `bg-content1` + `shadow-kun-sm` (same fill as a card, lifted
19
+ by a small shadow). The error state is a danger **ring**, not a border.
20
+ - **Floating panels lose their border** and rely on shadow + the `content1`
21
+ surface: Dropdown, Select/Autocomplete lists, ContextMenu, Popover, Tooltip,
22
+ DatePicker calendar, Modal, Drawer.
23
+ - **Placeholder** now uses a theme-adaptive `::placeholder` colour (the browser
24
+ default grey didn't follow light/dark).
25
+
26
+ Visual change only; component APIs are unchanged except `KunCard`'s `bordered`
27
+ default (true→false) and `KunTagInput`'s `variant` default (bordered→flat).
28
+
29
+ ### Patch Changes
30
+
31
+ - @kungal/ui-core@1.8.0
32
+
33
+ ## 1.7.0
34
+
35
+ ### Minor Changes
36
+
37
+ - 82de3b5: feat(tokens): regenerate the semantic palette in OKLCH with contrast-guaranteed on-colors
38
+
39
+ The whole semantic color system is now **generated** (scripts/gen-tokens.mjs,
40
+ OKLCH via culori) instead of hand-authored HSL. Each hue is defined once by its
41
+ OKLCH hue + a vivid `solidL`; every shade is laid on a perceptual lightness ramp
42
+ (so `-500` means the same perceived lightness for every color), and each color
43
+ ships a paired **`--color-{c}-foreground`** on-color DERIVED by measured WCAG
44
+ contrast. The generator asserts AA on every solid (fill, text) pair in BOTH light
45
+ and dark and fails the build on any regression — illegible solids can't ship
46
+ again. Adds the previously-missing `-950` shade.
47
+
48
+ What changes visually: solids keep HeroUI-style vivid fills (bright amber warning,
49
+ bright green success — no more muddy darkened `-600` fills), with white text on
50
+ the medium hues (primary/danger/default) and a refined dark tint on the bright
51
+ ones (secondary/success/warning/info). Solids are now mode-independent, so the
52
+ per-variant `dark:bg-{c}-{n}` pins are gone. **This is a visual change** to every
53
+ colored surface; the component API (color/variant names) is unchanged.
54
+
55
+ `@kungal/ui-core`: `kunSolidClasses` / `kunSolidFgClasses` / `kunSolidBgClasses`
56
+ and the Button solid/shadow rows now use `bg-{c} text-{c}-foreground`. CheckBox,
57
+ DatePicker, Switch, Carousel drop their hardcoded white/black + dark pins.
58
+
59
+ ### Patch Changes
60
+
61
+ - Updated dependencies [82de3b5]
62
+ - @kungal/ui-core@1.7.0
63
+
3
64
  ## 1.6.3
4
65
 
5
66
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"Card.vue.d.ts","sourceRoot":"","sources":["../../src/components/Card.vue"],"names":[],"mappings":"AAyHA,OAAO,EAAyB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAKxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AA2L3C,QAAA,IAAI,QAAQ,IAAU,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAY,CAAE;AACxF,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC5C;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC3C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAK/C,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;6EAId,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"Card.vue.d.ts","sourceRoot":"","sources":["../../src/components/Card.vue"],"names":[],"mappings":"AA6HA,OAAO,EAAyB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAKxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAgM3C,QAAA,IAAI,QAAQ,IAAU,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAY,CAAE;AACxF,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC5C;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC3C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAK/C,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;6EAId,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CheckBox.vue.d.ts","sourceRoot":"","sources":["../../src/components/CheckBox.vue"],"names":[],"mappings":"AAwLA,OAAO,EAKL,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,iBAAiB,CAAA;AAIxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAI/C,KAAK,WAAW,GAAG,gBAAgB,CAAC;AAyFpC,KAAK,gBAAgB,GAAG;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAmBF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAoIxD,QAAA,IAAI,OAAO,IAAW,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAO/C,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;6EAId,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"CheckBox.vue.d.ts","sourceRoot":"","sources":["../../src/components/CheckBox.vue"],"names":[],"mappings":"AAgLA,OAAO,EAKL,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,iBAAiB,CAAA;AAIxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAI/C,KAAK,WAAW,GAAG,gBAAgB,CAAC;AAiFpC,KAAK,gBAAgB,GAAG;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAmBF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAoIxD,QAAA,IAAI,OAAO,IAAW,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAO/C,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;6EAId,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenu.vue.d.ts","sourceRoot":"","sources":["../../src/components/ContextMenu.vue"],"names":[],"mappings":"AA0RA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAiYtE,QAAA,MAAM,YAAY;;;;;;;;;;;;;;6EAIhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"ContextMenu.vue.d.ts","sourceRoot":"","sources":["../../src/components/ContextMenu.vue"],"names":[],"mappings":"AA0RA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AA8XtE,QAAA,MAAM,YAAY;;;;;;;;;;;;;;6EAIhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.vue.d.ts","sourceRoot":"","sources":["../../src/components/Popover.vue"],"names":[],"mappings":"AAuJA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AA6M9C,QAAA,IAAI,OAAO,IAAU,EAAE,QAAQ,IAAY,CAAE;AAC7C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC5C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAShD,QAAA,MAAM,UAAU;;;;;;;;;;6EAId,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"Popover.vue.d.ts","sourceRoot":"","sources":["../../src/components/Popover.vue"],"names":[],"mappings":"AAuJA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AA2M9C,QAAA,IAAI,OAAO,IAAU,EAAE,QAAQ,IAAY,CAAE;AAC7C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC5C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAShD,QAAA,MAAM,UAAU;;;;;;;;;;6EAId,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.vue.d.ts","sourceRoot":"","sources":["../../src/components/Tooltip.vue"],"names":[],"mappings":"AAsIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AA0L9C,QAAA,IAAI,OAAO,IAAU,EAAE,QAAQ,IAAY,CAAE;AAC7C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC5C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAShD,QAAA,MAAM,UAAU;;;;;;;;;6EAGd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"Tooltip.vue.d.ts","sourceRoot":"","sources":["../../src/components/Tooltip.vue"],"names":[],"mappings":"AAsIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAwL9C,QAAA,IAAI,OAAO,IAAU,EAAE,QAAQ,IAAY,CAAE;AAC7C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC5C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAShD,QAAA,MAAM,UAAU;;;;;;;;;6EAGd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
package/dist/index.js CHANGED
@@ -419,7 +419,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
419
419
  role: e.role,
420
420
  "aria-modal": "true",
421
421
  "aria-label": e.ariaLabel || "对话框",
422
- class: y(P(q)("kun-modal-panel bg-content1/85 scrollbar-hide shadow-kun-lg relative mx-auto min-w-80 border p-6 backdrop-blur-[var(--kun-background-blur)]", p.value, h.value, u.value, e.innerClassName)),
422
+ class: y(P(q)("kun-modal-panel bg-content1/85 scrollbar-hide shadow-kun-lg relative mx-auto min-w-80 p-6 backdrop-blur-[var(--kun-background-blur)]", p.value, h.value, u.value, e.innerClassName)),
423
423
  onClick: r[1] ||= K(() => {}, ["stop"])
424
424
  }, [k(t.$slots, "default", {}, void 0, !0), e.isShowCloseButton ? (w(), s($, {
425
425
  key: 0,
@@ -442,7 +442,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
442
442
  _: 3
443
443
  })]));
444
444
  }
445
- }), [["__scopeId", "data-v-856c1b6e"]]), Kt = { class: "max-w-80" }, qt = { class: "space-y-2" }, Jt = {
445
+ }), [["__scopeId", "data-v-f47724a6"]]), Kt = { class: "max-w-80" }, qt = { class: "space-y-2" }, Jt = {
446
446
  key: 0,
447
447
  class: "text-lg font-semibold"
448
448
  }, Yt = {
@@ -698,7 +698,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
698
698
  placeholder: e.placeholder,
699
699
  disabled: e.disabled,
700
700
  autocomplete: "off",
701
- class: P(q)("block w-full border transition-[color,box-shadow]", g.value, P(ce)[e.size], e.clearable && p.value ? "pr-9" : "", C.value ? P(q)("border-danger-300", P(Y).danger) : P(q)("border-kun", P(Y)[e.color]), e.disabled && "bg-default-100 cursor-not-allowed"),
701
+ class: P(q)("block w-full bg-content1 shadow-kun-sm transition-[color,box-shadow]", g.value, P(ce)[e.size], e.clearable && p.value ? "pr-9" : "", C.value ? P(q)("ring-2 ring-danger/60", P(Y).danger) : P(Y)[e.color], e.disabled && "cursor-not-allowed opacity-60"),
702
702
  onInput: te,
703
703
  onFocus: W,
704
704
  onKeydown: ne,
@@ -733,7 +733,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
733
733
  ref_key: "dropdownRef",
734
734
  ref: N,
735
735
  style: b([P(I), { transformOrigin: P(R) }]),
736
- class: y(P(q)("bg-content1 border-kun z-kun-popover flex flex-col overflow-hidden border p-1 shadow-kun-md", g.value))
736
+ class: y(P(q)("bg-content1 z-kun-popover flex flex-col overflow-hidden p-1 shadow-kun-md", g.value))
737
737
  }, [u("ul", {
738
738
  ref_key: "listRef",
739
739
  ref: F,
@@ -1112,7 +1112,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
1112
1112
  },
1113
1113
  bordered: {
1114
1114
  type: Boolean,
1115
- default: !0
1115
+ default: !1
1116
1116
  },
1117
1117
  className: { default: "" },
1118
1118
  contentClass: { default: "" },
@@ -1128,7 +1128,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
1128
1128
  let n = e, r = t, i = ct(), { ripples: a, onClick: d } = Ct(), p = o(() => !!n.href || n.clickable), m = o(() => n.href ? i.linkComponent : n.clickable ? "button" : "div"), h = o(() => n.href ? typeof i.linkComponent == "string" ? { href: n.href } : { to: n.href } : n.clickable ? { type: "button" } : {}), g = (e) => {
1129
1129
  p.value && d(e), r("click", e);
1130
1130
  }, v = {
1131
- background: "bg-background",
1131
+ background: "bg-content1",
1132
1132
  default: "bg-default-100/30",
1133
1133
  primary: "bg-primary-100/30 border-primary-300",
1134
1134
  secondary: "bg-secondary-100/30 border-secondary-300",
@@ -1138,7 +1138,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
1138
1138
  info: "bg-info-100/30 border-info-300"
1139
1139
  }, b = Q(() => n.rounded), x = o(() => X[b.value]);
1140
1140
  return (t, r) => (w(), s(A(m.value), _(h.value, {
1141
- class: P(q)("relative flex flex-col gap-3 p-3 backdrop-blur-[var(--kun-background-blur)] transition-all duration-kun-fast", e.isHoverable && "hover:bg-default-100", e.bordered && "border-kun border", p.value && "cursor-pointer overflow-hidden active:scale-[0.97] text-left", e.isTransparent ? "backdrop-blur-none" : v[n.color], x.value, e.className),
1141
+ class: P(q)("relative flex flex-col gap-3 p-3 backdrop-blur-[var(--kun-background-blur)] transition-all duration-kun-fast", !e.isTransparent && "shadow-kun-sm", e.isHoverable && "hover:bg-content2", e.bordered && "border-kun border", p.value && "cursor-pointer overflow-hidden active:scale-[0.97] text-left", e.isTransparent ? "backdrop-blur-none" : v[n.color], x.value, e.className),
1142
1142
  onClick: g
1143
1143
  }), {
1144
1144
  default: U(() => [
@@ -1261,7 +1261,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
1261
1261
  type: "button",
1262
1262
  "aria-label": `跳到第 ${e} 张`,
1263
1263
  "aria-current": a.value === e - 1 ? "true" : void 0,
1264
- class: y(P(q)("h-2 rounded-full transition-all", a.value === e - 1 ? "bg-primary dark:bg-primary-400 w-5" : "bg-default-300 hover:bg-default-400 w-2")),
1264
+ class: y(P(q)("h-2 rounded-full transition-all", a.value === e - 1 ? "bg-primary w-5" : "bg-default-300 hover:bg-default-400 w-2")),
1265
1265
  onClick: (t) => _(e - 1)
1266
1266
  }, null, 10, Rn))), 128))])) : c("", !0)
1267
1267
  ], 42, Pn));
@@ -1340,22 +1340,22 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
1340
1340
  let t = e.target.checked;
1341
1341
  a.value = t, s("change", t);
1342
1342
  }, h = {
1343
- default: "border-default-300 checked:bg-default dark:checked:bg-default-400 checked:border-default hover:border-default",
1344
- primary: "border-primary-300 checked:bg-primary dark:checked:bg-primary-400 checked:border-primary hover:border-primary",
1345
- secondary: "border-secondary-300 checked:bg-secondary dark:checked:bg-secondary-300 checked:border-secondary hover:border-secondary",
1346
- success: "border-success-300 checked:bg-success-600 dark:checked:bg-success-400 checked:border-success hover:border-success",
1347
- warning: "border-warning-300 checked:bg-warning dark:checked:bg-warning-400 checked:border-warning hover:border-warning",
1348
- danger: "border-danger-300 checked:bg-danger dark:checked:bg-danger-400 checked:border-danger hover:border-danger",
1349
- info: "border-info-300 checked:bg-info-600 dark:checked:bg-info-300 checked:border-info hover:border-info"
1343
+ default: "border-default-300 checked:bg-default checked:border-default hover:border-default",
1344
+ primary: "border-primary-300 checked:bg-primary checked:border-primary hover:border-primary",
1345
+ secondary: "border-secondary-300 checked:bg-secondary checked:border-secondary hover:border-secondary",
1346
+ success: "border-success-300 checked:bg-success checked:border-success hover:border-success",
1347
+ warning: "border-warning-300 checked:bg-warning checked:border-warning hover:border-warning",
1348
+ danger: "border-danger-300 checked:bg-danger checked:border-danger hover:border-danger",
1349
+ info: "border-info-300 checked:bg-info checked:border-info hover:border-info"
1350
1350
  }, g = {
1351
- default: "bg-default dark:bg-default-400 border-default",
1352
- primary: "bg-primary dark:bg-primary-400 border-primary",
1353
- secondary: "bg-secondary dark:bg-secondary-300 border-secondary",
1354
- success: "bg-success-600 dark:bg-success-400 border-success",
1355
- warning: "bg-warning dark:bg-warning-400 border-warning",
1356
- danger: "bg-danger dark:bg-danger-400 border-danger",
1357
- info: "bg-info-600 dark:bg-info-300 border-info"
1358
- }, _ = o(() => he[n.color]), v = o(() => _.value === "text-black" ? "bg-black" : "bg-white");
1351
+ default: "bg-default border-default",
1352
+ primary: "bg-primary border-primary",
1353
+ secondary: "bg-secondary border-secondary",
1354
+ success: "bg-success border-success",
1355
+ warning: "bg-warning border-warning",
1356
+ danger: "bg-danger border-danger",
1357
+ info: "bg-info border-info"
1358
+ }, _ = o(() => he[n.color]);
1359
1359
  return (t, o) => (w(), l("div", null, [u("div", { class: y(P(q)("flex cursor-pointer items-center", r.value.gap, e.className)) }, [
1360
1360
  u("div", Vn, [
1361
1361
  u("input", {
@@ -1375,7 +1375,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
1375
1375
  name: "lucide:check",
1376
1376
  class: y(r.value.check)
1377
1377
  }, null, 8, ["class"])], 2), [[B, !e.indeterminate]]),
1378
- W(u("div", Un, [u("span", { class: y(["h-0.5 rounded-full", [i[n.size], v.value]]) }, null, 2)], 512), [[B, e.indeterminate]])
1378
+ W(u("div", Un, [u("span", { class: y(["h-0.5 rounded-full bg-current", [i[n.size], _.value]]) }, null, 2)], 512), [[B, e.indeterminate]])
1379
1379
  ]),
1380
1380
  k(t.$slots, "default"),
1381
1381
  e.label ? (w(), l("label", {
@@ -1546,9 +1546,9 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
1546
1546
  height: "1.85rem",
1547
1547
  padding: "0",
1548
1548
  cursor: "pointer",
1549
- color: "hsl(var(--foreground))",
1550
- background: "hsl(var(--content1))",
1551
- border: "1px solid var(--color-kun-border, hsla(var(--foreground), 0.14))",
1549
+ color: "oklch(var(--foreground))",
1550
+ background: "oklch(var(--content1))",
1551
+ border: "1px solid var(--color-kun-border, oklch(var(--foreground) / 0.14))",
1552
1552
  borderRadius: "0.5rem",
1553
1553
  opacity: "0.75",
1554
1554
  transition: "opacity 0.15s, color 0.15s"
@@ -1567,8 +1567,8 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
1567
1567
  if (!t) return;
1568
1568
  let n = (t.querySelector("code") ?? t).textContent ?? "";
1569
1569
  navigator.clipboard.writeText(n).then(() => {
1570
- e.classList.add("copied"), e.classList.contains("kun-prose-copy") ? (e.replaceChildren(Er(Tr)), e.style.color = "hsl(var(--success-500))", setTimeout(() => {
1571
- e.replaceChildren(Er(wr)), e.style.color = "hsl(var(--foreground))", e.classList.remove("copied");
1570
+ e.classList.add("copied"), e.classList.contains("kun-prose-copy") ? (e.replaceChildren(Er(Tr)), e.style.color = "oklch(var(--success-500))", setTimeout(() => {
1571
+ e.replaceChildren(Er(wr)), e.style.color = "oklch(var(--foreground))", e.classList.remove("copied");
1572
1572
  }, 2e3)) : setTimeout(() => e.classList.remove("copied"), 3e3);
1573
1573
  }).catch((e) => {
1574
1574
  console.error("复制失败:", e);
@@ -2205,7 +2205,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
2205
2205
  role: "menu",
2206
2206
  "aria-orientation": "vertical",
2207
2207
  tabindex: "-1",
2208
- class: "border-kun bg-background/95 fixed z-kun-popover rounded-kun-lg border p-1 text-sm shadow-kun-md outline-none backdrop-blur",
2208
+ class: "bg-content1 fixed z-kun-popover rounded-kun-lg p-1 text-sm shadow-kun-md outline-none",
2209
2209
  style: b(z.value),
2210
2210
  onClick: a[0] ||= K(() => {}, ["stop"]),
2211
2211
  onKeydown: G
@@ -2415,7 +2415,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
2415
2415
  u("div", ii, [u("button", {
2416
2416
  type: "button",
2417
2417
  disabled: e.disabled,
2418
- class: y(P(q)("flex w-full cursor-pointer items-center justify-between text-left transition-[color,box-shadow]", P(ce)[a.size], m.value, P(Y)[e.color], "border-kun border", e.disabled && "bg-default-100 cursor-not-allowed")),
2418
+ class: y(P(q)("flex w-full cursor-pointer items-center justify-between text-left transition-[color,box-shadow]", P(ce)[a.size], m.value, P(Y)[e.color], "bg-content1 shadow-kun-sm", e.disabled && "cursor-not-allowed opacity-60")),
2419
2419
  onClick: le
2420
2420
  }, [u("span", { class: y(["block truncate", { "text-default-400": !se.value }]) }, j(se.value || e.placeholder), 3), u("div", oi, [e.clearable && se.value ? (w(), l("button", {
2421
2421
  key: 0,
@@ -2441,7 +2441,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
2441
2441
  key: 0,
2442
2442
  ref_key: "dropdownRef",
2443
2443
  ref: x,
2444
- class: y(P(q)("bg-content1 border-kun z-kun-popover border p-3 shadow-kun-md", m.value)),
2444
+ class: y(P(q)("bg-content1 z-kun-popover p-3 shadow-kun-md", m.value)),
2445
2445
  style: b([P(C), {
2446
2446
  minWidth: "260px",
2447
2447
  transformOrigin: P(E)
@@ -2500,7 +2500,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
2500
2500
  role: "gridcell"
2501
2501
  }, [u("button", {
2502
2502
  disabled: t.isDisabled,
2503
- class: y(P(q)(P(q)("flex h-8 w-8 items-center justify-center rounded-full text-sm transition-colors", P(Y)[e.color]), !t.isCurrentMonth && "text-default-400", t.isToday && "border-primary bg-primary/20 border", !t.isSelected && !t.isDisabled && "hover:bg-default/20", t.isDisabled && "cursor-not-allowed opacity-50", t.isSelected && "bg-primary dark:bg-primary-400 hover:bg-primary/90 text-white", (t.isInRange || fe(t.date)) && !t.isSelected && "bg-primary/10 rounded-none", t.isRangeStart && "rounded-r-none", t.isRangeEnd && "rounded-l-none")),
2503
+ class: y(P(q)(P(q)("flex h-8 w-8 items-center justify-center rounded-full text-sm transition-colors", P(Y)[e.color]), !t.isCurrentMonth && "text-default-400", t.isToday && "border-primary bg-primary/20 border", !t.isSelected && !t.isDisabled && "hover:bg-default/20", t.isDisabled && "cursor-not-allowed opacity-50", t.isSelected && "bg-primary text-primary-foreground hover:bg-primary/90", (t.isInRange || fe(t.date)) && !t.isSelected && "bg-primary/10 rounded-none", t.isRangeStart && "rounded-r-none", t.isRangeEnd && "rounded-l-none")),
2504
2504
  "aria-label": t.date.toDateString(),
2505
2505
  "aria-selected": t.isSelected,
2506
2506
  tabindex: t.date.toDateString() === ie.value.toDateString() ? 0 : -1,
@@ -2802,7 +2802,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
2802
2802
  role: "menu",
2803
2803
  "aria-orientation": "vertical",
2804
2804
  tabindex: "-1",
2805
- class: y(P(q)("border-kun bg-background/95 z-kun-popover rounded-kun-lg border p-1 text-sm shadow-kun-md outline-none backdrop-blur", e.menuClass)),
2805
+ class: y(P(q)("bg-content1 z-kun-popover rounded-kun-lg p-1 text-sm shadow-kun-md outline-none", e.menuClass)),
2806
2806
  style: b([P(S), {
2807
2807
  minWidth: `${e.minWidth}px`,
2808
2808
  transformOrigin: P(C)
@@ -2946,7 +2946,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
2946
2946
  class: "bg-default-800/70 dark:bg-background/70 absolute inset-0 transition-opacity",
2947
2947
  onClick: ce
2948
2948
  }), u("div", {
2949
- class: y(P(q)("bg-content1 flex flex-col border shadow-kun-lg", M.value, e.innerClassName, e.size === "full" ? m.value : "")),
2949
+ class: y(P(q)("bg-content1 flex flex-col shadow-kun-lg", M.value, e.innerClassName, e.size === "full" ? m.value : "")),
2950
2950
  onClick: r[0] ||= K(() => {}, ["stop"])
2951
2951
  }, [
2952
2952
  e.title || t.$slots.header || e.isShowCloseButton ? (w(), l("header", Ni, [u("div", Pi, [e.title ? (w(), l("h2", {
@@ -2973,7 +2973,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
2973
2973
  _: 3
2974
2974
  }, 8, ["name"])]));
2975
2975
  }
2976
- }), [["__scopeId", "data-v-d875426c"]]), zi = {
2976
+ }), [["__scopeId", "data-v-2c7f907c"]]), zi = {
2977
2977
  key: 0,
2978
2978
  class: "grid grid-rows-[1fr] opacity-100"
2979
2979
  }, Bi = { class: "min-h-0 overflow-hidden" }, Vi = /*#__PURE__*/ dt(/* @__PURE__ */ p({
@@ -3386,7 +3386,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
3386
3386
  required: e.required,
3387
3387
  "aria-invalid": s.value || void 0,
3388
3388
  "aria-describedby": a.value || e.error ? `${P(F)}-desc` : void 0,
3389
- class: P(q)("block w-full border transition-[color,box-shadow] duration-kun-fast ease-kun-standard", E.value, I.value, t.$slots.prefix && "pl-10", C.value, e.disabled && "bg-default-100 cursor-not-allowed", s.value ? P(q)("border-danger-300", P(Y).danger) : P(q)("border-kun", P(Y)[e.color]), e.className),
3389
+ class: P(q)("block w-full bg-content1 shadow-kun-sm transition-[color,box-shadow] duration-kun-fast ease-kun-standard", E.value, I.value, t.$slots.prefix && "pl-10", C.value, e.disabled && "cursor-not-allowed opacity-60", s.value ? P(q)("ring-2 ring-danger/60", P(Y).danger) : P(Y)[e.color], e.className),
3390
3390
  onInput: z,
3391
3391
  onBlur: B,
3392
3392
  onFocus: V
@@ -4077,7 +4077,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
4077
4077
  for: P(m),
4078
4078
  class: "text-default-700 mb-1 block text-sm font-medium"
4079
4079
  }, [d(j(e.label) + " ", 1), e.required ? (w(), l("span", ao, "*")) : c("", !0)], 8, io)) : c("", !0),
4080
- u("div", { class: y(P(q)("flex w-full items-stretch overflow-hidden border transition-[color,box-shadow]", p.value, v.value.text, h.value ? P(q)("border-danger-300", P(ue).danger) : P(q)("border-kun", P(ue)[e.color]), e.disabled && "bg-default-100 cursor-not-allowed")) }, [
4080
+ u("div", { class: y(P(q)("bg-content1 shadow-kun-sm flex w-full items-stretch overflow-hidden transition-[color,box-shadow]", p.value, v.value.text, h.value ? P(q)("ring-2 ring-danger/60", P(ue).danger) : P(ue)[e.color], e.disabled && "cursor-not-allowed opacity-60")) }, [
4081
4081
  e.controls ? (w(), l("button", {
4082
4082
  key: 0,
4083
4083
  type: "button",
@@ -4267,7 +4267,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
4267
4267
  disabled: e.isLoading,
4268
4268
  min: "1",
4269
4269
  max: e.totalPage,
4270
- class: y(P(q)(P(q)("border-kun w-24 rounded-kun-md border px-2 py-1 text-sm transition-[color,box-shadow]", P(Y).default), e.isLoading && "cursor-not-allowed opacity-50")),
4270
+ class: y(P(q)(P(q)("bg-content1 shadow-kun-sm w-24 rounded-kun-md px-2 py-1 text-sm transition-[color,box-shadow]", P(Y).default), e.isLoading && "cursor-not-allowed opacity-50")),
4271
4271
  onKeyup: G(h, ["enter"])
4272
4272
  }, null, 42, So), [[z, a.value]]),
4273
4273
  f($, {
@@ -4380,7 +4380,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
4380
4380
  placeholder: e.placeholder,
4381
4381
  "aria-label": `${e.ariaLabel} 第 ${n + 1} 位`,
4382
4382
  "aria-invalid": e.isInvalid || void 0,
4383
- class: y(P(q)("bg-content1 text-foreground border text-center font-medium tabular-nums transition-[color,box-shadow] outline-none", u.value, p[e.size], e.isInvalid ? P(q)("border-danger-300", P(Y).danger) : P(q)("border-kun", P(Y)[e.color]), e.disabled && "bg-default-100 cursor-not-allowed opacity-60")),
4383
+ class: y(P(q)("bg-content1 shadow-kun-sm text-foreground text-center font-medium tabular-nums transition-[color,box-shadow] outline-none", u.value, p[e.size], e.isInvalid ? P(q)("ring-2 ring-danger/60", P(Y).danger) : P(Y)[e.color], e.disabled && "cursor-not-allowed opacity-60")),
4384
4384
  onInput: (e) => x(n, e),
4385
4385
  onKeydown: (e) => C(n, e),
4386
4386
  onPaste: (e) => T(n, e),
@@ -4456,14 +4456,14 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
4456
4456
  role: "dialog",
4457
4457
  tabindex: "-1",
4458
4458
  "aria-label": e.ariaLabel || "popover",
4459
- class: y(P(q)("bg-content1 border-kun z-kun-popover border shadow-kun-md focus:outline-none", d.value, e.innerClass)),
4459
+ class: y(P(q)("bg-content1 z-kun-popover shadow-kun-md focus:outline-none", d.value, e.innerClass)),
4460
4460
  style: b([P(_), { transformOrigin: P(x) }]),
4461
4461
  onKeydown: r[0] ||= G((e) => A(), ["escape"])
4462
4462
  }, [k(t.$slots, "default"), e.showArrow ? (w(), l("div", {
4463
4463
  key: 0,
4464
4464
  ref_key: "arrowRef",
4465
4465
  ref: S,
4466
- class: "bg-content1 border-kun size-2 rotate-45 border",
4466
+ class: "bg-content1 size-2 rotate-45",
4467
4467
  style: b(P(C))
4468
4468
  }, null, 4)) : c("", !0)], 46, Ao)) : c("", !0)]),
4469
4469
  _: 3
@@ -5000,7 +5000,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
5000
5000
  "aria-controls": _.value,
5001
5001
  "aria-activedescendant": x.value ? ee.value : void 0,
5002
5002
  "aria-disabled": e.disabled || void 0,
5003
- class: y(P(q)("flex w-full cursor-pointer items-center justify-between gap-2 text-left transition-[color,box-shadow]", P(ce)[a.size], p.value, "border", e.error ? P(q)("border-danger-300", P(Y).danger) : P(q)("border-kun", P(Y)[e.color]), e.disabled && "bg-default-100 cursor-not-allowed")),
5003
+ class: y(P(q)("flex w-full cursor-pointer items-center justify-between gap-2 text-left transition-[color,box-shadow]", P(ce)[a.size], p.value, "bg-content1 shadow-kun-sm", e.error ? P(q)("ring-2 ring-danger/60", P(Y).danger) : P(Y)[e.color], e.disabled && "cursor-not-allowed opacity-60")),
5004
5004
  onClick: re,
5005
5005
  onKeydown: he
5006
5006
  }, [
@@ -5061,7 +5061,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
5061
5061
  ref_key: "dropdownRef",
5062
5062
  ref: E,
5063
5063
  style: b([P(M), { transformOrigin: P(N) }]),
5064
- class: y(P(q)("bg-content1 border-kun z-kun-popover flex flex-col overflow-hidden border p-1 shadow-kun-md", p.value))
5064
+ class: y(P(q)("bg-content1 z-kun-popover flex flex-col overflow-hidden p-1 shadow-kun-md", p.value))
5065
5065
  }, [e.searchable ? (w(), l("div", ss, [W(u("input", {
5066
5066
  ref_key: "searchRef",
5067
5067
  ref: A,
@@ -5072,7 +5072,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
5072
5072
  "aria-controls": _.value,
5073
5073
  "aria-expanded": x.value,
5074
5074
  "aria-activedescendant": ee.value,
5075
- class: y(P(q)("border-kun w-full rounded-kun-sm border px-2.5 py-1.5 text-sm", P(Y)[e.color])),
5075
+ class: y(P(q)("bg-content1 shadow-kun-sm w-full rounded-kun-sm px-2.5 py-1.5 text-sm", P(Y)[e.color])),
5076
5076
  onKeydown: he
5077
5077
  }, null, 42, cs), [[z, S.value]])])) : c("", !0), u("ul", {
5078
5078
  ref_key: "listRef",
@@ -5570,7 +5570,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
5570
5570
  }, null, 40, Ms),
5571
5571
  u("div", Ns, [u("div", { class: y(["rounded-full transition-colors duration-kun-fast ease-kun-standard peer-focus-visible:ring-2 peer-focus-visible:ring-primary/50", [
5572
5572
  a.value.track,
5573
- n.value ? "bg-primary-500 dark:bg-primary-400" : "bg-default-500",
5573
+ n.value ? "bg-primary" : "bg-default-500",
5574
5574
  e.disabled ? "opacity-50" : "",
5575
5575
  n.value && e.disabled ? "bg-primary-300" : ""
5576
5576
  ]]) }, null, 2), u("div", { class: y(P(q)("absolute top-0.5 left-0.5 transform rounded-full bg-white transition-transform duration-kun-fast ease-kun-emphasized", a.value.thumb, n.value ? a.value.translate : "translate-x-0")) }, null, 2)]),
@@ -5964,7 +5964,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
5964
5964
  },
5965
5965
  color: { default: "primary" },
5966
5966
  size: { default: "md" },
5967
- variant: { default: "bordered" },
5967
+ variant: { default: "flat" },
5968
5968
  disabled: {
5969
5969
  type: Boolean,
5970
5970
  default: !1
@@ -6091,7 +6091,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
6091
6091
  md: "text-sm",
6092
6092
  lg: "text-base",
6093
6093
  xl: "text-lg"
6094
- }, te = o(() => q("flex flex-wrap items-center transition-shadow", a.value, G[r.size], ee[r.size], J[r.size], "border border-transparent", r.variant === "bordered" && !r.error && "border-kun", r.variant === "flat" && "bg-content2", r.error ? ue.danger : ue[r.color], r.error && "border-danger", r.disabled && "opacity-50 cursor-not-allowed bg-default-100", r.readonly && "cursor-default", r.className)), ne = o(() => q("inline-flex items-center gap-1 rounded-full font-medium whitespace-nowrap select-none", _e("flat", r.color), se[r.size], Y[r.color])), re = o(() => d.value.length >= r.maxTags);
6094
+ }, te = o(() => q("flex flex-wrap items-center transition-shadow", a.value, G[r.size], ee[r.size], J[r.size], "border border-transparent", r.variant === "bordered" && !r.error && "border-kun", r.variant === "flat" && "bg-content1 shadow-kun-sm", r.error ? ue.danger : ue[r.color], r.error && "border-danger", r.disabled && "opacity-50 cursor-not-allowed bg-default-100", r.readonly && "cursor-default", r.className)), ne = o(() => q("inline-flex items-center gap-1 rounded-full font-medium whitespace-nowrap select-none", _e("flat", r.color), se[r.size], Y[r.color])), re = o(() => d.value.length >= r.maxTags);
6095
6095
  return (n, r) => (w(), l("div", Ks, [
6096
6096
  e.label ? (w(), l("label", {
6097
6097
  key: 0,
@@ -6300,7 +6300,7 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
6300
6300
  minlength: e.minlength,
6301
6301
  rows: e.rows,
6302
6302
  autofocus: e.autofocus,
6303
- class: y(P(q)("scrollbar-hide w-full border transition-[color,box-shadow] duration-kun-fast ease-kun-standard", P(ce)[r.size], a.value, e.error ? P(q)("border-danger-300", P(Y).danger) : P(q)("border-kun", P(Y)[e.color]), e.disabled ? "text-default-500 cursor-not-allowed shadow-none" : "", e.resize === "none" ? "resize-none" : e.resize === "vertical" ? "resize-y" : e.resize === "horizontal" ? "resize-x" : "resize")),
6303
+ class: y(P(q)("scrollbar-hide w-full bg-content1 shadow-kun-sm transition-[color,box-shadow] duration-kun-fast ease-kun-standard", P(ce)[r.size], a.value, e.error ? P(q)("ring-2 ring-danger/60", P(Y).danger) : P(Y)[e.color], e.disabled ? "text-default-500 cursor-not-allowed opacity-60 shadow-none" : "", e.resize === "none" ? "resize-none" : e.resize === "vertical" ? "resize-y" : e.resize === "horizontal" ? "resize-x" : "resize")),
6304
6304
  onInput: g,
6305
6305
  onBlur: n[1] ||= (e) => h("blur", e),
6306
6306
  onFocus: n[2] ||= (e) => h("focus", e)
@@ -6406,13 +6406,13 @@ var tt = Symbol("kun-accordion"), nt = /* @__PURE__ */ p({
6406
6406
  ref: p,
6407
6407
  id: P(h),
6408
6408
  role: "tooltip",
6409
- class: y(P(q)("bg-content1 border-kun z-kun-popover max-w-xs border px-3 py-2 text-sm font-medium shadow-kun-sm", a.value, e.hideOnMobile && "hidden sm:block")),
6409
+ class: y(P(q)("bg-content1 z-kun-popover max-w-xs px-3 py-2 text-sm font-medium shadow-kun-md", a.value, e.hideOnMobile && "hidden sm:block")),
6410
6410
  style: b(P(v))
6411
6411
  }, [k(t.$slots, "content", {}, () => [d(j(e.text), 1)]), e.showArrow ? (w(), l("div", {
6412
6412
  key: 0,
6413
6413
  ref_key: "arrowRef",
6414
6414
  ref: x,
6415
- class: "bg-content1 border-kun absolute size-2 rotate-45 border",
6415
+ class: "bg-content1 absolute size-2 rotate-45",
6416
6416
  style: b(P(S))
6417
6417
  }, null, 4)) : c("", !0)], 14, bc)) : c("", !0)]),
6418
6418
  _: 3
package/dist/prose.css CHANGED
@@ -11,9 +11,9 @@
11
11
  * want beautiful defaults opt in here.
12
12
  *
13
13
  * Token-driven, so it adapts to light/dark automatically. The theme stores
14
- * colours as comma HSL *channels* (`--foreground: 202, 24%, 9%`), so alpha uses
15
- * legacy `hsla(var(--x), a)` NOT `hsl(var(--x) / a)`. `--color-kun-border` is
16
- * already a full neutral `hsl()` colour. Neutral foreground/content tokens drive
14
+ * colours as OKLCH *channels* (`--foreground: 0.2057 0.0132 233.66`), so wrap in
15
+ * `oklch(var(--x))` and alpha uses `oklch(var(--x) / a)`. `--color-kun-border`
16
+ * is already a full neutral colour. Neutral foreground/content tokens drive
17
17
  * body + chrome; `--primary-*` only links and the blockquote rule.
18
18
  *
19
19
  * Pass `compact` to KunContent (or add `.kun-prose-compact`) for a tighter
@@ -25,7 +25,7 @@
25
25
  margin-inline: auto;
26
26
  font-size: 1.0625rem; /* 17px — editorial body */
27
27
  line-height: 1.8; /* generous leading, kind to CJK */
28
- color: hsl(var(--foreground));
28
+ color: oklch(var(--foreground));
29
29
  text-wrap: pretty;
30
30
  overflow-wrap: break-word;
31
31
  }
@@ -48,7 +48,7 @@
48
48
  .kun-prose h4,
49
49
  .kun-prose h5,
50
50
  .kun-prose h6 {
51
- color: hsl(var(--foreground));
51
+ color: oklch(var(--foreground));
52
52
  line-height: 1.3;
53
53
  text-wrap: balance;
54
54
  scroll-margin-top: 5rem;
@@ -85,7 +85,7 @@
85
85
  .kun-prose h6 {
86
86
  font-size: 0.9em;
87
87
  font-weight: 600;
88
- color: hsla(var(--foreground), 0.65);
88
+ color: oklch(var(--foreground) / 0.65);
89
89
  margin: 1.5em 0 0.4em;
90
90
  }
91
91
 
@@ -93,14 +93,14 @@
93
93
  .kun-prose strong,
94
94
  .kun-prose b {
95
95
  font-weight: 650;
96
- color: hsl(var(--foreground));
96
+ color: oklch(var(--foreground));
97
97
  }
98
98
  .kun-prose em,
99
99
  .kun-prose i {
100
100
  font-style: italic;
101
101
  }
102
102
  .kun-prose a {
103
- color: hsl(var(--primary-600));
103
+ color: oklch(var(--primary-600));
104
104
  font-weight: 500;
105
105
  text-decoration: underline;
106
106
  text-decoration-thickness: 1px;
@@ -108,11 +108,11 @@
108
108
  transition: color 0.15s var(--ease-kun-standard, ease);
109
109
  }
110
110
  .kun-prose a:hover {
111
- color: hsl(var(--primary-500));
111
+ color: oklch(var(--primary-500));
112
112
  }
113
113
  .kun-prose mark {
114
- background: hsla(var(--warning-300, 45, 93%, 64%), 0.55);
115
- color: hsl(var(--foreground));
114
+ background: oklch(var(--warning-300) / 0.55);
115
+ color: oklch(var(--foreground));
116
116
  padding: 0.05em 0.25em;
117
117
  border-radius: 0.25em;
118
118
  }
@@ -134,7 +134,7 @@
134
134
  padding-left: 0.25em;
135
135
  }
136
136
  .kun-prose li::marker {
137
- color: hsla(var(--foreground), 0.45);
137
+ color: oklch(var(--foreground) / 0.45);
138
138
  }
139
139
  .kun-prose ul ul,
140
140
  .kun-prose ul ol,
@@ -150,8 +150,8 @@
150
150
  .kun-prose blockquote {
151
151
  margin: 1.6em 0;
152
152
  padding: 0.2em 0 0.2em 1.1em;
153
- border-left: 3px solid hsl(var(--primary-400));
154
- color: hsla(var(--foreground), 0.72);
153
+ border-left: 3px solid oklch(var(--primary-400));
154
+ color: oklch(var(--foreground) / 0.72);
155
155
  font-style: normal;
156
156
  }
157
157
  .kun-prose blockquote p {
@@ -163,8 +163,8 @@
163
163
  font-family:
164
164
  ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace;
165
165
  font-size: 0.875em;
166
- background: hsl(var(--content2));
167
- border: 1px solid var(--color-kun-border, hsla(var(--foreground), 0.12));
166
+ background: oklch(var(--content2));
167
+ border: 1px solid var(--color-kun-border, oklch(var(--foreground) / 0.12));
168
168
  border-radius: 0.375em;
169
169
  padding: 0.12em 0.4em;
170
170
  }
@@ -172,8 +172,8 @@
172
172
  position: relative; /* anchors the injected copy button */
173
173
  margin: 1.5em 0;
174
174
  padding: 1em 1.15em;
175
- background: hsl(var(--content2));
176
- border: 1px solid var(--color-kun-border, hsla(var(--foreground), 0.12));
175
+ background: oklch(var(--content2));
176
+ border: 1px solid var(--color-kun-border, oklch(var(--foreground) / 0.12));
177
177
  border-radius: 0.75rem;
178
178
  overflow-x: auto;
179
179
  font-size: 0.9em;
@@ -199,11 +199,11 @@
199
199
  text-align: left;
200
200
  font-weight: 650;
201
201
  padding: 0.6em 0.85em;
202
- border-bottom: 2px solid var(--color-kun-border, hsla(var(--foreground), 0.16));
202
+ border-bottom: 2px solid var(--color-kun-border, oklch(var(--foreground) / 0.16));
203
203
  }
204
204
  .kun-prose tbody td {
205
205
  padding: 0.6em 0.85em;
206
- border-bottom: 1px solid var(--color-kun-border, hsla(var(--foreground), 0.1));
206
+ border-bottom: 1px solid var(--color-kun-border, oklch(var(--foreground) / 0.1));
207
207
  }
208
208
  .kun-prose tbody tr:last-child td {
209
209
  border-bottom: 0;
@@ -212,7 +212,7 @@
212
212
  /* Rule + media */
213
213
  .kun-prose hr {
214
214
  border: 0;
215
- border-top: 1px solid var(--color-kun-border, hsla(var(--foreground), 0.12));
215
+ border-top: 1px solid var(--color-kun-border, oklch(var(--foreground) / 0.12));
216
216
  margin: 3em 0;
217
217
  }
218
218
  .kun-prose img,
@@ -229,9 +229,9 @@
229
229
  font-size: 0.8em;
230
230
  padding: 0.15em 0.45em;
231
231
  border-radius: 0.375em;
232
- background: hsl(var(--content2));
233
- border: 1px solid var(--color-kun-border, hsla(var(--foreground), 0.14));
234
- box-shadow: 0 1px 0 hsla(var(--foreground), 0.12);
232
+ background: oklch(var(--content2));
233
+ border: 1px solid var(--color-kun-border, oklch(var(--foreground) / 0.14));
234
+ box-shadow: 0 1px 0 oklch(var(--foreground) / 0.12);
235
235
  }
236
236
 
237
237
  /* ── Compact density (comment / reply streams) ───────────────────────────────
package/dist/style.css CHANGED
@@ -1,2 +1,2 @@
1
- [data-v-44cd432d] *{color:inherit}.ripple[data-v-c00f084d]{animation:ripple-animation-c00f084d .6s var(--ease-kun-out);transform:scale(0)}@keyframes ripple-animation-c00f084d{to{opacity:0;transform:scale(2)}}.kun-modal-enter-active[data-v-856c1b6e]{transition:opacity var(--kun-dur-base) var(--ease-kun-out)}.kun-modal-leave-active[data-v-856c1b6e]{transition:opacity var(--kun-dur-exit) var(--ease-kun-in)}.kun-modal-enter-from[data-v-856c1b6e],.kun-modal-leave-to[data-v-856c1b6e]{opacity:0}.kun-modal-enter-active .kun-modal-panel[data-v-856c1b6e]{transition:transform var(--kun-dur-base) var(--ease-kun-out)}.kun-modal-leave-active .kun-modal-panel[data-v-856c1b6e]{transition:transform var(--kun-dur-exit) var(--ease-kun-in)}.kun-modal-enter-from .kun-modal-panel[data-v-856c1b6e],.kun-modal-leave-to .kun-modal-panel[data-v-856c1b6e]{transform:translateY(8px)scale(.96)}.kun-lightbox-image[data-v-81a536ec]{view-transition-name:kun-lightbox-image}.kun-lightbox-dialog[data-v-81a536ec]::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1f2937cc}.slide-next-enter-active[data-v-81a536ec],.slide-next-leave-active[data-v-81a536ec],.slide-prev-enter-active[data-v-81a536ec],.slide-prev-leave-active[data-v-81a536ec]{transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .35s cubic-bezier(.4,0,.2,1)}.slide-next-enter-from[data-v-81a536ec]{opacity:0;transform:translate(100%)}.slide-next-leave-to[data-v-81a536ec],.slide-prev-enter-from[data-v-81a536ec]{opacity:0;transform:translate(-100%)}.slide-prev-leave-to[data-v-81a536ec]{opacity:0;transform:translate(100%)}.kun-prose[data-v-46502ad7] img{cursor:zoom-in}.kun-prose[data-v-46502ad7] .kun-spoiler{vertical-align:middle;transition:color var(--kun-dur-base) var(--ease-kun-standard);display:inline-block;position:relative;overflow:hidden}.kun-prose[data-v-46502ad7] div.kun-spoiler{width:fit-content;display:block}.kun-prose[data-v-46502ad7] .kun-spoiler-hidden{cursor:pointer;-webkit-user-select:none;user-select:none;background-color:#9696962e;color:#0000!important}.kun-prose[data-v-46502ad7] .kun-spoiler-hidden>:not(.kun-spoiler-canvas){visibility:hidden}.kun-prose[data-v-46502ad7] .kun-spoiler-hidden:hover{background-color:#96969642}.kun-prose[data-v-46502ad7] .kun-spoiler-hidden.kun-spoiler-live,.kun-prose[data-v-46502ad7] .kun-spoiler-hidden.kun-spoiler-live:hover{background-color:#0000}.kun-drawer-left-enter-active[data-v-d875426c],.kun-drawer-right-enter-active[data-v-d875426c],.kun-drawer-top-enter-active[data-v-d875426c],.kun-drawer-bottom-enter-active[data-v-d875426c]{transition:opacity var(--kun-dur-base) var(--ease-kun-out)}.kun-drawer-left-leave-active[data-v-d875426c],.kun-drawer-right-leave-active[data-v-d875426c],.kun-drawer-top-leave-active[data-v-d875426c],.kun-drawer-bottom-leave-active[data-v-d875426c]{transition:opacity var(--kun-dur-exit) var(--ease-kun-in)}.kun-drawer-left-enter-active>div[data-v-d875426c]:last-child,.kun-drawer-right-enter-active>div[data-v-d875426c]:last-child,.kun-drawer-top-enter-active>div[data-v-d875426c]:last-child,.kun-drawer-bottom-enter-active>div[data-v-d875426c]:last-child{transition:transform var(--kun-dur-base) var(--ease-kun-emphasized)}.kun-drawer-left-leave-active>div[data-v-d875426c]:last-child,.kun-drawer-right-leave-active>div[data-v-d875426c]:last-child,.kun-drawer-top-leave-active>div[data-v-d875426c]:last-child,.kun-drawer-bottom-leave-active>div[data-v-d875426c]:last-child{transition:transform var(--kun-dur-exit) var(--ease-kun-in)}.kun-drawer-left-enter-from[data-v-d875426c],.kun-drawer-left-leave-to[data-v-d875426c]{opacity:0}.kun-drawer-left-enter-from>div[data-v-d875426c]:last-child,.kun-drawer-left-leave-to>div[data-v-d875426c]:last-child{transform:translate(-100%)}.kun-drawer-right-enter-from[data-v-d875426c],.kun-drawer-right-leave-to[data-v-d875426c]{opacity:0}.kun-drawer-right-enter-from>div[data-v-d875426c]:last-child,.kun-drawer-right-leave-to>div[data-v-d875426c]:last-child{transform:translate(100%)}.kun-drawer-top-enter-from[data-v-d875426c],.kun-drawer-top-leave-to[data-v-d875426c]{opacity:0}.kun-drawer-top-enter-from>div[data-v-d875426c]:last-child,.kun-drawer-top-leave-to>div[data-v-d875426c]:last-child{transform:translateY(-100%)}.kun-drawer-bottom-enter-from[data-v-d875426c],.kun-drawer-bottom-leave-to[data-v-d875426c]{opacity:0}.kun-drawer-bottom-enter-from>div[data-v-d875426c]:last-child,.kun-drawer-bottom-leave-to>div[data-v-d875426c]:last-child{transform:translateY(100%)}.kun-fade-expand[data-v-b563c3ba]{transition:grid-template-rows var(--kun-dur-slow) var(--ease-kun-standard), opacity var(--kun-dur-slow) var(--ease-kun-standard)}.kun-fade-collapsed[data-v-b563c3ba]{opacity:0;grid-template-rows:0fr!important}.loli[data-v-c4847e0a]{filter:drop-shadow(2px 4px 3px var(--color-primary-300))}.loli span[data-v-c4847e0a]{clip-path:polygon(10% 0%,90% 0%,100% 50%,90% 100%,10% 100%,0 50%)}.info[data-v-c4847e0a],.info[data-v-c22df434]{color:var(--color-white);text-shadow:0 1px var(--color-foreground), 1px 0 var(--color-foreground), -1px 0 var(--color-foreground), 0 -1px var(--color-foreground), 1px 2px var(--color-foreground)}[data-v-a80e8a61] *{color:inherit}@keyframes shrink-a80e8a61{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.progress-bar[data-v-a80e8a61]{animation:shrink-a80e8a61 var(--v665a68f1) linear forwards;animation-play-state:running}.message-list-move[data-v-2c1073e3]{transition:transform var(--kun-dur-base) var(--ease-kun-emphasized)}.message-list-enter-active[data-v-2c1073e3]{transition:opacity var(--kun-dur-slow) var(--ease-kun-out), transform var(--kun-dur-slow) var(--ease-kun-out)}.message-list-leave-active[data-v-2c1073e3]{transition:opacity var(--kun-dur-base) var(--ease-kun-in), transform var(--kun-dur-base) var(--ease-kun-in);width:100%;position:absolute}.message-list-enter-from[data-v-2c1073e3],.message-list-leave-to[data-v-2c1073e3]{opacity:0;transform:scale(.8)}[class*=top-] .message-list-enter-from[data-v-2c1073e3],[class*=top-] .message-list-leave-to[data-v-2c1073e3]{transform:translateY(-30px)scale(.8)}[class*=bottom-] .message-list-enter-from[data-v-2c1073e3],[class*=bottom-] .message-list-leave-to[data-v-2c1073e3]{transform:translateY(30px)scale(.8)}@keyframes progress-stripes-698d88e3{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes kun-progress-indeterminate{0%{transform:translate(-150%)}to{transform:translate(350%)}}[data-kun-tab-hidden][data-v-ccf67b4b]{content-visibility:hidden}.kun-text-block[data-v-e9ad81ae]{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.kun-timeline>li:last-child .kun-tl-line{display:none}.kun-timeline>li:last-child .kun-tl-content{padding-bottom:0}.vue-advanced-cropper{text-align:center;-webkit-user-select:none;user-select:none;direction:ltr;max-width:100%;max-height:100%;position:relative}.vue-advanced-cropper__stretcher{pointer-events:none;max-width:100%;max-height:100%;position:relative}.vue-advanced-cropper__image{-webkit-user-select:none;user-select:none;transform-origin:50%;position:absolute;max-width:none!important}.vue-advanced-cropper__background,.vue-advanced-cropper__foreground{opacity:1;background:#000;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.vue-advanced-cropper__boundaries{opacity:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.vue-advanced-cropper__cropper-wrapper{width:100%;height:100%}.vue-advanced-cropper__image-wrapper{width:100%;height:100%;position:absolute;overflow:hidden}.vue-advanced-cropper__stencil-wrapper{position:absolute}.vue-simple-handler{background:#fff;width:10px;height:10px;display:block}.vue-handler-wrapper{width:30px;height:30px;position:absolute;transform:translate(-50%,-50%)}.vue-handler-wrapper__draggable{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.vue-handler-wrapper--west-north{cursor:nw-resize}.vue-handler-wrapper--north{cursor:n-resize}.vue-handler-wrapper--east-north{cursor:ne-resize}.vue-handler-wrapper--east{cursor:e-resize}.vue-handler-wrapper--east-south{cursor:se-resize}.vue-handler-wrapper--south{cursor:s-resize}.vue-handler-wrapper--west-south{cursor:sw-resize}.vue-handler-wrapper--west{cursor:w-resize}.vue-handler-wrapper--disabled{cursor:auto}.vue-line-wrapper{background:0 0;justify-content:center;align-items:center;display:flex;position:absolute}.vue-line-wrapper--north,.vue-line-wrapper--south{width:100%;height:12px;left:0;transform:translateY(-50%)}.vue-line-wrapper--north{cursor:n-resize;top:0}.vue-line-wrapper--south{cursor:s-resize;top:100%}.vue-line-wrapper--east,.vue-line-wrapper--west{width:12px;height:100%;top:0;transform:translate(-50%)}.vue-line-wrapper--east{cursor:e-resize;left:100%}.vue-line-wrapper--west{cursor:w-resize;left:0}.vue-line-wrapper--disabled{cursor:auto}.vue-bounding-box{width:100%;height:100%;position:relative}.vue-bounding-box__handler{position:absolute}.vue-bounding-box__handler--west-north{top:0;left:0}.vue-bounding-box__handler--north{top:0;left:50%}.vue-bounding-box__handler--east-north{top:0;left:100%}.vue-bounding-box__handler--east{top:50%;left:100%}.vue-bounding-box__handler--east-south{top:100%;left:100%}.vue-bounding-box__handler--south{top:100%;left:50%}.vue-bounding-box__handler--west-south{top:100%;left:0}.vue-bounding-box__handler--west{top:50%;left:0}.vue-draggable-area{position:relative}.vue-preview-result{box-sizing:border-box;width:100%;height:100%;position:absolute;overflow:hidden}.vue-preview-result__wrapper{position:absolute}.vue-preview-result__image{pointer-events:none;-webkit-user-select:none;user-select:none;transform-origin:50%;position:relative;max-width:none!important}.vue-rectangle-stencil{box-sizing:border-box;width:100%;height:100%;position:absolute}.vue-rectangle-stencil__preview{width:100%;height:100%;position:absolute}.vue-rectangle-stencil--movable{cursor:move}.vue-circle-stencil{box-sizing:content-box;cursor:move;width:100%;height:100%;position:absolute}.vue-circle-stencil__preview{border-radius:50%;width:100%;height:100%;position:absolute}.vue-circle-stencil--movable{cursor:move}.vue-preview{box-sizing:border-box;position:relative;overflow:hidden}.vue-preview--fill,.vue-preview__wrapper{width:100%;height:100%;position:absolute}.vue-preview__image{pointer-events:none;-webkit-user-select:none;user-select:none;transform-origin:50%;position:absolute;max-width:none!important}.vue-simple-line{background:0 0;border:0 solid #ffffff4d;transition:border .5s}.vue-simple-line--south,.vue-simple-line--north{width:100%;height:0}.vue-simple-line--east,.vue-simple-line--west{width:0;height:100%}.vue-simple-line--east{border-right-width:1px}.vue-simple-line--west{border-left-width:1px}.vue-simple-line--south{border-bottom-width:1px}.vue-simple-line--north{border-top-width:1px}.vue-simple-line--hover{opacity:1;border-color:#fff}.vue-advanced-cropper__foreground{opacity:.7}.vue-circle-stencil__preview:after,.vue-circle-stencil__preview:before,.vue-rectangle-stencil__preview:after,.vue-rectangle-stencil__preview:before{content:"";opacity:0;pointer-events:none;z-index:1;transition:opacity .25s;position:absolute}.vue-circle-stencil__preview:after,.vue-rectangle-stencil__preview:after{border-left:1px solid #fff;border-right:1px solid #fff;width:33%;height:100%;top:0;left:50%;transform:translate(-50%)}.vue-circle-stencil__preview:before,.vue-rectangle-stencil__preview:before{border-top:1px solid #fff;border-bottom:1px solid #fff;width:100%;height:33%;top:50%;left:0;transform:translateY(-50%)}.vue-circle-stencil--moving .vue-rectangle-stencil__preview:after,.vue-circle-stencil--moving .vue-rectangle-stencil__preview:before,.vue-circle-stencil--moving .vue-circle-stencil__preview:after,.vue-circle-stencil--moving .vue-circle-stencil__preview:before,.vue-circle-stencil--resizing .vue-rectangle-stencil__preview:after,.vue-circle-stencil--resizing .vue-rectangle-stencil__preview:before,.vue-circle-stencil--resizing .vue-circle-stencil__preview:after,.vue-circle-stencil--resizing .vue-circle-stencil__preview:before,.vue-rectangle-stencil--moving .vue-rectangle-stencil__preview:after,.vue-rectangle-stencil--moving .vue-rectangle-stencil__preview:before,.vue-rectangle-stencil--moving .vue-circle-stencil__preview:after,.vue-rectangle-stencil--moving .vue-circle-stencil__preview:before,.vue-rectangle-stencil--resizing .vue-rectangle-stencil__preview:after,.vue-rectangle-stencil--resizing .vue-rectangle-stencil__preview:before,.vue-rectangle-stencil--resizing .vue-circle-stencil__preview:after,.vue-rectangle-stencil--resizing .vue-circle-stencil__preview:before{opacity:.7}.vue-simple-line{border-color:#fffc}.vue-simple-handler-wrapper{width:24px;height:24px}.vue-simple-handler-wrapper--west-north{transform:translate(0)}.vue-simple-handler-wrapper--east-south{transform:translate(-100%,-100%)}.vue-simple-handler-wrapper--west-south{transform:translateY(-100%)}.vue-simple-handler-wrapper--east-north{transform:translate(-100%)}.vue-simple-handler{opacity:0;background:#fff;border:none;flex-shrink:0;width:4px;height:4px;transition:opacity .5s;display:block;position:relative;top:auto;left:auto}.vue-simple-handler--west-north,.vue-simple-handler--east-south,.vue-simple-handler--west-south,.vue-simple-handler--east-north{opacity:.7;background:0 0;width:16px;height:16px;display:block}.vue-simple-handler--west-north{border-top:2px solid #fff;border-left:2px solid #fff}.vue-simple-handler--east-south{border-bottom:2px solid #fff;border-right:2px solid #fff}.vue-simple-handler--west-south{border-bottom:2px solid #fff;border-left:2px solid #fff}.vue-simple-handler--east-north{border-top:2px solid #fff;border-right:2px solid #fff}.vue-simple-handler--hover{opacity:1}.vue-circle-stencil__preview{border:2px solid #fffc}.vue-circle-stencil .vue-simple-line{border-color:#ffffff4d}.vue-circle-stencil .vue-simple-handler--west-north,.vue-circle-stencil .vue-simple-handler--east-south,.vue-circle-stencil .vue-simple-handler--west-south,.vue-circle-stencil .vue-simple-handler--east-north{opacity:.4}.vue-circle-stencil .vue-simple-handler--hover{opacity:1}
1
+ [data-v-44cd432d] *{color:inherit}.ripple[data-v-c00f084d]{animation:ripple-animation-c00f084d .6s var(--ease-kun-out);transform:scale(0)}@keyframes ripple-animation-c00f084d{to{opacity:0;transform:scale(2)}}.kun-modal-enter-active[data-v-f47724a6]{transition:opacity var(--kun-dur-base) var(--ease-kun-out)}.kun-modal-leave-active[data-v-f47724a6]{transition:opacity var(--kun-dur-exit) var(--ease-kun-in)}.kun-modal-enter-from[data-v-f47724a6],.kun-modal-leave-to[data-v-f47724a6]{opacity:0}.kun-modal-enter-active .kun-modal-panel[data-v-f47724a6]{transition:transform var(--kun-dur-base) var(--ease-kun-out)}.kun-modal-leave-active .kun-modal-panel[data-v-f47724a6]{transition:transform var(--kun-dur-exit) var(--ease-kun-in)}.kun-modal-enter-from .kun-modal-panel[data-v-f47724a6],.kun-modal-leave-to .kun-modal-panel[data-v-f47724a6]{transform:translateY(8px)scale(.96)}.kun-lightbox-image[data-v-81a536ec]{view-transition-name:kun-lightbox-image}.kun-lightbox-dialog[data-v-81a536ec]::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1f2937cc}.slide-next-enter-active[data-v-81a536ec],.slide-next-leave-active[data-v-81a536ec],.slide-prev-enter-active[data-v-81a536ec],.slide-prev-leave-active[data-v-81a536ec]{transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .35s cubic-bezier(.4,0,.2,1)}.slide-next-enter-from[data-v-81a536ec]{opacity:0;transform:translate(100%)}.slide-next-leave-to[data-v-81a536ec],.slide-prev-enter-from[data-v-81a536ec]{opacity:0;transform:translate(-100%)}.slide-prev-leave-to[data-v-81a536ec]{opacity:0;transform:translate(100%)}.kun-prose[data-v-46502ad7] img{cursor:zoom-in}.kun-prose[data-v-46502ad7] .kun-spoiler{vertical-align:middle;transition:color var(--kun-dur-base) var(--ease-kun-standard);display:inline-block;position:relative;overflow:hidden}.kun-prose[data-v-46502ad7] div.kun-spoiler{width:fit-content;display:block}.kun-prose[data-v-46502ad7] .kun-spoiler-hidden{cursor:pointer;-webkit-user-select:none;user-select:none;background-color:#9696962e;color:#0000!important}.kun-prose[data-v-46502ad7] .kun-spoiler-hidden>:not(.kun-spoiler-canvas){visibility:hidden}.kun-prose[data-v-46502ad7] .kun-spoiler-hidden:hover{background-color:#96969642}.kun-prose[data-v-46502ad7] .kun-spoiler-hidden.kun-spoiler-live,.kun-prose[data-v-46502ad7] .kun-spoiler-hidden.kun-spoiler-live:hover{background-color:#0000}.kun-drawer-left-enter-active[data-v-2c7f907c],.kun-drawer-right-enter-active[data-v-2c7f907c],.kun-drawer-top-enter-active[data-v-2c7f907c],.kun-drawer-bottom-enter-active[data-v-2c7f907c]{transition:opacity var(--kun-dur-base) var(--ease-kun-out)}.kun-drawer-left-leave-active[data-v-2c7f907c],.kun-drawer-right-leave-active[data-v-2c7f907c],.kun-drawer-top-leave-active[data-v-2c7f907c],.kun-drawer-bottom-leave-active[data-v-2c7f907c]{transition:opacity var(--kun-dur-exit) var(--ease-kun-in)}.kun-drawer-left-enter-active>div[data-v-2c7f907c]:last-child,.kun-drawer-right-enter-active>div[data-v-2c7f907c]:last-child,.kun-drawer-top-enter-active>div[data-v-2c7f907c]:last-child,.kun-drawer-bottom-enter-active>div[data-v-2c7f907c]:last-child{transition:transform var(--kun-dur-base) var(--ease-kun-emphasized)}.kun-drawer-left-leave-active>div[data-v-2c7f907c]:last-child,.kun-drawer-right-leave-active>div[data-v-2c7f907c]:last-child,.kun-drawer-top-leave-active>div[data-v-2c7f907c]:last-child,.kun-drawer-bottom-leave-active>div[data-v-2c7f907c]:last-child{transition:transform var(--kun-dur-exit) var(--ease-kun-in)}.kun-drawer-left-enter-from[data-v-2c7f907c],.kun-drawer-left-leave-to[data-v-2c7f907c]{opacity:0}.kun-drawer-left-enter-from>div[data-v-2c7f907c]:last-child,.kun-drawer-left-leave-to>div[data-v-2c7f907c]:last-child{transform:translate(-100%)}.kun-drawer-right-enter-from[data-v-2c7f907c],.kun-drawer-right-leave-to[data-v-2c7f907c]{opacity:0}.kun-drawer-right-enter-from>div[data-v-2c7f907c]:last-child,.kun-drawer-right-leave-to>div[data-v-2c7f907c]:last-child{transform:translate(100%)}.kun-drawer-top-enter-from[data-v-2c7f907c],.kun-drawer-top-leave-to[data-v-2c7f907c]{opacity:0}.kun-drawer-top-enter-from>div[data-v-2c7f907c]:last-child,.kun-drawer-top-leave-to>div[data-v-2c7f907c]:last-child{transform:translateY(-100%)}.kun-drawer-bottom-enter-from[data-v-2c7f907c],.kun-drawer-bottom-leave-to[data-v-2c7f907c]{opacity:0}.kun-drawer-bottom-enter-from>div[data-v-2c7f907c]:last-child,.kun-drawer-bottom-leave-to>div[data-v-2c7f907c]:last-child{transform:translateY(100%)}.kun-fade-expand[data-v-b563c3ba]{transition:grid-template-rows var(--kun-dur-slow) var(--ease-kun-standard), opacity var(--kun-dur-slow) var(--ease-kun-standard)}.kun-fade-collapsed[data-v-b563c3ba]{opacity:0;grid-template-rows:0fr!important}.loli[data-v-c4847e0a]{filter:drop-shadow(2px 4px 3px var(--color-primary-300))}.loli span[data-v-c4847e0a]{clip-path:polygon(10% 0%,90% 0%,100% 50%,90% 100%,10% 100%,0 50%)}.info[data-v-c4847e0a],.info[data-v-c22df434]{color:var(--color-white);text-shadow:0 1px var(--color-foreground), 1px 0 var(--color-foreground), -1px 0 var(--color-foreground), 0 -1px var(--color-foreground), 1px 2px var(--color-foreground)}[data-v-a80e8a61] *{color:inherit}@keyframes shrink-a80e8a61{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.progress-bar[data-v-a80e8a61]{animation:shrink-a80e8a61 var(--v665a68f1) linear forwards;animation-play-state:running}.message-list-move[data-v-2c1073e3]{transition:transform var(--kun-dur-base) var(--ease-kun-emphasized)}.message-list-enter-active[data-v-2c1073e3]{transition:opacity var(--kun-dur-slow) var(--ease-kun-out), transform var(--kun-dur-slow) var(--ease-kun-out)}.message-list-leave-active[data-v-2c1073e3]{transition:opacity var(--kun-dur-base) var(--ease-kun-in), transform var(--kun-dur-base) var(--ease-kun-in);width:100%;position:absolute}.message-list-enter-from[data-v-2c1073e3],.message-list-leave-to[data-v-2c1073e3]{opacity:0;transform:scale(.8)}[class*=top-] .message-list-enter-from[data-v-2c1073e3],[class*=top-] .message-list-leave-to[data-v-2c1073e3]{transform:translateY(-30px)scale(.8)}[class*=bottom-] .message-list-enter-from[data-v-2c1073e3],[class*=bottom-] .message-list-leave-to[data-v-2c1073e3]{transform:translateY(30px)scale(.8)}@keyframes progress-stripes-698d88e3{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes kun-progress-indeterminate{0%{transform:translate(-150%)}to{transform:translate(350%)}}[data-kun-tab-hidden][data-v-ccf67b4b]{content-visibility:hidden}.kun-text-block[data-v-e9ad81ae]{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.kun-timeline>li:last-child .kun-tl-line{display:none}.kun-timeline>li:last-child .kun-tl-content{padding-bottom:0}.vue-advanced-cropper{text-align:center;-webkit-user-select:none;user-select:none;direction:ltr;max-width:100%;max-height:100%;position:relative}.vue-advanced-cropper__stretcher{pointer-events:none;max-width:100%;max-height:100%;position:relative}.vue-advanced-cropper__image{-webkit-user-select:none;user-select:none;transform-origin:50%;position:absolute;max-width:none!important}.vue-advanced-cropper__background,.vue-advanced-cropper__foreground{opacity:1;background:#000;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.vue-advanced-cropper__boundaries{opacity:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.vue-advanced-cropper__cropper-wrapper{width:100%;height:100%}.vue-advanced-cropper__image-wrapper{width:100%;height:100%;position:absolute;overflow:hidden}.vue-advanced-cropper__stencil-wrapper{position:absolute}.vue-simple-handler{background:#fff;width:10px;height:10px;display:block}.vue-handler-wrapper{width:30px;height:30px;position:absolute;transform:translate(-50%,-50%)}.vue-handler-wrapper__draggable{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.vue-handler-wrapper--west-north{cursor:nw-resize}.vue-handler-wrapper--north{cursor:n-resize}.vue-handler-wrapper--east-north{cursor:ne-resize}.vue-handler-wrapper--east{cursor:e-resize}.vue-handler-wrapper--east-south{cursor:se-resize}.vue-handler-wrapper--south{cursor:s-resize}.vue-handler-wrapper--west-south{cursor:sw-resize}.vue-handler-wrapper--west{cursor:w-resize}.vue-handler-wrapper--disabled{cursor:auto}.vue-line-wrapper{background:0 0;justify-content:center;align-items:center;display:flex;position:absolute}.vue-line-wrapper--north,.vue-line-wrapper--south{width:100%;height:12px;left:0;transform:translateY(-50%)}.vue-line-wrapper--north{cursor:n-resize;top:0}.vue-line-wrapper--south{cursor:s-resize;top:100%}.vue-line-wrapper--east,.vue-line-wrapper--west{width:12px;height:100%;top:0;transform:translate(-50%)}.vue-line-wrapper--east{cursor:e-resize;left:100%}.vue-line-wrapper--west{cursor:w-resize;left:0}.vue-line-wrapper--disabled{cursor:auto}.vue-bounding-box{width:100%;height:100%;position:relative}.vue-bounding-box__handler{position:absolute}.vue-bounding-box__handler--west-north{top:0;left:0}.vue-bounding-box__handler--north{top:0;left:50%}.vue-bounding-box__handler--east-north{top:0;left:100%}.vue-bounding-box__handler--east{top:50%;left:100%}.vue-bounding-box__handler--east-south{top:100%;left:100%}.vue-bounding-box__handler--south{top:100%;left:50%}.vue-bounding-box__handler--west-south{top:100%;left:0}.vue-bounding-box__handler--west{top:50%;left:0}.vue-draggable-area{position:relative}.vue-preview-result{box-sizing:border-box;width:100%;height:100%;position:absolute;overflow:hidden}.vue-preview-result__wrapper{position:absolute}.vue-preview-result__image{pointer-events:none;-webkit-user-select:none;user-select:none;transform-origin:50%;position:relative;max-width:none!important}.vue-rectangle-stencil{box-sizing:border-box;width:100%;height:100%;position:absolute}.vue-rectangle-stencil__preview{width:100%;height:100%;position:absolute}.vue-rectangle-stencil--movable{cursor:move}.vue-circle-stencil{box-sizing:content-box;cursor:move;width:100%;height:100%;position:absolute}.vue-circle-stencil__preview{border-radius:50%;width:100%;height:100%;position:absolute}.vue-circle-stencil--movable{cursor:move}.vue-preview{box-sizing:border-box;position:relative;overflow:hidden}.vue-preview--fill,.vue-preview__wrapper{width:100%;height:100%;position:absolute}.vue-preview__image{pointer-events:none;-webkit-user-select:none;user-select:none;transform-origin:50%;position:absolute;max-width:none!important}.vue-simple-line{background:0 0;border:0 solid #ffffff4d;transition:border .5s}.vue-simple-line--south,.vue-simple-line--north{width:100%;height:0}.vue-simple-line--east,.vue-simple-line--west{width:0;height:100%}.vue-simple-line--east{border-right-width:1px}.vue-simple-line--west{border-left-width:1px}.vue-simple-line--south{border-bottom-width:1px}.vue-simple-line--north{border-top-width:1px}.vue-simple-line--hover{opacity:1;border-color:#fff}.vue-advanced-cropper__foreground{opacity:.7}.vue-circle-stencil__preview:after,.vue-circle-stencil__preview:before,.vue-rectangle-stencil__preview:after,.vue-rectangle-stencil__preview:before{content:"";opacity:0;pointer-events:none;z-index:1;transition:opacity .25s;position:absolute}.vue-circle-stencil__preview:after,.vue-rectangle-stencil__preview:after{border-left:1px solid #fff;border-right:1px solid #fff;width:33%;height:100%;top:0;left:50%;transform:translate(-50%)}.vue-circle-stencil__preview:before,.vue-rectangle-stencil__preview:before{border-top:1px solid #fff;border-bottom:1px solid #fff;width:100%;height:33%;top:50%;left:0;transform:translateY(-50%)}.vue-circle-stencil--moving .vue-rectangle-stencil__preview:after,.vue-circle-stencil--moving .vue-rectangle-stencil__preview:before,.vue-circle-stencil--moving .vue-circle-stencil__preview:after,.vue-circle-stencil--moving .vue-circle-stencil__preview:before,.vue-circle-stencil--resizing .vue-rectangle-stencil__preview:after,.vue-circle-stencil--resizing .vue-rectangle-stencil__preview:before,.vue-circle-stencil--resizing .vue-circle-stencil__preview:after,.vue-circle-stencil--resizing .vue-circle-stencil__preview:before,.vue-rectangle-stencil--moving .vue-rectangle-stencil__preview:after,.vue-rectangle-stencil--moving .vue-rectangle-stencil__preview:before,.vue-rectangle-stencil--moving .vue-circle-stencil__preview:after,.vue-rectangle-stencil--moving .vue-circle-stencil__preview:before,.vue-rectangle-stencil--resizing .vue-rectangle-stencil__preview:after,.vue-rectangle-stencil--resizing .vue-rectangle-stencil__preview:before,.vue-rectangle-stencil--resizing .vue-circle-stencil__preview:after,.vue-rectangle-stencil--resizing .vue-circle-stencil__preview:before{opacity:.7}.vue-simple-line{border-color:#fffc}.vue-simple-handler-wrapper{width:24px;height:24px}.vue-simple-handler-wrapper--west-north{transform:translate(0)}.vue-simple-handler-wrapper--east-south{transform:translate(-100%,-100%)}.vue-simple-handler-wrapper--west-south{transform:translateY(-100%)}.vue-simple-handler-wrapper--east-north{transform:translate(-100%)}.vue-simple-handler{opacity:0;background:#fff;border:none;flex-shrink:0;width:4px;height:4px;transition:opacity .5s;display:block;position:relative;top:auto;left:auto}.vue-simple-handler--west-north,.vue-simple-handler--east-south,.vue-simple-handler--west-south,.vue-simple-handler--east-north{opacity:.7;background:0 0;width:16px;height:16px;display:block}.vue-simple-handler--west-north{border-top:2px solid #fff;border-left:2px solid #fff}.vue-simple-handler--east-south{border-bottom:2px solid #fff;border-right:2px solid #fff}.vue-simple-handler--west-south{border-bottom:2px solid #fff;border-left:2px solid #fff}.vue-simple-handler--east-north{border-top:2px solid #fff;border-right:2px solid #fff}.vue-simple-handler--hover{opacity:1}.vue-circle-stencil__preview{border:2px solid #fffc}.vue-circle-stencil .vue-simple-line{border-color:#ffffff4d}.vue-circle-stencil .vue-simple-handler--west-north,.vue-circle-stencil .vue-simple-handler--east-south,.vue-circle-stencil .vue-simple-handler--west-south,.vue-circle-stencil .vue-simple-handler--east-north{opacity:.4}.vue-circle-stencil .vue-simple-handler--hover{opacity:1}
2
2
  /*$vite$:1*/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kungal/ui-vue",
3
- "version": "1.6.3",
3
+ "version": "1.8.0",
4
4
  "description": "KunUI Vue 3 component layer — Nuxt-decoupled. Works in any Vue app; pairs with @kungal/ui-nuxt for Nuxt sugar.",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -50,7 +50,7 @@
50
50
  "date-fns": "^4.1.0",
51
51
  "focus-trap": "^8.2.1",
52
52
  "vue-advanced-cropper": "^2.8.9",
53
- "@kungal/ui-core": "1.6.3"
53
+ "@kungal/ui-core": "1.8.0"
54
54
  },
55
55
  "peerDependencies": {
56
56
  "vue": "^3.5.0"
@@ -62,7 +62,7 @@
62
62
  "vite": "^8.0.16",
63
63
  "vue": "^3.5.35",
64
64
  "vue-tsc": "^3.3.3",
65
- "@kungal/ui-tokens": "1.6.3"
65
+ "@kungal/ui-tokens": "1.8.0"
66
66
  },
67
67
  "scripts": {
68
68
  "build": "vite build && cp src/prose.css dist/prose.css && vue-tsc -p tsconfig.build.json",