@kerfjs/ui 5.0.0-beta.49 → 5.0.0-beta.51
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/README.md +69 -15
- package/ai/catalog-authoring.json +12 -1
- package/ai/catalog-authoring.schema.json +49 -1
- package/ai/compile-time-contracts-v1.json +19 -2
- package/ai/compile-time-contracts-v1.schema.json +1 -0
- package/ai/component-catalog-v2-overrides.json +7 -0
- package/ai/component-catalog-v2.d.ts +19 -1
- package/ai/component-catalog-v2.json +920 -149
- package/ai/component-catalog-v2.schema.json +33 -1
- package/ai/component-catalog.json +689 -153
- package/ai/component-catalog.schema.json +21 -1
- package/ai/public-api-signatures-v1.md +404 -184
- package/ai/skill.md +31 -14
- package/ai/webawesome-jsx-signatures-v1.md +1 -1
- package/analyzer/index.mjs +105 -35
- package/dist/app-tab.d.ts +3 -1
- package/dist/app-tab.js +1 -1
- package/dist/badge.d.ts +24 -0
- package/dist/badge.js +3 -0
- package/dist/badge.js.map +1 -0
- package/dist/browser/badge.js +3 -0
- package/dist/browser/list-header.js +1 -0
- package/dist/browser/state-banner.js +1 -0
- package/dist/catalog-resources.d.ts +2 -2
- package/dist/catalog.d.ts +47 -125
- package/dist/catalog.js +429 -262
- package/dist/catalog.js.map +1 -1
- package/dist/{chunk-W2FK7ZNY.js → chunk-4R777DUZ.js} +10 -2
- package/dist/chunk-4R777DUZ.js.map +1 -0
- package/dist/{chunk-OMSRSL3B.js → chunk-5FZZMIMD.js} +6 -4
- package/dist/chunk-5FZZMIMD.js.map +1 -0
- package/dist/{chunk-AQFWBG23.js → chunk-5PMGQDG7.js} +5 -3
- package/dist/chunk-5PMGQDG7.js.map +1 -0
- package/dist/{chunk-SOK5EUF7.js → chunk-6ZXOQEAN.js} +4 -2
- package/dist/chunk-6ZXOQEAN.js.map +1 -0
- package/dist/{chunk-I4V3UDSA.js → chunk-7GUQYHKA.js} +25 -6
- package/dist/chunk-7GUQYHKA.js.map +1 -0
- package/dist/{chunk-XKFRMGMW.js → chunk-7IUSV4XG.js} +3 -1
- package/dist/chunk-7IUSV4XG.js.map +1 -0
- package/dist/{chunk-IU4QUY5I.js → chunk-AEPXGCNF.js} +20 -3
- package/dist/chunk-AEPXGCNF.js.map +1 -0
- package/dist/{chunk-VDUJZF5G.js → chunk-CMUIXJZM.js} +2 -2
- package/dist/{chunk-VDUJZF5G.js.map → chunk-CMUIXJZM.js.map} +1 -1
- package/dist/{chunk-DAO2VFTT.js → chunk-D547PH4L.js} +7 -5
- package/dist/chunk-D547PH4L.js.map +1 -0
- package/dist/{chunk-2TYUFZUC.js → chunk-D7GWXIAS.js} +4 -2
- package/dist/chunk-D7GWXIAS.js.map +1 -0
- package/dist/{chunk-E34TE2ZI.js → chunk-DVZCMMB3.js} +6 -4
- package/dist/chunk-DVZCMMB3.js.map +1 -0
- package/dist/{chunk-6NDBE2OK.js → chunk-E36EVCKG.js} +5 -3
- package/dist/chunk-E36EVCKG.js.map +1 -0
- package/dist/chunk-EKYZCRCX.js +256 -0
- package/dist/chunk-EKYZCRCX.js.map +1 -0
- package/dist/{chunk-TIGSG6BX.js → chunk-HJKRCKDR.js} +7 -3
- package/dist/chunk-HJKRCKDR.js.map +1 -0
- package/dist/{chunk-Y6LYKFXY.js → chunk-HMQ2ZDGG.js} +5 -3
- package/dist/chunk-HMQ2ZDGG.js.map +1 -0
- package/dist/{chunk-UDHHKZWO.js → chunk-JM53SMVF.js} +9 -5
- package/dist/chunk-JM53SMVF.js.map +1 -0
- package/dist/{chunk-OGTJNHRG.js → chunk-JMGKM7RK.js} +6 -4
- package/dist/chunk-JMGKM7RK.js.map +1 -0
- package/dist/{chunk-GYGM363P.js → chunk-KX7DP2GO.js} +17 -7
- package/dist/chunk-KX7DP2GO.js.map +1 -0
- package/dist/{chunk-OL4TC3U2.js → chunk-MO56ZZLG.js} +6 -2
- package/dist/chunk-MO56ZZLG.js.map +1 -0
- package/dist/{chunk-VXFGMDA7.js → chunk-MTM43SJO.js} +16 -2
- package/dist/chunk-MTM43SJO.js.map +1 -0
- package/dist/{chunk-ZPWZIVI6.js → chunk-N3GKMPDW.js} +7 -3
- package/dist/chunk-N3GKMPDW.js.map +1 -0
- package/dist/{chunk-DYBPI5O2.js → chunk-NDUGJ4TU.js} +4 -2
- package/dist/chunk-NDUGJ4TU.js.map +1 -0
- package/dist/{chunk-I45QO2IZ.js → chunk-NMGTHYW3.js} +7 -5
- package/dist/chunk-NMGTHYW3.js.map +1 -0
- package/dist/{chunk-WSXUPSID.js → chunk-NN6GYOA2.js} +7 -3
- package/dist/chunk-NN6GYOA2.js.map +1 -0
- package/dist/{chunk-OGNE3OFT.js → chunk-NZXWU4R5.js} +24 -3
- package/dist/chunk-NZXWU4R5.js.map +1 -0
- package/dist/{chunk-V6GQKOX2.js → chunk-O3RCCSQJ.js} +6 -4
- package/dist/chunk-O3RCCSQJ.js.map +1 -0
- package/dist/{chunk-WVLMZ5SG.js → chunk-S4QRSBFI.js} +25 -3
- package/dist/chunk-S4QRSBFI.js.map +1 -0
- package/dist/{chunk-CK6P5AUK.js → chunk-UBH743HV.js} +10 -7
- package/dist/chunk-UBH743HV.js.map +1 -0
- package/dist/{chunk-T7DOWS6T.js → chunk-ULCDZTWL.js} +7 -4
- package/dist/chunk-ULCDZTWL.js.map +1 -0
- package/dist/{chunk-V6HCTCVD.js → chunk-UPZ6EEJN.js} +9 -5
- package/dist/chunk-UPZ6EEJN.js.map +1 -0
- package/dist/{chunk-CAB6NQ2T.js → chunk-VOCPXGQN.js} +3 -1
- package/dist/chunk-VOCPXGQN.js.map +1 -0
- package/dist/chunk-XD7DWYXG.js +34 -0
- package/dist/chunk-XD7DWYXG.js.map +1 -0
- package/dist/{chunk-B6JYRX3P.js → chunk-ZIYOJFZD.js} +43 -4
- package/dist/chunk-ZIYOJFZD.js.map +1 -0
- package/dist/{chunk-EYALJQQD.js → chunk-ZK5EGVFP.js} +4 -2
- package/dist/chunk-ZK5EGVFP.js.map +1 -0
- package/dist/{chunk-6WTETUZ6.js → chunk-ZLWQZUGF.js} +8 -2
- package/dist/chunk-ZLWQZUGF.js.map +1 -0
- package/dist/collapsible-panel.d.ts +4 -2
- package/dist/collapsible-panel.js +4 -2
- package/dist/collapsible-panel.js.map +1 -1
- package/dist/css-values.d.ts +39 -3
- package/dist/css-values.js +1 -1
- package/dist/disclosure-arrow.d.ts +3 -1
- package/dist/disclosure-arrow.js +1 -1
- package/dist/empty-state.d.ts +3 -1
- package/dist/empty-state.js +1 -1
- package/dist/floating-toolbar.d.ts +3 -1
- package/dist/floating-toolbar.js +1 -1
- package/dist/grid.d.ts +17 -1
- package/dist/grid.js +2 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.js +34 -33
- package/dist/list-action-row.d.ts +3 -1
- package/dist/list-action-row.js +1 -1
- package/dist/list-header.d.ts +6 -1
- package/dist/list-header.js +2 -1
- package/dist/list-inset-control.d.ts +3 -1
- package/dist/list-inset-control.js +1 -1
- package/dist/list-inset-text.d.ts +3 -1
- package/dist/list-inset-text.js +1 -1
- package/dist/list-item.d.ts +3 -1
- package/dist/list-item.js +1 -1
- package/dist/list.d.ts +23 -2
- package/dist/list.js +2 -1
- package/dist/loading-spinner.d.ts +3 -1
- package/dist/loading-spinner.js +1 -1
- package/dist/lucide-icon.d.ts +3 -1
- package/dist/lucide-icon.js +1 -1
- package/dist/nav-stack.d.ts +3 -1
- package/dist/nav-stack.js +1 -1
- package/dist/pane.d.ts +19 -2
- package/dist/pane.js +1 -1
- package/dist/resizable-region.d.ts +5 -2
- package/dist/resizable-region.js +1 -1
- package/dist/row.d.ts +21 -1
- package/dist/row.js +2 -1
- package/dist/segmented-control.d.ts +3 -1
- package/dist/segmented-control.js +1 -1
- package/dist/select.d.ts +16 -4
- package/dist/select.js +1 -1
- package/dist/skeleton.d.ts +3 -1
- package/dist/skeleton.js +1 -1
- package/dist/spacer.d.ts +3 -1
- package/dist/spacer.js +1 -1
- package/dist/split-view.d.ts +3 -1
- package/dist/split-view.js +24 -5
- package/dist/split-view.js.map +1 -1
- package/dist/state-banner.d.ts +3 -1
- package/dist/state-banner.js +2 -1
- package/dist/styles/badge.css +86 -0
- package/dist/styles/catalog/components/catalog-detail.css +35 -0
- package/dist/styles/catalog/components/catalog-example-stack.css +9 -0
- package/dist/styles/catalog/components/catalog-example.css +180 -0
- package/dist/styles/catalog/components/catalog-resource-footer.css +37 -0
- package/dist/styles/catalog/components/catalog-secondary-sections.css +38 -0
- package/dist/styles/catalog/components/catalog-section-list.css +22 -0
- package/dist/styles/catalog/components/catalog-sidebar.css +82 -0
- package/dist/styles/catalog/components/catalog-stage.css +60 -0
- package/dist/styles/catalog/components/catalog.css +22 -0
- package/dist/styles/catalog.css +10 -587
- package/dist/styles/collapsible-panel.css +132 -4
- package/dist/styles/document.css +23 -0
- package/dist/styles/foundation.css +21 -7
- package/dist/styles/grid.css +10 -0
- package/dist/styles/list-header.css +49 -60
- package/dist/styles/list-inset-control.css +8 -1
- package/dist/styles/list-item.css +6 -0
- package/dist/styles/list.css +11 -0
- package/dist/styles/nav-stack.css +89 -2
- package/dist/styles/pane.css +86 -1
- package/dist/styles/resizable-region.css +117 -5
- package/dist/styles/row.css +10 -0
- package/dist/styles/select.css +39 -7
- package/dist/styles/split-view.css +108 -2
- package/dist/styles/state-banner.css +0 -27
- package/dist/styles/styles.css +1 -0
- package/dist/styles/tab-bar.css +6 -1
- package/dist/styles/tab-scaffold.css +64 -1
- package/dist/styles/text.css +10 -0
- package/dist/styles/token-search-field.css +5 -40
- package/dist/styles/toolbar-control-group.css +198 -25
- package/dist/styles/toolbar-text.css +8 -1
- package/dist/styles/toolbar.css +169 -5
- package/dist/styles/webawesome.css +70 -9
- package/dist/styles/workbench.css +136 -4
- package/dist/sunken-panel.d.ts +3 -1
- package/dist/sunken-panel.js +1 -1
- package/dist/surface-scaffold.d.ts +6 -2
- package/dist/surface-scaffold.js +1 -1
- package/dist/tab-bar.d.ts +8 -1
- package/dist/tab-bar.js +1 -1
- package/dist/tab-scaffold.d.ts +3 -1
- package/dist/tab-scaffold.js +3 -1
- package/dist/tab-scaffold.js.map +1 -1
- package/dist/text.d.ts +9 -5
- package/dist/text.js +1 -1
- package/dist/token-search-field.d.ts +5 -1
- package/dist/token-search-field.js +1 -1
- package/dist/toolbar-control-group.d.ts +33 -3
- package/dist/toolbar-control-group.js +1 -1
- package/dist/toolbar-text.d.ts +3 -1
- package/dist/toolbar-text.js +1 -1
- package/dist/toolbar.d.ts +30 -1
- package/dist/toolbar.js +1 -1
- package/dist/types-CEsieBZi.d.ts +69 -0
- package/dist/value-table.d.ts +6 -2
- package/dist/value-table.js +1 -1
- package/dist/wire-resizable-regions.js +1 -1
- package/dist/wire-sidebar.d.ts +18 -3
- package/dist/wire-sidebar.js +95 -14
- package/dist/wire-sidebar.js.map +1 -1
- package/dist/wire-token-search-fields.js +1 -1
- package/dist/workbench.d.ts +3 -1
- package/dist/workbench.js +3 -1
- package/dist/workbench.js.map +1 -1
- package/docs/accessibility.md +56 -9
- package/docs/app-layouts.md +73 -0
- package/docs/catalog.md +48 -9
- package/docs/collapsible-panel.md +81 -8
- package/docs/component-contract.md +96 -28
- package/docs/component-integration.md +9 -4
- package/docs/component-selection.md +36 -15
- package/docs/design/templates/list/stack-dark.svg +1 -1
- package/docs/design/templates/list/stack.svg +1 -1
- package/docs/design/templates/list-dark.svg +1 -1
- package/docs/design/templates/list-header/action-dark.svg +1 -1
- package/docs/design/templates/list-header/action.svg +1 -1
- package/docs/design/templates/list-header/count-dark.svg +1 -1
- package/docs/design/templates/list-header/count.svg +1 -1
- package/docs/design/templates/list-header/inline-action-dark.svg +1 -1
- package/docs/design/templates/list-header/inline-action.svg +1 -1
- package/docs/design/templates/list-header/toggle-expanded-dark.svg +1 -1
- package/docs/design/templates/list-header/toggle-expanded.svg +1 -1
- package/docs/design/templates/list-header-dark.svg +1 -1
- package/docs/design/templates/list-header.svg +1 -1
- package/docs/design/templates/list.svg +1 -1
- package/docs/design/templates/state-banner/info-badge-dark.svg +1 -1
- package/docs/design/templates/state-banner/info-badge.svg +1 -1
- package/docs/design/templates/state-banner-dark.svg +1 -1
- package/docs/design/templates/state-banner.svg +1 -1
- package/docs/design/templates/toolbar/title-and-actions-dark.svg +1 -1
- package/docs/design/templates/toolbar/title-and-actions.svg +1 -1
- package/docs/design/templates/toolbar-control-group/with-text-dark.svg +1 -1
- package/docs/design/templates/toolbar-control-group/with-text.svg +1 -1
- package/docs/design/templates/toolbar-control-group-dark.svg +1 -1
- package/docs/design/templates/toolbar-control-group.svg +1 -1
- package/docs/design/templates/toolbar-dark.svg +1 -1
- package/docs/design/templates/toolbar-text/default-dark.svg +1 -1
- package/docs/design/templates/toolbar-text/default.svg +1 -1
- package/docs/design/templates/toolbar-text/large-dark.svg +1 -1
- package/docs/design/templates/toolbar-text/large.svg +1 -1
- package/docs/design/templates/toolbar-text/small-dark.svg +1 -1
- package/docs/design/templates/toolbar-text/small.svg +1 -1
- package/docs/design/templates/toolbar-text-dark.svg +1 -1
- package/docs/design/templates/toolbar-text.svg +1 -1
- package/docs/design/templates/toolbar.svg +1 -1
- package/docs/design-philosophy.md +6 -5
- package/docs/document-baseline.md +31 -0
- package/docs/layout.md +86 -21
- package/docs/nav-stack.md +8 -0
- package/docs/recipes.md +78 -43
- package/docs/split-view.md +8 -0
- package/docs/tab-scaffold.md +4 -2
- package/docs/type-contracts.md +21 -16
- package/docs/ui-analyzer.md +19 -0
- package/docs/ui-evaluator.md +17 -0
- package/docs/ux-demo.md +8 -8
- package/docs/webawesome-theme.md +25 -6
- package/docs/workbench.md +20 -1
- package/evaluator/index.mjs +73 -8
- package/llms.txt +61 -23
- package/package.json +12 -3
- package/ux-demo/recipes/app-shell.tsx +244 -184
- package/ux-demo/recipes/collapsible-sidebar.tsx +175 -116
- package/ux-demo/recipes/compact-toolbar.tsx +119 -102
- package/ux-demo/recipes/composer-form.tsx +79 -69
- package/ux-demo/recipes/list-detail-dialog.tsx +120 -136
- package/ux-demo/recipes/list-workspace-states.tsx +85 -79
- package/ux-demo/recipes/loaders.ts +5 -2
- package/ux-demo/recipes/loading-inspector.tsx +151 -134
- package/ux-demo/recipes/navigation-sidebar.tsx +93 -80
- package/ux-demo/recipes/navigation-stack.tsx +33 -22
- package/ux-demo/recipes/types.ts +14 -0
- package/ux-demo/recipes/workspace-header.tsx +73 -57
- package/dist/chunk-2TYUFZUC.js.map +0 -1
- package/dist/chunk-6NDBE2OK.js.map +0 -1
- package/dist/chunk-6WTETUZ6.js.map +0 -1
- package/dist/chunk-AQFWBG23.js.map +0 -1
- package/dist/chunk-B6JYRX3P.js.map +0 -1
- package/dist/chunk-CAB6NQ2T.js.map +0 -1
- package/dist/chunk-CK6P5AUK.js.map +0 -1
- package/dist/chunk-DAO2VFTT.js.map +0 -1
- package/dist/chunk-DYBPI5O2.js.map +0 -1
- package/dist/chunk-E34TE2ZI.js.map +0 -1
- package/dist/chunk-EYALJQQD.js.map +0 -1
- package/dist/chunk-GYGM363P.js.map +0 -1
- package/dist/chunk-I45QO2IZ.js.map +0 -1
- package/dist/chunk-I4V3UDSA.js.map +0 -1
- package/dist/chunk-IU4QUY5I.js.map +0 -1
- package/dist/chunk-OGNE3OFT.js.map +0 -1
- package/dist/chunk-OGTJNHRG.js.map +0 -1
- package/dist/chunk-OL4TC3U2.js.map +0 -1
- package/dist/chunk-OMSRSL3B.js.map +0 -1
- package/dist/chunk-SOK5EUF7.js.map +0 -1
- package/dist/chunk-T7DOWS6T.js.map +0 -1
- package/dist/chunk-TIGSG6BX.js.map +0 -1
- package/dist/chunk-UDHHKZWO.js.map +0 -1
- package/dist/chunk-V6GQKOX2.js.map +0 -1
- package/dist/chunk-V6HCTCVD.js.map +0 -1
- package/dist/chunk-VXFGMDA7.js.map +0 -1
- package/dist/chunk-W2FK7ZNY.js.map +0 -1
- package/dist/chunk-WN52USHV.js +0 -115
- package/dist/chunk-WN52USHV.js.map +0 -1
- package/dist/chunk-WSXUPSID.js.map +0 -1
- package/dist/chunk-WVLMZ5SG.js.map +0 -1
- package/dist/chunk-XKFRMGMW.js.map +0 -1
- package/dist/chunk-Y6LYKFXY.js.map +0 -1
- package/dist/chunk-ZPWZIVI6.js.map +0 -1
- package/ux-demo/recipes/recipes.css +0 -453
package/dist/split-view.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { NavStack } from './chunk-
|
|
1
|
+
import { NavStack } from './chunk-5PMGQDG7.js';
|
|
2
|
+
import { ResizableRegion } from './chunk-VOCPXGQN.js';
|
|
2
3
|
|
|
3
|
-
import { ResizableRegion } from './chunk-CAB6NQ2T.js';
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
import { jsx, jsxs } from 'kerfjs/jsx-runtime';
|
|
@@ -16,7 +16,8 @@ function SplitView({
|
|
|
16
16
|
detailTitle = "",
|
|
17
17
|
backLabel = "Back",
|
|
18
18
|
resizable,
|
|
19
|
-
className = ""
|
|
19
|
+
className = "",
|
|
20
|
+
slot
|
|
20
21
|
}) {
|
|
21
22
|
if (compact) {
|
|
22
23
|
const views = detailActive ? [
|
|
@@ -30,6 +31,7 @@ function SplitView({
|
|
|
30
31
|
id,
|
|
31
32
|
"data-component": "split-view",
|
|
32
33
|
"data-split-mode": "compact",
|
|
34
|
+
slot,
|
|
33
35
|
children: /* @__PURE__ */ jsx(
|
|
34
36
|
NavStack,
|
|
35
37
|
{
|
|
@@ -50,9 +52,25 @@ function SplitView({
|
|
|
50
52
|
size: resizable.size,
|
|
51
53
|
min: resizable.min,
|
|
52
54
|
max: resizable.max,
|
|
53
|
-
children: /* @__PURE__ */ jsx(
|
|
55
|
+
children: /* @__PURE__ */ jsx(
|
|
56
|
+
"div",
|
|
57
|
+
{
|
|
58
|
+
class: "kui-split-view__list kui-pane",
|
|
59
|
+
"data-split-list": true,
|
|
60
|
+
"data-resizable": "true",
|
|
61
|
+
children: list
|
|
62
|
+
}
|
|
63
|
+
)
|
|
54
64
|
}
|
|
55
|
-
) : /* @__PURE__ */ jsx(
|
|
65
|
+
) : /* @__PURE__ */ jsx(
|
|
66
|
+
"div",
|
|
67
|
+
{
|
|
68
|
+
class: "kui-split-view__list kui-pane",
|
|
69
|
+
"data-split-list": true,
|
|
70
|
+
"data-resizable": "false",
|
|
71
|
+
children: list
|
|
72
|
+
}
|
|
73
|
+
);
|
|
56
74
|
return /* @__PURE__ */ jsxs(
|
|
57
75
|
"div",
|
|
58
76
|
{
|
|
@@ -61,6 +79,7 @@ function SplitView({
|
|
|
61
79
|
"data-component": "split-view",
|
|
62
80
|
"data-split-mode": "split",
|
|
63
81
|
"aria-label": label,
|
|
82
|
+
slot,
|
|
64
83
|
children: [
|
|
65
84
|
listPane,
|
|
66
85
|
/* @__PURE__ */ jsx(
|
package/dist/split-view.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/split-view.tsx"],"names":[],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"sources":["../src/split-view.tsx"],"names":[],"mappings":";;;;;;;AA6CO,SAAS,SAAA,CAAU;AAAA,EACxB,EAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,YAAA,GAAe,KAAA;AAAA,EACf,SAAA,GAAY,EAAA;AAAA,EACZ,WAAA,GAAc,EAAA;AAAA,EACd,SAAA,GAAY,MAAA;AAAA,EACZ,SAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ;AACF,CAAA,EAAmB;AACjB,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,MAAM,QAAQ,YAAA,GACV;AAAA,MACE,EAAE,GAAA,EAAK,MAAA,EAAQ,KAAA,EAAO,SAAA,EAAW,SAAS,IAAA,EAAK;AAAA,MAC/C,EAAE,GAAA,EAAK,QAAA,EAAU,KAAA,EAAO,WAAA,EAAa,SAAS,MAAA;AAAO,KACvD,GACA,CAAC,EAAE,GAAA,EAAK,QAAQ,KAAA,EAAO,SAAA,EAAW,OAAA,EAAS,IAAA,EAAM,CAAA;AACrD,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,CAAA,uCAAA,EAA0C,SAAS,CAAA,CAAA,CAAG,IAAA,EAAK;AAAA,QAClE,EAAA;AAAA,QACA,gBAAA,EAAe,YAAA;AAAA,QACf,iBAAA,EAAgB,SAAA;AAAA,QAChB,IAAA;AAAA,QAEA,QAAA,kBAAA,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAI,GAAG,EAAE,CAAA,MAAA,CAAA;AAAA,YACT,KAAA;AAAA,YACA,KAAA;AAAA,YACA;AAAA;AAAA;AACF;AAAA,KACF;AAAA,EAEJ;AACA,EAAA,MAAM,WAAW,SAAA,mBACf,GAAA;AAAA,IAAC,eAAA;AAAA,IAAA;AAAA,MACC,EAAA,EAAI,GAAG,EAAE,CAAA,KAAA,CAAA;AAAA,MACT,OAAO,SAAA,IAAa,MAAA;AAAA,MACpB,MAAM,SAAA,CAAU,IAAA;AAAA,MAChB,KAAK,SAAA,CAAU,GAAA;AAAA,MACf,KAAK,SAAA,CAAU,GAAA;AAAA,MAEf,QAAA,kBAAA,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAM,+BAAA;AAAA,UACN,iBAAA,EAAe,IAAA;AAAA,UACf,gBAAA,EAAe,MAAA;AAAA,UAEd,QAAA,EAAA;AAAA;AAAA;AACH;AAAA,GACF,mBAEA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,+BAAA;AAAA,MACN,iBAAA,EAAe,IAAA;AAAA,MACf,gBAAA,EAAe,OAAA;AAAA,MAEd,QAAA,EAAA;AAAA;AAAA,GACH;AAEF,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,CAAA,eAAA,EAAkB,SAAS,CAAA,CAAA,CAAG,IAAA,EAAK;AAAA,MAC1C,EAAA;AAAA,MACA,gBAAA,EAAe,YAAA;AAAA,MACf,iBAAA,EAAgB,OAAA;AAAA,MAChB,YAAA,EAAY,KAAA;AAAA,MACZ,IAAA;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACD,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,iCAAA;AAAA,YACN,mBAAA,EAAiB,IAAA;AAAA,YACjB,cAAY,WAAA,IAAe,MAAA;AAAA,YAE1B,QAAA,EAAA;AAAA;AAAA;AACH;AAAA;AAAA,GACF;AAEJ","file":"split-view.js","sourcesContent":["import { NavStack } from './nav-stack.js';\nimport { ResizableRegion } from './resizable-region.js';\nimport type { KerfUiContent } from './semantic-content.js';\n\nexport interface SplitViewResizable {\n size: number;\n min: number;\n max: number;\n}\n\nexport interface SplitViewProps {\n id: string;\n label: string;\n /** The list (primary) pane. */\n list: KerfUiContent;\n /** The detail (secondary) pane. */\n detail: KerfUiContent;\n /**\n * Compact (\"one pane at a time\") classes — a handset or portrait tablet.\n * Derive from `deviceClass().value.compact`. When true the split collapses to\n * a `NavStack`: the list is the root and the detail is pushed over it.\n */\n compact?: boolean;\n /** In compact mode, whether the detail is currently pushed over the list. */\n detailActive?: boolean;\n /** Title/label for the list (compact NavStack root + region label). */\n listTitle?: string;\n /** Title/label for the detail (compact NavStack pushed view + region label). */\n detailTitle?: string;\n /** Back label for the compact NavStack (default \"Back\"). */\n backLabel?: string;\n /** A resizable separator on roomy classes (min/max px). Omit for a fixed split. */\n resizable?: SplitViewResizable;\n className?: string;\n /** Native named-slot assignment when composed inside a web component. */\n slot?: string;\n}\n\n/**\n * A list-detail split. On roomy classes it shows both panes side\n * by side with an optional resizable separator; on compact classes it collapses\n * to a `NavStack` (list → detail). See `docs/23-app-layouts.md` §3.2. Compose the\n * resizable wiring with `wireResizableRegions` and the compact back with\n * `wireNavStack`.\n */\nexport function SplitView({\n id,\n label,\n list,\n detail,\n compact = false,\n detailActive = false,\n listTitle = '',\n detailTitle = '',\n backLabel = 'Back',\n resizable,\n className = '',\n slot,\n}: SplitViewProps) {\n if (compact) {\n const views = detailActive\n ? [\n { key: 'list', title: listTitle, content: list },\n { key: 'detail', title: detailTitle, content: detail },\n ]\n : [{ key: 'list', title: listTitle, content: list }];\n return (\n <div\n class={`kui-split-view kui-split-view--compact ${className}`.trim()}\n id={id}\n data-component=\"split-view\"\n data-split-mode=\"compact\"\n slot={slot}\n >\n <NavStack\n id={`${id}-stack`}\n label={label}\n views={views}\n backLabel={backLabel}\n />\n </div>\n );\n }\n const listPane = resizable ? (\n <ResizableRegion\n id={`${id}-list`}\n label={listTitle || 'List'}\n size={resizable.size}\n min={resizable.min}\n max={resizable.max}\n >\n <div\n class=\"kui-split-view__list kui-pane\"\n data-split-list\n data-resizable=\"true\"\n >\n {list}\n </div>\n </ResizableRegion>\n ) : (\n <div\n class=\"kui-split-view__list kui-pane\"\n data-split-list\n data-resizable=\"false\"\n >\n {list}\n </div>\n );\n return (\n <div\n class={`kui-split-view ${className}`.trim()}\n id={id}\n data-component=\"split-view\"\n data-split-mode=\"split\"\n aria-label={label}\n slot={slot}\n >\n {listPane}\n <div\n class=\"kui-split-view__detail kui-pane\"\n data-split-detail\n aria-label={detailTitle || undefined}\n >\n {detail}\n </div>\n </div>\n );\n}\n"]}
|
package/dist/state-banner.d.ts
CHANGED
|
@@ -15,7 +15,9 @@ interface StateBannerProps {
|
|
|
15
15
|
className?: string;
|
|
16
16
|
/** Render the title, badge, and detail as unanimated loading skeletons, keeping the icon and tone. */
|
|
17
17
|
placeholder?: boolean;
|
|
18
|
+
/** Native named-slot assignment when composed inside a web component. */
|
|
19
|
+
slot?: string;
|
|
18
20
|
}
|
|
19
|
-
declare function StateBanner({ title, detail, badge, icon, action, tone, urgency, className, placeholder, }: StateBannerProps): SafeHtml;
|
|
21
|
+
declare function StateBanner({ title, detail, badge, icon, action, tone, urgency, className, placeholder, slot, }: StateBannerProps): SafeHtml;
|
|
20
22
|
|
|
21
23
|
export { StateBanner, type StateBannerProps, type StateBannerTone, type StateBannerUrgency };
|
package/dist/state-banner.js
CHANGED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
.kui-badge {
|
|
2
|
+
--_kui-badge-fill-quiet: var(--kui-color-neutral-fill-quiet);
|
|
3
|
+
--_kui-badge-fill-solid: var(--kui-color-neutral-on-normal);
|
|
4
|
+
--_kui-badge-border: var(--kui-color-neutral-border-normal);
|
|
5
|
+
--_kui-badge-on-quiet: var(--kui-color-neutral-on-quiet);
|
|
6
|
+
--_kui-badge-on-solid: var(--kui-color-surface);
|
|
7
|
+
|
|
8
|
+
display: inline-flex;
|
|
9
|
+
min-width: 0;
|
|
10
|
+
min-height: 1.5rem;
|
|
11
|
+
padding-inline: var(--kui-layout-item-padding, 0.5rem);
|
|
12
|
+
box-sizing: border-box;
|
|
13
|
+
border: 1px solid transparent;
|
|
14
|
+
border-radius: var(--kui-layout-pill-radius, calc(1px + 1.3125rem));
|
|
15
|
+
color: var(--_kui-badge-on-quiet);
|
|
16
|
+
background: var(--_kui-badge-fill-quiet);
|
|
17
|
+
align-items: center;
|
|
18
|
+
justify-content: center;
|
|
19
|
+
flex: none;
|
|
20
|
+
font-size: var(--kui-font-xs);
|
|
21
|
+
font-weight: 650;
|
|
22
|
+
line-height: 1;
|
|
23
|
+
white-space: nowrap;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.kui-badge[data-tone="brand"] {
|
|
27
|
+
--_kui-badge-fill-quiet: var(--kui-color-brand-fill-quiet);
|
|
28
|
+
--_kui-badge-fill-solid: var(--kui-color-brand-on-fill);
|
|
29
|
+
--_kui-badge-border: var(--kui-color-brand-border-normal);
|
|
30
|
+
--_kui-badge-on-quiet: var(--kui-color-brand-on-quiet);
|
|
31
|
+
--_kui-badge-on-solid: var(--kui-color-surface);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.kui-badge[data-tone="pop"] {
|
|
35
|
+
--_kui-badge-fill-quiet: var(--kui-color-pop-fill-quiet);
|
|
36
|
+
--_kui-badge-fill-solid: var(--kui-color-pop-on-fill);
|
|
37
|
+
--_kui-badge-border: var(--kui-color-pop-border-normal);
|
|
38
|
+
--_kui-badge-on-quiet: var(--kui-color-pop-on-quiet);
|
|
39
|
+
--_kui-badge-on-solid: var(--kui-color-surface);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.kui-badge[data-tone="success"] {
|
|
43
|
+
--_kui-badge-fill-quiet: var(--kui-color-success-fill-quiet);
|
|
44
|
+
--_kui-badge-fill-solid: var(--kui-color-success-on-fill);
|
|
45
|
+
--_kui-badge-border: var(--kui-color-success-border-normal);
|
|
46
|
+
--_kui-badge-on-quiet: var(--kui-color-success-on-quiet);
|
|
47
|
+
--_kui-badge-on-solid: var(--kui-color-surface);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.kui-badge[data-tone="warning"] {
|
|
51
|
+
--_kui-badge-fill-quiet: var(--kui-color-warning-fill-quiet);
|
|
52
|
+
--_kui-badge-fill-solid: var(--kui-color-warning-on-fill);
|
|
53
|
+
--_kui-badge-border: var(--kui-color-warning-border-normal);
|
|
54
|
+
--_kui-badge-on-quiet: var(--kui-color-warning-on-quiet);
|
|
55
|
+
--_kui-badge-on-solid: var(--kui-color-surface);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.kui-badge[data-tone="danger"] {
|
|
59
|
+
--_kui-badge-fill-quiet: var(--kui-color-danger-fill-quiet);
|
|
60
|
+
--_kui-badge-fill-solid: var(--kui-color-danger-on-quiet);
|
|
61
|
+
--_kui-badge-border: var(--kui-color-danger-border-normal);
|
|
62
|
+
--_kui-badge-on-quiet: var(--kui-color-danger-on-quiet);
|
|
63
|
+
--_kui-badge-on-solid: var(--kui-color-surface);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.kui-badge[data-appearance="solid"] {
|
|
67
|
+
color: var(--_kui-badge-on-solid);
|
|
68
|
+
background: var(--_kui-badge-fill-solid);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.kui-badge[data-appearance="outline"] {
|
|
72
|
+
border-color: var(--_kui-badge-border);
|
|
73
|
+
color: var(--_kui-badge-on-quiet);
|
|
74
|
+
background: transparent;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.kui-badge[data-shape="rounded"] {
|
|
78
|
+
border-radius: var(--kui-radius-s);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.kui-badge[data-size="compact"] {
|
|
82
|
+
min-width: 1.25rem;
|
|
83
|
+
min-height: 1.25rem;
|
|
84
|
+
padding-inline: 0.35rem;
|
|
85
|
+
font-size: var(--kui-font-2xs);
|
|
86
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
.kui-catalog__detail {
|
|
2
|
+
display: grid;
|
|
3
|
+
min-width: 0;
|
|
4
|
+
min-height: 0;
|
|
5
|
+
height: 100%;
|
|
6
|
+
grid-column: 2;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.kui-catalog__header {
|
|
10
|
+
border-block-end: 1px solid var(--kui-color-border);
|
|
11
|
+
background: var(--kui-color-surface);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.kui-catalog__description {
|
|
15
|
+
max-width: var(--kui-catalog-content-measure, 70rem);
|
|
16
|
+
margin-block: 0;
|
|
17
|
+
background: transparent;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* css-ownership: allow-root kui-catalog__detail-preview -- CatalogDetail assigns this class to its Pane content scroll owner. */
|
|
21
|
+
.kui-catalog__detail-preview {
|
|
22
|
+
background-color: var(--kui-color-surface-lowered);
|
|
23
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%238e8e93' fill-opacity='.12' d='M0 0h12v12H0zM12 12h12v12H12z'/%3E%3C/svg%3E");
|
|
24
|
+
background-position: 0 0;
|
|
25
|
+
background-repeat: repeat;
|
|
26
|
+
background-size: 1.5rem 1.5rem;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@media (max-width: 52rem) {
|
|
30
|
+
.kui-catalog__detail {
|
|
31
|
+
height: auto;
|
|
32
|
+
min-height: auto;
|
|
33
|
+
grid-column: 1;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
.kui-catalog-example {
|
|
2
|
+
display: flex;
|
|
3
|
+
width: 100%;
|
|
4
|
+
min-width: 0;
|
|
5
|
+
max-width: 100%;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
align-items: flex-start;
|
|
8
|
+
gap: 0.5rem;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.kui-catalog-example__note {
|
|
12
|
+
margin: 0;
|
|
13
|
+
padding-block: var(--kui-layout-item-padding, 0.5rem);
|
|
14
|
+
padding-inline: calc(
|
|
15
|
+
var(--kui-layout-inline-margin, 0.5rem) +
|
|
16
|
+
var(--kui-layout-item-padding, 0.5rem)
|
|
17
|
+
);
|
|
18
|
+
box-sizing: border-box;
|
|
19
|
+
border: 1px solid transparent;
|
|
20
|
+
color: var(--kui-color-text-quiet);
|
|
21
|
+
font-size: var(--kui-font-xs);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.kui-catalog-example__viewport {
|
|
25
|
+
position: relative;
|
|
26
|
+
max-width: 100%;
|
|
27
|
+
box-sizing: border-box;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.kui-catalog-example__viewport > * {
|
|
31
|
+
max-width: 100%;
|
|
32
|
+
box-sizing: border-box;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.kui-catalog-example__viewport[data-layout="grid"] {
|
|
36
|
+
display: grid;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.kui-catalog-example__viewport[data-layout="flex"] {
|
|
40
|
+
display: flex;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.kui-catalog-example__viewport[data-layout="flex-column"] {
|
|
44
|
+
display: flex;
|
|
45
|
+
flex-direction: column;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.kui-catalog-example__viewport[data-width="full"] {
|
|
49
|
+
width: 100%;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.kui-catalog-example__viewport[data-width="compact"] {
|
|
53
|
+
width: min(100%, 27.5rem);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.kui-catalog-example__viewport[data-width="medium"] {
|
|
57
|
+
width: min(100%, 40rem);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.kui-catalog-example__viewport[data-width="wide"] {
|
|
61
|
+
width: 100%;
|
|
62
|
+
max-width: 54rem;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.kui-catalog-example__viewport[data-width="text"] {
|
|
66
|
+
width: 17.5rem;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.kui-catalog-example__viewport[data-width="control"] {
|
|
70
|
+
min-width: min(24rem, 100%);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.kui-catalog-example__viewport[data-height="short"] {
|
|
74
|
+
height: 13.75rem;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.kui-catalog-example__viewport[data-height="reduced"] {
|
|
78
|
+
height: 17.5rem;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.kui-catalog-example__viewport[data-height="medium"] {
|
|
82
|
+
height: 20rem;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.kui-catalog-example__viewport[data-height="tall"] {
|
|
86
|
+
height: 22.5rem;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/* An application-sized frame for app shells and whole-screen layouts, which
|
|
90
|
+
read cramped in the component-sized heights above. The frame stands in for
|
|
91
|
+
the screen, so it is the containing block for screen-fixed chrome: a compact
|
|
92
|
+
CollapsiblePanel overlay, its backdrop, and restore controls dock to the
|
|
93
|
+
frame's edges instead of the page's, where the frame's inset and clip would
|
|
94
|
+
cut them off. An identity transform establishes that containing block.
|
|
95
|
+
`contain: layout` does too, but WebKit then mis-hit-tests any transformed
|
|
96
|
+
descendant of that fixed chrome once the frame also clips (every pressed
|
|
97
|
+
ListItem scales), so taps on an open overlay's items were lost. */
|
|
98
|
+
.kui-catalog-example__viewport[data-height="app"] {
|
|
99
|
+
height: 37rem;
|
|
100
|
+
transform: translate(0);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.kui-catalog-example__viewport[data-min-height="short"] {
|
|
104
|
+
min-height: 16rem;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.kui-catalog-example__viewport[data-min-height="medium"] {
|
|
108
|
+
min-height: 20rem;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.kui-catalog-example__viewport[data-frame] {
|
|
112
|
+
border: 1px solid var(--kui-color-border);
|
|
113
|
+
border-radius: var(--kui-radius-m);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.kui-catalog-example__viewport[data-frame="dashed"] {
|
|
117
|
+
border-style: dashed;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.kui-catalog-example__viewport[data-surface="default"] {
|
|
121
|
+
background: var(--kui-color-surface);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.kui-catalog-example__viewport[data-surface="lowered"] {
|
|
125
|
+
background: var(--kui-color-surface-lowered);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.kui-catalog-example__viewport[data-overflow="hidden"] {
|
|
129
|
+
overflow: hidden;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.kui-catalog-example__viewport[data-overflow="auto-x"] {
|
|
133
|
+
overflow-x: auto;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.kui-catalog-example__viewport[data-shadow="true"] {
|
|
137
|
+
box-shadow: var(--kui-shadow-s);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.kui-catalog-example__compact-fallback {
|
|
141
|
+
display: none;
|
|
142
|
+
margin: 0;
|
|
143
|
+
color: var(--kui-color-text-quiet);
|
|
144
|
+
font-size: var(--kui-font-s);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
@media ((max-width: 52rem)) {
|
|
148
|
+
.kui-catalog-example__viewport[data-responsive="roomy-only"] {
|
|
149
|
+
display: none;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.kui-catalog-example__compact-fallback {
|
|
153
|
+
display: block;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
@media ((max-width: 30rem)) {
|
|
158
|
+
.kui-catalog-example__viewport[data-min-height="medium"] {
|
|
159
|
+
min-height: 16rem;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
@media ((forced-colors: active)) {
|
|
164
|
+
.kui-catalog-example__viewport[data-frame] {
|
|
165
|
+
forced-color-adjust: auto;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/* The published inset lets the geometry overlay exclude this authoring aid. */
|
|
170
|
+
.kui-catalog-example[data-align="glyph"]
|
|
171
|
+
> :not([data-catalog-example-label]):not([data-catalog-example-note]) {
|
|
172
|
+
--kui-catalog-example-align: 1rem;
|
|
173
|
+
margin-inline-start: var(--kui-catalog-example-align);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.kui-catalog-example[data-align="inline-control"]
|
|
177
|
+
> :not([data-catalog-example-label]):not([data-catalog-example-note]) {
|
|
178
|
+
--kui-catalog-example-align: 0.5rem;
|
|
179
|
+
margin-inline-start: var(--kui-catalog-example-align);
|
|
180
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
.kui-catalog__footer {
|
|
2
|
+
border-block-start: 1px solid var(--kui-color-border);
|
|
3
|
+
background: color-mix(
|
|
4
|
+
in srgb,
|
|
5
|
+
var(--kui-color-surface-lowered) 72%,
|
|
6
|
+
var(--kui-color-surface)
|
|
7
|
+
);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.kui-catalog__status {
|
|
11
|
+
display: flex;
|
|
12
|
+
min-height: 1.625rem;
|
|
13
|
+
padding: 0.375rem 0.75rem 0;
|
|
14
|
+
color: var(--kui-color-text-quiet);
|
|
15
|
+
align-items: center;
|
|
16
|
+
justify-content: space-between;
|
|
17
|
+
gap: var(--kui-layout-control-gap);
|
|
18
|
+
font-size: var(--kui-font-xs);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.kui-catalog__related-heading {
|
|
22
|
+
display: block;
|
|
23
|
+
padding: 0.25rem var(--kui-wa-control-inset, 0.5rem) 0;
|
|
24
|
+
color: var(--kui-color-text-quiet);
|
|
25
|
+
font-size: var(--kui-font-xs);
|
|
26
|
+
font-weight: 600;
|
|
27
|
+
text-transform: uppercase;
|
|
28
|
+
letter-spacing: 0.04em;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@media (max-width: 52rem) {
|
|
32
|
+
.kui-catalog__status {
|
|
33
|
+
align-items: flex-start;
|
|
34
|
+
flex-direction: column;
|
|
35
|
+
gap: 0.25rem;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
.kui-catalog__group--secondary {
|
|
2
|
+
margin-block-start: var(--kui-space-m);
|
|
3
|
+
padding-block-start: var(--kui-space-s);
|
|
4
|
+
border-block-start: 1px solid var(--kui-color-border-quiet);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.kui-catalog__secondary {
|
|
8
|
+
display: grid;
|
|
9
|
+
padding-block: var(--kui-space-xs);
|
|
10
|
+
gap: var(--kui-space-s);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.kui-catalog__secondary-group {
|
|
14
|
+
display: grid;
|
|
15
|
+
min-width: 0;
|
|
16
|
+
gap: var(--kui-space-2xs);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.kui-catalog__secondary-heading {
|
|
20
|
+
margin: 0 0.5rem;
|
|
21
|
+
padding: 0.1rem 0.55rem;
|
|
22
|
+
color: var(--kui-color-text-quiet);
|
|
23
|
+
font-size: var(--kui-font-2xs);
|
|
24
|
+
font-weight: 650;
|
|
25
|
+
letter-spacing: 0.04em;
|
|
26
|
+
text-transform: uppercase;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.kui-catalog__secondary-items {
|
|
30
|
+
min-width: 0;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@media (max-width: 52rem) {
|
|
34
|
+
.kui-catalog__group--secondary {
|
|
35
|
+
min-width: 0;
|
|
36
|
+
margin-block-start: 0;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
.kui-catalog__group {
|
|
2
|
+
margin-block-start: var(--kui-space-m);
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.kui-catalog__group:first-child {
|
|
6
|
+
margin-block-start: var(--kui-space-2xs);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.kui-catalog__items {
|
|
10
|
+
min-width: 0;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
@media (max-width: 52rem) {
|
|
14
|
+
.kui-catalog__group,
|
|
15
|
+
.kui-catalog__group:first-child {
|
|
16
|
+
min-width: 0;
|
|
17
|
+
margin: 0;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
.kui-catalog__sections {
|
|
21
|
+
display: contents;
|
|
22
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
.kui-catalog__sidebar {
|
|
2
|
+
display: grid;
|
|
3
|
+
width: var(--kui-catalog-sidebar-width);
|
|
4
|
+
min-width: var(--kui-catalog-sidebar-width);
|
|
5
|
+
height: 100%;
|
|
6
|
+
padding: 0;
|
|
7
|
+
overflow: hidden;
|
|
8
|
+
justify-self: start;
|
|
9
|
+
box-sizing: border-box;
|
|
10
|
+
border: 0 solid var(--kui-pane-separator-color, var(--kui-color-border));
|
|
11
|
+
border-inline-end-width: var(--kui-pane-separator-width, 1px);
|
|
12
|
+
background: var(--kui-color-surface);
|
|
13
|
+
transition:
|
|
14
|
+
transform 200ms ease,
|
|
15
|
+
visibility 0s linear 0s;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.kui-catalog__brand {
|
|
19
|
+
display: flex;
|
|
20
|
+
min-width: 0;
|
|
21
|
+
flex-direction: column;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.kui-catalog__sidebar[data-collapsed="true"] {
|
|
25
|
+
transform: translateX(-100%);
|
|
26
|
+
visibility: hidden;
|
|
27
|
+
transition:
|
|
28
|
+
transform 200ms ease,
|
|
29
|
+
visibility 0s linear 200ms;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.kui-catalog__mark {
|
|
33
|
+
display: block;
|
|
34
|
+
width: 2.125rem;
|
|
35
|
+
height: 2.125rem;
|
|
36
|
+
flex: 0 0 auto;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.kui-catalog__subtitle {
|
|
40
|
+
margin: 0;
|
|
41
|
+
padding: var(--kui-layout-item-padding, 0.5rem);
|
|
42
|
+
box-sizing: border-box;
|
|
43
|
+
border: 1px solid transparent;
|
|
44
|
+
color: var(--kui-color-text-quiet);
|
|
45
|
+
font-size: var(--kui-font-xs);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.kui-catalog__navigation {
|
|
49
|
+
display: flex;
|
|
50
|
+
min-width: 0;
|
|
51
|
+
flex-direction: column;
|
|
52
|
+
gap: var(--kui-layout-content-gap, 1.5rem);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
@media (max-width: 52rem) {
|
|
56
|
+
.kui-catalog__sidebar[data-collapsed="true"] {
|
|
57
|
+
display: none;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.kui-catalog__sidebar {
|
|
61
|
+
width: 100%;
|
|
62
|
+
min-width: 0;
|
|
63
|
+
height: auto;
|
|
64
|
+
justify-self: stretch;
|
|
65
|
+
border-block-end-width: var(--kui-pane-separator-width, 1px);
|
|
66
|
+
border-inline-end-width: 0;
|
|
67
|
+
transform: none;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.kui-catalog__navigation {
|
|
71
|
+
display: grid;
|
|
72
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
73
|
+
align-items: start;
|
|
74
|
+
gap: 0.5rem 1rem;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
@media (prefers-reduced-motion: reduce) {
|
|
79
|
+
.kui-catalog__sidebar {
|
|
80
|
+
transition-duration: 0s;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
.kui-catalog__stage {
|
|
2
|
+
width: 100%;
|
|
3
|
+
min-height: 0;
|
|
4
|
+
flex: 1 0 auto;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.kui-catalog__canvas {
|
|
8
|
+
position: relative;
|
|
9
|
+
display: grid;
|
|
10
|
+
width: min(100%, var(--kui-catalog-content-measure, 70rem));
|
|
11
|
+
min-width: 0;
|
|
12
|
+
min-height: 100%;
|
|
13
|
+
margin-inline: auto;
|
|
14
|
+
padding: var(--kui-layout-content-gap);
|
|
15
|
+
box-sizing: border-box;
|
|
16
|
+
place-items: center;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/* `wireCatalogGeometryOverlay` appends the bound, border, and margin layers. */
|
|
20
|
+
/* css-ownership: allow-root kui-catalog__geometry-bound -- The catalog wire appends measured specimen bound layers at runtime. */
|
|
21
|
+
/* css-ownership: allow-root kui-catalog__geometry-border -- The catalog wire appends computed border layers at runtime. */
|
|
22
|
+
/* css-ownership: allow-root kui-catalog__geometry-margin -- The catalog wire appends computed margin layers at runtime. */
|
|
23
|
+
.kui-catalog__geometry-overlay {
|
|
24
|
+
position: absolute;
|
|
25
|
+
z-index: 3;
|
|
26
|
+
pointer-events: none;
|
|
27
|
+
inset: 0;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.kui-catalog__geometry-bound,
|
|
31
|
+
.kui-catalog__geometry-border,
|
|
32
|
+
.kui-catalog__geometry-margin {
|
|
33
|
+
position: absolute;
|
|
34
|
+
top: 0;
|
|
35
|
+
left: 0;
|
|
36
|
+
box-sizing: border-box;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.kui-catalog__geometry-bound {
|
|
40
|
+
border: 1px dashed color-mix(in srgb, var(--kui-color-text) 40%, transparent);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.kui-catalog__geometry-border {
|
|
44
|
+
border: 0 solid
|
|
45
|
+
color-mix(in srgb, var(--kui-color-accent-text) 72%, transparent);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.kui-catalog__geometry-margin {
|
|
49
|
+
background: color-mix(in srgb, #f6a94c 55%, transparent);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@media (max-width: 52rem) {
|
|
53
|
+
.kui-catalog__stage {
|
|
54
|
+
min-height: 24rem;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.kui-catalog__canvas {
|
|
58
|
+
min-height: 16rem;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
.kui-catalog {
|
|
2
|
+
--kui-catalog-sidebar-width: 18rem;
|
|
3
|
+
--kui-catalog-content-measure: 70rem;
|
|
4
|
+
|
|
5
|
+
display: grid;
|
|
6
|
+
height: 100vh;
|
|
7
|
+
grid-template-columns: var(--kui-catalog-sidebar-width) minmax(0, 1fr);
|
|
8
|
+
overflow: hidden;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.kui-catalog[data-sidebar-collapsed="true"] {
|
|
12
|
+
grid-template-columns: 0 minmax(0, 1fr);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@media (max-width: 52rem) {
|
|
16
|
+
.kui-catalog,
|
|
17
|
+
.kui-catalog[data-sidebar-collapsed="true"] {
|
|
18
|
+
height: auto;
|
|
19
|
+
min-height: 100vh;
|
|
20
|
+
grid-template-columns: 1fr;
|
|
21
|
+
}
|
|
22
|
+
}
|