@cloudraker/reki 2.6.1 → 2.7.0
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/CHANGELOG.md +20 -0
- package/README.md +1 -1
- package/ai/component-registry.json +1155 -27
- package/ai/component-registry.md +1139 -21
- package/ai/schemas.ts +219 -2
- package/dist/.build-complete +1 -1
- package/dist/ai/schemas.d.ts +539 -5
- package/dist/ai/schemas.d.ts.map +1 -1
- package/dist/ai/schemas.js +1691 -1405
- package/dist/ai/schemas.js.map +1 -1
- package/dist/chunks/{SankeyChart-jwwpwps4npqzbrvn.js → SankeyChart-gogf860o4u387kjn.js} +2 -2
- package/dist/chunks/{SankeyChart-jwwpwps4npqzbrvn.js.map → SankeyChart-gogf860o4u387kjn.js.map} +1 -1
- package/dist/chunks/actor-display-izds1bhw0yswurqm.js +35 -0
- package/dist/chunks/actor-display-izds1bhw0yswurqm.js.map +1 -0
- package/dist/chunks/address-input-g1la0xqrpg8ic6ak.js +80 -0
- package/dist/chunks/address-input-g1la0xqrpg8ic6ak.js.map +1 -0
- package/dist/chunks/array-display-lu1259ap3qrl847e.js +12 -0
- package/dist/chunks/array-display-lu1259ap3qrl847e.js.map +1 -0
- package/dist/chunks/{autocomplete-f4vetako14h2aqsw.js → autocomplete-htuy5t9ag29qhuwa.js} +4 -4
- package/dist/chunks/{autocomplete-f4vetako14h2aqsw.js.map → autocomplete-htuy5t9ag29qhuwa.js.map} +1 -1
- package/dist/chunks/avatar-g40cun6cn17fcxd4.js +57 -0
- package/dist/chunks/avatar-g40cun6cn17fcxd4.js.map +1 -0
- package/dist/chunks/avatar-group-fpcaziey1yu7226v.js +23 -0
- package/dist/chunks/avatar-group-fpcaziey1yu7226v.js.map +1 -0
- package/dist/chunks/{breadcrumbs-d6149hyct4puz3x4.js → breadcrumbs-mq1utzm0q4u2r5v5.js} +2 -2
- package/dist/chunks/{breadcrumbs-d6149hyct4puz3x4.js.map → breadcrumbs-mq1utzm0q4u2r5v5.js.map} +1 -1
- package/dist/chunks/{button-nc5p1h28cwes0tjw.js → button-fvlz1rzc3s1hpyxs.js} +14 -14
- package/dist/chunks/button-fvlz1rzc3s1hpyxs.js.map +1 -0
- package/dist/chunks/{checkbox-g2661n3eodgoispq.js → checkbox-h3kfhlron3b6sfhv.js} +3 -3
- package/dist/chunks/{checkbox-g2661n3eodgoispq.js.map → checkbox-h3kfhlron3b6sfhv.js.map} +1 -1
- package/dist/chunks/chip-iu7movvthovdurgb.js +69 -0
- package/dist/chunks/chip-iu7movvthovdurgb.js.map +1 -0
- package/dist/chunks/circular-progress-bar-ofg0ps2axad1wsr6.js +60 -0
- package/dist/chunks/circular-progress-bar-ofg0ps2axad1wsr6.js.map +1 -0
- package/dist/chunks/{clipboard-text-g3659lejx2d7i93e.js → clipboard-text-ogue8iq06n1z7q7v.js} +4 -4
- package/dist/chunks/{clipboard-text-g3659lejx2d7i93e.js.map → clipboard-text-ogue8iq06n1z7q7v.js.map} +1 -1
- package/dist/chunks/{collapsible-ndvmgo29s5iqfcor.js → collapsible-ivqat099ene9z3bv.js} +2 -2
- package/dist/chunks/{collapsible-ndvmgo29s5iqfcor.js.map → collapsible-ivqat099ene9z3bv.js.map} +1 -1
- package/dist/chunks/color-sample-h7hspma3rb91go3z.js +32 -0
- package/dist/chunks/color-sample-h7hspma3rb91go3z.js.map +1 -0
- package/dist/chunks/{combobox-i38w67netm8ukw4f.js → combobox-iytvpzp5poljxgek.js} +4 -4
- package/dist/chunks/{combobox-i38w67netm8ukw4f.js.map → combobox-iytvpzp5poljxgek.js.map} +1 -1
- package/dist/chunks/{command-palette-fe5cjfdgsg3t17vq.js → command-palette-k6vrx8ely8rmf4a5.js} +4 -4
- package/dist/chunks/command-palette-k6vrx8ely8rmf4a5.js.map +1 -0
- package/dist/chunks/data-grid-i7kfgm7zr5tj0e0a.js +3110 -0
- package/dist/chunks/data-grid-i7kfgm7zr5tj0e0a.js.map +1 -0
- package/dist/chunks/{dialog-m4go8xof25fospqo.js → dialog-ggx34i6k4eulfvgk.js} +3 -3
- package/dist/chunks/{dialog-m4go8xof25fospqo.js.map → dialog-ggx34i6k4eulfvgk.js.map} +1 -1
- package/dist/chunks/double-text-input-k0i5xnfq6khv01wu.js +39 -0
- package/dist/chunks/double-text-input-k0i5xnfq6khv01wu.js.map +1 -0
- package/dist/chunks/{dropdown-j5uht8mn4z7xc9fc.js → dropdown-bt1lfs2jli0khnex.js} +2 -2
- package/dist/chunks/{dropdown-j5uht8mn4z7xc9fc.js.map → dropdown-bt1lfs2jli0khnex.js.map} +1 -1
- package/dist/chunks/emails-display-nsbqzscr0f9bqimg.js +12 -0
- package/dist/chunks/emails-display-nsbqzscr0f9bqimg.js.map +1 -0
- package/dist/chunks/{empty-kazxr0248zjemw6n.js → empty-dxy8jti5bsxxh905.js} +2 -2
- package/dist/chunks/{empty-kazxr0248zjemw6n.js.map → empty-dxy8jti5bsxxh905.js.map} +1 -1
- package/dist/chunks/expandable-list-bjceh467ocazog53.js +26 -0
- package/dist/chunks/expandable-list-bjceh467ocazog53.js.map +1 -0
- package/dist/chunks/{field-fe5m8z3vbpvtctbe.js → field-b0aywboxuss4rpu7.js} +3 -3
- package/dist/chunks/{field-fe5m8z3vbpvtctbe.js.map → field-b0aywboxuss4rpu7.js.map} +1 -1
- package/dist/chunks/{input-area-ciw85g3fno06t4tw.js → input-area-cuijpofpark5w5qq.js} +4 -4
- package/dist/chunks/{input-area-ciw85g3fno06t4tw.js.map → input-area-cuijpofpark5w5qq.js.map} +1 -1
- package/dist/chunks/{input-i5nefqk213n4z7pr.js → input-eno4q26x68rx3i8q.js} +3 -3
- package/dist/chunks/{input-i5nefqk213n4z7pr.js.map → input-eno4q26x68rx3i8q.js.map} +1 -1
- package/dist/chunks/{input-group-mo7tq7jr19hmgor5.js → input-group-dl9htnza7kq4om4c.js} +5 -5
- package/dist/chunks/{input-group-mo7tq7jr19hmgor5.js.map → input-group-dl9htnza7kq4om4c.js.map} +1 -1
- package/dist/chunks/json-display-fy0t2khc4itn130p.js +31 -0
- package/dist/chunks/json-display-fy0t2khc4itn130p.js.map +1 -0
- package/dist/chunks/{label-fcho4757rbdess0c.js → label-ld57mr4ocdxsf06p.js} +3 -3
- package/dist/chunks/{label-fcho4757rbdess0c.js.map → label-ld57mr4ocdxsf06p.js.map} +1 -1
- package/dist/chunks/{layer-card-kzu48dhzxm3e9p4u.js → layer-card-iuquuc1w3116umfw.js} +2 -2
- package/dist/chunks/{layer-card-kzu48dhzxm3e9p4u.js.map → layer-card-iuquuc1w3116umfw.js.map} +1 -1
- package/dist/chunks/{link-j2gu5dr3nr4i4yf0.js → link-8pn6y27h3m3ud8fl.js} +2 -2
- package/dist/chunks/{link-j2gu5dr3nr4i4yf0.js.map → link-8pn6y27h3m3ud8fl.js.map} +1 -1
- package/dist/chunks/link-chip-cz5v6lw9icmcndzl.js +58 -0
- package/dist/chunks/link-chip-cz5v6lw9icmcndzl.js.map +1 -0
- package/dist/chunks/links-display-dfaehepz86s2wxx1.js +20 -0
- package/dist/chunks/links-display-dfaehepz86s2wxx1.js.map +1 -0
- package/dist/chunks/menu-item-kyqq7o2krghxbpw5.js +178 -0
- package/dist/chunks/menu-item-kyqq7o2krghxbpw5.js.map +1 -0
- package/dist/chunks/{menubar-ir5gbjmsizsddz7g.js → menubar-56kqktsa5a28xyzj.js} +2 -2
- package/dist/chunks/{menubar-ir5gbjmsizsddz7g.js.map → menubar-56kqktsa5a28xyzj.js.map} +1 -1
- package/dist/chunks/{meter-o5yd7ctjf80vvyjx.js → meter-b5rnmibceu4z8i6a.js} +2 -2
- package/dist/chunks/{meter-o5yd7ctjf80vvyjx.js.map → meter-b5rnmibceu4z8i6a.js.map} +1 -1
- package/dist/chunks/notification-counter-hiq85elmcydnhzoo.js +30 -0
- package/dist/chunks/notification-counter-hiq85elmcydnhzoo.js.map +1 -0
- package/dist/chunks/overflowing-text-mm8bkx7voc6h8ra4.js +49 -0
- package/dist/chunks/overflowing-text-mm8bkx7voc6h8ra4.js.map +1 -0
- package/dist/chunks/{pagination-bryw6rohfr7mm3km.js → pagination-iczb9ooenevbxslx.js} +3 -3
- package/dist/chunks/{pagination-bryw6rohfr7mm3km.js.map → pagination-iczb9ooenevbxslx.js.map} +1 -1
- package/dist/chunks/phones-display-cdsrl07dv6obf4eg.js +19 -0
- package/dist/chunks/phones-display-cdsrl07dv6obf4eg.js.map +1 -0
- package/dist/chunks/pill-pfpvgbcnqhtyksz5.js +22 -0
- package/dist/chunks/pill-pfpvgbcnqhtyksz5.js.map +1 -0
- package/dist/chunks/{popover-elxcmvv7mu7m7uk4.js → popover-ldqdlpv6sqvkjume.js} +2 -2
- package/dist/chunks/{popover-elxcmvv7mu7m7uk4.js.map → popover-ldqdlpv6sqvkjume.js.map} +1 -1
- package/dist/chunks/{radio-newyq331uk4lltr6.js → radio-lyeniil3x20cyb8z.js} +2 -2
- package/dist/chunks/{radio-newyq331uk4lltr6.js.map → radio-lyeniil3x20cyb8z.js.map} +1 -1
- package/dist/chunks/rating-yyd4t8e62ast4obo.js +48 -0
- package/dist/chunks/rating-yyd4t8e62ast4obo.js.map +1 -0
- package/dist/chunks/record-board-iapx3cw5rusehrta.js +3395 -0
- package/dist/chunks/record-board-iapx3cw5rusehrta.js.map +1 -0
- package/dist/chunks/{select-h5480mbro0ypxu0b.js → select-hmoccee4zagd34tq.js} +6 -6
- package/dist/chunks/{select-h5480mbro0ypxu0b.js.map → select-hmoccee4zagd34tq.js.map} +1 -1
- package/dist/chunks/{sensitive-input-lqugq6uvx0lkpu0u.js → sensitive-input-nkfx72rduc7aijaf.js} +4 -4
- package/dist/chunks/{sensitive-input-lqugq6uvx0lkpu0u.js.map → sensitive-input-nkfx72rduc7aijaf.js.map} +1 -1
- package/dist/chunks/{sidebar-noz668nhdu2gso12.js → sidebar-gwfibai76tw069d4.js} +34 -33
- package/dist/chunks/sidebar-gwfibai76tw069d4.js.map +1 -0
- package/dist/chunks/status-ot0itdwxloqgahi0.js +29 -0
- package/dist/chunks/status-ot0itdwxloqgahi0.js.map +1 -0
- package/dist/chunks/{surface-cyxme7mlr49l33f8.js → surface-fqmma34ju0agh5pe.js} +2 -2
- package/dist/chunks/{surface-cyxme7mlr49l33f8.js.map → surface-fqmma34ju0agh5pe.js.map} +1 -1
- package/dist/chunks/{switch-bigo96fyjlh7ivbi.js → switch-nhtmn65n5s7gg6vb.js} +3 -3
- package/dist/chunks/{switch-bigo96fyjlh7ivbi.js.map → switch-nhtmn65n5s7gg6vb.js.map} +1 -1
- package/dist/chunks/{table-mwcmwp6a80zvyrxw.js → table-cjj894o3niouq4tg.js} +2 -2
- package/dist/chunks/{table-mwcmwp6a80zvyrxw.js.map → table-cjj894o3niouq4tg.js.map} +1 -1
- package/dist/chunks/{tabs-e4pcjkw94kpe35x0.js → tabs-klj6wapad6fpd9at.js} +14 -16
- package/dist/chunks/tabs-klj6wapad6fpd9at.js.map +1 -0
- package/dist/chunks/tag-h5kwf5eh7dyyvc2c.js +58 -0
- package/dist/chunks/tag-h5kwf5eh7dyyvc2c.js.map +1 -0
- package/dist/chunks/{toast-ivr4097bstjcjotf.js → toast-j47dl441zpxa1yw3.js} +3 -3
- package/dist/chunks/{toast-ivr4097bstjcjotf.js.map → toast-j47dl441zpxa1yw3.js.map} +1 -1
- package/dist/chunks/{tooltip-ncaia8n1lavkyw8n.js → tooltip-bkgxuz77xzg5fooc.js} +2 -2
- package/dist/chunks/{tooltip-ncaia8n1lavkyw8n.js.map → tooltip-bkgxuz77xzg5fooc.js.map} +1 -1
- package/dist/chunks/{vendor-base-ui-bgl9g5nkvqy3tn36.js → vendor-base-ui-djdjrfuoxlb1lubi.js} +2358 -2358
- package/dist/chunks/{vendor-base-ui-bgl9g5nkvqy3tn36.js.map → vendor-base-ui-djdjrfuoxlb1lubi.js.map} +1 -1
- package/dist/code.js +1 -1
- package/dist/components/actor-display.js +6 -0
- package/dist/components/actor-display.js.map +1 -0
- package/dist/components/address-input.js +6 -0
- package/dist/components/address-input.js.map +1 -0
- package/dist/components/array-display.js +6 -0
- package/dist/components/array-display.js.map +1 -0
- package/dist/components/autocomplete.js +1 -1
- package/dist/components/avatar-group.js +6 -0
- package/dist/components/avatar-group.js.map +1 -0
- package/dist/components/avatar.js +6 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/breadcrumbs.js +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/chart.js +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/chip.js +8 -0
- package/dist/components/chip.js.map +1 -0
- package/dist/components/circular-progress-bar.js +6 -0
- package/dist/components/circular-progress-bar.js.map +1 -0
- package/dist/components/clipboard-text.js +1 -1
- package/dist/components/collapsible.js +1 -1
- package/dist/components/color-sample.js +6 -0
- package/dist/components/color-sample.js.map +1 -0
- package/dist/components/combobox.js +1 -1
- package/dist/components/command-palette.js +1 -1
- package/dist/components/data-grid.js +8 -0
- package/dist/components/data-grid.js.map +1 -0
- package/dist/components/dialog.js +1 -1
- package/dist/components/double-text-input.js +6 -0
- package/dist/components/double-text-input.js.map +1 -0
- package/dist/components/dropdown.js +1 -1
- package/dist/components/emails-display.js +6 -0
- package/dist/components/emails-display.js.map +1 -0
- package/dist/components/empty.js +1 -1
- package/dist/components/expandable-list.js +6 -0
- package/dist/components/expandable-list.js.map +1 -0
- package/dist/components/field.js +1 -1
- package/dist/components/input-group.js +1 -1
- package/dist/components/input.js +3 -3
- package/dist/components/json-display.js +6 -0
- package/dist/components/json-display.js.map +1 -0
- package/dist/components/label.js +1 -1
- package/dist/components/layer-card.js +1 -1
- package/dist/components/link-chip.js +6 -0
- package/dist/components/link-chip.js.map +1 -0
- package/dist/components/link.js +1 -1
- package/dist/components/links-display.js +6 -0
- package/dist/components/links-display.js.map +1 -0
- package/dist/components/menu-item.js +11 -0
- package/dist/components/menu-item.js.map +1 -0
- package/dist/components/menubar.js +1 -1
- package/dist/components/meter.js +1 -1
- package/dist/components/notification-counter.js +6 -0
- package/dist/components/notification-counter.js.map +1 -0
- package/dist/components/overflowing-text.js +6 -0
- package/dist/components/overflowing-text.js.map +1 -0
- package/dist/components/pagination.js +1 -1
- package/dist/components/phones-display.js +6 -0
- package/dist/components/phones-display.js.map +1 -0
- package/dist/components/pill.js +6 -0
- package/dist/components/pill.js.map +1 -0
- package/dist/components/popover.js +1 -1
- package/dist/components/radio.js +1 -1
- package/dist/components/rating.js +6 -0
- package/dist/components/rating.js.map +1 -0
- package/dist/components/record-board.js +8 -0
- package/dist/components/record-board.js.map +1 -0
- package/dist/components/select.js +1 -1
- package/dist/components/sensitive-input.js +1 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/status.js +6 -0
- package/dist/components/status.js.map +1 -0
- package/dist/components/surface.js +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/tabs.js +1 -1
- package/dist/components/tag.js +10 -0
- package/dist/components/tag.js.map +1 -0
- package/dist/components/toast.js +2 -2
- package/dist/components/tooltip.js +1 -1
- package/dist/index.js +378 -253
- package/dist/index.js.map +1 -1
- package/dist/primitives/accordion.js +1 -1
- package/dist/primitives/alert-dialog.js +1 -1
- package/dist/primitives/autocomplete.js +1 -1
- package/dist/primitives/avatar.js +1 -1
- package/dist/primitives/button.js +1 -1
- package/dist/primitives/checkbox-group.js +1 -1
- package/dist/primitives/checkbox.js +1 -1
- package/dist/primitives/collapsible.js +1 -1
- package/dist/primitives/combobox.js +1 -1
- package/dist/primitives/context-menu.js +1 -1
- package/dist/primitives/csp-provider.js +1 -1
- package/dist/primitives/dialog.js +1 -1
- package/dist/primitives/direction-provider.js +1 -1
- package/dist/primitives/drawer.js +1 -1
- package/dist/primitives/field.js +1 -1
- package/dist/primitives/fieldset.js +1 -1
- package/dist/primitives/form.js +1 -1
- package/dist/primitives/input.js +1 -1
- package/dist/primitives/menu.js +1 -1
- package/dist/primitives/menubar.js +1 -1
- package/dist/primitives/meter.js +1 -1
- package/dist/primitives/navigation-menu.js +1 -1
- package/dist/primitives/number-field.js +1 -1
- package/dist/primitives/otp-field.js +1 -1
- package/dist/primitives/popover.js +1 -1
- package/dist/primitives/preview-card.js +1 -1
- package/dist/primitives/progress.js +1 -1
- package/dist/primitives/radio-group.js +1 -1
- package/dist/primitives/radio.js +1 -1
- package/dist/primitives/scroll-area.js +1 -1
- package/dist/primitives/select.js +1 -1
- package/dist/primitives/separator.js +1 -1
- package/dist/primitives/slider.js +1 -1
- package/dist/primitives/switch.js +1 -1
- package/dist/primitives/tabs.js +1 -1
- package/dist/primitives/toast.js +1 -1
- package/dist/primitives/toggle-group.js +1 -1
- package/dist/primitives/toggle.js +1 -1
- package/dist/primitives/toolbar.js +1 -1
- package/dist/primitives/tooltip.js +1 -1
- package/dist/primitives.js +1 -1
- package/dist/scripts/theme-generator/config.d.ts.map +1 -1
- package/dist/scripts/theme-generator/config.js +229 -5
- package/dist/scripts/theme-generator/config.js.map +1 -1
- package/dist/src/components/actor-display/actor-display.d.ts +33 -0
- package/dist/src/components/actor-display/actor-display.d.ts.map +1 -0
- package/dist/src/components/actor-display/index.d.ts +2 -0
- package/dist/src/components/actor-display/index.d.ts.map +1 -0
- package/dist/src/components/address-input/address-input.d.ts +42 -0
- package/dist/src/components/address-input/address-input.d.ts.map +1 -0
- package/dist/src/components/address-input/index.d.ts +2 -0
- package/dist/src/components/address-input/index.d.ts.map +1 -0
- package/dist/src/components/array-display/array-display.d.ts +30 -0
- package/dist/src/components/array-display/array-display.d.ts.map +1 -0
- package/dist/src/components/array-display/index.d.ts +2 -0
- package/dist/src/components/array-display/index.d.ts.map +1 -0
- package/dist/src/components/avatar/avatar.d.ts +80 -0
- package/dist/src/components/avatar/avatar.d.ts.map +1 -0
- package/dist/src/components/avatar/index.d.ts +2 -0
- package/dist/src/components/avatar/index.d.ts.map +1 -0
- package/dist/src/components/avatar-group/avatar-group.d.ts +35 -0
- package/dist/src/components/avatar-group/avatar-group.d.ts.map +1 -0
- package/dist/src/components/avatar-group/index.d.ts +2 -0
- package/dist/src/components/avatar-group/index.d.ts.map +1 -0
- package/dist/src/components/button/button.d.ts +4 -4
- package/dist/src/components/chip/chip.d.ts +78 -0
- package/dist/src/components/chip/chip.d.ts.map +1 -0
- package/dist/src/components/chip/index.d.ts +2 -0
- package/dist/src/components/chip/index.d.ts.map +1 -0
- package/dist/src/components/circular-progress-bar/circular-progress-bar.d.ts +35 -0
- package/dist/src/components/circular-progress-bar/circular-progress-bar.d.ts.map +1 -0
- package/dist/src/components/circular-progress-bar/index.d.ts +2 -0
- package/dist/src/components/circular-progress-bar/index.d.ts.map +1 -0
- package/dist/src/components/color-sample/color-sample.d.ts +56 -0
- package/dist/src/components/color-sample/color-sample.d.ts.map +1 -0
- package/dist/src/components/color-sample/index.d.ts +2 -0
- package/dist/src/components/color-sample/index.d.ts.map +1 -0
- package/dist/src/components/data-grid/data-grid.d.ts +25 -0
- package/dist/src/components/data-grid/data-grid.d.ts.map +1 -0
- package/dist/src/components/data-grid/index.d.ts +3 -0
- package/dist/src/components/data-grid/index.d.ts.map +1 -0
- package/dist/src/components/data-grid/types.d.ts +103 -0
- package/dist/src/components/data-grid/types.d.ts.map +1 -0
- package/dist/src/components/data-grid/use-data-grid-edit.d.ts +34 -0
- package/dist/src/components/data-grid/use-data-grid-edit.d.ts.map +1 -0
- package/dist/src/components/double-text-input/double-text-input.d.ts +47 -0
- package/dist/src/components/double-text-input/double-text-input.d.ts.map +1 -0
- package/dist/src/components/double-text-input/index.d.ts +2 -0
- package/dist/src/components/double-text-input/index.d.ts.map +1 -0
- package/dist/src/components/emails-display/emails-display.d.ts +30 -0
- package/dist/src/components/emails-display/emails-display.d.ts.map +1 -0
- package/dist/src/components/emails-display/index.d.ts +2 -0
- package/dist/src/components/emails-display/index.d.ts.map +1 -0
- package/dist/src/components/expandable-list/expandable-list.d.ts +41 -0
- package/dist/src/components/expandable-list/expandable-list.d.ts.map +1 -0
- package/dist/src/components/expandable-list/index.d.ts +2 -0
- package/dist/src/components/expandable-list/index.d.ts.map +1 -0
- package/dist/src/components/json-display/index.d.ts +2 -0
- package/dist/src/components/json-display/index.d.ts.map +1 -0
- package/dist/src/components/json-display/json-display.d.ts +29 -0
- package/dist/src/components/json-display/json-display.d.ts.map +1 -0
- package/dist/src/components/link-chip/index.d.ts +2 -0
- package/dist/src/components/link-chip/index.d.ts.map +1 -0
- package/dist/src/components/link-chip/link-chip.d.ts +50 -0
- package/dist/src/components/link-chip/link-chip.d.ts.map +1 -0
- package/dist/src/components/links-display/index.d.ts +2 -0
- package/dist/src/components/links-display/index.d.ts.map +1 -0
- package/dist/src/components/links-display/links-display.d.ts +37 -0
- package/dist/src/components/links-display/links-display.d.ts.map +1 -0
- package/dist/src/components/menu-item/index.d.ts +2 -0
- package/dist/src/components/menu-item/index.d.ts.map +1 -0
- package/dist/src/components/menu-item/menu-item.d.ts +104 -0
- package/dist/src/components/menu-item/menu-item.d.ts.map +1 -0
- package/dist/src/components/notification-counter/index.d.ts +2 -0
- package/dist/src/components/notification-counter/index.d.ts.map +1 -0
- package/dist/src/components/notification-counter/notification-counter.d.ts +51 -0
- package/dist/src/components/notification-counter/notification-counter.d.ts.map +1 -0
- package/dist/src/components/overflowing-text/index.d.ts +2 -0
- package/dist/src/components/overflowing-text/index.d.ts.map +1 -0
- package/dist/src/components/overflowing-text/overflowing-text.d.ts +48 -0
- package/dist/src/components/overflowing-text/overflowing-text.d.ts.map +1 -0
- package/dist/src/components/phones-display/index.d.ts +2 -0
- package/dist/src/components/phones-display/index.d.ts.map +1 -0
- package/dist/src/components/phones-display/phones-display.d.ts +31 -0
- package/dist/src/components/phones-display/phones-display.d.ts.map +1 -0
- package/dist/src/components/pill/index.d.ts +2 -0
- package/dist/src/components/pill/index.d.ts.map +1 -0
- package/dist/src/components/pill/pill.d.ts +31 -0
- package/dist/src/components/pill/pill.d.ts.map +1 -0
- package/dist/src/components/rating/index.d.ts +2 -0
- package/dist/src/components/rating/index.d.ts.map +1 -0
- package/dist/src/components/rating/rating.d.ts +37 -0
- package/dist/src/components/rating/rating.d.ts.map +1 -0
- package/dist/src/components/record-board/index.d.ts +2 -0
- package/dist/src/components/record-board/index.d.ts.map +1 -0
- package/dist/src/components/record-board/record-board.d.ts +75 -0
- package/dist/src/components/record-board/record-board.d.ts.map +1 -0
- package/dist/src/components/sidebar/sidebar.d.ts.map +1 -1
- package/dist/src/components/status/index.d.ts +2 -0
- package/dist/src/components/status/index.d.ts.map +1 -0
- package/dist/src/components/status/status.d.ts +52 -0
- package/dist/src/components/status/status.d.ts.map +1 -0
- package/dist/src/components/tabs/tabs.d.ts.map +1 -1
- package/dist/src/components/tag/index.d.ts +2 -0
- package/dist/src/components/tag/index.d.ts.map +1 -0
- package/dist/src/components/tag/tag.d.ts +153 -0
- package/dist/src/components/tag/tag.d.ts.map +1 -0
- package/dist/src/index.d.ts +25 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/utils/use-is-dark-mode.d.ts +18 -0
- package/dist/src/utils/use-is-dark-mode.d.ts.map +1 -0
- package/dist/styles/reki-standalone.css +1 -1
- package/dist/styles/reki.css +19 -0
- package/dist/styles/theme-fedramp.css +6 -0
- package/dist/styles/theme-reki.css +164 -10
- package/package.json +114 -4
- package/scripts/component-registry/index.ts +6 -11
- package/scripts/extract-demo-examples.ts +323 -0
- package/scripts/generate-stories.ts +205 -0
- package/scripts/theme-generator/config.ts +230 -5
- package/dist/chunks/button-nc5p1h28cwes0tjw.js.map +0 -1
- package/dist/chunks/command-palette-fe5cjfdgsg3t17vq.js.map +0 -1
- package/dist/chunks/sidebar-noz668nhdu2gso12.js.map +0 -1
- package/dist/chunks/tabs-e4pcjkw94kpe35x0.js.map +0 -1
package/ai/component-registry.md
CHANGED
|
@@ -2,6 +2,106 @@
|
|
|
2
2
|
|
|
3
3
|
> Auto-generated component metadata for AI/agent consumption.
|
|
4
4
|
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
### ActorDisplay
|
|
8
|
+
|
|
9
|
+
Renders an `actor` / created-by / owned-by value as an avatar followed by a name. Use for record authorship and assignee cells.
|
|
10
|
+
|
|
11
|
+
**Type:** component
|
|
12
|
+
|
|
13
|
+
**Import:** `import { ActorDisplay } from "@cloudraker/reki";`
|
|
14
|
+
|
|
15
|
+
**Category:** Other
|
|
16
|
+
|
|
17
|
+
**Props:**
|
|
18
|
+
|
|
19
|
+
- `name`: string (required)
|
|
20
|
+
Display name of the actor (workspace member, system, or API).
|
|
21
|
+
- `avatarUrl`: string | null
|
|
22
|
+
Avatar image URL. Falls back to the name's initial when absent.
|
|
23
|
+
- `avatarSize`: enum
|
|
24
|
+
Avatar size.
|
|
25
|
+
- `className`: string
|
|
26
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
27
|
+
|
|
28
|
+
**Colors (reki tokens used):**
|
|
29
|
+
|
|
30
|
+
`text-reki-default`
|
|
31
|
+
|
|
32
|
+
**Examples:**
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
<TooltipProvider>
|
|
36
|
+
<ActorDisplay name="Jane Doe" />
|
|
37
|
+
</TooltipProvider>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
```tsx
|
|
41
|
+
<TooltipProvider>
|
|
42
|
+
<ActorDisplay name="Jane Doe" avatarUrl="https://i.pravatar.cc/40?img=5" />
|
|
43
|
+
</TooltipProvider>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
### AddressInput
|
|
50
|
+
|
|
51
|
+
A structured address editor (street, city, state, postcode, country) for the `address` field type. Presentational only — geocoding / autocomplete, if needed, is layered on by the host app.
|
|
52
|
+
|
|
53
|
+
**Type:** component
|
|
54
|
+
|
|
55
|
+
**Import:** `import { AddressInput } from "@cloudraker/reki";`
|
|
56
|
+
|
|
57
|
+
**Category:** Other
|
|
58
|
+
|
|
59
|
+
**Props:**
|
|
60
|
+
|
|
61
|
+
- `value`: AddressValue (required)
|
|
62
|
+
Current address value.
|
|
63
|
+
- `disabled`: boolean
|
|
64
|
+
Disables all fields.
|
|
65
|
+
- `className`: string
|
|
66
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
67
|
+
|
|
68
|
+
**Examples:**
|
|
69
|
+
|
|
70
|
+
```tsx
|
|
71
|
+
<AddressInput value={value} onChange={setValue} />
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
### ArrayDisplay
|
|
78
|
+
|
|
79
|
+
Renders an array field's values as a collapsible list of chips. Pre-normalize the field value to a `string[]` in your field-cell layer.
|
|
80
|
+
|
|
81
|
+
**Type:** component
|
|
82
|
+
|
|
83
|
+
**Import:** `import { ArrayDisplay } from "@cloudraker/reki";`
|
|
84
|
+
|
|
85
|
+
**Category:** Other
|
|
86
|
+
|
|
87
|
+
**Props:**
|
|
88
|
+
|
|
89
|
+
- `values`: string[] (required)
|
|
90
|
+
String values to render as chips.
|
|
91
|
+
- `className`: string
|
|
92
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
93
|
+
|
|
94
|
+
**Examples:**
|
|
95
|
+
|
|
96
|
+
```tsx
|
|
97
|
+
<TooltipProvider>
|
|
98
|
+
<div className="w-48">
|
|
99
|
+
<ArrayDisplay values={["alpha", "beta", "gamma", "delta"]} max={2} />
|
|
100
|
+
</div>
|
|
101
|
+
</TooltipProvider>
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
|
|
5
105
|
---
|
|
6
106
|
|
|
7
107
|
### Autocomplete
|
|
@@ -258,6 +358,103 @@ Collection sub-component (wraps AutocompleteBase)
|
|
|
258
358
|
```
|
|
259
359
|
|
|
260
360
|
|
|
361
|
+
---
|
|
362
|
+
|
|
363
|
+
### Avatar
|
|
364
|
+
|
|
365
|
+
Image-or-initials glyph for a user or entity. Falls back to initials on a neutral fill when no image is provided. Use for assignees, participants, and record owners.
|
|
366
|
+
|
|
367
|
+
**Type:** component
|
|
368
|
+
|
|
369
|
+
**Import:** `import { Avatar } from "@cloudraker/reki";`
|
|
370
|
+
|
|
371
|
+
**Category:** Other
|
|
372
|
+
|
|
373
|
+
**Props:**
|
|
374
|
+
|
|
375
|
+
- `initials`: string
|
|
376
|
+
Up to ~2 characters shown when there is no image.
|
|
377
|
+
- `alt`: string
|
|
378
|
+
Accessible name / image alt text.
|
|
379
|
+
- `size`: enum [default: base]
|
|
380
|
+
- `"xs"`: Extra small
|
|
381
|
+
- `"sm"`: Small
|
|
382
|
+
- `"base"`: Default
|
|
383
|
+
- `"lg"`: Large
|
|
384
|
+
- `"xl"`: Extra large
|
|
385
|
+
- `shape`: enum [default: circle]
|
|
386
|
+
- `"circle"`: Round avatar
|
|
387
|
+
- `"square"`: Rounded square avatar
|
|
388
|
+
- `className`: string
|
|
389
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
390
|
+
|
|
391
|
+
**Colors (reki tokens used):**
|
|
392
|
+
|
|
393
|
+
`bg-reki-fill`
|
|
394
|
+
|
|
395
|
+
**Examples:**
|
|
396
|
+
|
|
397
|
+
```tsx
|
|
398
|
+
<div className="flex items-center gap-2">
|
|
399
|
+
<Avatar initials="XS" size="xs" />
|
|
400
|
+
<Avatar initials="SM" size="sm" />
|
|
401
|
+
<Avatar initials="MD" size="base" />
|
|
402
|
+
<Avatar initials="LG" size="lg" />
|
|
403
|
+
<Avatar initials="XL" size="xl" />
|
|
404
|
+
</div>
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
```tsx
|
|
408
|
+
<div className="flex items-center gap-2">
|
|
409
|
+
<Avatar initials="JD" shape="circle" />
|
|
410
|
+
<Avatar initials="JD" shape="square" />
|
|
411
|
+
</div>
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
```tsx
|
|
415
|
+
<Avatar
|
|
416
|
+
src="https://i.pravatar.cc/80?img=12"
|
|
417
|
+
alt="Jane Doe"
|
|
418
|
+
size="lg"
|
|
419
|
+
/>
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
---
|
|
424
|
+
|
|
425
|
+
### AvatarGroup
|
|
426
|
+
|
|
427
|
+
Overlapping stack of avatars for assignees / participants. Shows up to `max` avatars and a `+N` counter for the remainder.
|
|
428
|
+
|
|
429
|
+
**Type:** component
|
|
430
|
+
|
|
431
|
+
**Import:** `import { AvatarGroup } from "@cloudraker/reki";`
|
|
432
|
+
|
|
433
|
+
**Category:** Other
|
|
434
|
+
|
|
435
|
+
**Props:**
|
|
436
|
+
|
|
437
|
+
- `avatars`: ReactNode[] (required)
|
|
438
|
+
Avatar nodes to stack (typically reki `Avatar` elements).
|
|
439
|
+
- `className`: string
|
|
440
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
441
|
+
|
|
442
|
+
**Colors (reki tokens used):**
|
|
443
|
+
|
|
444
|
+
`bg-reki-fill`, `ring-reki-base`, `text-reki-subtle`
|
|
445
|
+
|
|
446
|
+
**Examples:**
|
|
447
|
+
|
|
448
|
+
```tsx
|
|
449
|
+
<AvatarGroup
|
|
450
|
+
max={4}
|
|
451
|
+
avatars={members.map((initials) => (
|
|
452
|
+
<Avatar key={initials} initials={initials} size="sm" />
|
|
453
|
+
))}
|
|
454
|
+
/>
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
|
|
261
458
|
---
|
|
262
459
|
|
|
263
460
|
### Badge
|
|
@@ -901,6 +1098,126 @@ Props:
|
|
|
901
1098
|
```
|
|
902
1099
|
|
|
903
1100
|
|
|
1101
|
+
---
|
|
1102
|
+
|
|
1103
|
+
### Chip
|
|
1104
|
+
|
|
1105
|
+
Compact reference token for a record or entity (a relation value, a tag with an avatar, a removable selection). Presentational only — wire `onClick` / `rightComponent` to your data layer. For a navigable chip, use {@link LinkChip}.
|
|
1106
|
+
|
|
1107
|
+
**Type:** component
|
|
1108
|
+
|
|
1109
|
+
**Import:** `import { Chip } from "@cloudraker/reki";`
|
|
1110
|
+
|
|
1111
|
+
**Category:** Other
|
|
1112
|
+
|
|
1113
|
+
**Props:**
|
|
1114
|
+
|
|
1115
|
+
- `label`: string (required)
|
|
1116
|
+
Text label (truncated with a tooltip on overflow).
|
|
1117
|
+
- `tooltipLabel`: string
|
|
1118
|
+
Tooltip content shown when the label overflows. Defaults to `label`.
|
|
1119
|
+
- `variant`: enum [default: regular]
|
|
1120
|
+
Visual variant.
|
|
1121
|
+
- `size`: enum [default: small]
|
|
1122
|
+
Size of the chip.
|
|
1123
|
+
- `accent`: enum [default: primary]
|
|
1124
|
+
Text emphasis. `"secondary"` renders muted, medium-weight text.
|
|
1125
|
+
- `isBold`: boolean
|
|
1126
|
+
Renders the label in a medium font weight.
|
|
1127
|
+
- `leftComponent`: ReactNode
|
|
1128
|
+
Node rendered before the label (e.g. an avatar or icon).
|
|
1129
|
+
- `rightComponent`: ReactNode
|
|
1130
|
+
Node rendered after the label (e.g. a remove button or count).
|
|
1131
|
+
- `disabled`: boolean
|
|
1132
|
+
Disables the chip and dims it.
|
|
1133
|
+
- `className`: string
|
|
1134
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
1135
|
+
|
|
1136
|
+
**Colors (reki tokens used):**
|
|
1137
|
+
|
|
1138
|
+
`bg-reki-base`, `bg-reki-fill`, `ring-reki-hairline`, `text-reki-default`, `text-reki-subtle`
|
|
1139
|
+
|
|
1140
|
+
**Examples:**
|
|
1141
|
+
|
|
1142
|
+
```tsx
|
|
1143
|
+
<div className="flex flex-wrap items-center gap-2">
|
|
1144
|
+
<Chip label="Regular" variant="regular" />
|
|
1145
|
+
<Chip label="Highlighted" variant="highlighted" />
|
|
1146
|
+
<Chip label="Transparent" variant="transparent" />
|
|
1147
|
+
<Chip label="Static" variant="static" />
|
|
1148
|
+
</div>
|
|
1149
|
+
```
|
|
1150
|
+
|
|
1151
|
+
```tsx
|
|
1152
|
+
<div className="flex items-center gap-2">
|
|
1153
|
+
<Chip label="Small" size="small" />
|
|
1154
|
+
<Chip label="Large" size="large" />
|
|
1155
|
+
</div>
|
|
1156
|
+
```
|
|
1157
|
+
|
|
1158
|
+
```tsx
|
|
1159
|
+
<div className="flex flex-wrap items-center gap-2">
|
|
1160
|
+
<Chip
|
|
1161
|
+
label="Acme Inc."
|
|
1162
|
+
leftComponent={<BuildingsIcon className="size-3.5" />}
|
|
1163
|
+
/>
|
|
1164
|
+
<Chip
|
|
1165
|
+
label="Removable"
|
|
1166
|
+
rightComponent={<XIcon className="size-3" />}
|
|
1167
|
+
onClick={() => {}}
|
|
1168
|
+
/>
|
|
1169
|
+
</div>
|
|
1170
|
+
```
|
|
1171
|
+
|
|
1172
|
+
```tsx
|
|
1173
|
+
<Chip label="Disabled" onClick={() => {}} disabled />
|
|
1174
|
+
```
|
|
1175
|
+
|
|
1176
|
+
```tsx
|
|
1177
|
+
<TooltipProvider>
|
|
1178
|
+
<div className="w-32">
|
|
1179
|
+
<Chip label="A very long related record name that truncates" />
|
|
1180
|
+
</div>
|
|
1181
|
+
</TooltipProvider>
|
|
1182
|
+
```
|
|
1183
|
+
|
|
1184
|
+
|
|
1185
|
+
---
|
|
1186
|
+
|
|
1187
|
+
### CircularProgressBar
|
|
1188
|
+
|
|
1189
|
+
A determinate circular progress ring — for record completeness, quota usage, and similar single-value metrics. For a linear bar use `Meter`; for an indeterminate spinner use `Loader`.
|
|
1190
|
+
|
|
1191
|
+
**Type:** component
|
|
1192
|
+
|
|
1193
|
+
**Import:** `import { CircularProgressBar } from "@cloudraker/reki";`
|
|
1194
|
+
|
|
1195
|
+
**Category:** Other
|
|
1196
|
+
|
|
1197
|
+
**Props:**
|
|
1198
|
+
|
|
1199
|
+
- `value`: number (required)
|
|
1200
|
+
Progress as a percentage (0–100).
|
|
1201
|
+
- `size`: number
|
|
1202
|
+
Diameter in pixels.
|
|
1203
|
+
- `barWidth`: number
|
|
1204
|
+
Stroke width in pixels.
|
|
1205
|
+
- `label`: string
|
|
1206
|
+
Accessible label.
|
|
1207
|
+
- `className`: string
|
|
1208
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
1209
|
+
|
|
1210
|
+
**Examples:**
|
|
1211
|
+
|
|
1212
|
+
```tsx
|
|
1213
|
+
<div className="flex items-center gap-4">
|
|
1214
|
+
<CircularProgressBar value={25} />
|
|
1215
|
+
<CircularProgressBar value={60} />
|
|
1216
|
+
<CircularProgressBar value={100} />
|
|
1217
|
+
</div>
|
|
1218
|
+
```
|
|
1219
|
+
|
|
1220
|
+
|
|
904
1221
|
---
|
|
905
1222
|
|
|
906
1223
|
### ClipboardText
|
|
@@ -1611,6 +1928,63 @@ Props:
|
|
|
1611
1928
|
```
|
|
1612
1929
|
|
|
1613
1930
|
|
|
1931
|
+
---
|
|
1932
|
+
|
|
1933
|
+
### ColorSample
|
|
1934
|
+
|
|
1935
|
+
A color swatch for color pickers and tag-color selection. Uses the same `reki-tag-*` palette as {@link Tag} so the swatch always matches the tag it represents, in both light and dark mode.
|
|
1936
|
+
|
|
1937
|
+
**Type:** component
|
|
1938
|
+
|
|
1939
|
+
**Import:** `import { ColorSample } from "@cloudraker/reki";`
|
|
1940
|
+
|
|
1941
|
+
**Category:** Other
|
|
1942
|
+
|
|
1943
|
+
**Props:**
|
|
1944
|
+
|
|
1945
|
+
- `colorName`: enum (required)
|
|
1946
|
+
Named CRM tag color to display.
|
|
1947
|
+
- `variant`: enum [default: default]
|
|
1948
|
+
- `"default"`: Rounded square (default)
|
|
1949
|
+
- `"circle"`: Circle
|
|
1950
|
+
- `"pipeline"`: Wide pipeline bar
|
|
1951
|
+
- `className`: string
|
|
1952
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
1953
|
+
|
|
1954
|
+
**Colors (reki tokens used):**
|
|
1955
|
+
|
|
1956
|
+
`ring-reki-hairline`
|
|
1957
|
+
|
|
1958
|
+
**Examples:**
|
|
1959
|
+
|
|
1960
|
+
```tsx
|
|
1961
|
+
<div className="flex flex-wrap items-center gap-2">
|
|
1962
|
+
{TAG_COLOR_NAMES.map((color) => (
|
|
1963
|
+
<ColorSample key={color} colorName={color} />
|
|
1964
|
+
))}
|
|
1965
|
+
</div>
|
|
1966
|
+
```
|
|
1967
|
+
|
|
1968
|
+
```tsx
|
|
1969
|
+
<div className="flex items-center gap-3">
|
|
1970
|
+
<ColorSample colorName="blue" variant="default" />
|
|
1971
|
+
<ColorSample colorName="blue" variant="circle" />
|
|
1972
|
+
<ColorSample colorName="blue" variant="pipeline" />
|
|
1973
|
+
</div>
|
|
1974
|
+
```
|
|
1975
|
+
|
|
1976
|
+
```tsx
|
|
1977
|
+
<div className="flex w-48 flex-col gap-1">
|
|
1978
|
+
{(["green", "orange", "red"] as const).map((color) => (
|
|
1979
|
+
<div key={color} className="flex items-center gap-2">
|
|
1980
|
+
<ColorSample colorName={color} variant="circle" />
|
|
1981
|
+
<span className="text-sm capitalize text-reki-default">{color}</span>
|
|
1982
|
+
</div>
|
|
1983
|
+
))}
|
|
1984
|
+
</div>
|
|
1985
|
+
```
|
|
1986
|
+
|
|
1987
|
+
|
|
1614
1988
|
---
|
|
1615
1989
|
|
|
1616
1990
|
### Combobox
|
|
@@ -2420,6 +2794,57 @@ CommandPalette — accessible command palette / spotlight search overlay.
|
|
|
2420
2794
|
```
|
|
2421
2795
|
|
|
2422
2796
|
|
|
2797
|
+
---
|
|
2798
|
+
|
|
2799
|
+
### DataGrid
|
|
2800
|
+
|
|
2801
|
+
DataGrid component
|
|
2802
|
+
|
|
2803
|
+
**Type:** component
|
|
2804
|
+
|
|
2805
|
+
**Import:** `import { DataGrid } from "@cloudraker/reki";`
|
|
2806
|
+
|
|
2807
|
+
**Category:** Other
|
|
2808
|
+
|
|
2809
|
+
**Props:**
|
|
2810
|
+
|
|
2811
|
+
- `kind`: enum (required)
|
|
2812
|
+
- `initialValue`: unknown (required)
|
|
2813
|
+
- `initialKey`: string
|
|
2814
|
+
- `align`: enum (required)
|
|
2815
|
+
|
|
2816
|
+
**Colors (reki tokens used):**
|
|
2817
|
+
|
|
2818
|
+
`bg-reki-base`, `bg-reki-canvas`, `bg-reki-fill`, `border-reki-hairline`, `outline-reki-brand`, `outline-reki-hairline`, `text-reki-default`, `text-reki-subtle`
|
|
2819
|
+
|
|
2820
|
+
**Examples:**
|
|
2821
|
+
|
|
2822
|
+
```tsx
|
|
2823
|
+
<TooltipProvider>
|
|
2824
|
+
<div className="w-[720px]">
|
|
2825
|
+
<DataGrid
|
|
2826
|
+
data={rows}
|
|
2827
|
+
columns={columns}
|
|
2828
|
+
getRowId={(r) => r.id}
|
|
2829
|
+
height={360}
|
|
2830
|
+
enableRowSelection
|
|
2831
|
+
selectedRowIds={selected}
|
|
2832
|
+
onSelectedRowIdsChange={setSelected}
|
|
2833
|
+
onCommitCell={({ rowId, columnId, value }) =>
|
|
2834
|
+
setRows((rs) =>
|
|
2835
|
+
rs.map((r) => (r.id === rowId ? { ...r, [columnId]: value } : r)),
|
|
2836
|
+
)
|
|
2837
|
+
}
|
|
2838
|
+
/>
|
|
2839
|
+
<p className="mt-2 text-xs text-reki-subtle">
|
|
2840
|
+
500 rows (virtualized) · {selected.length} selected · double-click
|
|
2841
|
+
Amount/Owner to edit
|
|
2842
|
+
</p>
|
|
2843
|
+
</div>
|
|
2844
|
+
</TooltipProvider>
|
|
2845
|
+
```
|
|
2846
|
+
|
|
2847
|
+
|
|
2423
2848
|
---
|
|
2424
2849
|
|
|
2425
2850
|
### DatePicker
|
|
@@ -3024,6 +3449,45 @@ Close sub-component
|
|
|
3024
3449
|
```
|
|
3025
3450
|
|
|
3026
3451
|
|
|
3452
|
+
---
|
|
3453
|
+
|
|
3454
|
+
### DoubleTextInput
|
|
3455
|
+
|
|
3456
|
+
Two side-by-side text inputs that edit a single composite value — full names (first / last) and other paired fields.
|
|
3457
|
+
|
|
3458
|
+
**Type:** component
|
|
3459
|
+
|
|
3460
|
+
**Import:** `import { DoubleTextInput } from "@cloudraker/reki";`
|
|
3461
|
+
|
|
3462
|
+
**Category:** Other
|
|
3463
|
+
|
|
3464
|
+
**Props:**
|
|
3465
|
+
|
|
3466
|
+
- `value`: DoubleTextValue (required)
|
|
3467
|
+
Current paired value.
|
|
3468
|
+
- `firstPlaceholder`: string
|
|
3469
|
+
Placeholder for the first input.
|
|
3470
|
+
- `secondPlaceholder`: string
|
|
3471
|
+
Placeholder for the second input.
|
|
3472
|
+
- `disabled`: boolean
|
|
3473
|
+
Disables both inputs.
|
|
3474
|
+
- `className`: string
|
|
3475
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
3476
|
+
|
|
3477
|
+
**Examples:**
|
|
3478
|
+
|
|
3479
|
+
```tsx
|
|
3480
|
+
<div className="w-72">
|
|
3481
|
+
<DoubleTextInput
|
|
3482
|
+
value={value}
|
|
3483
|
+
onChange={setValue}
|
|
3484
|
+
firstPlaceholder="First name"
|
|
3485
|
+
secondPlaceholder="Last name"
|
|
3486
|
+
/>
|
|
3487
|
+
</div>
|
|
3488
|
+
```
|
|
3489
|
+
|
|
3490
|
+
|
|
3027
3491
|
---
|
|
3028
3492
|
|
|
3029
3493
|
### DropdownMenu
|
|
@@ -3356,6 +3820,39 @@ Group sub-component (wraps DropdownMenuPrimitive)
|
|
|
3356
3820
|
```
|
|
3357
3821
|
|
|
3358
3822
|
|
|
3823
|
+
---
|
|
3824
|
+
|
|
3825
|
+
### EmailsDisplay
|
|
3826
|
+
|
|
3827
|
+
Renders an `emails` field as a collapsible list of `mailto:` link chips. Pre-normalize the field value to a `string[]` in your field-cell layer.
|
|
3828
|
+
|
|
3829
|
+
**Type:** component
|
|
3830
|
+
|
|
3831
|
+
**Import:** `import { EmailsDisplay } from "@cloudraker/reki";`
|
|
3832
|
+
|
|
3833
|
+
**Category:** Other
|
|
3834
|
+
|
|
3835
|
+
**Props:**
|
|
3836
|
+
|
|
3837
|
+
- `emails`: string[] (required)
|
|
3838
|
+
Email addresses, primary first.
|
|
3839
|
+
- `className`: string
|
|
3840
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
3841
|
+
|
|
3842
|
+
**Examples:**
|
|
3843
|
+
|
|
3844
|
+
```tsx
|
|
3845
|
+
<TooltipProvider>
|
|
3846
|
+
<div className="w-56">
|
|
3847
|
+
<EmailsDisplay
|
|
3848
|
+
emails={["jane@acme.com", "j.doe@personal.com", "jane@old.com"]}
|
|
3849
|
+
max={1}
|
|
3850
|
+
/>
|
|
3851
|
+
</div>
|
|
3852
|
+
</TooltipProvider>
|
|
3853
|
+
```
|
|
3854
|
+
|
|
3855
|
+
|
|
3359
3856
|
---
|
|
3360
3857
|
|
|
3361
3858
|
### Empty
|
|
@@ -3477,6 +3974,45 @@ Placeholder shown when a list, table, or page has no content to display.
|
|
|
3477
3974
|
```
|
|
3478
3975
|
|
|
3479
3976
|
|
|
3977
|
+
---
|
|
3978
|
+
|
|
3979
|
+
### ExpandableList
|
|
3980
|
+
|
|
3981
|
+
Renders the first `max` items inline and collapses the remainder into a `+N` chip whose count reveals the hidden items on hover. Use for dense multi-value cells (tags, emails, links) where space is constrained.
|
|
3982
|
+
|
|
3983
|
+
**Type:** component
|
|
3984
|
+
|
|
3985
|
+
**Import:** `import { ExpandableList } from "@cloudraker/reki";`
|
|
3986
|
+
|
|
3987
|
+
**Category:** Other
|
|
3988
|
+
|
|
3989
|
+
**Props:**
|
|
3990
|
+
|
|
3991
|
+
- `children`: ReactNode
|
|
3992
|
+
Items to render. The first `max` are shown inline; the rest collapse into a `+N` chip.
|
|
3993
|
+
- `className`: string
|
|
3994
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
3995
|
+
|
|
3996
|
+
**Colors (reki tokens used):**
|
|
3997
|
+
|
|
3998
|
+
`bg-reki-fill`, `text-reki-subtle`
|
|
3999
|
+
|
|
4000
|
+
**Examples:**
|
|
4001
|
+
|
|
4002
|
+
```tsx
|
|
4003
|
+
<TooltipProvider>
|
|
4004
|
+
<div className="w-48">
|
|
4005
|
+
<ExpandableList max={2}>
|
|
4006
|
+
<Tag color="blue" text="Engineering" />
|
|
4007
|
+
<Tag color="green" text="Sales" />
|
|
4008
|
+
<Tag color="orange" text="Support" />
|
|
4009
|
+
<Tag color="purple" text="Finance" />
|
|
4010
|
+
</ExpandableList>
|
|
4011
|
+
</div>
|
|
4012
|
+
</TooltipProvider>
|
|
4013
|
+
```
|
|
4014
|
+
|
|
4015
|
+
|
|
3480
4016
|
---
|
|
3481
4017
|
|
|
3482
4018
|
### Field
|
|
@@ -4349,6 +4885,40 @@ Description sub-component
|
|
|
4349
4885
|
```
|
|
4350
4886
|
|
|
4351
4887
|
|
|
4888
|
+
---
|
|
4889
|
+
|
|
4890
|
+
### JsonDisplay
|
|
4891
|
+
|
|
4892
|
+
Single-line, truncated display for a `json` / `raw-json` field value. Shows the full value in a tooltip on overflow via {@link OverflowingText}. Wrap in a `TooltipProvider` for the tooltip.
|
|
4893
|
+
|
|
4894
|
+
**Type:** component
|
|
4895
|
+
|
|
4896
|
+
**Import:** `import { JsonDisplay } from "@cloudraker/reki";`
|
|
4897
|
+
|
|
4898
|
+
**Category:** Other
|
|
4899
|
+
|
|
4900
|
+
**Props:**
|
|
4901
|
+
|
|
4902
|
+
- `value`: unknown (required)
|
|
4903
|
+
Value to render. Objects/arrays are stringified; strings are shown as-is.
|
|
4904
|
+
- `className`: string
|
|
4905
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
4906
|
+
|
|
4907
|
+
**Colors (reki tokens used):**
|
|
4908
|
+
|
|
4909
|
+
`text-reki-subtle`
|
|
4910
|
+
|
|
4911
|
+
**Examples:**
|
|
4912
|
+
|
|
4913
|
+
```tsx
|
|
4914
|
+
<TooltipProvider>
|
|
4915
|
+
<div className="w-56 rounded-md border border-reki-fill p-2">
|
|
4916
|
+
<JsonDisplay value={{ status: "ok", count: 3, nested: { a: 1 } }} />
|
|
4917
|
+
</div>
|
|
4918
|
+
</TooltipProvider>
|
|
4919
|
+
```
|
|
4920
|
+
|
|
4921
|
+
|
|
4352
4922
|
---
|
|
4353
4923
|
|
|
4354
4924
|
### Label
|
|
@@ -4653,6 +5223,103 @@ ExternalIcon sub-component
|
|
|
4653
5223
|
```
|
|
4654
5224
|
|
|
4655
5225
|
|
|
5226
|
+
---
|
|
5227
|
+
|
|
5228
|
+
### LinkChip
|
|
5229
|
+
|
|
5230
|
+
A {@link Chip} that navigates to a record. Renders through reki's `LinkProvider`, so it honours the host app's router (TanStack Router, React Router, Next.js) and supports middle-click / cmd-click to open in a new tab. Use for clickable relation values in tables, boards, and detail panels.
|
|
5231
|
+
|
|
5232
|
+
**Type:** component
|
|
5233
|
+
|
|
5234
|
+
**Import:** `import { LinkChip } from "@cloudraker/reki";`
|
|
5235
|
+
|
|
5236
|
+
**Category:** Other
|
|
5237
|
+
|
|
5238
|
+
**Props:**
|
|
5239
|
+
|
|
5240
|
+
- `label`: string (required)
|
|
5241
|
+
Text label (truncated with a tooltip on overflow).
|
|
5242
|
+
- `href`: string (required)
|
|
5243
|
+
Destination href. Resolved through the configured `LinkProvider`.
|
|
5244
|
+
- `tooltipLabel`: string
|
|
5245
|
+
Tooltip content shown when the label overflows. Defaults to `label`.
|
|
5246
|
+
- `size`: enum
|
|
5247
|
+
Size of the chip.
|
|
5248
|
+
- `accent`: enum
|
|
5249
|
+
Text emphasis.
|
|
5250
|
+
- `isBold`: boolean
|
|
5251
|
+
Renders the label in a medium font weight.
|
|
5252
|
+
- `leftComponent`: ReactNode
|
|
5253
|
+
Node rendered before the label (e.g. an avatar or icon).
|
|
5254
|
+
- `rightComponent`: ReactNode
|
|
5255
|
+
Node rendered after the label.
|
|
5256
|
+
- `target`: string
|
|
5257
|
+
Opens the link in a new tab.
|
|
5258
|
+
- `className`: string
|
|
5259
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
5260
|
+
|
|
5261
|
+
**Colors (reki tokens used):**
|
|
5262
|
+
|
|
5263
|
+
`bg-reki-fill`, `text-reki-subtle`
|
|
5264
|
+
|
|
5265
|
+
**Examples:**
|
|
5266
|
+
|
|
5267
|
+
```tsx
|
|
5268
|
+
<LinkChip label="Acme Inc." href="/companies/acme" />
|
|
5269
|
+
```
|
|
5270
|
+
|
|
5271
|
+
```tsx
|
|
5272
|
+
<LinkChip
|
|
5273
|
+
label="Acme Inc."
|
|
5274
|
+
href="/companies/acme"
|
|
5275
|
+
leftComponent={<BuildingsIcon className="size-3.5" />}
|
|
5276
|
+
/>
|
|
5277
|
+
```
|
|
5278
|
+
|
|
5279
|
+
```tsx
|
|
5280
|
+
<div className="flex items-center gap-2">
|
|
5281
|
+
<LinkChip label="Small" href="#" size="small" />
|
|
5282
|
+
<LinkChip label="Large" href="#" size="large" />
|
|
5283
|
+
</div>
|
|
5284
|
+
```
|
|
5285
|
+
|
|
5286
|
+
|
|
5287
|
+
---
|
|
5288
|
+
|
|
5289
|
+
### LinksDisplay
|
|
5290
|
+
|
|
5291
|
+
Renders a `links` field as a collapsible list of external link chips (open in a new tab). Resolve absolute URLs and labels in your field-cell layer.
|
|
5292
|
+
|
|
5293
|
+
**Type:** component
|
|
5294
|
+
|
|
5295
|
+
**Import:** `import { LinksDisplay } from "@cloudraker/reki";`
|
|
5296
|
+
|
|
5297
|
+
**Category:** Other
|
|
5298
|
+
|
|
5299
|
+
**Props:**
|
|
5300
|
+
|
|
5301
|
+
- `links`: LinkValue[] (required)
|
|
5302
|
+
Links to render, primary first.
|
|
5303
|
+
- `className`: string
|
|
5304
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
5305
|
+
|
|
5306
|
+
**Examples:**
|
|
5307
|
+
|
|
5308
|
+
```tsx
|
|
5309
|
+
<TooltipProvider>
|
|
5310
|
+
<div className="w-56">
|
|
5311
|
+
<LinksDisplay
|
|
5312
|
+
links={[
|
|
5313
|
+
{ url: "https://acme.com", label: "acme.com" },
|
|
5314
|
+
{ url: "https://docs.acme.com", label: "docs.acme.com" },
|
|
5315
|
+
]}
|
|
5316
|
+
max={1}
|
|
5317
|
+
/>
|
|
5318
|
+
</div>
|
|
5319
|
+
</TooltipProvider>
|
|
5320
|
+
```
|
|
5321
|
+
|
|
5322
|
+
|
|
4656
5323
|
---
|
|
4657
5324
|
|
|
4658
5325
|
### Loader
|
|
@@ -4723,27 +5390,113 @@ MenuBar — horizontal icon-button toolbar with keyboard arrow-key navigation.
|
|
|
4723
5390
|
**Styling:**
|
|
4724
5391
|
|
|
4725
5392
|
|
|
4726
|
-
**Examples:**
|
|
5393
|
+
**Examples:**
|
|
5394
|
+
|
|
5395
|
+
```tsx
|
|
5396
|
+
<MenuBar
|
|
5397
|
+
isActive={active}
|
|
5398
|
+
optionIds
|
|
5399
|
+
options={[
|
|
5400
|
+
{
|
|
5401
|
+
icon: <TextBolderIcon />,
|
|
5402
|
+
id: "bold",
|
|
5403
|
+
tooltip: "Bold",
|
|
5404
|
+
onClick: () => setActive(active === "bold" ? undefined : "bold"),
|
|
5405
|
+
},
|
|
5406
|
+
{
|
|
5407
|
+
icon: <TextItalicIcon />,
|
|
5408
|
+
id: "italic",
|
|
5409
|
+
tooltip: "Italic",
|
|
5410
|
+
onClick: () => setActive(active === "italic" ? undefined : "italic"),
|
|
5411
|
+
},
|
|
5412
|
+
]}
|
|
5413
|
+
/>
|
|
5414
|
+
```
|
|
5415
|
+
|
|
5416
|
+
|
|
5417
|
+
---
|
|
5418
|
+
|
|
5419
|
+
### MenuItem
|
|
5420
|
+
|
|
5421
|
+
A single dropdown / list row: leading icon or component, label, and an optional trailing check or element. The building block for option pickers, filter builders, and action menus. See also {@link MenuItemSelect}, {@link MenuItemMultiSelect}, {@link MenuItemSelectColor}, {@link MenuItemSelectTag}, and {@link MenuItemAvatar}.
|
|
5422
|
+
|
|
5423
|
+
**Type:** component
|
|
5424
|
+
|
|
5425
|
+
**Import:** `import { MenuItem } from "@cloudraker/reki";`
|
|
5426
|
+
|
|
5427
|
+
**Category:** Other
|
|
5428
|
+
|
|
5429
|
+
**Props:**
|
|
5430
|
+
|
|
5431
|
+
- `text`: string (required)
|
|
5432
|
+
Row label.
|
|
5433
|
+
- `LeftIcon`: IconType
|
|
5434
|
+
Optional leading icon.
|
|
5435
|
+
- `leftComponent`: ReactNode
|
|
5436
|
+
Optional leading element (avatar, color sample, …) shown before the text.
|
|
5437
|
+
- `rightComponent`: ReactNode
|
|
5438
|
+
Optional trailing element shown after the text.
|
|
5439
|
+
- `selected`: boolean
|
|
5440
|
+
Shows a trailing check mark when true.
|
|
5441
|
+
- `focused`: boolean
|
|
5442
|
+
Keyboard-focused / active styling.
|
|
5443
|
+
- `disabled`: boolean
|
|
5444
|
+
Disables the row.
|
|
5445
|
+
- `className`: string
|
|
5446
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
5447
|
+
|
|
5448
|
+
**Colors (reki tokens used):**
|
|
5449
|
+
|
|
5450
|
+
`bg-reki-brand`, `bg-reki-fill`, `ring-reki-brand`, `ring-reki-hairline`, `text-reki-default`, `text-reki-inverse`, `text-reki-subtle`
|
|
5451
|
+
|
|
5452
|
+
**Examples:**
|
|
5453
|
+
|
|
5454
|
+
```tsx
|
|
5455
|
+
<LayerCard className="w-56 p-1">
|
|
5456
|
+
<MenuItem text="Rename" LeftIcon={PencilIcon} />
|
|
5457
|
+
<MenuItem text="Delete" LeftIcon={TrashIcon} />
|
|
5458
|
+
</LayerCard>
|
|
5459
|
+
```
|
|
5460
|
+
|
|
5461
|
+
```tsx
|
|
5462
|
+
<LayerCard className="w-56 p-1">
|
|
5463
|
+
{["low", "medium", "high"].map((option) => (
|
|
5464
|
+
<MenuItemSelect
|
|
5465
|
+
key={option}
|
|
5466
|
+
text={option}
|
|
5467
|
+
selected={value === option}
|
|
5468
|
+
onClick={() => setValue(option)}
|
|
5469
|
+
/>
|
|
5470
|
+
))}
|
|
5471
|
+
</LayerCard>
|
|
5472
|
+
```
|
|
5473
|
+
|
|
5474
|
+
```tsx
|
|
5475
|
+
<LayerCard className="w-56 p-1">
|
|
5476
|
+
{["sales", "marketing", "support"].map((option) => (
|
|
5477
|
+
<MenuItemMultiSelect
|
|
5478
|
+
key={option}
|
|
5479
|
+
text={option}
|
|
5480
|
+
selected={selected.includes(option)}
|
|
5481
|
+
onSelectChange={() => toggle(option)}
|
|
5482
|
+
/>
|
|
5483
|
+
))}
|
|
5484
|
+
</LayerCard>
|
|
5485
|
+
```
|
|
5486
|
+
|
|
5487
|
+
```tsx
|
|
5488
|
+
<LayerCard className="w-56 p-1">
|
|
5489
|
+
<MenuItemSelectColor text="Green" color="green" selected />
|
|
5490
|
+
<MenuItemSelectColor text="Blue" color="blue" />
|
|
5491
|
+
<MenuItemSelectColor text="Purple" color="purple" />
|
|
5492
|
+
</LayerCard>
|
|
5493
|
+
```
|
|
4727
5494
|
|
|
4728
5495
|
```tsx
|
|
4729
|
-
<
|
|
4730
|
-
|
|
4731
|
-
|
|
4732
|
-
|
|
4733
|
-
{
|
|
4734
|
-
icon: <TextBolderIcon />,
|
|
4735
|
-
id: "bold",
|
|
4736
|
-
tooltip: "Bold",
|
|
4737
|
-
onClick: () => setActive(active === "bold" ? undefined : "bold"),
|
|
4738
|
-
},
|
|
4739
|
-
{
|
|
4740
|
-
icon: <TextItalicIcon />,
|
|
4741
|
-
id: "italic",
|
|
4742
|
-
tooltip: "Italic",
|
|
4743
|
-
onClick: () => setActive(active === "italic" ? undefined : "italic"),
|
|
4744
|
-
},
|
|
4745
|
-
]}
|
|
4746
|
-
/>
|
|
5496
|
+
<LayerCard className="w-56 p-1">
|
|
5497
|
+
<MenuItemAvatar text="Jane Doe" avatarInitials="JD" selected />
|
|
5498
|
+
<MenuItemAvatar text="John Smith" avatarInitials="JS" />
|
|
5499
|
+
</LayerCard>
|
|
4747
5500
|
```
|
|
4748
5501
|
|
|
4749
5502
|
|
|
@@ -4805,6 +5558,90 @@ Progress bar showing a measured value within a known range (e.g. quota usage).
|
|
|
4805
5558
|
```
|
|
4806
5559
|
|
|
4807
5560
|
|
|
5561
|
+
---
|
|
5562
|
+
|
|
5563
|
+
### NotificationCounter
|
|
5564
|
+
|
|
5565
|
+
A small numeric badge for unread/pending counts on icons and nav items.
|
|
5566
|
+
|
|
5567
|
+
**Type:** component
|
|
5568
|
+
|
|
5569
|
+
**Import:** `import { NotificationCounter } from "@cloudraker/reki";`
|
|
5570
|
+
|
|
5571
|
+
**Category:** Other
|
|
5572
|
+
|
|
5573
|
+
**Props:**
|
|
5574
|
+
|
|
5575
|
+
- `count`: number (required)
|
|
5576
|
+
Number to display. Values above `max` render as `{max}+`.
|
|
5577
|
+
- `variant`: enum [default: primary]
|
|
5578
|
+
- `"primary"`: Brand background (default)
|
|
5579
|
+
- `"secondary"`: Neutral fill
|
|
5580
|
+
- `className`: string
|
|
5581
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
5582
|
+
|
|
5583
|
+
**Colors (reki tokens used):**
|
|
5584
|
+
|
|
5585
|
+
`bg-reki-brand`, `bg-reki-fill`, `text-reki-default`, `text-reki-inverse`
|
|
5586
|
+
|
|
5587
|
+
**Examples:**
|
|
5588
|
+
|
|
5589
|
+
```tsx
|
|
5590
|
+
<div className="flex items-center gap-3">
|
|
5591
|
+
<NotificationCounter count={3} />
|
|
5592
|
+
<NotificationCounter count={12} variant="secondary" />
|
|
5593
|
+
<NotificationCounter count={150} max={99} />
|
|
5594
|
+
</div>
|
|
5595
|
+
```
|
|
5596
|
+
|
|
5597
|
+
|
|
5598
|
+
---
|
|
5599
|
+
|
|
5600
|
+
### OverflowingText
|
|
5601
|
+
|
|
5602
|
+
Truncates text to its container and reveals the full value in a tooltip **only when it actually overflows**. Measures with a `ResizeObserver`, so it stays correct as the container resizes. Ideal for dense table/board cells and chips where labels are unpredictable in length.
|
|
5603
|
+
|
|
5604
|
+
**Type:** component
|
|
5605
|
+
|
|
5606
|
+
**Import:** `import { OverflowingText } from "@cloudraker/reki";`
|
|
5607
|
+
|
|
5608
|
+
**Category:** Other
|
|
5609
|
+
|
|
5610
|
+
**Props:**
|
|
5611
|
+
|
|
5612
|
+
- `text`: string (required)
|
|
5613
|
+
Text to render, truncated when it overflows its container.
|
|
5614
|
+
- `tooltipContent`: ReactNode
|
|
5615
|
+
Tooltip content shown when the text overflows. Defaults to `text`. Provide a custom node to show richer content than the raw string.
|
|
5616
|
+
- `lines`: number
|
|
5617
|
+
Maximum number of lines before clamping. `1` (default) truncates to a single line with an ellipsis; higher values clamp to that many lines.
|
|
5618
|
+
- `alwaysShowTooltip`: boolean
|
|
5619
|
+
Always show the tooltip on hover, even when the text is not overflowing.
|
|
5620
|
+
- `className`: string
|
|
5621
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
5622
|
+
|
|
5623
|
+
**Examples:**
|
|
5624
|
+
|
|
5625
|
+
```tsx
|
|
5626
|
+
<TooltipProvider>
|
|
5627
|
+
<div className="w-40 rounded-md border border-reki-fill p-2">
|
|
5628
|
+
<OverflowingText text="This label is far too long to fit in its container — hover to see the full value in a tooltip." />
|
|
5629
|
+
</div>
|
|
5630
|
+
</TooltipProvider>
|
|
5631
|
+
```
|
|
5632
|
+
|
|
5633
|
+
```tsx
|
|
5634
|
+
<TooltipProvider>
|
|
5635
|
+
<div className="w-40 rounded-md border border-reki-fill p-2">
|
|
5636
|
+
<OverflowingText
|
|
5637
|
+
lines={2}
|
|
5638
|
+
text="A longer description that wraps onto two lines before it clamps with an ellipsis and reveals the rest on hover."
|
|
5639
|
+
/>
|
|
5640
|
+
</div>
|
|
5641
|
+
</TooltipProvider>
|
|
5642
|
+
```
|
|
5643
|
+
|
|
5644
|
+
|
|
4808
5645
|
---
|
|
4809
5646
|
|
|
4810
5647
|
### Pagination
|
|
@@ -5032,6 +5869,74 @@ Props:
|
|
|
5032
5869
|
```
|
|
5033
5870
|
|
|
5034
5871
|
|
|
5872
|
+
---
|
|
5873
|
+
|
|
5874
|
+
### PhonesDisplay
|
|
5875
|
+
|
|
5876
|
+
Renders a `phones` field as a collapsible list of `tel:` link chips. Format the numbers in your field-cell layer (e.g. via `libphonenumber-js`) and pass display strings.
|
|
5877
|
+
|
|
5878
|
+
**Type:** component
|
|
5879
|
+
|
|
5880
|
+
**Import:** `import { PhonesDisplay } from "@cloudraker/reki";`
|
|
5881
|
+
|
|
5882
|
+
**Category:** Other
|
|
5883
|
+
|
|
5884
|
+
**Props:**
|
|
5885
|
+
|
|
5886
|
+
- `phones`: string[] (required)
|
|
5887
|
+
Pre-formatted phone numbers, primary first.
|
|
5888
|
+
- `className`: string
|
|
5889
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
5890
|
+
|
|
5891
|
+
**Examples:**
|
|
5892
|
+
|
|
5893
|
+
```tsx
|
|
5894
|
+
<TooltipProvider>
|
|
5895
|
+
<div className="w-56">
|
|
5896
|
+
<PhonesDisplay
|
|
5897
|
+
phones={["+1 415 555 0100", "+44 20 7946 0000"]}
|
|
5898
|
+
max={1}
|
|
5899
|
+
/>
|
|
5900
|
+
</div>
|
|
5901
|
+
</TooltipProvider>
|
|
5902
|
+
```
|
|
5903
|
+
|
|
5904
|
+
|
|
5905
|
+
---
|
|
5906
|
+
|
|
5907
|
+
### Pill
|
|
5908
|
+
|
|
5909
|
+
A tiny static label for inline annotations (counts, flags, hints). Smaller and quieter than {@link Tag} or {@link Badge}; not interactive.
|
|
5910
|
+
|
|
5911
|
+
**Type:** component
|
|
5912
|
+
|
|
5913
|
+
**Import:** `import { Pill } from "@cloudraker/reki";`
|
|
5914
|
+
|
|
5915
|
+
**Category:** Other
|
|
5916
|
+
|
|
5917
|
+
**Props:**
|
|
5918
|
+
|
|
5919
|
+
- `label`: string (required)
|
|
5920
|
+
Text label.
|
|
5921
|
+
- `icon`: React.ComponentType<React.SVGProps<SVGSVGElement>>
|
|
5922
|
+
Optional leading icon (phosphor or any SVG component).
|
|
5923
|
+
- `className`: string
|
|
5924
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
5925
|
+
|
|
5926
|
+
**Colors (reki tokens used):**
|
|
5927
|
+
|
|
5928
|
+
`bg-reki-fill`, `text-reki-subtle`
|
|
5929
|
+
|
|
5930
|
+
**Examples:**
|
|
5931
|
+
|
|
5932
|
+
```tsx
|
|
5933
|
+
<div className="flex items-center gap-2">
|
|
5934
|
+
<Pill label="3 records" />
|
|
5935
|
+
<Pill label="Beta" icon={SparkleIcon} />
|
|
5936
|
+
</div>
|
|
5937
|
+
```
|
|
5938
|
+
|
|
5939
|
+
|
|
5035
5940
|
---
|
|
5036
5941
|
|
|
5037
5942
|
### Popover
|
|
@@ -5633,6 +6538,97 @@ Props:
|
|
|
5633
6538
|
```
|
|
5634
6539
|
|
|
5635
6540
|
|
|
6541
|
+
---
|
|
6542
|
+
|
|
6543
|
+
### Rating
|
|
6544
|
+
|
|
6545
|
+
Star rating for the `rating` field type. Read-only by default for cell display; pass `onChange` for an editable control (clicking the current value clears it).
|
|
6546
|
+
|
|
6547
|
+
**Type:** component
|
|
6548
|
+
|
|
6549
|
+
**Import:** `import { Rating } from "@cloudraker/reki";`
|
|
6550
|
+
|
|
6551
|
+
**Category:** Other
|
|
6552
|
+
|
|
6553
|
+
**Props:**
|
|
6554
|
+
|
|
6555
|
+
- `value`: number | null (required)
|
|
6556
|
+
Current rating (1..max), or `null` for unrated.
|
|
6557
|
+
- `readonly`: boolean
|
|
6558
|
+
Renders as read-only (no hover/click).
|
|
6559
|
+
- `className`: string
|
|
6560
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
6561
|
+
|
|
6562
|
+
**Colors (reki tokens used):**
|
|
6563
|
+
|
|
6564
|
+
`text-reki-default`, `text-reki-inactive`
|
|
6565
|
+
|
|
6566
|
+
**Examples:**
|
|
6567
|
+
|
|
6568
|
+
```tsx
|
|
6569
|
+
<div className="flex flex-col gap-1">
|
|
6570
|
+
<Rating value={1} readonly />
|
|
6571
|
+
<Rating value={3} readonly />
|
|
6572
|
+
<Rating value={5} readonly />
|
|
6573
|
+
</div>
|
|
6574
|
+
```
|
|
6575
|
+
|
|
6576
|
+
```tsx
|
|
6577
|
+
<Rating value={value} onChange={setValue} />
|
|
6578
|
+
```
|
|
6579
|
+
|
|
6580
|
+
|
|
6581
|
+
---
|
|
6582
|
+
|
|
6583
|
+
### RecordBoard
|
|
6584
|
+
|
|
6585
|
+
RecordBoard component
|
|
6586
|
+
|
|
6587
|
+
**Type:** component
|
|
6588
|
+
|
|
6589
|
+
**Import:** `import { RecordBoard } from "@cloudraker/reki";`
|
|
6590
|
+
|
|
6591
|
+
**Category:** Other
|
|
6592
|
+
|
|
6593
|
+
**Props:**
|
|
6594
|
+
|
|
6595
|
+
- `className`: string
|
|
6596
|
+
Additional CSS classes
|
|
6597
|
+
- `children`: ReactNode
|
|
6598
|
+
Child elements
|
|
6599
|
+
|
|
6600
|
+
**Colors (reki tokens used):**
|
|
6601
|
+
|
|
6602
|
+
`bg-reki-base`, `bg-reki-recessed`, `ring-reki-hairline`, `text-reki-default`, `text-reki-subtle`
|
|
6603
|
+
|
|
6604
|
+
**Examples:**
|
|
6605
|
+
|
|
6606
|
+
```tsx
|
|
6607
|
+
<div className="h-[420px] w-[760px]">
|
|
6608
|
+
<RecordBoard
|
|
6609
|
+
columns={STAGES}
|
|
6610
|
+
records={opps}
|
|
6611
|
+
getRecordId={(o) => o.id}
|
|
6612
|
+
getColumnId={(o) => o.stage}
|
|
6613
|
+
onMove={({ recordId, toColumnId }) =>
|
|
6614
|
+
setOpps((rs) =>
|
|
6615
|
+
rs.map((o) => (o.id === recordId ? { ...o, stage: toColumnId } : o)),
|
|
6616
|
+
)
|
|
6617
|
+
}
|
|
6618
|
+
renderCard={(o) => (
|
|
6619
|
+
<div className="flex flex-col gap-1.5">
|
|
6620
|
+
<span className="text-sm font-medium text-reki-default">{o.name}</span>
|
|
6621
|
+
<div className="flex items-center justify-between">
|
|
6622
|
+
<Tag color="gray" text={`$${o.amount.toLocaleString()}`} />
|
|
6623
|
+
<Avatar initials={o.owner} size="xs" />
|
|
6624
|
+
</div>
|
|
6625
|
+
</div>
|
|
6626
|
+
)}
|
|
6627
|
+
/>
|
|
6628
|
+
</div>
|
|
6629
|
+
```
|
|
6630
|
+
|
|
6631
|
+
|
|
5636
6632
|
---
|
|
5637
6633
|
|
|
5638
6634
|
### Select
|
|
@@ -6967,6 +7963,55 @@ Props:
|
|
|
6967
7963
|
```
|
|
6968
7964
|
|
|
6969
7965
|
|
|
7966
|
+
---
|
|
7967
|
+
|
|
7968
|
+
### Status
|
|
7969
|
+
|
|
7970
|
+
A compact colored status indicator for record states (pipeline stages, task status, health). Uses the `reki-tag-*` palette so it stays consistent with {@link Tag} and adapts to light/dark automatically.
|
|
7971
|
+
|
|
7972
|
+
**Type:** component
|
|
7973
|
+
|
|
7974
|
+
**Import:** `import { Status } from "@cloudraker/reki";`
|
|
7975
|
+
|
|
7976
|
+
**Category:** Other
|
|
7977
|
+
|
|
7978
|
+
**Props:**
|
|
7979
|
+
|
|
7980
|
+
- `text`: string (required)
|
|
7981
|
+
Status label text.
|
|
7982
|
+
- `isLoaderVisible`: boolean
|
|
7983
|
+
Shows an inline loader after the text (e.g. while a transition runs).
|
|
7984
|
+
- `weight`: enum [default: regular]
|
|
7985
|
+
- `"regular"`: Regular weight
|
|
7986
|
+
- `"medium"`: Medium weight
|
|
7987
|
+
- `className`: string
|
|
7988
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
7989
|
+
|
|
7990
|
+
**Colors (reki tokens used):**
|
|
7991
|
+
|
|
7992
|
+
`text-reki-subtle`
|
|
7993
|
+
|
|
7994
|
+
**Examples:**
|
|
7995
|
+
|
|
7996
|
+
```tsx
|
|
7997
|
+
<div className="flex flex-wrap items-center gap-2">
|
|
7998
|
+
<Status color="green" text="Active" />
|
|
7999
|
+
<Status color="gray" text="Inactive" />
|
|
8000
|
+
<Status color="red" text="Blocked" />
|
|
8001
|
+
<Status color="blue" text="In progress" />
|
|
8002
|
+
<Status color="purple" text="Review" />
|
|
8003
|
+
</div>
|
|
8004
|
+
```
|
|
8005
|
+
|
|
8006
|
+
```tsx
|
|
8007
|
+
<Status color="orange" text="Syncing" isLoaderVisible />
|
|
8008
|
+
```
|
|
8009
|
+
|
|
8010
|
+
```tsx
|
|
8011
|
+
<Status color="green" text="Active" weight="medium" />
|
|
8012
|
+
```
|
|
8013
|
+
|
|
8014
|
+
|
|
6970
8015
|
---
|
|
6971
8016
|
|
|
6972
8017
|
### Surface
|
|
@@ -7846,7 +8891,7 @@ Tab navigation component with segmented or underline style. Built on Base UI Tab
|
|
|
7846
8891
|
|
|
7847
8892
|
**Colors (reki tokens used):**
|
|
7848
8893
|
|
|
7849
|
-
`bg-reki-base`, `bg-reki-brand`, `bg-reki-
|
|
8894
|
+
`bg-reki-base`, `bg-reki-brand`, `bg-reki-tint`, `border-reki-hairline`, `ring-reki-brand`, `ring-reki-focus`, `ring-reki-line`, `text-reki-default`, `text-reki-subtle`
|
|
7850
8895
|
|
|
7851
8896
|
**Styling:**
|
|
7852
8897
|
|
|
@@ -7970,12 +9015,15 @@ Tab navigation component with segmented or underline style. Built on Base UI Tab
|
|
|
7970
9015
|
{
|
|
7971
9016
|
value: "tab2",
|
|
7972
9017
|
label: "Link Tab",
|
|
9018
|
+
// Anchor content is supplied by Tabs via the spread props at runtime.
|
|
9019
|
+
// oxlint-disable-next-line anchor-has-content
|
|
7973
9020
|
render: (props) => <a {...props} href="#tab2" />,
|
|
7974
9021
|
},
|
|
7975
9022
|
{
|
|
7976
9023
|
value: "tab3",
|
|
7977
9024
|
label: "Cloudflare",
|
|
7978
9025
|
render: (props) => (
|
|
9026
|
+
// oxlint-disable-next-line anchor-has-content
|
|
7979
9027
|
<a {...props} href="https://cloudflare.com" target="_blank" />
|
|
7980
9028
|
),
|
|
7981
9029
|
},
|
|
@@ -7985,6 +9033,76 @@ Tab navigation component with segmented or underline style. Built on Base UI Tab
|
|
|
7985
9033
|
```
|
|
7986
9034
|
|
|
7987
9035
|
|
|
9036
|
+
---
|
|
9037
|
+
|
|
9038
|
+
### Tag
|
|
9039
|
+
|
|
9040
|
+
Colored label for enum / select / multi-select values and entity categories. Built on the `reki-tag-*` token palette so colors adapt to light/dark automatically, and on {@link OverflowingText} so long labels truncate with a tooltip.
|
|
9041
|
+
|
|
9042
|
+
**Type:** component
|
|
9043
|
+
|
|
9044
|
+
**Import:** `import { Tag } from "@cloudraker/reki";`
|
|
9045
|
+
|
|
9046
|
+
**Category:** Other
|
|
9047
|
+
|
|
9048
|
+
**Props:**
|
|
9049
|
+
|
|
9050
|
+
- `text`: string (required)
|
|
9051
|
+
Text label rendered inside the tag (truncated with a tooltip on overflow).
|
|
9052
|
+
- `icon`: React.ComponentType<React.SVGProps<SVGSVGElement>>
|
|
9053
|
+
Optional leading icon (phosphor or any SVG component).
|
|
9054
|
+
- `variant`: enum [default: solid]
|
|
9055
|
+
- `"solid"`: Subtle colored background (default)
|
|
9056
|
+
- `"outline"`: Transparent background with a colored ring
|
|
9057
|
+
- `"border"`: Subtle background with a matching ring
|
|
9058
|
+
- `weight`: enum [default: regular]
|
|
9059
|
+
- `"regular"`: Regular weight
|
|
9060
|
+
- `"medium"`: Medium weight
|
|
9061
|
+
- `preventShrink`: boolean
|
|
9062
|
+
Prevents the tag from shrinking inside flex containers.
|
|
9063
|
+
- `className`: string
|
|
9064
|
+
Additional CSS classes merged via `cn()`. Use reki semantic tokens only.
|
|
9065
|
+
|
|
9066
|
+
**Colors (reki tokens used):**
|
|
9067
|
+
|
|
9068
|
+
`bg-reki-tag-blue`, `bg-reki-tag-gray`, `bg-reki-tag-green`, `bg-reki-tag-orange`, `bg-reki-tag-pink`, `bg-reki-tag-purple`, `bg-reki-tag-red`, `bg-reki-tag-sky`, `bg-reki-tag-turquoise`, `bg-reki-tag-yellow`, `text-reki-subtle`, `text-reki-tag-blue`, `text-reki-tag-gray`, `text-reki-tag-green`, `text-reki-tag-orange`, `text-reki-tag-pink`, `text-reki-tag-purple`, `text-reki-tag-red`, `text-reki-tag-sky`, `text-reki-tag-turquoise`, `text-reki-tag-yellow`
|
|
9069
|
+
|
|
9070
|
+
**Examples:**
|
|
9071
|
+
|
|
9072
|
+
```tsx
|
|
9073
|
+
<div className="flex flex-wrap items-center gap-2">
|
|
9074
|
+
{TAG_COLOR_NAMES.map((color) => (
|
|
9075
|
+
<Tag key={color} color={color} text={color} />
|
|
9076
|
+
))}
|
|
9077
|
+
</div>
|
|
9078
|
+
```
|
|
9079
|
+
|
|
9080
|
+
```tsx
|
|
9081
|
+
<div className="flex flex-wrap items-center gap-2">
|
|
9082
|
+
<Tag color="blue" text="Solid" variant="solid" />
|
|
9083
|
+
<Tag color="blue" text="Outline" variant="outline" />
|
|
9084
|
+
<Tag color="blue" text="Border" variant="border" />
|
|
9085
|
+
</div>
|
|
9086
|
+
```
|
|
9087
|
+
|
|
9088
|
+
```tsx
|
|
9089
|
+
<div className="flex flex-wrap items-center gap-2">
|
|
9090
|
+
<Tag color="green" text="Active" icon={CircleIcon} />
|
|
9091
|
+
<Tag color="purple" text="Assigned" icon={UserIcon} />
|
|
9092
|
+
</div>
|
|
9093
|
+
```
|
|
9094
|
+
|
|
9095
|
+
```tsx
|
|
9096
|
+
<Tag color="transparent" text="No color" />
|
|
9097
|
+
```
|
|
9098
|
+
|
|
9099
|
+
```tsx
|
|
9100
|
+
<div className="w-32">
|
|
9101
|
+
<Tag color="orange" text="A very long tag label that will truncate" />
|
|
9102
|
+
</div>
|
|
9103
|
+
```
|
|
9104
|
+
|
|
9105
|
+
|
|
7988
9106
|
---
|
|
7989
9107
|
|
|
7990
9108
|
### Text
|
|
@@ -8336,7 +9454,7 @@ Multi-line textarea input with Input variants and InputArea-specific dimensions
|
|
|
8336
9454
|
## Quick Reference
|
|
8337
9455
|
|
|
8338
9456
|
**Components by Category:**
|
|
8339
|
-
- **Other:** Autocomplete, CloudflareLogo, DatePicker, Label, Link, SensitiveInput, Sidebar, Table, TableOfContents, DeleteResource
|
|
9457
|
+
- **Other:** ActorDisplay, AddressInput, ArrayDisplay, Autocomplete, Avatar, AvatarGroup, Chip, CircularProgressBar, CloudflareLogo, ColorSample, DataGrid, DatePicker, DoubleTextInput, EmailsDisplay, ExpandableList, JsonDisplay, Label, Link, LinkChip, LinksDisplay, MenuItem, NotificationCounter, OverflowingText, PhonesDisplay, Pill, Rating, RecordBoard, SensitiveInput, Sidebar, Status, Table, TableOfContents, Tag, DeleteResource
|
|
8340
9458
|
- **Display:** Badge, Breadcrumbs, Code, Collapsible, Empty, LayerCard, Meter, Text
|
|
8341
9459
|
- **Feedback:** Banner, Loader, Toasty
|
|
8342
9460
|
- **Action:** Button, ClipboardText
|