@kiva/kv-components 8.11.3 → 8.12.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/dist/data/allCountriesISOMap.d.ts +1 -0
- package/dist/data/allCountriesISOMap.js +249 -0
- package/dist/data/simpleMapCentroids.d.ts +8 -0
- package/dist/data/simpleMapCentroids.js +1265 -0
- package/dist/data/simpleMapCountryPaths.d.ts +6 -0
- package/dist/data/simpleMapCountryPaths.js +215 -0
- package/dist/data/simpleMapPaths.d.ts +214 -0
- package/dist/data/simpleMapPaths.js +216 -0
- package/dist/index.js +209 -207
- package/dist/utils/useMapTourCycle.d.ts +20 -0
- package/dist/utils/useMapTourCycle.js +73 -0
- package/dist/vue/KvAtbModal.css +1 -1
- package/dist/vue/KvAtbModal.js +5 -5
- package/dist/vue/KvCheckoutReceipt.css +1 -1
- package/dist/vue/KvCheckoutReceipt.js +31 -31
- package/dist/vue/KvIntroductionLoanCard.css +1 -1
- package/dist/vue/KvIntroductionLoanCard.js +15 -15
- package/dist/vue/KvLoanActivities.css +1 -1
- package/dist/vue/KvLoanActivities.js +19 -19
- package/dist/vue/KvLoanTeamPick.js +1 -1
- package/dist/vue/KvPieChartV2.vue.d.ts +2 -2
- package/dist/vue/KvPill.js +1 -1
- package/dist/vue/KvProgressCircle.vue.d.ts +1 -1
- package/dist/vue/KvSecondaryNav.vue.d.ts +1 -1
- package/dist/vue/KvSideSheet.js +15 -12
- package/dist/vue/KvSimpleMap.css +1 -0
- package/dist/vue/KvSimpleMap.js +7 -0
- package/dist/vue/KvSimpleMap.vue.d.ts +270 -0
- package/dist/vue/KvSimpleMap2.js +529 -0
- package/dist/vue/KvVotingCard.css +1 -1
- package/dist/vue/KvVotingCard.js +14 -14
- package/dist/vue/KvVotingCardV2.js +23 -23
- package/dist/vue/KvWideLoanCard.css +1 -1
- package/dist/vue/KvWideLoanCard.js +2 -2
- package/dist/vue/index.d.ts +2 -0
- package/docs/make-to-vue.md +74 -22
- package/package.json +3 -3
|
@@ -1,65 +1,65 @@
|
|
|
1
1
|
import x from "./KvVotingCardV22.js";
|
|
2
|
-
import { resolveComponent as
|
|
2
|
+
import { resolveComponent as l, openBlock as s, createElementBlock as c, normalizeStyle as b, createElementVNode as o, toDisplayString as n, createTextVNode as w, createCommentVNode as r, createVNode as d, createBlock as h, withCtx as a } from "vue";
|
|
3
3
|
import "./KvVotingCardV2.css";
|
|
4
4
|
import g from "../_virtual/_plugin-vue_export-helper.js";
|
|
5
|
-
const
|
|
5
|
+
const u = { class: "tw-flex-grow-0 tw-text-white" }, k = { class: "tw-italic tw-pb-1" }, p = { class: "tw-pb-1.5" }, y = { class: "tw-block md:tw-flex tw-justify-between" }, V = {
|
|
6
6
|
key: 0,
|
|
7
7
|
class: "tw-flex tw-items-center tw-w-full tw-max-w-16"
|
|
8
|
-
}, C = { class: "tw-ml-2" }, L = { class: "tw-pb-1.5" };
|
|
9
|
-
function
|
|
10
|
-
const _ =
|
|
11
|
-
return
|
|
8
|
+
}, C = { class: "tw-ml-2" }, L = { class: "tw-text-title" }, B = { class: "tw-pb-1.5" };
|
|
9
|
+
function N(K, i, t, e, O, P) {
|
|
10
|
+
const _ = l("kv-progress-bar"), m = l("kv-button"), f = l("KvLightbox");
|
|
11
|
+
return s(), c("div", {
|
|
12
12
|
class: "vote_card tw-flex tw-flex-col tw-justify-end",
|
|
13
13
|
style: b(e.cssProps)
|
|
14
14
|
}, [
|
|
15
|
-
o("div",
|
|
16
|
-
o("h2", k,
|
|
15
|
+
o("div", u, [
|
|
16
|
+
o("h2", k, n(t.title), 1),
|
|
17
17
|
o("p", p, [
|
|
18
|
-
w(
|
|
19
|
-
e.isTruncated ? (
|
|
18
|
+
w(n(e.truncatedDescription) + " ", 1),
|
|
19
|
+
e.isTruncated ? (s(), c("a", {
|
|
20
20
|
key: 0,
|
|
21
21
|
class: "tw-underline tw-pl-1 tw-text-white tw-cursor-pointer",
|
|
22
|
-
onClick:
|
|
23
|
-
}, "read more")) :
|
|
22
|
+
onClick: i[0] || (i[0] = (v) => e.isLightboxOpen = !0)
|
|
23
|
+
}, "read more")) : r("", !0)
|
|
24
24
|
]),
|
|
25
25
|
o("div", y, [
|
|
26
|
-
t.showPercentage ? (
|
|
26
|
+
t.showPercentage ? (s(), c("div", V, [
|
|
27
27
|
d(_, {
|
|
28
28
|
class: "tw-flex-grow",
|
|
29
29
|
label: "Percent of votes for " + t.description,
|
|
30
30
|
value: t.percentage
|
|
31
31
|
}, null, 8, ["label", "value"]),
|
|
32
|
-
o("div", C,
|
|
33
|
-
])) :
|
|
34
|
-
t.showVoteButton ? (
|
|
32
|
+
o("div", C, n(t.percentage) + "% ", 1)
|
|
33
|
+
])) : r("", !0),
|
|
34
|
+
t.showVoteButton ? (s(), h(m, {
|
|
35
35
|
key: 1,
|
|
36
36
|
variant: "secondary",
|
|
37
37
|
class: "tw-flex-grow-0 tw-min-w-16 tw-mt-2",
|
|
38
38
|
onClick: e.castVote
|
|
39
39
|
}, {
|
|
40
|
-
default: a(() =>
|
|
40
|
+
default: a(() => i[2] || (i[2] = [
|
|
41
41
|
w(" Vote ")
|
|
42
42
|
])),
|
|
43
43
|
_: 1
|
|
44
|
-
}, 8, ["onClick"])) :
|
|
44
|
+
}, 8, ["onClick"])) : r("", !0)
|
|
45
45
|
])
|
|
46
46
|
]),
|
|
47
47
|
d(f, {
|
|
48
48
|
title: t.title,
|
|
49
49
|
visible: e.isLightboxOpen,
|
|
50
|
-
onLightboxClosed:
|
|
50
|
+
onLightboxClosed: i[1] || (i[1] = (v) => e.isLightboxOpen = !1)
|
|
51
51
|
}, {
|
|
52
52
|
header: a(() => [
|
|
53
|
-
o("h3",
|
|
53
|
+
o("h3", L, n(t.title), 1)
|
|
54
54
|
]),
|
|
55
55
|
default: a(() => [
|
|
56
|
-
o("p",
|
|
56
|
+
o("p", B, n(t.description), 1)
|
|
57
57
|
]),
|
|
58
58
|
_: 1
|
|
59
59
|
}, 8, ["title", "visible"])
|
|
60
60
|
], 4);
|
|
61
61
|
}
|
|
62
|
-
const
|
|
62
|
+
const T = /* @__PURE__ */ g(x, [["render", N]]);
|
|
63
63
|
export {
|
|
64
|
-
|
|
64
|
+
T as default
|
|
65
65
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.loan-card-use[data-v-
|
|
1
|
+
.loan-card-use[data-v-addb15e1]:hover,.loan-card-use[data-v-addb15e1]:focus{--tw-text-opacity: 1;color:rgba(var(--text-primary),var(--tw-text-opacity, 1))}.loan-card-active-hover:hover .loan-card-use[data-v-addb15e1]{text-decoration-line:underline}.loan-card-progress[data-v-addb15e1],.loan-card-progress[data-v-addb15e1]:hover,.loan-card-progress[data-v-addb15e1]:focus{text-decoration-line:none}.loan-callouts[data-v-addb15e1] div{height:auto;flex-wrap:wrap}
|
|
@@ -9,7 +9,7 @@ const B = { class: "loan-card-active-hover tw-flex-1 tw-min-w-[275px] md:tw-min-
|
|
|
9
9
|
}, E = { key: 0 }, T = {
|
|
10
10
|
class: "tw-absolute tw-bottom-1 tw-left-1 tw-text-primary tw-bg-white tw-rounded tw-p-1 tw-mb-0 tw-mr-2 tw-text-label tw-flex tw-items-center tw-h-3",
|
|
11
11
|
style: { padding: "2px 6px", "text-transform": "capitalize" }
|
|
12
|
-
}, S = { style: { "margin-top": "0.125rem" } }, F = { class: "tw-flex tw-flex-col tw-flex-1 tw-px-1" }, I = { class: "tw-hidden md:tw-inline-block" }, W = { class: "tw-pt-1" }, z = {
|
|
12
|
+
}, S = { style: { "margin-top": "0.125rem" } }, F = { class: "tw-flex tw-flex-col tw-flex-1 tw-px-1" }, I = { class: "tw-hidden md:tw-inline-block tw-text-title" }, W = { class: "tw-pt-1" }, z = {
|
|
13
13
|
key: 0,
|
|
14
14
|
class: "tw-w-full",
|
|
15
15
|
style: { height: "5.5rem" }
|
|
@@ -185,7 +185,7 @@ function O(h, a, t, e, j, g) {
|
|
|
185
185
|
])
|
|
186
186
|
], 2);
|
|
187
187
|
}
|
|
188
|
-
const X = /* @__PURE__ */ R(P, [["render", O], ["__scopeId", "data-v-
|
|
188
|
+
const X = /* @__PURE__ */ R(P, [["render", O], ["__scopeId", "data-v-addb15e1"]]);
|
|
189
189
|
export {
|
|
190
190
|
p as KV_WIDE_LOAN_CARD_FRAGMENT,
|
|
191
191
|
$ as KV_WIDE_LOAN_CARD_USER_FRAGMENT,
|
package/dist/vue/index.d.ts
CHANGED
|
@@ -55,6 +55,8 @@ export { default as KvLoadingPlaceholder } from './KvLoadingPlaceholder.vue';
|
|
|
55
55
|
export { default as KvLoadingSpinner } from './KvLoadingSpinner.vue';
|
|
56
56
|
export { default as KvMap } from './KvMap.vue';
|
|
57
57
|
export { default as KvMaterialIcon } from './KvMaterialIcon.vue';
|
|
58
|
+
export { default as KvSimpleMap } from './KvSimpleMap.vue';
|
|
59
|
+
export type { SimpleMapCountry } from './KvSimpleMap.vue';
|
|
58
60
|
export { default as KvPageContainer } from './KvPageContainer.vue';
|
|
59
61
|
export { default as KvPagination } from './KvPagination.vue';
|
|
60
62
|
export { default as KvPieChart } from './KvPieChart.vue';
|
package/docs/make-to-vue.md
CHANGED
|
@@ -90,6 +90,31 @@ Figma Make output is presentational/demo code. Determine what needs to change:
|
|
|
90
90
|
- **Presentational strings** -> Configurable via props/slots
|
|
91
91
|
- **React animation libraries** -> CSS transitions or Vue composables (prefer no extra deps)
|
|
92
92
|
|
|
93
|
+
### 1.4 New Sibling Component vs. Extending an Existing One
|
|
94
|
+
|
|
95
|
+
When the source overlaps an existing kv-component, decide which path to take:
|
|
96
|
+
|
|
97
|
+
| Situation | Decision |
|
|
98
|
+
|-----------|----------|
|
|
99
|
+
| Same renderer, additional variant or mode | Extend the existing component (new prop, new slot) |
|
|
100
|
+
| Same renderer, breaking change | Create a `V2` (e.g. `KvPieChartV2`) |
|
|
101
|
+
| **Different renderer or fundamentally different runtime cost** | **New sibling component** |
|
|
102
|
+
|
|
103
|
+
Example: `KvMap` uses MapLibre/Leaflet (WebGL/canvas, tile fetching, ~200KB+ over the wire). A storytelling map driven by inline SVG paths and CSS transforms has none of those costs. Adding a `mode` prop would force every `KvMap` consumer to think about both paths and would bundle code most callers don't use. The right call is a sibling (`KvSimpleMap`) that shares the design vocabulary but not the implementation.
|
|
104
|
+
|
|
105
|
+
**Stop-and-ask** if the choice isn't obvious — the wrong call is expensive to undo.
|
|
106
|
+
|
|
107
|
+
### 1.5 External Data Modules
|
|
108
|
+
|
|
109
|
+
If the source imports a generated or large data module (SVG path dictionaries, GeoJSON, country lists, icon registries, etc.), **copy it into `src/data/` as-is**. Do not translate, reformat, or hand-edit. These files are usually exported from a tool (Figma, Mapshaper, etc.) and should be treated as opaque assets.
|
|
110
|
+
|
|
111
|
+
- Place the file alongside existing data assets in `src/data/`
|
|
112
|
+
- Rename to a descriptive, kv-style name (e.g. `simpleMapPaths.ts`, not `svg-iw48hjyvei.ts`)
|
|
113
|
+
- Re-export the default export with a typed name where useful
|
|
114
|
+
- Do **not** inline the data into the component file — keeps the component readable and lets the data module be tree-shaken or lazy-imported if needed
|
|
115
|
+
|
|
116
|
+
Reference: `KvMap.vue` lazy-imports `data/ne_110m_admin_0_countries.json` via dynamic `import()` to keep it out of the main chunk. Do the same when the data is large and only needed when the component actually mounts.
|
|
117
|
+
|
|
93
118
|
## Phase 2: Translation Patterns
|
|
94
119
|
|
|
95
120
|
### 2.1 React Hooks to Vue Composition API
|
|
@@ -119,36 +144,60 @@ Figma Make output is presentational/demo code. Determine what needs to change:
|
|
|
119
144
|
|
|
120
145
|
Figma Make outputs raw Tailwind classes. Convert to kv-components patterns:
|
|
121
146
|
|
|
122
|
-
- **
|
|
123
|
-
- **
|
|
124
|
-
- **Replace hardcoded
|
|
125
|
-
- **Replace
|
|
126
|
-
- **
|
|
147
|
+
- **Always use the project's Tailwind config** (`@kiva/kv-tokens/configs/tailwind.config.js`) as the source of truth for available utilities, the `tw-` prefix, the spacing scale (8px-based, not Tailwind's default 4px), and the colour palette. Don't introduce raw hex values, hardcoded `px`/`rem` literals, or arbitrary class names where a token-backed utility exists.
|
|
148
|
+
- **Apply the `tw-` prefix everywhere.** That includes class attributes in markup *and* `@apply` directives inside `<style lang="postcss" scoped>` blocks. `@apply tw-w-4 tw-h-4 tw-bg-white tw-border tw-border-tertiary tw-rounded-xs;` is the preferred way to assemble shared styles and pseudo-state rules; raw CSS belongs only where no utility exists (e.g. one-off `box-shadow` values, animation keyframes).
|
|
149
|
+
- **Replace hardcoded font families** with design system fonts (`tw-font-sans`, `tw-font-serif`).
|
|
150
|
+
- **Replace hardcoded colors** with token references — semantic Tailwind utilities (`tw-bg-primary`, `tw-text-secondary`, `tw-border-tertiary`) first, then named-palette utilities (`tw-bg-eco-green-2`, `tw-text-gray-300`); reach into `kvTokensPrimitives.colors[...]` from JS only when the colour must reach a non-class consumer (e.g. an SVG `:fill` binding).
|
|
151
|
+
- **Replace pixel values** in Tailwind classes with spacing scale values (8px increments). `tw-w-4` = 32px, not 16px — verify against the token scale, not Tailwind defaults.
|
|
152
|
+
- **Reference the kv-tokens skills** as the canonical guide for any text-styling decision before writing custom CSS. Start with [@kiva/kv-tokens/docs/skills/typography.md](../../kv-tokens/docs/skills/typography.md) for the semantic type scale, heading hierarchy, font pairing, and HTML / Tailwind mappings — always consult it before picking a heading element or text utility.
|
|
127
153
|
|
|
128
154
|
### 2.4 Animation Translation
|
|
129
155
|
|
|
130
|
-
Prefer CSS transitions
|
|
156
|
+
Prefer CSS-native animations: CSS transitions, Tailwind utility classes, and Vue's built-in `<Transition>` / `<TransitionGroup>` for enter/leave. Reach for a JS-driven composable only when the animation is genuinely numeric (count-up, interpolated values, multi-step choreography that can't be expressed declaratively).
|
|
131
157
|
|
|
132
158
|
| Figma Make / React | Vue Equivalent |
|
|
133
159
|
|--------------------|----------------|
|
|
134
|
-
| `motion
|
|
135
|
-
| `transition={{ duration: 0.5 }}` | `transition: property 500ms ease-in-out` |
|
|
160
|
+
| `motion.div` with `animate={...}` | Bind reactive style/class; let CSS transition handle the tween |
|
|
161
|
+
| `transition={{ duration: 0.5 }}` | `transition: property 500ms ease-in-out` (or `tw-transition tw-duration-500`) |
|
|
162
|
+
| `transition={{ ease: [...] }}` | `transition-timing-function: cubic-bezier(...)` |
|
|
136
163
|
| Staggered animations | Computed `transition-delay` per item index |
|
|
137
|
-
| Spring animations | CSS `cubic-bezier()` or `ease-in-out` |
|
|
164
|
+
| Spring animations | CSS `cubic-bezier()` or `ease-in-out` (springs rarely visibly differ at small distances) |
|
|
165
|
+
| `<AnimatePresence>` + `initial`/`animate`/`exit` | Vue `<Transition>` with `enter-from`/`enter-to`/`leave-from`/`leave-to` classes |
|
|
138
166
|
| `requestAnimationFrame` hooks | Vue composable with `onMounted`/`onUnmounted` lifecycle |
|
|
139
167
|
| Opacity/transform tweens | CSS transitions on those properties |
|
|
168
|
+
| `setTimeout`-driven cycles | Vue composable that owns the timer set + cleanup (see 2.5) |
|
|
140
169
|
|
|
141
|
-
|
|
170
|
+
Guidelines:
|
|
142
171
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
172
|
+
- **Default to declarative.** If the animation can be expressed as "this style depends on this state, transition between them," it belongs in CSS — not in a JS animation loop.
|
|
173
|
+
- **One key per remountable element.** When porting `AnimatePresence` keyed children, preserve the `:key` on the Vue side so `<Transition>` treats each instance as a fresh mount/unmount.
|
|
174
|
+
- **Match perceived timing, not the exact curve.** Spring → ease-in-out and motion's default cubic → a similar `cubic-bezier` are acceptable substitutions unless the user says otherwise. **Stop-and-ask** if the source uses a noticeably distinct easing (overshoot, bounce).
|
|
175
|
+
- **Tailwind first, scoped CSS second.** Prefer `tw-transition`, `tw-duration-*`, `tw-ease-*` utilities; fall back to `<style scoped>` only when a utility doesn't exist for the property or curve.
|
|
176
|
+
- **Don't add a JS animation library.** No `framer-motion` Vue equivalent, no `gsap`, no `motion-vue`. If a component genuinely needs orchestrated numeric animation, write a small composable.
|
|
146
177
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
178
|
+
### 2.5 Timer-Driven Cycles → Composables
|
|
179
|
+
|
|
180
|
+
`setTimeout`/`setInterval` choreography inside a React `useEffect` should become a composable that owns its timer set and cleans up on unmount. Component files stay declarative; the cycle becomes independently testable.
|
|
181
|
+
|
|
182
|
+
Guidelines:
|
|
183
|
+
|
|
184
|
+
- **One owner for timers.** The composable creates timers, holds the references, and clears them on unmount or `stop()`. The component doesn't manage timers directly.
|
|
185
|
+
- **Cancellation is non-negotiable.** Always provide a teardown path and call it from `onBeforeUnmount`. Stale timers firing after unmount are a common source of port bugs.
|
|
186
|
+
- **Expose state, not timers.** Return reactive refs (current step, active flag, etc.) and `start`/`stop` controls — never raw timer IDs.
|
|
187
|
+
- **Test with fake timers.** Use `jest.useFakeTimers()` to assert state transitions at each step boundary without rendering the component.
|
|
188
|
+
- **Make timings injectable.** Pass durations/delays as options with sensible defaults so the cycle can be tuned per consumer (and sped up in tests).
|
|
189
|
+
|
|
190
|
+
### 2.6 Container-Responsive Sizing
|
|
191
|
+
|
|
192
|
+
Figma Make outputs **fixed pixel dimensions**. kv-components must be responsive by default, with optional explicit overrides.
|
|
193
|
+
|
|
194
|
+
Guidelines:
|
|
195
|
+
|
|
196
|
+
- **Default to 100% width.** Never hardcode a container width into the component.
|
|
197
|
+
- **Mirror existing sizing props.** When a kv-component already implements responsive sizing (e.g. `KvMap` with `aspectRatio` / `height` / `width` props and a `mapDimensions` computed), follow that prop shape so consumers have one mental model.
|
|
198
|
+
- **Decouple internal coordinates from rendered size.** SVG `viewBox`, math keyed off the source's `CONT_W`/`CONT_H` constants, etc. should remain at their natural values; the *container* is what scales. If the source's pan/zoom math is keyed off fixed pixel dimensions, derive those from `getBoundingClientRect()` at runtime.
|
|
199
|
+
- **Use `ResizeObserver` if the container can resize after mount.** Fall back gracefully where it isn't supported.
|
|
200
|
+
- **Aspect-ratio prop, not fixed height.** A numeric `aspectRatio` (width / height) lets the component scale fluidly; explicit `height`/`width` props are escape hatches, not the default path.
|
|
152
201
|
|
|
153
202
|
## Phase 3: Component Structure
|
|
154
203
|
|
|
@@ -194,10 +243,13 @@ const { colors } = kvTokensPrimitives;
|
|
|
194
243
|
|
|
195
244
|
### 4.2 Typography
|
|
196
245
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
-
|
|
246
|
+
The canonical reference for type styling is the [kv-tokens typography skill](../../kv-tokens/docs/skills/typography.md). Consult it before picking a heading element or a text utility; it covers the semantic type scale (`tw-text-display`, `tw-text-headline`, `tw-text-title`, `tw-text-base`, `tw-text-caption`, etc.), heading hierarchy, font pairing, and the HTML / Tailwind mappings.
|
|
247
|
+
|
|
248
|
+
Quick guidance for a port:
|
|
249
|
+
- **Map Figma Make font references** by intent, not by raw weight: pick the semantic utility (e.g. `tw-text-headline`, `tw-text-title`, `tw-text-label`) that matches the role the text plays. Don't translate `font-weight: 500` into a hand-set numeric weight — pick the utility that the design system says owns "medium" emphasis.
|
|
250
|
+
- **Font family** → `tw-font-sans` (PostGrotesk) by default; only switch when the typography skill calls for `tw-font-serif`.
|
|
251
|
+
- **Heading elements** → follow the heading hierarchy described in the typography skill so any new `<h1>`–`<h6>` usage you introduce uses the correct semantic level for its role.
|
|
252
|
+
- If no existing element default or utility class fits the design, that's a signal to stop and confirm with the design system team — not to author bespoke CSS.
|
|
201
253
|
|
|
202
254
|
### 4.3 Spacing
|
|
203
255
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kiva/kv-components",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.12.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"@babel/preset-env": "^7.24.8",
|
|
35
35
|
"@babel/preset-react": "^7.24.7",
|
|
36
36
|
"@babel/preset-typescript": "^7.24.7",
|
|
37
|
-
"@kiva/kv-tokens": "^4.0.
|
|
37
|
+
"@kiva/kv-tokens": "^4.0.3",
|
|
38
38
|
"@kiva/vite-plugin-vue-lib-css": "^2.0.0",
|
|
39
39
|
"@laynezh/vite-plugin-lib-assets": "^0.6.1",
|
|
40
40
|
"@mdi/js": "^7.4.47",
|
|
@@ -125,5 +125,5 @@
|
|
|
125
125
|
"embla-carousel-fade",
|
|
126
126
|
"popper.js"
|
|
127
127
|
],
|
|
128
|
-
"gitHead": "
|
|
128
|
+
"gitHead": "395f5add0d2149a52dd1e07d7df2da2a321ab11a"
|
|
129
129
|
}
|