@kerfjs/ui 5.0.0-beta.32 → 5.0.0-beta.34
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 +8 -1
- package/ai/component-catalog-v2-overrides.json +10 -0
- package/ai/component-catalog-v2.json +78 -2
- package/ai/component-catalog.json +90 -3
- package/ai/public-api-signatures-v1.md +8 -3
- package/ai/skill.md +11 -2
- package/ai/webawesome-jsx-signatures-v1.md +1 -1
- package/dist/browser/row.js +3 -0
- package/dist/catalog.js +2 -1
- package/dist/catalog.js.map +1 -1
- package/dist/{chunk-RL6COPKF.js → chunk-7JQAQWVC.js} +6 -1
- package/dist/chunk-7JQAQWVC.js.map +1 -0
- package/dist/chunk-OKRCKIVO.js +39 -0
- package/dist/chunk-OKRCKIVO.js.map +1 -0
- package/dist/chunk-R3EBGEAW.js +46 -0
- package/dist/chunk-R3EBGEAW.js.map +1 -0
- package/dist/flex-alignment-CF8NLj7i.d.ts +4 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +6 -4
- package/dist/list.d.ts +7 -2
- package/dist/list.js +2 -1
- package/dist/row.d.ts +21 -0
- package/dist/row.js +5 -0
- package/dist/row.js.map +1 -0
- package/dist/select-register.js +126 -1
- package/dist/select-register.js.map +1 -1
- package/dist/styles/list.css +29 -0
- package/dist/styles/row.css +45 -0
- package/dist/styles/styles.css +1 -0
- package/docs/accessibility.md +13 -0
- package/docs/component-selection.md +6 -4
- package/docs/layout.md +19 -1
- package/llms.txt +8 -2
- package/package.json +7 -1
- package/dist/chunk-RL6COPKF.js.map +0 -1
package/llms.txt
CHANGED
|
@@ -91,7 +91,10 @@ maintain a central style list. Configure JSX with `"jsxImportSource": "kerfjs"`.
|
|
|
91
91
|
own the geometry (8px inline margin + 1px border + 8px padding). Do not add a
|
|
92
92
|
container padding on top of a content-item's own margin — pick one owner. Use
|
|
93
93
|
`.kui-content` for 24px major vertical rhythm.
|
|
94
|
-
- **Use `List` for vertical layout.**
|
|
94
|
+
- **Use `Row` for horizontal and `List` for vertical layout.** Both expose
|
|
95
|
+
physical `hAlign`/`vAlign` props and typed gaps. Row defaults to left/full,
|
|
96
|
+
an `xs` gap, and no wrapping; List retains full/top and zero-gap defaults.
|
|
97
|
+
List additionally supplies
|
|
95
98
|
optional typed `gap`, `flex`, vertical scrolling, and canonical
|
|
96
99
|
`dividerSides` (`t`/`r`/`b`/`l` order). It adds no list semantics; children own
|
|
97
100
|
those, and only one bounded region should own scrolling. Pass a finite spacing
|
|
@@ -123,6 +126,9 @@ maintain a central style list. Configure JSX with `"jsxImportSource": "kerfjs"`.
|
|
|
123
126
|
- `Select` requires a visible `label` or an `ariaLabel` for a visually hidden
|
|
124
127
|
accessible name. The package names the internal combobox, including custom
|
|
125
128
|
selected content; consumers do not need shadow-DOM naming workarounds.
|
|
129
|
+
Import `select/register` once for the canonical animation lifecycle: stale
|
|
130
|
+
close/show completions cannot override a later request. Consumers must not
|
|
131
|
+
repair popup timing or anchor placement; raw Web Awesome selects stay native.
|
|
126
132
|
Use `hint` for supporting text below the control and `placeholderText` only
|
|
127
133
|
for the empty value inside it; loading placeholders retain the visible hint.
|
|
128
134
|
- **Trust the defaults.** Render a control at its natural size and color (a
|
|
@@ -151,7 +157,7 @@ maintain a central style list. Configure JSX with `"jsxImportSource": "kerfjs"`.
|
|
|
151
157
|
- **Space by the five-step scale, by relationship not by eye.** `0`
|
|
152
158
|
`--kui-space-none`, `4px` `--kui-space-2xs`, `8px` `--kui-space-xs` (inside a
|
|
153
159
|
group), `16px` `--kui-space-m`, `24px` `--kui-space-l` (between major differing
|
|
154
|
-
regions). 12px/32px are off-scale exceptions. Prefer direct `List.gap`
|
|
160
|
+
regions). 12px/32px are off-scale exceptions. Prefer direct `Row.gap`/`List.gap`
|
|
155
161
|
shorthands; use `space`, `px`, `rem`, `em`, `pct`, `lengthVar`, and
|
|
156
162
|
`calc(plus(...))` for typed runtime composition. `remify()` is source-CSS only.
|
|
157
163
|
- **Keep nested highlight corners concentric.** Inset hover and selection surfaces
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kerfjs/ui",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.34",
|
|
4
4
|
"description": "Accessible, composable UI primitives for kerf applications.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -88,6 +88,11 @@
|
|
|
88
88
|
"browser": "./dist/browser/list.js",
|
|
89
89
|
"import": "./dist/list.js"
|
|
90
90
|
},
|
|
91
|
+
"./row": {
|
|
92
|
+
"types": "./dist/row.d.ts",
|
|
93
|
+
"browser": "./dist/browser/row.js",
|
|
94
|
+
"import": "./dist/row.js"
|
|
95
|
+
},
|
|
91
96
|
"./list-action-row": {
|
|
92
97
|
"types": "./dist/list-action-row.d.ts",
|
|
93
98
|
"browser": "./dist/browser/list-action-row.js",
|
|
@@ -278,6 +283,7 @@
|
|
|
278
283
|
"./floating-toolbar.css": "./dist/styles/floating-toolbar.css",
|
|
279
284
|
"./toolbar-text.css": "./dist/styles/toolbar-text.css",
|
|
280
285
|
"./list.css": "./dist/styles/list.css",
|
|
286
|
+
"./row.css": "./dist/styles/row.css",
|
|
281
287
|
"./list-action-row.css": "./dist/styles/list-action-row.css",
|
|
282
288
|
"./list-item.css": "./dist/styles/list-item.css",
|
|
283
289
|
"./list-header.css": "./dist/styles/list-header.css",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/list.tsx"],"names":[],"mappings":";;;AAUA,IAAM,UAAA,GAAqC;AAAA,EACzC,MAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA;AACF,CAAA;AAgBO,SAAS,IAAA,CAAK;AAAA,EACnB,QAAA;AAAA,EACA,GAAA,GAAM,KAAA;AAAA,EACN,IAAA,GAAO,KAAA;AAAA,EACP,UAAA,GAAa,KAAA;AAAA,EACb,YAAA,GAAe,EAAA;AAAA,EACf,SAAA,GAAY;AACd,CAAA,EAAc;AACZ,EAAA,MAAM,QAAA,GACJ,GAAA,KAAQ,IAAA,GACJ,qBAAA,GACA,UAAA,CAAW,QAAA,CAAS,GAAkB,CAAA,GACpC,KAAA,CAAM,GAAkB,CAAA,GACxB,GAAA,IAAO,MAAA;AACf,EAAA,MAAM,SAAA,GAAY,IAAA,KAAS,IAAA,GAAO,UAAA,GAAa,IAAA,IAAQ,MAAA;AACvD,EAAA,MAAM,KAAA,GAAQ;AAAA,IACZ,QAAA,GAAW,CAAA,gBAAA,EAAmB,QAAQ,CAAA,CAAA,GAAK,EAAA;AAAA,IAC3C,SAAA,GAAY,CAAA,iBAAA,EAAoB,SAAS,CAAA,CAAA,GAAK;AAAA,GAChD,CACG,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AAEX,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,CAAA,SAAA,EAAY,SAAS,CAAA,CAAA,CAAG,IAAA,EAAK;AAAA,MACpC,gBAAA,EAAe,MAAA;AAAA,MACf,UAAA,EAAU,MAAA,CAAO,OAAA,CAAQ,GAAG,CAAC,CAAA;AAAA,MAC7B,WAAA,EAAW,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAC,CAAA;AAAA,MAC/B,iBAAA,EAAiB,OAAO,UAAU,CAAA;AAAA,MAClC,iBAAe,YAAA,IAAgB,MAAA;AAAA,MAC/B,OAAO,KAAA,IAAS,MAAA;AAAA,MAEf;AAAA;AAAA,GACH;AAEJ","file":"chunk-RL6COPKF.js","sourcesContent":["import {\n type CssFlex,\n type CssFlexKeyword,\n type CssLength,\n space,\n type UiSpaceName,\n} from './css-values.js';\nimport type { DividerSides } from './divider-sides.js';\nimport type { KerfUiContent } from './semantic-content.js';\n\nconst spaceNames: readonly UiSpaceName[] = [\n 'none',\n '2xs',\n 'xs',\n 's',\n 'm',\n 'l',\n 'xl',\n];\n\nexport interface ListProps {\n children?: KerfUiContent;\n /** Use the standard item gap, a named UI spacing token, or a typed CSS length. Defaults to no gap. */\n gap?: boolean | UiSpaceName | CssLength;\n /** Allow this list to grow/shrink, use a keyword, or supply a typed CSS flex shorthand. */\n flex?: boolean | CssFlexKeyword | CssFlex;\n /** Own vertical scrolling and overscroll containment. */\n scrollable?: boolean;\n /** Physical divider edges in canonical top/right/bottom/left order. */\n dividerSides?: DividerSides;\n className?: string;\n}\n\n/** A stretch-aligned vertical stack with optional gap, flex, scroll, and dividers. */\nexport function List({\n children,\n gap = false,\n flex = false,\n scrollable = false,\n dividerSides = '',\n className = '',\n}: ListProps) {\n const gapValue =\n gap === true\n ? 'var(--kui-list-gap)'\n : spaceNames.includes(gap as UiSpaceName)\n ? space(gap as UiSpaceName)\n : gap || undefined;\n const flexValue = flex === true ? '1 1 auto' : flex || undefined;\n const style = [\n gapValue ? `--_kui-list-gap:${gapValue}` : '',\n flexValue ? `--_kui-list-flex:${flexValue}` : '',\n ]\n .filter(Boolean)\n .join(';');\n\n return (\n <div\n class={`kui-list ${className}`.trim()}\n data-component=\"list\"\n data-gap={String(Boolean(gap))}\n data-flex={String(Boolean(flex))}\n data-scrollable={String(scrollable)}\n divider-sides={dividerSides || undefined}\n style={style || undefined}\n >\n {children}\n </div>\n );\n}\n\nexport type {\n CssFlex,\n CssFlexKeyword,\n CssLength,\n UiSpaceName,\n} from './css-values.js';\nexport type { DividerSides } from './divider-sides.js';\n"]}
|