@duro-app/cli 3.6.0 → 3.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.
Files changed (2) hide show
  1. package/package.json +5 -5
  2. package/registry.json +37 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duro-app/cli",
3
- "version": "3.6.0",
3
+ "version": "3.7.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "Machine-queryable docs for the Duro design system: components, props, recipes, tokens and rules as CLI output, JSON, or an MCP server.",
@@ -45,7 +45,7 @@
45
45
  },
46
46
  "peerDependencies": {
47
47
  "@modelcontextprotocol/sdk": ">=1.0.0",
48
- "@duro-app/ui": "^3.6.0"
48
+ "@duro-app/ui": "^3.7.0"
49
49
  },
50
50
  "peerDependenciesMeta": {
51
51
  "@duro-app/ui": {
@@ -60,9 +60,9 @@
60
60
  "@types/node": "^24.0.0",
61
61
  "ts-morph": "^26.0.0",
62
62
  "typescript": "^5.7.0",
63
- "@duro-app/eslint-plugin": "^3.6.0",
64
- "@duro-app/tokens": "^3.6.0",
65
- "@duro-app/ui": "^3.6.0"
63
+ "@duro-app/tokens": "^3.7.0",
64
+ "@duro-app/ui": "^3.7.0",
65
+ "@duro-app/eslint-plugin": "^3.7.0"
66
66
  },
67
67
  "scripts": {
68
68
  "registry": "node scripts/build-registry.mjs",
package/registry.json CHANGED
@@ -2933,6 +2933,22 @@
2933
2933
  "required": false,
2934
2934
  "type": "() => void"
2935
2935
  },
2936
+ {
2937
+ "name": "onFocus",
2938
+ "required": false,
2939
+ "type": "(e: React.FocusEvent<HTMLInputElement>) => void"
2940
+ },
2941
+ {
2942
+ "description": "Keyboard handlers — e.g. Enter to commit, Escape to cancel, arrow-key navigation of a list driven by this field.",
2943
+ "name": "onKeyDown",
2944
+ "required": false,
2945
+ "type": "(e: React.KeyboardEvent<HTMLInputElement>) => void"
2946
+ },
2947
+ {
2948
+ "name": "onKeyUp",
2949
+ "required": false,
2950
+ "type": "(e: React.KeyboardEvent<HTMLInputElement>) => void"
2951
+ },
2936
2952
  {
2937
2953
  "name": "ref",
2938
2954
  "required": false,
@@ -3310,8 +3326,8 @@
3310
3326
  "Item"
3311
3327
  ]
3312
3328
  },
3313
- "description": "Dropdown action menu. Triggers actions (not value selection). Compound component — Root is required (throws without it).",
3314
- "example": "<Menu.Root>\n <Menu.Trigger>\n <Button variant=\"secondary\">Actions</Button>\n </Menu.Trigger>\n <Menu.Popup>\n <Menu.Item onClick={() => console.log('edit')}>Edit</Menu.Item>\n <Menu.Item onClick={() => console.log('duplicate')}>Duplicate</Menu.Item>\n <Menu.LinkItem href=\"/settings\">Settings</Menu.LinkItem>\n </Menu.Popup>\n</Menu.Root>",
3329
+ "description": "Dropdown action menu. Triggers actions (not value selection). Compound component — Root is required (throws without it). Menu.Trigger renders the button itself: give it the label (text, an Icon), never a Button.",
3330
+ "example": "<Menu.Root>\n <Menu.Trigger>Actions</Menu.Trigger>\n <Menu.Popup>\n <Menu.Item onClick={() => console.log('edit')}>Edit</Menu.Item>\n <Menu.Item onClick={() => console.log('duplicate')}>Duplicate</Menu.Item>\n <Menu.LinkItem href=\"/settings\">Settings</Menu.LinkItem>\n </Menu.Popup>\n</Menu.Root>",
3315
3331
  "relatedTo": [
3316
3332
  {
3317
3333
  "component": "Select",
@@ -3320,8 +3336,8 @@
3320
3336
  },
3321
3337
  {
3322
3338
  "component": "Button",
3323
- "kind": "composition",
3324
- "relationship": "Often used as Menu.Trigger content"
3339
+ "kind": "contrast",
3340
+ "relationship": "Button runs one action; Menu opens a list of them. Menu.Trigger is already a button — never put a Button inside it"
3325
3341
  }
3326
3342
  ],
3327
3343
  "whenNotToUse": [
@@ -5505,6 +5521,22 @@
5505
5521
  "required": false,
5506
5522
  "type": "() => void"
5507
5523
  },
5524
+ {
5525
+ "name": "onFocus",
5526
+ "required": false,
5527
+ "type": "(e: React.FocusEvent<HTMLTextAreaElement>) => void"
5528
+ },
5529
+ {
5530
+ "description": "Keyboard handlers — e.g. Enter to commit, Escape to cancel, arrow-key navigation of a list driven by this field.",
5531
+ "name": "onKeyDown",
5532
+ "required": false,
5533
+ "type": "(e: React.KeyboardEvent<HTMLTextAreaElement>) => void"
5534
+ },
5535
+ {
5536
+ "name": "onKeyUp",
5537
+ "required": false,
5538
+ "type": "(e: React.KeyboardEvent<HTMLTextAreaElement>) => void"
5539
+ },
5508
5540
  {
5509
5541
  "name": "ref",
5510
5542
  "required": false,
@@ -6457,11 +6489,10 @@
6457
6489
  },
6458
6490
  "name": "action-menu",
6459
6491
  "peerDeps": [],
6460
- "source": "import {Menu, Button} from '@duro-app/ui'\n\nexport function ActionMenuRecipe() {\n return (\n <Menu.Root>\n <Menu.Trigger>\n <Button variant=\"secondary\">Actions</Button>\n </Menu.Trigger>\n <Menu.Popup>\n <Menu.Item onClick={() => console.log('edit')}>Edit</Menu.Item>\n <Menu.Item onClick={() => console.log('duplicate')}>Duplicate</Menu.Item>\n <Menu.Item onClick={() => console.log('archive')}>Archive</Menu.Item>\n <Menu.LinkItem href=\"/settings\">Settings</Menu.LinkItem>\n </Menu.Popup>\n </Menu.Root>\n )\n}\n",
6492
+ "source": "import {Menu} from '@duro-app/ui'\n\nexport function ActionMenuRecipe() {\n return (\n <Menu.Root>\n {/* Menu.Trigger is the button: give it the label, not a <Button>. */}\n <Menu.Trigger>Actions</Menu.Trigger>\n <Menu.Popup>\n <Menu.Item onClick={() => console.log('edit')}>Edit</Menu.Item>\n <Menu.Item onClick={() => console.log('duplicate')}>Duplicate</Menu.Item>\n <Menu.Item onClick={() => console.log('archive')}>Archive</Menu.Item>\n <Menu.LinkItem href=\"/settings\">Settings</Menu.LinkItem>\n </Menu.Popup>\n </Menu.Root>\n )\n}\n",
6461
6493
  "sourcePath": "docs/ai/recipes/action-menu.recipe.tsx",
6462
6494
  "title": "Action Menu",
6463
6495
  "usesComponents": [
6464
- "Button",
6465
6496
  "Menu"
6466
6497
  ]
6467
6498
  },