@kywi-software/core 0.6.2 → 0.6.4
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/AGENT-PATTERNS.md +221 -16
- package/README.md +23 -5
- package/dist/admin/layout-editor/column-overlay.d.ts +14 -1
- package/dist/admin/layout-editor/column-overlay.d.ts.map +1 -1
- package/dist/admin/layout-editor/column-overlay.js +5 -2
- package/dist/admin/layout-editor/column-overlay.js.map +1 -1
- package/dist/admin/layout-editor/editor-canvas.d.ts +34 -1
- package/dist/admin/layout-editor/editor-canvas.d.ts.map +1 -1
- package/dist/admin/layout-editor/editor-canvas.js +156 -16
- package/dist/admin/layout-editor/editor-canvas.js.map +1 -1
- package/dist/admin/layout-editor/editor-state.d.ts +57 -2
- package/dist/admin/layout-editor/editor-state.d.ts.map +1 -1
- package/dist/admin/layout-editor/editor-state.js +125 -53
- package/dist/admin/layout-editor/editor-state.js.map +1 -1
- package/dist/admin/layout-editor/editor.css +487 -44
- package/dist/admin/layout-editor/index.d.ts +1 -1
- package/dist/admin/layout-editor/index.d.ts.map +1 -1
- package/dist/admin/layout-editor/index.js.map +1 -1
- package/dist/admin/layout-editor/inline-text.d.ts +44 -0
- package/dist/admin/layout-editor/inline-text.d.ts.map +1 -0
- package/dist/admin/layout-editor/inline-text.js +67 -0
- package/dist/admin/layout-editor/inline-text.js.map +1 -0
- package/dist/admin/layout-editor/layout-editor.d.ts.map +1 -1
- package/dist/admin/layout-editor/layout-editor.js +23 -31
- package/dist/admin/layout-editor/layout-editor.js.map +1 -1
- package/dist/admin/layout-editor/module-overlay.d.ts +32 -1
- package/dist/admin/layout-editor/module-overlay.d.ts.map +1 -1
- package/dist/admin/layout-editor/module-overlay.js +108 -6
- package/dist/admin/layout-editor/module-overlay.js.map +1 -1
- package/dist/admin/layout-editor/node-lookup.d.ts +94 -0
- package/dist/admin/layout-editor/node-lookup.d.ts.map +1 -0
- package/dist/admin/layout-editor/node-lookup.js +142 -0
- package/dist/admin/layout-editor/node-lookup.js.map +1 -0
- package/dist/admin/layout-editor/overlay-shell.d.ts +19 -1
- package/dist/admin/layout-editor/overlay-shell.d.ts.map +1 -1
- package/dist/admin/layout-editor/overlay-shell.js +177 -69
- package/dist/admin/layout-editor/overlay-shell.js.map +1 -1
- package/dist/admin/layout-editor/props-panel.d.ts +9 -2
- package/dist/admin/layout-editor/props-panel.d.ts.map +1 -1
- package/dist/admin/layout-editor/props-panel.js +13 -5
- package/dist/admin/layout-editor/props-panel.js.map +1 -1
- package/dist/admin/layout-editor/region-overlay.d.ts +8 -1
- package/dist/admin/layout-editor/region-overlay.d.ts.map +1 -1
- package/dist/admin/layout-editor/region-overlay.js +4 -1
- package/dist/admin/layout-editor/region-overlay.js.map +1 -1
- package/dist/admin/layout-editor/section-insert-line.d.ts +7 -1
- package/dist/admin/layout-editor/section-insert-line.d.ts.map +1 -1
- package/dist/admin/layout-editor/section-insert-line.js +4 -1
- package/dist/admin/layout-editor/section-insert-line.js.map +1 -1
- package/dist/admin/layout-editor/section-overlay.d.ts +13 -1
- package/dist/admin/layout-editor/section-overlay.d.ts.map +1 -1
- package/dist/admin/layout-editor/section-overlay.js +24 -12
- package/dist/admin/layout-editor/section-overlay.js.map +1 -1
- package/dist/admin/layout-editor/section-variant-container-config.d.ts +29 -0
- package/dist/admin/layout-editor/section-variant-container-config.d.ts.map +1 -0
- package/dist/admin/layout-editor/section-variant-container-config.js +82 -0
- package/dist/admin/layout-editor/section-variant-container-config.js.map +1 -0
- package/dist/admin/styles/admin.css +5 -2
- package/dist/admin/surfaces/content/content-edit.d.ts.map +1 -1
- package/dist/admin/surfaces/content/content-edit.js +8 -1
- package/dist/admin/surfaces/content/content-edit.js.map +1 -1
- package/dist/db/content-queries.d.ts +35 -0
- package/dist/db/content-queries.d.ts.map +1 -1
- package/dist/db/content-queries.js +175 -36
- package/dist/db/content-queries.js.map +1 -1
- package/dist/layout/registry.d.ts +8 -1
- package/dist/layout/registry.d.ts.map +1 -1
- package/dist/layout/registry.js +8 -1
- package/dist/layout/registry.js.map +1 -1
- package/dist/nav/index.d.ts +1 -1
- package/dist/nav/index.d.ts.map +1 -1
- package/dist/nav/index.js +4 -1
- package/dist/nav/index.js.map +1 -1
- package/dist/nav/url-resolver.d.ts +27 -0
- package/dist/nav/url-resolver.d.ts.map +1 -1
- package/dist/nav/url-resolver.js +36 -1
- package/dist/nav/url-resolver.js.map +1 -1
- package/dist/scope/edit-mode-hooks.d.ts.map +1 -1
- package/dist/scope/edit-mode-hooks.js +27 -1
- package/dist/scope/edit-mode-hooks.js.map +1 -1
- package/dist/scope/inline-editing.d.ts.map +1 -1
- package/dist/scope/inline-editing.js +2 -1
- package/dist/scope/inline-editing.js.map +1 -1
- package/dist/site/styles.css +147 -4
- package/package.json +1 -1
package/dist/nav/url-resolver.js
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
|
-
import { eq, and, sql } from 'drizzle-orm';
|
|
1
|
+
import { eq, and, sql, inArray, asc } from 'drizzle-orm';
|
|
2
2
|
import { kywiContent } from '../schema/base.js';
|
|
3
|
+
/**
|
|
4
|
+
* Base types that can legitimately own a public page URL.
|
|
5
|
+
*
|
|
6
|
+
* Mirrors `INDEXABLE_BASE_TYPES` (src/ax/filters.ts) plus `link`, which is also
|
|
7
|
+
* addressable (it redirects). Everything else — `form`, `component`, `media` —
|
|
8
|
+
* is an embeddable, not a standalone route.
|
|
9
|
+
*/
|
|
10
|
+
export const PAGE_LIKE_BASE_TYPES = ['content', 'folder', 'event', 'gallery', 'link'];
|
|
11
|
+
/**
|
|
12
|
+
* ORDER BY fragments that rank page-like rows ahead of everything else, then
|
|
13
|
+
* break remaining ties deterministically by creation order.
|
|
14
|
+
*
|
|
15
|
+
* `kywi_content.slug`/`path` are not unique across base types, so a Page and a
|
|
16
|
+
* Form can both sit at `/contact`. Resolving whichever row the planner happened
|
|
17
|
+
* to return first served the form's row at the page URL and rendered an empty,
|
|
18
|
+
* layout-less page while the real page stayed invisible (kywi-cms#100 / UAT-009;
|
|
19
|
+
* kywi-cms#39 fixed the same collision on the form-*submission* side).
|
|
20
|
+
*
|
|
21
|
+
* This only breaks ties: a route that matches exactly one row resolves to that
|
|
22
|
+
* row exactly as before.
|
|
23
|
+
*/
|
|
24
|
+
export function pageFirstOrdering() {
|
|
25
|
+
return [
|
|
26
|
+
sql `CASE WHEN ${inArray(kywiContent.baseType, PAGE_LIKE_BASE_TYPES)} THEN 0 ELSE 1 END`,
|
|
27
|
+
asc(kywiContent.createdAt),
|
|
28
|
+
];
|
|
29
|
+
}
|
|
3
30
|
/**
|
|
4
31
|
* Resolve a content node by walking the materialized path.
|
|
5
32
|
*
|
|
@@ -13,6 +40,10 @@ import { kywiContent } from '../schema/base.js';
|
|
|
13
40
|
* row for that locale matches; the caller falls back to the default locale on a
|
|
14
41
|
* miss. Omit it to match any locale (structural resolution).
|
|
15
42
|
*
|
|
43
|
+
* When more than one row shares the path (slug is not unique across base types —
|
|
44
|
+
* e.g. a Page and a Form both named "contact"), the page-like row wins; see
|
|
45
|
+
* {@link pageFirstOrdering} (kywi-cms#100).
|
|
46
|
+
*
|
|
16
47
|
* Returns null if no matching content exists for the site+path (+locale).
|
|
17
48
|
*/
|
|
18
49
|
export async function resolveContentByPath(db, path, siteId, options) {
|
|
@@ -40,6 +71,7 @@ export async function resolveContentByPath(db, path, siteId, options) {
|
|
|
40
71
|
})
|
|
41
72
|
.from(kywiContent)
|
|
42
73
|
.where(and(...conditions))
|
|
74
|
+
.orderBy(...pageFirstOrdering())
|
|
43
75
|
.limit(1);
|
|
44
76
|
if (!row)
|
|
45
77
|
return null;
|
|
@@ -86,6 +118,9 @@ export async function resolveContentBySegments(db, path, siteId) {
|
|
|
86
118
|
})
|
|
87
119
|
.from(kywiContent)
|
|
88
120
|
.where(and(...conditions))
|
|
121
|
+
// Same page-first tie-break as resolveContentByPath: a segment slug shared
|
|
122
|
+
// by a page and a non-page row must walk into the page (kywi-cms#100).
|
|
123
|
+
.orderBy(...pageFirstOrdering())
|
|
89
124
|
.limit(1);
|
|
90
125
|
if (!row)
|
|
91
126
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url-resolver.js","sourceRoot":"","sources":["../../src/nav/url-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"url-resolver.js","sourceRoot":"","sources":["../../src/nav/url-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAY,MAAM,aAAa,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAG/C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAU,CAAA;AAE9F;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,GAAG,CAAA,aAAa,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,oBAA2C,CAAC,oBAAoB;QAC9G,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC;KAC3B,CAAA;AACH,CAAC;AAeD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,EAAU,EACV,IAAY,EACZ,MAAc,EACd,OAA6B;IAE7B,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IAEtC,MAAM,UAAU,GAAG;QACjB,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;QAC9B,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC;QAChC,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,UAAiB;KAC7C,CAAA;IACD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE;SACnB,MAAM,CAAC;QACN,EAAE,EAAE,WAAW,CAAC,EAAE;QAClB,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,eAAe,EAAE,WAAW,CAAC,eAAe;KAC7C,CAAC;SACD,IAAI,CAAC,WAAW,CAAC;SACjB,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;SACzB,OAAO,CAAC,GAAG,iBAAiB,EAAE,CAAC;SAC/B,KAAK,CAAC,CAAC,CAAC,CAAA;IAEX,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IACrB,OAAO,GAAsB,CAAA;AAC/B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,EAAU,EACV,IAAY,EACZ,MAAc;IAEd,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IACrC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAEtC,IAAI,QAAQ,GAAkB,IAAI,CAAA;IAElC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,UAAU,GAA4B;YAC1C,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;YAC9B,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;YAC1B,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,UAAiB;SAC7C,CAAA;QAED,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAA,GAAG,WAAW,CAAC,QAAQ,UAAiB,CAAC,CAAA;QAC9D,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;QACrD,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE;aACnB,MAAM,CAAC;YACN,EAAE,EAAE,WAAW,CAAC,EAAE;YAClB,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,eAAe,EAAE,WAAW,CAAC,eAAe;SAC7C,CAAC;aACD,IAAI,CAAC,WAAW,CAAC;aACjB,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;YAC1B,2EAA2E;YAC3E,uEAAuE;aACtE,OAAO,CAAC,GAAG,iBAAiB,EAAE,CAAC;aAC/B,KAAK,CAAC,CAAC,CAAC,CAAA;QAEX,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QACrB,QAAQ,GAAG,GAAG,CAAC,EAAE,CAAA;IACnB,CAAC;IAED,+DAA+D;IAC/D,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAElC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE;SACrB,MAAM,CAAC;QACN,EAAE,EAAE,WAAW,CAAC,EAAE;QAClB,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,eAAe,EAAE,WAAW,CAAC,eAAe;KAC7C,CAAC;SACD,IAAI,CAAC,WAAW,CAAC;SACjB,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;SACnC,KAAK,CAAC,CAAC,CAAC,CAAA;IAEX,OAAQ,KAAyB,IAAI,IAAI,CAAA;AAC3C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,uBAAuB;IACvB,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAA;IAChD,wBAAwB;IACxB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAA;IACjC,OAAO,CAAC,CAAA;AACV,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI;SACR,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAC9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit-mode-hooks.d.ts","sourceRoot":"","sources":["../../src/scope/edit-mode-hooks.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,iBAAiB;IAChC,kDAAkD;IAClD,UAAU,EAAE,OAAO,CAAA;IACnB,+DAA+D;IAC/D,OAAO,EAAE,OAAO,CAAA;IAChB,kEAAkE;IAClE,UAAU,EAAE,OAAO,CAAA;IACnB,+BAA+B;IAC/B,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,uBAAuB;IACvB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,uBAAuB;IACvB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;
|
|
1
|
+
{"version":3,"file":"edit-mode-hooks.d.ts","sourceRoot":"","sources":["../../src/scope/edit-mode-hooks.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,iBAAiB;IAChC,kDAAkD;IAClD,UAAU,EAAE,OAAO,CAAA;IACnB,+DAA+D;IAC/D,OAAO,EAAE,OAAO,CAAA;IAChB,kEAAkE;IAClE,UAAU,EAAE,OAAO,CAAA;IACnB,+BAA+B;IAC/B,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,uBAAuB;IACvB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,uBAAuB;IACvB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAwBD,wBAAgB,eAAe,CAC7B,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GACrD,iBAAiB,CAYnB;AAID,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC;;;;;EAUxD"}
|
|
@@ -1,11 +1,37 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { useState, useCallback } from 'react';
|
|
2
|
+
import { useState, useCallback, useEffect } from 'react';
|
|
3
|
+
const EDIT_PARAM = 'kywi-edit';
|
|
4
|
+
// Keep the `?kywi-edit=1` URL param mirroring edit-mode state. This is a plain
|
|
5
|
+
// `history.replaceState` (never a push — a UI-mode toggle isn't a new history
|
|
6
|
+
// entry, and this deliberately bypasses next/navigation's router so it can't
|
|
7
|
+
// trigger a server round-trip): entering edit mode adds the param so a reload
|
|
8
|
+
// or a shared link lands straight back in the editor; leaving removes it. A
|
|
9
|
+
// deep link that opened straight into edit mode (the param already present)
|
|
10
|
+
// is a no-op here — nothing to reconcile.
|
|
11
|
+
function syncEditModeParam(isEditMode) {
|
|
12
|
+
if (typeof window === 'undefined')
|
|
13
|
+
return;
|
|
14
|
+
const url = new URL(window.location.href);
|
|
15
|
+
const hasParam = url.searchParams.get(EDIT_PARAM) === '1';
|
|
16
|
+
if (isEditMode === hasParam)
|
|
17
|
+
return;
|
|
18
|
+
if (isEditMode) {
|
|
19
|
+
url.searchParams.set(EDIT_PARAM, '1');
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
url.searchParams.delete(EDIT_PARAM);
|
|
23
|
+
}
|
|
24
|
+
window.history.replaceState(window.history.state, '', url.toString());
|
|
25
|
+
}
|
|
3
26
|
export function useKywiEditMode(opts = {}) {
|
|
4
27
|
const { canEdit = false, canPublish = false } = opts;
|
|
5
28
|
const [isEditMode, setIsEditMode] = useState(false);
|
|
6
29
|
const toggleEdit = useCallback(() => setIsEditMode(prev => !prev), []);
|
|
7
30
|
const startEdit = useCallback(() => setIsEditMode(true), []);
|
|
8
31
|
const endEdit = useCallback(() => setIsEditMode(false), []);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
syncEditModeParam(isEditMode);
|
|
34
|
+
}, [isEditMode]);
|
|
9
35
|
return { isEditMode, canEdit, canPublish, toggleEdit, startEdit, endEdit };
|
|
10
36
|
}
|
|
11
37
|
// ─── useKywiInlineEdit ────────────────────────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit-mode-hooks.js","sourceRoot":"","sources":["../../src/scope/edit-mode-hooks.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"edit-mode-hooks.js","sourceRoot":"","sources":["../../src/scope/edit-mode-hooks.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAmBxD,MAAM,UAAU,GAAG,WAAW,CAAA;AAE9B,+EAA+E;AAC/E,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAC9E,4EAA4E;AAC5E,4EAA4E;AAC5E,0CAA0C;AAC1C,SAAS,iBAAiB,CAAC,UAAmB;IAC5C,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAM;IACzC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACzC,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,CAAA;IACzD,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAM;IACnC,IAAI,UAAU,EAAE,CAAC;QACf,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IACvC,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACrC,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;AACvE,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,OAAoD,EAAE;IAEtD,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,IAAI,CAAA;IACpD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IACtE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IAC5D,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;IAE3D,SAAS,CAAC,GAAG,EAAE;QACb,iBAAiB,CAAC,UAAU,CAAC,CAAA;IAC/B,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IAEhB,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AAC5E,CAAC;AAED,iFAAiF;AAEjF,MAAM,UAAU,iBAAiB,CAC/B,KAAa,EACb,YAAoB,EACpB,MAAuD;IAEvD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAA;IAChD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/C,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAClC,WAAW,CAAC,IAAI,CAAC,CAAA;QACjB,MAAM,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC1B,WAAW,CAAC,KAAK,CAAC,CAAA;IACpB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;IAC1B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;AAC5C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline-editing.d.ts","sourceRoot":"","sources":["../../src/scope/inline-editing.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAIxC,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAA;AAE5D,MAAM,WAAW,0BAA0B;IACzC,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAA;IACb,mCAAmC;IACnC,IAAI,EAAE,gBAAgB,CAAA;IACtB,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAA;IACjB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,IAAI,EACJ,SAAS,EACT,SAAS,EACT,QAAQ,GACT,EAAE,0BAA0B,GAAG,KAAK,CAAC,YAAY,CAYjD;AAID,MAAM,WAAW,uBAAuB;IACtC,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAA;IACd,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,SAAS,EACT,QAAQ,GACT,EAAE,uBAAuB,GAAG,KAAK,CAAC,YAAY,CAO9C;AAID,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,UAAU,EAAE,OAAO,CAAA;IACnB,uDAAuD;IACvD,OAAO,EAAE,OAAO,CAAA;IAChB,0DAA0D;IAC1D,UAAU,EAAE,OAAO,CAAA;IACnB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAYD,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,OAAO,EACP,UAAU,EACV,YAAY,EACZ,SAAS,EACT,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,GACV,EAAE,oBAAoB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"inline-editing.d.ts","sourceRoot":"","sources":["../../src/scope/inline-editing.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAIxC,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAA;AAE5D,MAAM,WAAW,0BAA0B;IACzC,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAA;IACb,mCAAmC;IACnC,IAAI,EAAE,gBAAgB,CAAA;IACtB,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAA;IACjB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,IAAI,EACJ,SAAS,EACT,SAAS,EACT,QAAQ,GACT,EAAE,0BAA0B,GAAG,KAAK,CAAC,YAAY,CAYjD;AAID,MAAM,WAAW,uBAAuB;IACtC,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAA;IACd,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,SAAS,EACT,QAAQ,GACT,EAAE,uBAAuB,GAAG,KAAK,CAAC,YAAY,CAO9C;AAID,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,UAAU,EAAE,OAAO,CAAA;IACnB,uDAAuD;IACvD,OAAO,EAAE,OAAO,CAAA;IAChB,0DAA0D;IAC1D,UAAU,EAAE,OAAO,CAAA;IACnB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAYD,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,OAAO,EACP,UAAU,EACV,YAAY,EACZ,SAAS,EACT,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,GACV,EAAE,oBAAoB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA8DlD"}
|
|
@@ -49,6 +49,7 @@ export function KywiEditToolbar({ isEditMode, canEdit, canPublish, onToggleEdit,
|
|
|
49
49
|
if (!canEdit)
|
|
50
50
|
return null;
|
|
51
51
|
const cls = ['kywi-edit-toolbar', className].filter(Boolean).join(' ');
|
|
52
|
-
return (
|
|
52
|
+
return (_jsxs("div", { className: cls, role: "toolbar", "aria-label": "Edit controls", children: [_jsx("span", { className: "kywi-edit-toolbar-mark", "aria-hidden": "true", children: "Kywi" }), isEditMode ? (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", className: "kywi-edit-toolbar-done", onClick: onToggleEdit, children: "Done" }), canPublish && (_jsx("button", { type: "button", className: "kywi-edit-toolbar-publish", onClick: onPublish, children: "Publish" }))] })) : (_jsxs(_Fragment, { children: [pageStatus && (_jsxs("span", { className: "kywi-edit-toolbar-status", children: [_jsx("span", { className: 'kywi-edit-toolbar-status-dot' +
|
|
53
|
+
(pageStatus.toLowerCase() === 'published' ? '' : ' kywi-edit-toolbar-status-dot--draft') }), pageStatus.charAt(0).toUpperCase() + pageStatus.slice(1)] })), pageTitle && _jsx("span", { className: "kywi-edit-toolbar-title", children: pageTitle }), _jsx("span", { className: "kywi-edit-toolbar-spacer" }), adminHref && (_jsx("a", { className: "kywi-edit-toolbar-link", href: adminHref, children: "Go to admin" })), _jsx("button", { type: "button", className: "kywi-edit-toolbar-edit", onClick: onToggleEdit, children: "Edit this page" })] }))] }));
|
|
53
54
|
}
|
|
54
55
|
//# sourceMappingURL=inline-editing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline-editing.js","sourceRoot":"","sources":["../../src/scope/inline-editing.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAkBxC;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,EACpC,KAAK,EACL,IAAI,EACJ,SAAS,EACT,SAAS,EACT,QAAQ,GACmB;IAC3B,MAAM,GAAG,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClE,OAAO,CACL,cACE,SAAS,EAAE,GAAG,wBACM,KAAK,oBACT,IAAI,0BACE,SAAS,YAE9B,QAAQ,GACL,CACP,CAAA;AACH,CAAC;AAYD;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,EACjC,MAAM,EACN,SAAS,EACT,QAAQ,GACgB;IACxB,MAAM,GAAG,GAAG,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACzE,OAAO,CACL,cAAK,SAAS,EAAE,GAAG,sBAAoB,MAAM,YAC1C,QAAQ,GACL,CACP,CAAA;AACH,CAAC;AAyBD;;;;;;;GAOG;AACH,MAAM,qBAAqB,GAAG,8BAA8B,CAAA;AAE5D,MAAM,UAAU,eAAe,CAAC,EAC9B,UAAU,EACV,OAAO,EACP,UAAU,EACV,YAAY,EACZ,SAAS,EACT,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,GACY;IACrB,6EAA6E;IAC7E,yEAAyE;IACzE,0EAA0E;IAC1E,2EAA2E;IAC3E,mBAAmB;IACnB,MAAM,oBAAoB,GAAG,OAAO,IAAI,CAAC,UAAU,CAAA;IACnD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,oBAAoB;YAAE,OAAM;QACjC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;QAC7D,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAA;QAClE,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAA;IAE1B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IAEzB,MAAM,GAAG,GAAG,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEtE,OAAO,CACL,
|
|
1
|
+
{"version":3,"file":"inline-editing.js","sourceRoot":"","sources":["../../src/scope/inline-editing.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAkBxC;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,EACpC,KAAK,EACL,IAAI,EACJ,SAAS,EACT,SAAS,EACT,QAAQ,GACmB;IAC3B,MAAM,GAAG,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClE,OAAO,CACL,cACE,SAAS,EAAE,GAAG,wBACM,KAAK,oBACT,IAAI,0BACE,SAAS,YAE9B,QAAQ,GACL,CACP,CAAA;AACH,CAAC;AAYD;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,EACjC,MAAM,EACN,SAAS,EACT,QAAQ,GACgB;IACxB,MAAM,GAAG,GAAG,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACzE,OAAO,CACL,cAAK,SAAS,EAAE,GAAG,sBAAoB,MAAM,YAC1C,QAAQ,GACL,CACP,CAAA;AACH,CAAC;AAyBD;;;;;;;GAOG;AACH,MAAM,qBAAqB,GAAG,8BAA8B,CAAA;AAE5D,MAAM,UAAU,eAAe,CAAC,EAC9B,UAAU,EACV,OAAO,EACP,UAAU,EACV,YAAY,EACZ,SAAS,EACT,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,GACY;IACrB,6EAA6E;IAC7E,yEAAyE;IACzE,0EAA0E;IAC1E,2EAA2E;IAC3E,mBAAmB;IACnB,MAAM,oBAAoB,GAAG,OAAO,IAAI,CAAC,UAAU,CAAA;IACnD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,oBAAoB;YAAE,OAAM;QACjC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;QAC7D,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAA;QAClE,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAA;IAE1B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IAEzB,MAAM,GAAG,GAAG,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEtE,OAAO,CACL,eAAK,SAAS,EAAE,GAAG,EAAE,IAAI,EAAC,SAAS,gBAAY,eAAe,aAC5D,eAAM,SAAS,EAAC,wBAAwB,iBAAa,MAAM,qBAEpD,EACN,UAAU,CAAC,CAAC,CAAC,CACZ,8BACE,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,wBAAwB,EAAC,OAAO,EAAE,YAAY,qBAErE,EACR,UAAU,IAAI,CACb,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,2BAA2B,EAAC,OAAO,EAAE,SAAS,wBAErE,CACV,IACA,CACJ,CAAC,CAAC,CAAC,CACF,8BACG,UAAU,IAAI,CACb,gBAAM,SAAS,EAAC,0BAA0B,aACxC,eACE,SAAS,EACP,8BAA8B;oCAC9B,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sCAAsC,CAAC,GAE1F,EACD,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IACpD,CACR,EACA,SAAS,IAAI,eAAM,SAAS,EAAC,yBAAyB,YAAE,SAAS,GAAQ,EAC1E,eAAM,SAAS,EAAC,0BAA0B,GAAG,EAC5C,SAAS,IAAI,CACZ,YAAG,SAAS,EAAC,wBAAwB,EAAC,IAAI,EAAE,SAAS,4BAEjD,CACL,EACD,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,wBAAwB,EAAC,OAAO,EAAE,YAAY,+BAErE,IACR,CACJ,IACG,CACP,CAAA;AACH,CAAC"}
|
package/dist/site/styles.css
CHANGED
|
@@ -391,11 +391,12 @@
|
|
|
391
391
|
* `--kywi-*` tokens rather than rewriting rules. A theme that wants a bespoke
|
|
392
392
|
* widget can override any of these; nothing here is `!important`. */
|
|
393
393
|
|
|
394
|
-
/* Self-ID widget — shared card.
|
|
395
|
-
*
|
|
396
|
-
*
|
|
394
|
+
/* Self-ID widget — shared card. Six display modes (inline / modal / slide-in /
|
|
395
|
+
* hello_bar_top / hello_bar_bottom / drawer) position and lay out the same
|
|
396
|
+
* card+form markup differently. */
|
|
397
397
|
.kywi-selfid-widget {
|
|
398
398
|
box-sizing: border-box;
|
|
399
|
+
position: relative;
|
|
399
400
|
width: 100%;
|
|
400
401
|
max-width: 24rem;
|
|
401
402
|
padding: var(--kywi-spacing-lg, 1.5rem);
|
|
@@ -438,8 +439,150 @@
|
|
|
438
439
|
from { opacity: 0; transform: translate(-50%, -46%); }
|
|
439
440
|
to { opacity: 1; transform: translate(-50%, -50%); }
|
|
440
441
|
}
|
|
442
|
+
|
|
443
|
+
/* Hello bars — full-width, fixed to the top/bottom viewport edge. The
|
|
444
|
+
* headline/subheadline/form lay out horizontally (the form's fields flow
|
|
445
|
+
* inline too), stacking vertically once the bar can't fit everything on one
|
|
446
|
+
* line. */
|
|
447
|
+
.kywi-selfid-hello-bar-top,
|
|
448
|
+
.kywi-selfid-hello-bar-bottom {
|
|
449
|
+
position: fixed;
|
|
450
|
+
left: 0;
|
|
451
|
+
right: 0;
|
|
452
|
+
z-index: 60;
|
|
453
|
+
width: 100%;
|
|
454
|
+
max-width: none;
|
|
455
|
+
display: flex;
|
|
456
|
+
align-items: center;
|
|
457
|
+
flex-wrap: wrap;
|
|
458
|
+
gap: var(--kywi-spacing-md, 1rem);
|
|
459
|
+
border-radius: 0;
|
|
460
|
+
padding: var(--kywi-spacing-md, 1rem) var(--kywi-spacing-lg, 1.5rem);
|
|
461
|
+
}
|
|
462
|
+
.kywi-selfid-hello-bar-top {
|
|
463
|
+
top: 0;
|
|
464
|
+
border-width: 0 0 1px;
|
|
465
|
+
animation: kywi-selfid-in-bar-top 240ms ease-out both;
|
|
466
|
+
}
|
|
467
|
+
.kywi-selfid-hello-bar-bottom {
|
|
468
|
+
bottom: 0;
|
|
469
|
+
border-width: 1px 0 0;
|
|
470
|
+
animation: kywi-selfid-in-bar-bottom 240ms ease-out both;
|
|
471
|
+
}
|
|
472
|
+
.kywi-selfid-hello-bar-top .kywi-selfid-headline,
|
|
473
|
+
.kywi-selfid-hello-bar-top .kywi-selfid-subheadline,
|
|
474
|
+
.kywi-selfid-hello-bar-bottom .kywi-selfid-headline,
|
|
475
|
+
.kywi-selfid-hello-bar-bottom .kywi-selfid-subheadline {
|
|
476
|
+
flex: 0 0 auto;
|
|
477
|
+
margin: 0;
|
|
478
|
+
}
|
|
479
|
+
.kywi-selfid-hello-bar-top .kywi-selfid-form,
|
|
480
|
+
.kywi-selfid-hello-bar-bottom .kywi-selfid-form {
|
|
481
|
+
flex: 1 1 auto;
|
|
482
|
+
flex-direction: row;
|
|
483
|
+
flex-wrap: wrap;
|
|
484
|
+
align-items: center;
|
|
485
|
+
}
|
|
486
|
+
.kywi-selfid-hello-bar-top .kywi-selfid-field,
|
|
487
|
+
.kywi-selfid-hello-bar-bottom .kywi-selfid-field {
|
|
488
|
+
flex: 0 1 auto;
|
|
489
|
+
flex-direction: row;
|
|
490
|
+
align-items: center;
|
|
491
|
+
gap: var(--kywi-spacing-xs, 0.25rem);
|
|
492
|
+
}
|
|
493
|
+
.kywi-selfid-hello-bar-top .kywi-selfid-field select,
|
|
494
|
+
.kywi-selfid-hello-bar-top .kywi-selfid-field input,
|
|
495
|
+
.kywi-selfid-hello-bar-bottom .kywi-selfid-field select,
|
|
496
|
+
.kywi-selfid-hello-bar-bottom .kywi-selfid-field input {
|
|
497
|
+
width: auto;
|
|
498
|
+
}
|
|
499
|
+
.kywi-selfid-hello-bar-top .kywi-selfid-actions,
|
|
500
|
+
.kywi-selfid-hello-bar-bottom .kywi-selfid-actions {
|
|
501
|
+
flex: 0 0 auto;
|
|
502
|
+
}
|
|
503
|
+
@media (max-width: 640px) {
|
|
504
|
+
.kywi-selfid-hello-bar-top,
|
|
505
|
+
.kywi-selfid-hello-bar-bottom {
|
|
506
|
+
align-items: stretch;
|
|
507
|
+
}
|
|
508
|
+
.kywi-selfid-hello-bar-top .kywi-selfid-form,
|
|
509
|
+
.kywi-selfid-hello-bar-bottom .kywi-selfid-form {
|
|
510
|
+
flex-direction: column;
|
|
511
|
+
align-items: stretch;
|
|
512
|
+
}
|
|
513
|
+
.kywi-selfid-hello-bar-top .kywi-selfid-field,
|
|
514
|
+
.kywi-selfid-hello-bar-bottom .kywi-selfid-field {
|
|
515
|
+
flex-direction: column;
|
|
516
|
+
align-items: stretch;
|
|
517
|
+
}
|
|
518
|
+
.kywi-selfid-hello-bar-top .kywi-selfid-field select,
|
|
519
|
+
.kywi-selfid-hello-bar-top .kywi-selfid-field input,
|
|
520
|
+
.kywi-selfid-hello-bar-bottom .kywi-selfid-field select,
|
|
521
|
+
.kywi-selfid-hello-bar-bottom .kywi-selfid-field input {
|
|
522
|
+
width: 100%;
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
@keyframes kywi-selfid-in-bar-top {
|
|
526
|
+
from { opacity: 0; transform: translateY(-100%); }
|
|
527
|
+
to { opacity: 1; transform: translateY(0); }
|
|
528
|
+
}
|
|
529
|
+
@keyframes kywi-selfid-in-bar-bottom {
|
|
530
|
+
from { opacity: 0; transform: translateY(100%); }
|
|
531
|
+
to { opacity: 1; transform: translateY(0); }
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
/* Drawer — panel sliding in from the right edge of the viewport. */
|
|
535
|
+
.kywi-selfid-drawer {
|
|
536
|
+
position: fixed;
|
|
537
|
+
top: 0;
|
|
538
|
+
right: 0;
|
|
539
|
+
bottom: 0;
|
|
540
|
+
z-index: 60;
|
|
541
|
+
width: 100%;
|
|
542
|
+
max-width: 24rem;
|
|
543
|
+
height: 100%;
|
|
544
|
+
overflow-y: auto;
|
|
545
|
+
border-radius: 0;
|
|
546
|
+
border-width: 0 0 0 1px;
|
|
547
|
+
animation: kywi-selfid-in-drawer 240ms ease-out both;
|
|
548
|
+
}
|
|
549
|
+
@keyframes kywi-selfid-in-drawer {
|
|
550
|
+
from { opacity: 0; transform: translateX(100%); }
|
|
551
|
+
to { opacity: 1; transform: translateX(0); }
|
|
552
|
+
}
|
|
553
|
+
|
|
441
554
|
@media (prefers-reduced-motion: reduce) {
|
|
442
|
-
.kywi-selfid-slide-in,
|
|
555
|
+
.kywi-selfid-slide-in,
|
|
556
|
+
.kywi-selfid-modal,
|
|
557
|
+
.kywi-selfid-hello-bar-top,
|
|
558
|
+
.kywi-selfid-hello-bar-bottom,
|
|
559
|
+
.kywi-selfid-drawer {
|
|
560
|
+
animation: none;
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
/* Dismiss control — shown on hello_bar_top/bottom and drawer modes, which have
|
|
565
|
+
* no headline/subheadline "skip" affordance of their own. */
|
|
566
|
+
.kywi-selfid-dismiss {
|
|
567
|
+
position: absolute;
|
|
568
|
+
top: var(--kywi-spacing-sm, 0.5rem);
|
|
569
|
+
right: var(--kywi-spacing-sm, 0.5rem);
|
|
570
|
+
width: 1.75rem;
|
|
571
|
+
height: 1.75rem;
|
|
572
|
+
display: inline-flex;
|
|
573
|
+
align-items: center;
|
|
574
|
+
justify-content: center;
|
|
575
|
+
font-size: 1.15rem;
|
|
576
|
+
line-height: 1;
|
|
577
|
+
cursor: pointer;
|
|
578
|
+
color: var(--kywi-color-muted, #64748b);
|
|
579
|
+
background: none;
|
|
580
|
+
border: none;
|
|
581
|
+
border-radius: var(--kywi-border-radius-sm, 6px);
|
|
582
|
+
}
|
|
583
|
+
.kywi-selfid-dismiss:hover {
|
|
584
|
+
color: var(--kywi-color-text, #0f172a);
|
|
585
|
+
background: var(--kywi-color-border, #e2e8f0);
|
|
443
586
|
}
|
|
444
587
|
|
|
445
588
|
.kywi-selfid-headline {
|