@keyfunc/keybricks-ds 2.4.13 → 2.5.1
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/DEPLOY.md +4 -4
- package/INTEGRATION.md +28 -6
- package/_adherence.oxlintrc.json +10 -4
- package/_ds_bundle.js +20559 -0
- package/_src/icon-index.js +1 -0
- package/_src/unicons-index.js +1 -0
- package/_src/usage-code.js +737 -0
- package/changelog.js +17 -0
- package/components/_cards/accordion.card.html +1 -1
- package/components/_cards/action-chip.card.html +1 -1
- package/components/_cards/activity.card.html +1 -1
- package/components/_cards/alert.card.html +1 -1
- package/components/_cards/app-chrome.card.html +1 -1
- package/components/_cards/banner.card.html +1 -1
- package/components/_cards/breadcrumb.card.html +1 -1
- package/components/_cards/button-1-base.card.html +1 -1
- package/components/_cards/button-2-states.card.html +1 -1
- package/components/_cards/button-3-sizes-icons.card.html +1 -1
- package/components/_cards/button-4-group.card.html +1 -1
- package/components/_cards/cards-indicators.card.html +1 -1
- package/components/_cards/charts-1-sparkline.card.html +1 -1
- package/components/_cards/charts-10-gauge.card.html +1 -1
- package/components/_cards/charts-11-funnel.card.html +1 -1
- package/components/_cards/charts-12-treemap.card.html +1 -1
- package/components/_cards/charts-14-radar.card.html +1 -1
- package/components/_cards/charts-15-distribution.card.html +1 -1
- package/components/_cards/charts-16-pareto.card.html +1 -1
- package/components/_cards/charts-17-candlestick.card.html +1 -1
- package/components/_cards/charts-18-sankey.card.html +1 -1
- package/components/_cards/charts-19-chord.card.html +1 -1
- package/components/_cards/charts-2-line.card.html +1 -1
- package/components/_cards/charts-20-sunburst.card.html +1 -1
- package/components/_cards/charts-21-worldmap.card.html +1 -1
- package/components/_cards/charts-22-gantt.card.html +1 -1
- package/components/_cards/charts-23-bar3d.card.html +1 -1
- package/components/_cards/charts-24-pie3d.card.html +1 -1
- package/components/_cards/charts-25-surface3d.card.html +1 -1
- package/components/_cards/charts-26-scatter3d.card.html +1 -1
- package/components/_cards/charts-27-ribbon3d.card.html +1 -1
- package/components/_cards/charts-3-bar.card.html +1 -1
- package/components/_cards/charts-4-barlist.card.html +1 -1
- package/components/_cards/charts-5-donut.card.html +1 -1
- package/components/_cards/charts-6-scatter.card.html +1 -1
- package/components/_cards/charts-7-heatmap.card.html +1 -1
- package/components/_cards/charts-8-waterfall.card.html +1 -1
- package/components/_cards/charts-9-bullet.card.html +1 -1
- package/components/_cards/checkbox.card.html +1 -1
- package/components/_cards/codeblock.card.html +1 -1
- package/components/_cards/combobox.card.html +1 -1
- package/components/_cards/context-menu.card.html +1 -1
- package/components/_cards/date-picker.card.html +1 -1
- package/components/_cards/diffvalue.card.html +1 -1
- package/components/_cards/divider.card.html +1 -1
- package/components/_cards/drawer.card.html +1 -1
- package/components/_cards/dropdown-menu.card.html +1 -1
- package/components/_cards/dropzone.card.html +1 -1
- package/components/_cards/empty-state.card.html +1 -1
- package/components/_cards/icon-button.card.html +1 -1
- package/components/_cards/input.card.html +1 -1
- package/components/_cards/kbd.card.html +1 -1
- package/components/_cards/keyvalue.card.html +1 -1
- package/components/_cards/listrow.card.html +1 -1
- package/components/_cards/loading.card.html +1 -1
- package/components/_cards/log-viewer.card.html +1 -1
- package/components/_cards/multi-select.card.html +1 -1
- package/components/_cards/number-stepper.card.html +1 -1
- package/components/_cards/pagination.card.html +1 -1
- package/components/_cards/people.card.html +1 -1
- package/components/_cards/pipeline-node.card.html +1 -1
- package/components/_cards/pipeline-palette.card.html +1 -1
- package/components/_cards/radio.card.html +1 -1
- package/components/_cards/relative-time-picker.card.html +1 -1
- package/components/_cards/search.card.html +1 -1
- package/components/_cards/segmented-control.card.html +1 -1
- package/components/_cards/select.card.html +1 -1
- package/components/_cards/smart-table.card.html +1 -1
- package/components/_cards/spreadsheet.card.html +1 -1
- package/components/_cards/stepper.card.html +1 -1
- package/components/_cards/table.card.html +7 -2
- package/components/_cards/tabs.card.html +1 -1
- package/components/_cards/tag.card.html +1 -1
- package/components/_cards/textarea.card.html +1 -1
- package/components/_cards/timeline.card.html +1 -1
- package/components/_cards/toast.card.html +1 -1
- package/components/_cards/toggles.card.html +1 -1
- package/components/_cards/tooltip.card.html +1 -1
- package/components/_cards/tree.card.html +1 -1
- package/components/_shared/view-source.js +15 -185
- package/components/charts/BarList.jsx +1 -1
- package/components/charts/BarList.vue +8 -3
- package/components/charts/Ribbon3D.d.ts +2 -0
- package/components/charts/Scatter3D.d.ts +4 -0
- package/components/charts/SunburstChart.jsx +6 -1
- package/components/charts/SunburstChart.vue +7 -1
- package/components/charts/Surface3D.d.ts +2 -0
- package/components/charts/WorldMap.jsx +6 -1
- package/components/charts/WorldMap.vue +7 -1
- package/components/data/ListRow.d.ts +6 -3
- package/components/data/ListRow.jsx +21 -13
- package/components/data/ListRow.vue +25 -15
- package/components/data/Table.jsx +1 -1
- package/components/data/Table.vue +6 -2
- package/components/display/ProgressBar.jsx +1 -1
- package/components/display/ProgressBar.vue +1 -1
- package/components/feedback/Accordion.jsx +1 -1
- package/components/feedback/Accordion.vue +1 -1
- package/components/feedback/ContextMenu.jsx +3 -3
- package/components/feedback/ContextMenu.vue +4 -4
- package/components/feedback/Drawer.jsx +3 -3
- package/components/feedback/Drawer.vue +3 -3
- package/components/feedback/Timeline.vue +4 -1
- package/components/forms/Checkbox.d.ts +2 -0
- package/components/forms/Checkbox.jsx +9 -4
- package/components/forms/Checkbox.vue +6 -2
- package/components/forms/DatePicker.jsx +3 -1
- package/components/forms/DatePicker.vue +2 -1
- package/components/forms/Dropzone.jsx +1 -1
- package/components/forms/Dropzone.vue +1 -1
- package/components/forms/MultiSelect.jsx +5 -3
- package/components/forms/MultiSelect.vue +4 -3
- package/components/forms/Slider.jsx +1 -1
- package/components/forms/Slider.vue +1 -1
- package/components/forms/Switch.jsx +4 -4
- package/components/forms/Switch.vue +4 -4
- package/components/navigation/Sidebar.jsx +2 -2
- package/components/navigation/Sidebar.vue +2 -2
- package/components/navigation/TopBar.jsx +1 -1
- package/components/navigation/TopBar.vue +1 -1
- package/components/navigation/Tree.jsx +2 -2
- package/components/navigation/Tree.vue +14 -5
- package/components/pipeline/DataPreview.jsx +1 -1
- package/components/pipeline/DataPreview.vue +1 -1
- package/components/pipeline/NodeCard.jsx +1 -1
- package/components/pipeline/NodeCard.vue +1 -1
- package/components/pipeline/PaletteItem.vue +1 -1
- package/components/pipeline/PalettePanel.jsx +3 -3
- package/components/pipeline/PalettePanel.vue +2 -2
- package/components/tabs/SegmentedControl.jsx +2 -2
- package/components/tabs/SegmentedControl.vue +2 -2
- package/index.html +6 -56
- package/package.json +4 -2
- package/tokens/dark.css +1 -1
- package/tokens/interaction.css +4 -0
- package/tokens/layout.css +3 -0
- package/tokens/typography.css +2 -1
package/DEPLOY.md
CHANGED
|
@@ -55,7 +55,7 @@ deploys the documentation site. Watch it under *Build → Pipelines*.
|
|
|
55
55
|
**5. Cut the first release.**
|
|
56
56
|
|
|
57
57
|
```bash
|
|
58
|
-
git tag v2.
|
|
58
|
+
git tag v2.5.1 && git push --tags
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
That tag runs `generated:check` → `version:check` → `npm publish`. Confirm under *Deploy →
|
|
@@ -187,7 +187,7 @@ GitLab injects `CI_JOB_TOKEN` — use that instead and no secret is stored anywh
|
|
|
187
187
|
**Install — straight from git** (no registry, no publish; works today)
|
|
188
188
|
|
|
189
189
|
```json
|
|
190
|
-
"@keyfunc/keybricks-ds": "git+ssh://git@gitlab.epm2demo.cn/Felix/keybricks-ds.git#v2.
|
|
190
|
+
"@keyfunc/keybricks-ds": "git+ssh://git@gitlab.epm2demo.cn/Felix/keybricks-ds.git#v2.5.1"
|
|
191
191
|
```
|
|
192
192
|
|
|
193
193
|
Because the package has no build step, a git dependency needs no `prepare` script — npm
|
|
@@ -216,7 +216,7 @@ The `pages` job copies the static tree into `public/` on every default-branch co
|
|
|
216
216
|
Your Pages URL (shown under *Deploy → Pages* after the first run) then serves:
|
|
217
217
|
|
|
218
218
|
- `index.html` — the browsable system: every card live in an iframe, EN / 中文 / 日本語,
|
|
219
|
-
light and dark,
|
|
219
|
+
light and dark, a "Show code" bar (React / Vue 3 usage) under each example.
|
|
220
220
|
- `gallery.html` — filterable thumbnail grid.
|
|
221
221
|
- `DESIGN.md` — the rules file to hand to an AI coding agent or a new hire.
|
|
222
222
|
|
|
@@ -237,7 +237,7 @@ semantic layer. That is what makes dark mode cost nothing.
|
|
|
237
237
|
## Runtime checks
|
|
238
238
|
|
|
239
239
|
`_tests/` holds browser pages that exercise the real components: `react-runtime.html` (the compiled
|
|
240
|
-
bundle), `table-selection.html` (Table loaded from source: checkbox spacing at every width, code chips, two-line rows, sorting), `menu-react.html` / `menu-vue.html` (Menu / ContextMenu coloured icons, item descriptions, side by alignment and flip), `addrow-react.html` / `addrow-vue.html` (the SmartTable add row in both frameworks, from source: colour, weight, hover hooks, keyboard, `stickyAddRow`), `smart-table-density.html` (SmartTable from source: default / compact rows, the Row height menu, controlled density), `relative-time-picker.html` (RelativeTimePicker from source: helpers, tiers, dialog, keyboard), `tree-reorder.html` (Tree from source: insert-between on leaves and folder edges, self/subtree rejection), `vue-runtime.html` (the `.vue` files, loaded with vue3-sfc-loader), `cards-interaction*.html`
|
|
240
|
+
bundle), `table-selection.html` (Table loaded from source: checkbox spacing at every width, code chips, two-line rows, sorting), `keyboard.html` (keyboard reach: Checkbox, MultiSelect, DatePicker, Accordion, Tree checkboxes, Dropzone, NodeCard, PalettePanel, BarList — React and Vue), `listrow.html` (ListRow static vs clickable rows, keyboard, alignment — React and Vue), `vue-table-cells.html` (Vue Table #cell-<key> slots and VNode renders), `menu-react.html` / `menu-vue.html` (Menu / ContextMenu coloured icons, item descriptions, side by alignment and flip), `addrow-react.html` / `addrow-vue.html` (the SmartTable add row in both frameworks, from source: colour, weight, hover hooks, keyboard, `stickyAddRow`), `smart-table-density.html` (SmartTable from source: default / compact rows, the Row height menu, controlled density), `relative-time-picker.html` (RelativeTimePicker from source: helpers, tiers, dialog, keyboard), `tree-reorder.html` (Tree from source: insert-between on leaves and folder edges, self/subtree rejection), `vue-runtime.html` (the `.vue` files, loaded with vue3-sfc-loader), `cards-interaction*.html`
|
|
241
241
|
(clicks through the documentation demos) and `icon-rules.html` (the Keybricks glyphs against the drawing rules). Serve the repo root (`npx serve .`), open a page and read the
|
|
242
242
|
console — every line starts with PASS or FAIL. Run them after changing a component in either framework.
|
|
243
243
|
`measure-cards.html` is a tool, not a test: it measures each documentation page at its card width so the
|
package/INTEGRATION.md
CHANGED
|
@@ -31,7 +31,7 @@ Not using a registry yet? A git dependency works with no publishing at all — t
|
|
|
31
31
|
has no build step, so npm can use the checkout as-is:
|
|
32
32
|
|
|
33
33
|
```json
|
|
34
|
-
"@keyfunc/keybricks-ds": "git+ssh://git@gitlab.epm2demo.cn/Felix/keybricks-ds.git#v2.
|
|
34
|
+
"@keyfunc/keybricks-ds": "git+ssh://git@gitlab.epm2demo.cn/Felix/keybricks-ds.git#v2.5.1"
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
**Source-only package.** `.jsx` and `.vue` files are published as authored, so your
|
|
@@ -81,10 +81,7 @@ export function LoginForm() {
|
|
|
81
81
|
|
|
82
82
|
```vue
|
|
83
83
|
<script setup>
|
|
84
|
-
import Button from '@keyfunc/keybricks-ds/
|
|
85
|
-
import Field from '@keyfunc/keybricks-ds/components/forms/Field.vue'
|
|
86
|
-
import Input from '@keyfunc/keybricks-ds/components/forms/Input.vue'
|
|
87
|
-
import Textarea from '@keyfunc/keybricks-ds/components/forms/Textarea.vue'
|
|
84
|
+
import { Button, Field, Input, Textarea } from '@keyfunc/keybricks-ds/vue'
|
|
88
85
|
</script>
|
|
89
86
|
|
|
90
87
|
<template>
|
|
@@ -97,6 +94,10 @@ import Textarea from '@keyfunc/keybricks-ds/components/forms/Textarea.vue'
|
|
|
97
94
|
</template>
|
|
98
95
|
```
|
|
99
96
|
|
|
97
|
+
Vue components come from `@keyfunc/keybricks-ds/vue` — the same names as React, one import line. (React and Vue each have a `Button`, so the two frameworks use two entry points.) Deep paths such as `@keyfunc/keybricks-ds/components/buttons/Button.vue` still work.
|
|
98
|
+
|
|
99
|
+
Every example on the documentation site has a **Show code** bar: the React and Vue code that builds that example, ready to paste.
|
|
100
|
+
|
|
100
101
|
That is the whole integration. The `data-size="lg"` on the form is the size tier — every control
|
|
101
102
|
inside it is 40px tall; leave it off and they are the app default, 32px (see *Size tiers* below).
|
|
102
103
|
Everything below is reference material.
|
|
@@ -521,6 +522,27 @@ Pin a minor range and update deliberately:
|
|
|
521
522
|
- **Tokens outside CSS.** `tokens.json` / `tokens.js` / `tokens.d.ts` gained the tier tokens
|
|
522
523
|
(`--control-*`, `--bar-h`, `--group-gap`, …) — 352 light tokens in all (2.0.2 adds `--danger-soft-hover`).
|
|
523
524
|
|
|
525
|
+
### 2.5.1
|
|
526
|
+
|
|
527
|
+
Fixes only — no API removed.
|
|
528
|
+
|
|
529
|
+
- **Keyboard:** `Checkbox` (Space; `role="checkbox"`, `aria-checked` incl. "mixed"; new `tabIndex` — pass -1 inside a row that owns focus), `DatePicker` / `MultiSelect` (field is a combobox: Enter / Space / ArrowDown open, Escape closes; options toggle with Enter / Space), `Accordion`, `Dropzone`, `NodeCard`, `PalettePanel`, `BarList` rows with `onSelect`. `SunburstChart` and `WorldMap` are one Tab stop: arrow keys walk segments / regions, Enter acts, Escape clears.
|
|
530
|
+
- **Vue parity:** `Tree` emits `context-menu(key, event)`; `BarList` emits `select(row)`.
|
|
531
|
+
- **Long text:** field boxes (Select, Combobox, DatePicker, MultiSelect) keep one line and truncate; menus cap at 320px and truncate items; `SegmentedControl` truncates a squeezed segment; `Tree`, Sidebar brand and TopBar user name truncate; `Drawer` titles wrap.
|
|
532
|
+
- **Tokens:** motion uses `--dur-*` / `--ease-out` everywhere; new shadows `--shadow-raised`, `--shadow-thumb`, `--shadow-drawer` (deeper in dark mode).
|
|
533
|
+
- Docs: `Ribbon3D`, `Scatter3D`, `Surface3D` props completed.
|
|
534
|
+
- **The documentation pages now open from the package.** `_ds_bundle.js` (the compiled copy the pages run on) and `_src/` (the Show code generator, icon search indexes) ship too, so `node_modules/@keyfunc/keybricks-ds/index.html` works offline. Apps still import from `@keyfunc/keybricks-ds` / `/vue` — nothing imports the bundle.
|
|
535
|
+
|
|
536
|
+
### 2.5.0
|
|
537
|
+
|
|
538
|
+
- **Show code under every example.** Each example on the documentation site has a Show code bar with the React and Vue 3 code that builds it — imports from `@keyfunc/keybricks-ds` / `@keyfunc/keybricks-ds/vue`, ready to paste. The label follows the site language. The site no longer shows components' own source (it ships in the package).
|
|
539
|
+
- **Vue imports in one line:** `import { Button, Table } from '@keyfunc/keybricks-ds/vue'` (the entry already existed; the docs now use it).
|
|
540
|
+
- **Vue `Table` custom cells** — `<template #cell-<key>="{ value, row, index }">` slots, or `render` returning a VNode (`h()`). Before, a render result was printed as text.
|
|
541
|
+
- **Vue `Tree` row actions** — `#row-actions="{ node }"` slot or `rowActions(node)` returning a VNode, shown on hover / focus. Before, `rowActions` was accepted but never drawn.
|
|
542
|
+
- **Vue `Timeline`** — an item's `body` may be a VNode; `#body="{ item, index }"` slot.
|
|
543
|
+
- **`ListRow`** — the chevron shows only when the row has content to expand; the row is a button only with `onClick` (Vue: `@click`): focusable, Enter / Space, `aria-expanded`. Static rows get no pointer or hover. Expanded content aligns under the title, title and meta truncate, a trailing `0` shows, side padding is `--edge-pad`.
|
|
544
|
+
- Includes 2.4.14 (CJK font set only at declared-language boundaries, so icon and code fonts inside keep their family).
|
|
545
|
+
|
|
524
546
|
### 2.4.13
|
|
525
547
|
|
|
526
548
|
- **`Menu` / `ContextMenu` items take `iconColor` and `description`.** `iconColor` is any CSS colour for that item's icon (e.g. `var(--cat-join)`); omit it and the icon keeps the row's text colour. `description` shows a 300px panel beside the menu while the item is hovered or focused — its icon and label, then the text — linked with `aria-describedby`.
|
|
@@ -726,7 +748,7 @@ Release mechanics, the CI pipeline and the Pages site are documented in `DEPLOY.
|
|
|
726
748
|
## Getting help
|
|
727
749
|
|
|
728
750
|
- **Documentation site** — the GitLab Pages build: `index.html` for the browsable system
|
|
729
|
-
(every card live, EN / 中文 / 日本語, light and dark,
|
|
751
|
+
(every card live, EN / 中文 / 日本語, light and dark, a "Show code" bar with React / Vue 3 usage under each example) and
|
|
730
752
|
`gallery.html` for the filterable thumbnail grid.
|
|
731
753
|
- **Props contract** — the `.d.ts` next to each component.
|
|
732
754
|
- **Usage notes** — the `.prompt.md` in each component group.
|
package/_adherence.oxlintrc.json
CHANGED
|
@@ -153,8 +153,8 @@
|
|
|
153
153
|
"message": "<LegendItem> doesn't accept that prop. Declared props: label, color."
|
|
154
154
|
},
|
|
155
155
|
{
|
|
156
|
-
"selector": "JSXOpeningElement[name.name='Checkbox'] > JSXAttribute > JSXIdentifier[name!=/^(?:checked|indeterminate|onChange|label|size|disabled|style|key|ref|className|style|children)$/]",
|
|
157
|
-
"message": "<Checkbox> doesn't accept that prop. Declared props: checked, indeterminate, onChange, label, size, disabled, style."
|
|
156
|
+
"selector": "JSXOpeningElement[name.name='Checkbox'] > JSXAttribute > JSXIdentifier[name!=/^(?:checked|indeterminate|onChange|label|size|disabled|tabIndex|style|key|ref|className|style|children)$/]",
|
|
157
|
+
"message": "<Checkbox> doesn't accept that prop. Declared props: checked, indeterminate, onChange, label, size, disabled, tabIndex, style."
|
|
158
158
|
},
|
|
159
159
|
{
|
|
160
160
|
"selector": "JSXOpeningElement[name.name='Checkbox'] > JSXAttribute[name.name='size'] > Literal[value!=/^(?:sm|md|lg)$/]",
|
|
@@ -521,8 +521,8 @@
|
|
|
521
521
|
"message": "<SunburstNode> doesn't accept that prop. Declared props: label, value, children."
|
|
522
522
|
},
|
|
523
523
|
{
|
|
524
|
-
"selector": "JSXOpeningElement[name.name='Surface3D'] > JSXAttribute > JSXIdentifier[name!=/^(?:values|width|height|yaw|pitch|zScale|wire|interactive|valueFormat|style|key|ref|className|style|children)$/]",
|
|
525
|
-
"message": "<Surface3D> doesn't accept that prop. Declared props: values, width, height, yaw, pitch, zScale, wire, interactive, valueFormat, style."
|
|
524
|
+
"selector": "JSXOpeningElement[name.name='Surface3D'] > JSXAttribute > JSXIdentifier[name!=/^(?:values|width|height|yaw|pitch|zScale|wire|interactive|valueFormat|xLabel|yLabel|style|key|ref|className|style|children)$/]",
|
|
525
|
+
"message": "<Surface3D> doesn't accept that prop. Declared props: values, width, height, yaw, pitch, zScale, wire, interactive, valueFormat, xLabel, yLabel, style."
|
|
526
526
|
},
|
|
527
527
|
{
|
|
528
528
|
"selector": "JSXOpeningElement[name.name='Switch'] > JSXAttribute > JSXIdentifier[name!=/^(?:checked|onChange|disabled|size|tone|onColor|offColor|knobIcon|knobText|insideOn|insideOff|inlinePrompt|label|labelOn|labelOff|loading|beforeChange|style|key|ref|className|style|children)$/]",
|
|
@@ -1172,10 +1172,13 @@
|
|
|
1172
1172
|
"--series-7",
|
|
1173
1173
|
"--series-8",
|
|
1174
1174
|
"--series-9",
|
|
1175
|
+
"--shadow-drawer",
|
|
1175
1176
|
"--shadow-menu",
|
|
1176
1177
|
"--shadow-modal",
|
|
1177
1178
|
"--shadow-node",
|
|
1179
|
+
"--shadow-raised",
|
|
1178
1180
|
"--shadow-selected",
|
|
1181
|
+
"--shadow-thumb",
|
|
1179
1182
|
"--sidebar-w",
|
|
1180
1183
|
"--skeleton",
|
|
1181
1184
|
"--soft-active",
|
|
@@ -1543,6 +1546,9 @@
|
|
|
1543
1546
|
"--shadow-selected": "shadow",
|
|
1544
1547
|
"--shadow-menu": "shadow",
|
|
1545
1548
|
"--shadow-modal": "shadow",
|
|
1549
|
+
"--shadow-raised": "shadow",
|
|
1550
|
+
"--shadow-thumb": "shadow",
|
|
1551
|
+
"--shadow-drawer": "shadow",
|
|
1546
1552
|
"--ring-surface": "color",
|
|
1547
1553
|
"--ring-focus": "color",
|
|
1548
1554
|
"--sidebar-w": "spacing",
|