@ketvietlab/design-system 0.1.12 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +52 -5
  2. package/dist/catalogue/index.d.ts.map +1 -1
  3. package/dist/catalogue/index.js +2 -2
  4. package/dist/catalogue/index.js.map +1 -1
  5. package/dist/catalogue/inventory-policy.json +6 -0
  6. package/dist/catalogue/inventory.generated.js +1 -1
  7. package/dist/catalogue/inventory.generated.js.map +1 -1
  8. package/dist/catalogue/inventory.generated.json +282 -65
  9. package/dist/catalogue/registry.d.ts.map +1 -1
  10. package/dist/catalogue/registry.js +7 -0
  11. package/dist/catalogue/registry.js.map +1 -1
  12. package/dist/catalogue/specimens.d.ts.map +1 -1
  13. package/dist/catalogue/specimens.js +45 -5
  14. package/dist/catalogue/specimens.js.map +1 -1
  15. package/dist/contract/index.d.ts.map +1 -1
  16. package/dist/contract/index.js +2 -0
  17. package/dist/contract/index.js.map +1 -1
  18. package/dist/foundations/reset.css +4 -0
  19. package/dist/index.d.ts +4 -2
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +2 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/interactions/menu/styles.css +3 -0
  24. package/dist/layouts/app-navigation/index.d.ts +67 -0
  25. package/dist/layouts/app-navigation/index.d.ts.map +1 -0
  26. package/dist/layouts/app-navigation/index.js +51 -0
  27. package/dist/layouts/app-navigation/index.js.map +1 -0
  28. package/dist/layouts/app-navigation/styles.css +355 -0
  29. package/dist/layouts/app-navigation.d.ts +2 -0
  30. package/dist/layouts/app-navigation.d.ts.map +1 -0
  31. package/dist/layouts/app-navigation.js +2 -0
  32. package/dist/layouts/app-navigation.js.map +1 -0
  33. package/dist/layouts/grouped/styles.css +11 -6
  34. package/dist/primitives/navigation/index.d.ts +11 -1
  35. package/dist/primitives/navigation/index.d.ts.map +1 -1
  36. package/dist/primitives/navigation/index.js +4 -1
  37. package/dist/primitives/navigation/index.js.map +1 -1
  38. package/dist/primitives/navigation/styles.css +51 -0
  39. package/dist/runtime/index.d.ts.map +1 -1
  40. package/dist/runtime/index.js +170 -2
  41. package/dist/runtime/index.js.map +1 -1
  42. package/dist/styles.css +1 -0
  43. package/package.json +3 -2
@@ -0,0 +1,51 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "@ketvietlab/ketjs-view/jsx-runtime";
2
+ import { each } from '@ketvietlab/ketjs-view';
3
+ export const HOOKS = [
4
+ 'app-navigation',
5
+ 'navigation-trigger',
6
+ 'navigation-trigger-icon',
7
+ 'navigation-trigger-identity',
8
+ 'navigation-trigger-label',
9
+ 'navigation-layer',
10
+ 'navigation-backdrop',
11
+ 'navigation-drawer',
12
+ 'navigation-header',
13
+ 'navigation-identity',
14
+ 'navigation-context',
15
+ 'navigation-close',
16
+ 'navigation-groups',
17
+ 'navigation-group',
18
+ 'navigation-group-label',
19
+ 'navigation-items',
20
+ 'navigation-supplementary',
21
+ 'navigation-item',
22
+ 'navigation-branch',
23
+ 'navigation-branch-trigger',
24
+ 'navigation-children',
25
+ 'navigation-item-leading',
26
+ 'navigation-item-copy',
27
+ 'navigation-item-label',
28
+ 'navigation-item-description',
29
+ 'navigation-item-count',
30
+ 'navigation-footer',
31
+ ];
32
+ export const NavigationTrigger = (props) => (_jsxs("summary", { "data-ui": "navigation-trigger", "aria-controls": props.controls, "data-open": props.open === true ? 'true' : 'false', children: [_jsxs("span", { "data-ui": "navigation-trigger-icon", "aria-hidden": "true", children: [_jsx("span", {}), _jsx("span", {}), _jsx("span", {})] }), _jsx("span", { "data-ui": "navigation-trigger-identity", children: props.identity }), _jsx("span", { "data-ui": "navigation-trigger-label", children: props.label })] }));
33
+ export const NavigationHeader = (props) => (_jsxs("header", { "data-ui": "navigation-header", children: [_jsxs("div", { children: [_jsx("div", { "data-ui": "navigation-identity", children: props.identity }), props.context !== undefined && _jsx("div", { "data-ui": "navigation-context", children: props.context })] }), _jsx("button", { "data-ui": "navigation-close", type: "button", "aria-label": props.closeLabel, children: _jsx("span", { "aria-hidden": "true" }) })] }));
34
+ const NavigationItemContent = (props) => (_jsxs(_Fragment, { children: [props.item.leading !== undefined && (_jsx("span", { "data-ui": "navigation-item-leading", "aria-hidden": "true", children: props.item.leading })), _jsxs("span", { "data-ui": "navigation-item-copy", children: [_jsx("span", { "data-ui": "navigation-item-label", children: props.item.label }), props.item.description !== undefined && (_jsx("span", { "data-ui": "navigation-item-description", children: props.item.description }))] }), props.item.count !== undefined && (_jsx("span", { "data-ui": "navigation-item-count", children: String(props.item.count) }))] }));
35
+ const hasActiveItem = (item) => item.active === true || item.children?.some(hasActiveItem) === true;
36
+ const renderNavigationItem = (props, branchGroup, level) => {
37
+ if (props.children !== undefined) {
38
+ const open = props.expanded === true || hasActiveItem(props);
39
+ return (_jsxs("details", { "data-ui": "navigation-branch", "data-level": String(level), name: branchGroup, open: open, children: [_jsx("summary", { "data-ui": "navigation-branch-trigger", children: _jsx(NavigationItemContent, { item: props }) }), _jsx("div", { "data-ui": "navigation-children", "data-level": String(level + 1), children: each(props.children, (item) => item.id, (item) => renderNavigationItem(item, `${props.id}-branches`, level + 1)) })] }));
40
+ }
41
+ return (_jsx("a", { "data-ui": "navigation-item", "data-active": props.active === true ? 'true' : null, "data-level": String(level), href: props.href, "aria-current": props.active === true ? 'page' : null, children: _jsx(NavigationItemContent, { item: props }) }));
42
+ };
43
+ export const NavigationItem = (props) => (_jsx(_Fragment, { children: renderNavigationItem(props, `${props.id}-root-branches`, 1) }));
44
+ export const NavigationGroup = (props) => (_jsxs("section", { "data-ui": "navigation-group", "aria-labelledby": props.label ? `${props.id}-label` : null, children: [props.label !== undefined && (_jsx("h2", { "data-ui": "navigation-group-label", id: `${props.id}-label`, children: props.label })), _jsx("div", { "data-ui": "navigation-items", children: each(props.items, (item) => item.id, (item) => renderNavigationItem(item, props.branchGroup ?? `${props.id}-branches`, 1)) })] }));
45
+ export const NavigationDrawer = (props) => (_jsxs("div", { "data-ui": "navigation-layer", children: [_jsx("button", { "data-ui": "navigation-backdrop", type: "button", "aria-label": props.closeLabel, tabIndex: -1 }), _jsxs("div", { "data-ui": "navigation-drawer", id: props.id, "data-navigation-label": props.label, tabIndex: -1, children: [_jsx(NavigationHeader, { identity: props.identity, context: props.context, closeLabel: props.closeLabel }), _jsxs("nav", { "data-ui": "navigation-groups", "aria-label": props.label, "data-ket-slot": props.navigationSlot, children: [each(props.groups, (group) => group.id, (group) => (_jsx(NavigationGroup, { ...group, id: `${props.id}-${group.id}`, branchGroup: `${props.id}-branches` }))), props.supplementary !== undefined && (_jsx("div", { "data-ui": "navigation-supplementary", children: props.supplementary }))] }), props.footer !== undefined && _jsx("footer", { "data-ui": "navigation-footer", children: props.footer })] })] }));
46
+ export const AppNavigation = (props) => {
47
+ const drawerId = `${props.id}-drawer`;
48
+ const closeLabel = props.closeLabel ?? 'Close navigation';
49
+ return (_jsxs("details", { "data-ui": "app-navigation", "data-navigation-id": props.id, open: props.open === true, children: [_jsx(NavigationTrigger, { controls: drawerId, label: props.menuLabel ?? 'Menu', identity: props.identity, open: props.open }), _jsx(NavigationDrawer, { id: drawerId, label: props.label, identity: props.identity, groups: props.groups, context: props.context, supplementary: props.supplementary, footer: props.footer, navigationSlot: props.navigationSlot, closeLabel: closeLabel })] }));
50
+ };
51
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/design-system/src/layouts/app-navigation/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAG7C,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,gBAAgB;IAChB,oBAAoB;IACpB,yBAAyB;IACzB,6BAA6B;IAC7B,0BAA0B;IAC1B,kBAAkB;IAClB,qBAAqB;IACrB,mBAAmB;IACnB,mBAAmB;IACnB,qBAAqB;IACrB,oBAAoB;IACpB,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,wBAAwB;IACxB,kBAAkB;IAClB,0BAA0B;IAC1B,iBAAiB;IACjB,mBAAmB;IACnB,2BAA2B;IAC3B,qBAAqB;IACrB,yBAAyB;IACzB,sBAAsB;IACtB,uBAAuB;IACvB,6BAA6B;IAC7B,uBAAuB;IACvB,mBAAmB;CACX,CAAA;AAoCV,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAKjC,EAAkB,EAAE,CAAC,CACpB,8BACU,oBAAoB,mBACb,KAAK,CAAC,QAAQ,eAClB,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,aAEjD,2BAAc,yBAAyB,iBAAa,MAAM,aACxD,gBAAQ,EACR,gBAAQ,EACR,gBAAQ,IACH,EACP,0BAAc,6BAA6B,YAAE,KAAK,CAAC,QAAQ,GAAQ,EACnE,0BAAc,0BAA0B,YAAE,KAAK,CAAC,KAAK,GAAQ,IACrD,CACX,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAIhC,EAAkB,EAAE,CAAC,CACpB,6BAAgB,mBAAmB,aACjC,0BACE,yBAAa,qBAAqB,YAAE,KAAK,CAAC,QAAQ,GAAO,EACxD,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,yBAAa,oBAAoB,YAAE,KAAK,CAAC,OAAO,GAAO,IACnF,EACN,4BAAgB,kBAAkB,EAAC,IAAI,EAAC,QAAQ,gBAAa,KAAK,CAAC,UAAU,YAC3E,8BAAkB,MAAM,GAAG,GACpB,IACF,CACV,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,KAAmC,EAAkB,EAAE,CAAC,CACrF,8BACG,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,CACnC,0BAAc,yBAAyB,iBAAa,MAAM,YACvD,KAAK,CAAC,IAAI,CAAC,OAAO,GACd,CACR,EACD,2BAAc,sBAAsB,aAClC,0BAAc,uBAAuB,YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,GAAQ,EAC9D,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,CACvC,0BAAc,6BAA6B,YAAE,KAAK,CAAC,IAAI,CAAC,WAAW,GAAQ,CAC5E,IACI,EACN,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CACjC,0BAAc,uBAAuB,YAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAQ,CACxE,IACA,CACJ,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,IAAwB,EAAW,EAAE,CAC1D,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,CAAA;AAErE,MAAM,oBAAoB,GAAG,CAC3B,KAAyB,EACzB,WAAmB,EACnB,KAAa,EACG,EAAE;IAClB,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,aAAa,CAAC,KAAK,CAAC,CAAA;QAC5D,OAAO,CACL,8BAAiB,mBAAmB,gBAAa,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,aAC3F,6BAAiB,2BAA2B,YAC1C,KAAC,qBAAqB,IAAC,IAAI,EAAE,KAAK,GAAI,GAC9B,EACV,yBAAa,qBAAqB,gBAAa,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,YAC7D,IAAI,CACH,KAAK,CAAC,QAAQ,EACd,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EACjB,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,CACxE,GACG,IACE,CACX,CAAA;IACH,CAAC;IACD,OAAO,CACL,uBACU,iBAAiB,iBACZ,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,gBACtC,MAAM,CAAC,KAAK,CAAC,EACzB,IAAI,EAAE,KAAK,CAAC,IAAI,kBACF,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,YAEnD,KAAC,qBAAqB,IAAC,IAAI,EAAE,KAAK,GAAI,GACpC,CACL,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAyB,EAAkB,EAAE,CAAC,CAC3E,4BAAG,oBAAoB,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,GAAI,CACnE,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAqD,EAAkB,EAAE,CAAC,CACxG,8BAAiB,kBAAkB,qBAAkB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,aAC1F,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,CAC5B,wBAAY,wBAAwB,EAAC,EAAE,EAAE,GAAG,KAAK,CAAC,EAAE,QAAQ,YACzD,KAAK,CAAC,KAAK,GACT,CACN,EACD,yBAAa,kBAAkB,YAC5B,IAAI,CACH,KAAK,CAAC,KAAK,EACX,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EACjB,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,IAAI,GAAG,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CACrF,GACG,IACE,CACX,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAUhC,EAAkB,EAAE,CAAC,CACpB,0BAAa,kBAAkB,aAC7B,4BAAgB,qBAAqB,EAAC,IAAI,EAAC,QAAQ,gBAAa,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAI,EAClG,0BAAa,mBAAmB,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE,2BAAyB,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,aAC7F,KAAC,gBAAgB,IAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,GAAI,EACpG,0BAAa,mBAAmB,gBAAa,KAAK,CAAC,KAAK,mBAAiB,KAAK,CAAC,cAAc,aAC1F,IAAI,CACH,KAAK,CAAC,MAAM,EACZ,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,EACnB,CAAC,KAAK,EAAE,EAAE,CAAC,CACT,KAAC,eAAe,OAAK,KAAK,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,EAAE,WAAW,GAAI,CACnG,CACF,EACA,KAAK,CAAC,aAAa,KAAK,SAAS,IAAI,CACpC,yBAAa,0BAA0B,YAAE,KAAK,CAAC,aAAa,GAAO,CACpE,IACG,EACL,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,4BAAgB,mBAAmB,YAAE,KAAK,CAAC,MAAM,GAAU,IACtF,IACF,CACP,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAkB,EAAE;IACzE,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,EAAE,SAAS,CAAA;IACrC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,kBAAkB,CAAA;IACzD,OAAO,CACL,8BAAiB,gBAAgB,wBAAqB,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,aACvF,KAAC,iBAAiB,IAChB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,CAAC,SAAS,IAAI,MAAM,EAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,IAAI,EAAE,KAAK,CAAC,IAAI,GAChB,EACF,KAAC,gBAAgB,IACf,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,UAAU,EAAE,UAAU,GACtB,IACM,CACX,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,355 @@
1
+ @layer ket.app {
2
+ :where([data-kv-design-system]) [data-ui="app-navigation"] {
3
+ position: relative;
4
+ height: 100%;
5
+ min-height: 100%;
6
+ overflow: hidden;
7
+ color: var(--kv-text-main);
8
+ }
9
+
10
+ :where([data-kv-design-system]) details[data-ui="app-navigation"]::details-content {
11
+ content-visibility: visible;
12
+ }
13
+
14
+ :where([data-kv-design-system]) [data-ui="navigation-trigger"] {
15
+ display: none;
16
+ }
17
+
18
+ :where([data-kv-design-system]) [data-ui="navigation-layer"],
19
+ :where([data-kv-design-system]) [data-ui="navigation-drawer"] {
20
+ height: 100%;
21
+ min-height: 0;
22
+ }
23
+
24
+ :where([data-kv-design-system]) [data-ui="navigation-layer"] {
25
+ position: absolute;
26
+ inset: 0;
27
+ }
28
+
29
+ :where([data-kv-design-system])
30
+ details[data-ui="app-navigation"]:not([open])
31
+ > [data-ui="navigation-layer"] {
32
+ display: block;
33
+ }
34
+
35
+ :where([data-kv-design-system]) [data-ui="navigation-backdrop"] {
36
+ display: none;
37
+ }
38
+
39
+ :where([data-kv-design-system]) [data-ui="navigation-drawer"] {
40
+ display: flex;
41
+ min-width: 0;
42
+ flex-direction: column;
43
+ background: var(--kv-sidebar-bg);
44
+ }
45
+
46
+ :where([data-kv-design-system]) [data-ui="navigation-header"] {
47
+ display: flex;
48
+ min-height: 3.5rem;
49
+ align-items: center;
50
+ justify-content: space-between;
51
+ gap: var(--kv-space-3);
52
+ padding: var(--kv-space-3);
53
+ border-bottom: 1px solid var(--kv-sidebar-border);
54
+ }
55
+
56
+ :where([data-kv-design-system]) [data-ui="navigation-header"] > div {
57
+ min-width: 0;
58
+ flex: 1 1 auto;
59
+ }
60
+
61
+ :where([data-kv-design-system]) [data-ui="navigation-identity"] {
62
+ font-size: var(--kv-text-base);
63
+ font-weight: var(--kv-weight-semibold);
64
+ letter-spacing: -0.01em;
65
+ line-height: var(--kv-leading-tight);
66
+ }
67
+
68
+ :where([data-kv-design-system]) [data-ui="navigation-context"] {
69
+ margin-top: var(--kv-space-1);
70
+ color: var(--kv-text-muted);
71
+ font-size: var(--kv-text-xs);
72
+ line-height: var(--kv-leading-normal);
73
+ }
74
+
75
+ :where([data-kv-design-system]) [data-ui="navigation-close"] {
76
+ display: none;
77
+ width: var(--kv-density-control-height);
78
+ height: var(--kv-density-control-height);
79
+ place-items: center;
80
+ padding: 0;
81
+ border: 1px solid var(--kv-border-default);
82
+ border-radius: var(--kv-radius-sm);
83
+ background: transparent;
84
+ color: var(--kv-text-secondary);
85
+ cursor: pointer;
86
+ }
87
+
88
+ :where([data-kv-design-system]) [data-ui="navigation-close"] > span,
89
+ :where([data-kv-design-system]) [data-ui="navigation-close"] > span::after {
90
+ display: block;
91
+ width: 0.875rem;
92
+ height: 1px;
93
+ background: currentcolor;
94
+ content: "";
95
+ transform: rotate(45deg);
96
+ }
97
+
98
+ :where([data-kv-design-system]) [data-ui="navigation-close"] > span::after {
99
+ transform: rotate(90deg);
100
+ }
101
+
102
+ :where([data-kv-design-system]) [data-ui="navigation-groups"] {
103
+ display: flex;
104
+ min-height: 0;
105
+ flex: 1 1 auto;
106
+ flex-direction: column;
107
+ gap: var(--kv-space-5);
108
+ padding: var(--kv-space-2) var(--kv-space-2) var(--kv-space-3);
109
+ overflow-y: auto;
110
+ }
111
+
112
+ :where([data-kv-design-system]) [data-ui="navigation-group"] {
113
+ min-width: 0;
114
+ }
115
+
116
+ :where([data-kv-design-system]) [data-ui="navigation-supplementary"] {
117
+ display: grid;
118
+ min-width: 0;
119
+ gap: var(--kv-space-5);
120
+ }
121
+
122
+ :where([data-kv-design-system]) [data-ui="navigation-group-label"] {
123
+ margin: 0 0 var(--kv-space-1-5);
124
+ padding-inline: var(--kv-space-2);
125
+ color: var(--kv-text-muted);
126
+ font-size: var(--kv-text-2xs);
127
+ font-weight: var(--kv-weight-semibold);
128
+ letter-spacing: 0.075em;
129
+ line-height: var(--kv-leading-normal);
130
+ text-transform: uppercase;
131
+ }
132
+
133
+ :where([data-kv-design-system]) [data-ui="navigation-items"] {
134
+ display: grid;
135
+ gap: var(--kv-space-0-5);
136
+ }
137
+
138
+ :where([data-kv-design-system]) [data-ui="navigation-branch"] {
139
+ min-width: 0;
140
+ }
141
+
142
+ :where([data-kv-design-system]) :is([data-ui="navigation-item"], [data-ui="navigation-branch-trigger"]) {
143
+ display: grid;
144
+ width: 100%;
145
+ min-height: var(--kv-sidebar-item-height);
146
+ grid-template-columns: auto minmax(0, 1fr) auto;
147
+ align-items: center;
148
+ gap: var(--kv-space-2-5);
149
+ padding: var(--kv-space-1) var(--kv-space-2);
150
+ border: 1px solid transparent;
151
+ border-radius: var(--kv-radius-sm);
152
+ color: var(--kv-text-secondary);
153
+ font-size: var(--kv-text-md);
154
+ line-height: var(--kv-leading-tight);
155
+ text-decoration: none;
156
+ cursor: pointer;
157
+ list-style: none;
158
+ transition:
159
+ color var(--kv-motion-fast),
160
+ background var(--kv-motion-fast),
161
+ border-color var(--kv-motion-fast);
162
+ }
163
+
164
+ :where([data-kv-design-system]) [data-ui="navigation-branch-trigger"]::-webkit-details-marker {
165
+ display: none;
166
+ }
167
+
168
+ :where([data-kv-design-system])
169
+ :is([data-ui="navigation-item"], [data-ui="navigation-branch-trigger"]):hover {
170
+ background: var(--kv-surface-hover);
171
+ color: var(--kv-text-main);
172
+ }
173
+
174
+ :where([data-kv-design-system]) [data-ui="navigation-item"][data-active="true"] {
175
+ border-color: var(--kv-border-default);
176
+ background: var(--kv-accent-subtle);
177
+ color: var(--kv-text-main);
178
+ font-weight: var(--kv-weight-medium);
179
+ }
180
+
181
+ :where([data-kv-design-system]) [data-ui="navigation-children"] {
182
+ display: grid;
183
+ gap: var(--kv-space-0-5);
184
+ padding: var(--kv-space-0-5) 0 var(--kv-space-1) var(--kv-space-5);
185
+ margin-left: var(--kv-space-3);
186
+ border-left: 1px solid var(--kv-sidebar-border);
187
+ }
188
+
189
+ :where([data-kv-design-system])
190
+ [data-ui="navigation-children"]
191
+ :is([data-ui="navigation-item"], [data-ui="navigation-branch-trigger"]) {
192
+ min-height: var(--kv-control-height-sm);
193
+ padding: var(--kv-space-0-5) var(--kv-space-2);
194
+ font-size: var(--kv-text-sm);
195
+ }
196
+
197
+ :where([data-kv-design-system]) [data-ui="navigation-children"][data-level="3"] {
198
+ padding-left: var(--kv-space-3);
199
+ margin-left: var(--kv-space-2);
200
+ }
201
+
202
+ :where([data-kv-design-system]) [data-ui="navigation-item-leading"] {
203
+ display: grid;
204
+ width: var(--kv-space-5);
205
+ place-items: center;
206
+ color: var(--kv-text-muted);
207
+ }
208
+
209
+ :where([data-kv-design-system]) [data-ui="navigation-item-copy"] {
210
+ display: grid;
211
+ min-width: 0;
212
+ gap: var(--kv-space-0-5);
213
+ }
214
+
215
+ :where([data-kv-design-system]) [data-ui="navigation-item-label"],
216
+ :where([data-kv-design-system]) [data-ui="navigation-item-description"] {
217
+ overflow: hidden;
218
+ text-overflow: ellipsis;
219
+ white-space: nowrap;
220
+ }
221
+
222
+ :where([data-kv-design-system]) [data-ui="navigation-item-description"] {
223
+ color: var(--kv-text-muted);
224
+ font-size: var(--kv-text-2xs);
225
+ font-weight: var(--kv-weight-normal);
226
+ }
227
+
228
+ :where([data-kv-design-system]) [data-ui="navigation-item-count"] {
229
+ min-width: var(--kv-space-5);
230
+ padding: var(--kv-space-0-5) var(--kv-space-1-5);
231
+ border-radius: var(--kv-radius-full);
232
+ background: var(--kv-panel-bg-subtle);
233
+ color: var(--kv-text-muted);
234
+ font-size: var(--kv-text-2xs);
235
+ font-variant-numeric: tabular-nums;
236
+ text-align: center;
237
+ }
238
+
239
+ :where([data-kv-design-system]) [data-ui="navigation-footer"] {
240
+ padding: var(--kv-space-3) var(--kv-space-4);
241
+ border-top: 1px solid var(--kv-sidebar-border);
242
+ color: var(--kv-text-muted);
243
+ font-size: var(--kv-text-xs);
244
+ }
245
+
246
+ @media (max-width: 48rem) {
247
+ :where([data-kv-design-system]) [data-ui="app-navigation"] {
248
+ height: auto;
249
+ min-height: 0;
250
+ overflow: visible;
251
+ }
252
+
253
+ :where([data-kv-design-system]) details[data-ui="app-navigation"]:not([open])::details-content {
254
+ content-visibility: hidden;
255
+ }
256
+
257
+ :where([data-kv-design-system]) [data-ui="navigation-trigger"] {
258
+ display: flex;
259
+ min-height: 3.25rem;
260
+ align-items: center;
261
+ gap: var(--kv-space-2-5);
262
+ padding: var(--kv-space-3) var(--kv-space-4);
263
+ color: var(--kv-text-main);
264
+ cursor: pointer;
265
+ font-size: var(--kv-text-sm);
266
+ font-weight: var(--kv-weight-semibold);
267
+ list-style: none;
268
+ }
269
+
270
+ :where([data-kv-design-system]) [data-ui="navigation-trigger"]::-webkit-details-marker {
271
+ display: none;
272
+ }
273
+
274
+ :where([data-kv-design-system]) [data-ui="navigation-trigger-identity"] {
275
+ min-width: 0;
276
+ overflow: hidden;
277
+ font-size: var(--kv-text-base);
278
+ text-overflow: ellipsis;
279
+ white-space: nowrap;
280
+ }
281
+
282
+ :where([data-kv-design-system]) [data-ui="navigation-trigger-label"] {
283
+ position: absolute;
284
+ width: 1px;
285
+ height: 1px;
286
+ padding: 0;
287
+ margin: -1px;
288
+ overflow: hidden;
289
+ clip: rect(0, 0, 0, 0);
290
+ white-space: nowrap;
291
+ border: 0;
292
+ }
293
+
294
+ :where([data-kv-design-system]) [data-ui="navigation-trigger-icon"] {
295
+ display: grid;
296
+ width: var(--kv-space-4);
297
+ gap: var(--kv-space-1);
298
+ }
299
+
300
+ :where([data-kv-design-system]) [data-ui="navigation-trigger-icon"] > span {
301
+ display: block;
302
+ height: 1px;
303
+ background: currentcolor;
304
+ }
305
+
306
+ :where([data-kv-design-system])
307
+ details[data-ui="app-navigation"]:not([open])
308
+ > [data-ui="navigation-layer"] {
309
+ display: none;
310
+ }
311
+
312
+ :where([data-kv-design-system]) [data-ui="navigation-layer"] {
313
+ position: fixed;
314
+ z-index: var(--kv-layer-dialog);
315
+ inset: 0;
316
+ display: grid;
317
+ min-height: 0;
318
+ height: auto;
319
+ grid-template-columns: min(20rem, 86vw) minmax(0, 1fr);
320
+ }
321
+
322
+ :where([data-kv-design-system]) [data-ui="navigation-backdrop"] {
323
+ display: block;
324
+ grid-column: 2;
325
+ padding: 0;
326
+ border: 0;
327
+ background: rgb(15 16 18 / 58%);
328
+ cursor: pointer;
329
+ }
330
+
331
+ :where([data-kv-design-system]) [data-ui="navigation-drawer"] {
332
+ grid-column: 1;
333
+ height: 100dvh;
334
+ min-height: 100dvh;
335
+ box-shadow: var(--kv-shadow-float);
336
+ animation: kv-navigation-enter var(--kv-motion-normal);
337
+ }
338
+
339
+ :where([data-kv-design-system]) [data-ui="navigation-close"] {
340
+ display: grid;
341
+ }
342
+ }
343
+
344
+ @keyframes kv-navigation-enter {
345
+ from {
346
+ opacity: 0;
347
+ transform: translateX(-1rem);
348
+ }
349
+
350
+ to {
351
+ opacity: 1;
352
+ transform: translateX(0);
353
+ }
354
+ }
355
+ }
@@ -0,0 +1,2 @@
1
+ export * from './app-navigation/index.tsx';
2
+ //# sourceMappingURL=app-navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-navigation.d.ts","sourceRoot":"","sources":["../../../../../packages/design-system/src/layouts/app-navigation.tsx"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './app-navigation/index.js';
2
+ //# sourceMappingURL=app-navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-navigation.js","sourceRoot":"","sources":["../../../../../../packages/design-system/src/layouts/app-navigation.tsx"],"names":[],"mappings":"AAAA,cAAc,2BAA4B,CAAA"}
@@ -30,7 +30,6 @@
30
30
  }
31
31
 
32
32
  [data-kv-design-system][data-presentation="grouped"] :is([data-ui="app-main"], [data-ui="modal-layer"]) {
33
- color-scheme: light;
34
33
  --kv-page-chrome-bg: var(--kv-page-bg);
35
34
  color: var(--kv-text-main);
36
35
  }
@@ -92,18 +91,18 @@
92
91
  }
93
92
 
94
93
  [data-kv-design-system][data-presentation="grouped"] [data-ui="record-page-aside"] {
94
+ margin: var(--kv-space-3) var(--kv-space-3) var(--kv-space-3) 0;
95
95
  padding: var(--kv-space-3);
96
+ border: 1px solid var(--kv-panel-border);
97
+ border-radius: var(--kv-radius-md);
98
+ background: var(--kv-panel-bg);
96
99
  }
97
100
 
98
101
  [data-kv-design-system][data-presentation="grouped"] [data-ui="record-page-aside"] > [data-ui="stack"] {
99
102
  gap: var(--kv-space-3);
100
103
  }
101
104
 
102
- [data-kv-design-system][data-presentation="grouped"] [data-ui="record-page-aside"] {
103
- background: var(--kv-panel-bg);
104
- }
105
-
106
- /* The context column already owns its white background. */
105
+ /* The context surface already owns its background. */
107
106
  [data-kv-design-system][data-presentation="grouped"] [data-ui="record-page-aside"] [data-ui="metric"] {
108
107
  padding: 0;
109
108
  min-height: 0;
@@ -112,6 +111,12 @@
112
111
  background: transparent;
113
112
  }
114
113
 
114
+ @media (max-width: 63.9375rem) {
115
+ [data-kv-design-system][data-presentation="grouped"] [data-ui="record-page-aside"] {
116
+ margin: 0 var(--kv-space-3) var(--kv-space-3);
117
+ }
118
+ }
119
+
115
120
  [data-kv-design-system][data-presentation="grouped"] [data-ui="surface"] [data-ui="disclosure"] {
116
121
  border: 0;
117
122
  border-radius: 0;
@@ -1,5 +1,14 @@
1
1
  import type { JSXChild, TemplateResult } from '@ketvietlab/ketjs-view';
2
- export declare const HOOKS: readonly ['nav-list', 'nav-item', 'nav-item-leading', 'nav-item-label', 'nav-item-count', 'tabs', 'tab', 'tab-count'];
2
+ export declare const HOOKS: readonly ['breadcrumbs', 'breadcrumb', 'nav-list', 'nav-item', 'nav-item-leading', 'nav-item-label', 'nav-item-count', 'tabs', 'tab', 'tab-count'];
3
+ export type BreadcrumbItem = {
4
+ id?: string;
5
+ label: string;
6
+ href?: string;
7
+ };
8
+ export declare const Breadcrumbs: (props: {
9
+ label: string;
10
+ items: readonly BreadcrumbItem[];
11
+ }) => TemplateResult;
3
12
  export type NavItemProps = {
4
13
  label: string;
5
14
  href: string;
@@ -22,5 +31,6 @@ export type TabItem = {
22
31
  export declare const Tabs: (props: {
23
32
  label: string;
24
33
  items: readonly TabItem[];
34
+ extension?: JSXChild;
25
35
  }) => TemplateResult;
26
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/design-system/src/primitives/navigation/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEtE,eAAO,MAAM,KAAK,YAChB,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,EACN,KAAK,EACL,WAAW,CACH,CAAA;AAEV,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,QAAQ,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,OAAO,UAAW,YAAY,KAAG,cAe7C,CAAA;AAED,eAAO,MAAM,OAAO,UAAW;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;CAAE,KAAG,cAUlF,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,IAAI,UAAW;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,KAAG,cAkB1E,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/design-system/src/primitives/navigation/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEtE,eAAO,MAAM,KAAK,YAChB,aAAa,EACb,YAAY,EACZ,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,EACN,KAAK,EACL,WAAW,CACH,CAAA;AAEV,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,eAAO,MAAM,WAAW,UAAW;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAA;CAAE,KAAG,cAkBxF,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,QAAQ,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,OAAO,UAAW,YAAY,KAAG,cAe7C,CAAA;AAED,eAAO,MAAM,OAAO,UAAW;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;CAAE,KAAG,cAUlF,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,IAAI,UAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,SAAS,OAAO,EAAE,CAAA;IACzB,SAAS,CAAC,EAAE,QAAQ,CAAA;CACrB,KAAG,cAmBH,CAAA"}
@@ -1,6 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@ketvietlab/ketjs-view/jsx-runtime";
2
2
  import { each } from '@ketvietlab/ketjs-view';
3
3
  export const HOOKS = [
4
+ 'breadcrumbs',
5
+ 'breadcrumb',
4
6
  'nav-list',
5
7
  'nav-item',
6
8
  'nav-item-leading',
@@ -10,7 +12,8 @@ export const HOOKS = [
10
12
  'tab',
11
13
  'tab-count',
12
14
  ];
15
+ export const Breadcrumbs = (props) => (_jsx("nav", { "data-ui": "breadcrumbs", "aria-label": props.label, children: _jsx("ol", { children: each(props.items, (item, index) => item.id ?? `${index}:${item.label}`, (item, index) => (_jsx("li", { "data-ui": "breadcrumb", children: item.href !== undefined && index < props.items.length - 1 ? (_jsx("a", { href: item.href, children: item.label })) : (_jsx("span", { "aria-current": index === props.items.length - 1 ? 'page' : null, children: item.label })) }))) }) }));
13
16
  export const NavItem = (props) => (_jsxs("a", { "data-ui": "nav-item", "data-active": props.active === true ? 'true' : null, href: props.href, "aria-current": props.active === true ? 'page' : null, children: [props.leading !== undefined && (_jsx("span", { "data-ui": "nav-item-leading", "aria-hidden": "true", children: props.leading })), _jsx("span", { "data-ui": "nav-item-label", children: props.label }), props.count !== undefined && _jsx("span", { "data-ui": "nav-item-count", children: String(props.count) })] }));
14
17
  export const NavList = (props) => (_jsx("nav", { "data-ui": "nav-list", "aria-label": props.label, children: each(props.items, (item) => `${item.href}:${item.label}`, (item) => (_jsx(NavItem, { ...item }))) }));
15
- export const Tabs = (props) => (_jsx("nav", { "data-ui": "tabs", "aria-label": props.label, children: each(props.items, (item) => item.id, (item) => (_jsxs("a", { "data-ui": "tab", "data-active": item.active === true ? 'true' : null, href: item.href, "aria-current": item.active === true ? 'page' : null, children: [item.label, item.count !== undefined && _jsx("span", { "data-ui": "tab-count", children: String(item.count) })] }))) }));
18
+ export const Tabs = (props) => (_jsxs("nav", { "data-ui": "tabs", "aria-label": props.label, children: [each(props.items, (item) => item.id, (item) => (_jsxs("a", { "data-ui": "tab", "data-active": item.active === true ? 'true' : null, href: item.href, "aria-current": item.active === true ? 'page' : null, children: [item.label, item.count !== undefined && _jsx("span", { "data-ui": "tab-count", children: String(item.count) })] }))), props.extension] }));
16
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/design-system/src/primitives/navigation/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAG7C,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,UAAU;IACV,UAAU;IACV,kBAAkB;IAClB,gBAAgB;IAChB,gBAAgB;IAChB,MAAM;IACN,KAAK;IACL,WAAW;CACH,CAAA;AAUV,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAmB,EAAkB,EAAE,CAAC,CAC9D,wBACU,UAAU,iBACL,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAClD,IAAI,EAAE,KAAK,CAAC,IAAI,kBACF,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,aAElD,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,CAC9B,0BAAc,kBAAkB,iBAAa,MAAM,YAChD,KAAK,CAAC,OAAO,GACT,CACR,EACD,0BAAc,gBAAgB,YAAE,KAAK,CAAC,KAAK,GAAQ,EAClD,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,0BAAc,gBAAgB,YAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAQ,IACvF,CACL,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAwD,EAAkB,EAAE,CAAC,CACnG,yBAAa,UAAU,gBAAa,KAAK,CAAC,KAAK,YAC5C,IAAI,CACH,KAAK,CAAC,KAAK,EACX,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,EACtC,CAAC,IAAI,EAAE,EAAE,CAAC,CACR,KAAC,OAAO,OAAK,IAAI,GAAI,CACtB,CACF,GACG,CACP,CAAA;AAUD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,KAAmD,EAAkB,EAAE,CAAC,CAC3F,yBAAa,MAAM,gBAAa,KAAK,CAAC,KAAK,YACxC,IAAI,CACH,KAAK,CAAC,KAAK,EACX,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EACjB,CAAC,IAAI,EAAE,EAAE,CAAC,CACR,wBACU,KAAK,iBACA,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EACjD,IAAI,EAAE,IAAI,CAAC,IAAI,kBACD,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,aAEjD,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,0BAAc,WAAW,YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAQ,IAChF,CACL,CACF,GACG,CACP,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/design-system/src/primitives/navigation/index.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,55 @@
1
1
  @layer ket.app {
2
+ :where([data-kv-design-system]) [data-ui="breadcrumbs"] {
3
+ min-width: 0;
4
+ }
5
+
6
+ :where([data-kv-design-system]) [data-ui="breadcrumbs"] ol {
7
+ display: flex;
8
+ min-width: 0;
9
+ align-items: center;
10
+ gap: var(--kv-space-1-5);
11
+ padding: 0;
12
+ margin: 0;
13
+ color: var(--kv-text-muted);
14
+ font-size: var(--kv-text-sm);
15
+ list-style: none;
16
+ }
17
+
18
+ :where([data-kv-design-system]) [data-ui="breadcrumb"] {
19
+ display: inline-flex;
20
+ min-width: 0;
21
+ align-items: center;
22
+ gap: var(--kv-space-1-5);
23
+ }
24
+
25
+ :where([data-kv-design-system]) [data-ui="breadcrumb"] + [data-ui="breadcrumb"]::before {
26
+ flex: none;
27
+ color: var(--kv-border-strong);
28
+ content: "/";
29
+ }
30
+
31
+ :where([data-kv-design-system]) [data-ui="breadcrumb"] :is(a, span) {
32
+ overflow: hidden;
33
+ color: inherit;
34
+ text-overflow: ellipsis;
35
+ white-space: nowrap;
36
+ }
37
+
38
+ :where([data-kv-design-system]) [data-ui="breadcrumb"] a {
39
+ text-decoration: none;
40
+ }
41
+
42
+ :where([data-kv-design-system]) [data-ui="breadcrumb"] a:hover {
43
+ color: var(--kv-text-main);
44
+ text-decoration: underline;
45
+ text-underline-offset: 0.1875rem;
46
+ }
47
+
48
+ :where([data-kv-design-system]) [data-ui="breadcrumb"] [aria-current="page"] {
49
+ color: var(--kv-text-main);
50
+ font-weight: var(--kv-weight-medium);
51
+ }
52
+
2
53
  :where([data-kv-design-system]) [data-ui="nav-list"] {
3
54
  display: grid;
4
55
  gap: var(--kv-space-1);
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/design-system/src/runtime/index.js"],"names":[],"mappings":"AAmBA;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,UAHhC,UAAU,KACR,MAAM,IAoLlB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/design-system/src/runtime/index.js"],"names":[],"mappings":"AAsBA;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,UAHhC,UAAU,KACR,MAAM,IAyVlB,CAAA"}