@agentero/design-system 0.27.1 → 0.28.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/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/merge-props.d.ts +42 -0
- package/lib/merge-props.js +24 -0
- package/mcp/manifests/components.html +796 -71
- package/mcp/manifests/components.json +500 -9
- package/package.json +10 -1
- package/src/alert/alert.js +28 -28
- package/src/avatar/avatar.js +22 -22
- package/src/avatar-group/avatar-group.js +6 -6
- package/src/button/button.js +7 -7
- package/src/data-table/data-table.js +36 -36
- package/src/field/context.d.ts +62 -0
- package/src/field/context.js +6 -0
- package/src/field/field.d.ts +214 -0
- package/src/field/field.js +129 -0
- package/src/field/icons.d.ts +9 -0
- package/src/field/icons.js +14 -0
- package/src/field/index.d.ts +30 -0
- package/src/field/index.js +13 -0
- package/src/field-text/field-text.d.ts +28 -0
- package/src/field-text/field-text.js +26 -0
- package/src/field-text/index.d.ts +2 -0
- package/src/field-text/index.js +2 -0
- package/src/input/context.d.ts +17 -0
- package/src/input/context.js +10 -0
- package/src/input/index.d.ts +1 -0
- package/src/input/index.js +3 -2
- package/src/input/input.d.ts +7 -7
- package/src/input/input.js +16 -11
- package/src/label/context.d.ts +13 -0
- package/src/label/context.js +7 -0
- package/src/label/index.d.ts +1 -0
- package/src/label/index.js +3 -2
- package/src/label/label.d.ts +6 -1
- package/src/label/label.js +19 -17
- package/src/modal/modal.js +23 -23
- package/src/progress/progress.js +9 -9
- package/src/switch/switch.js +7 -7
- package/src/table/table.js +28 -28
- package/src/tabs/tabs.js +26 -26
- package/src/tag/tag.js +7 -7
|
@@ -4404,6 +4404,490 @@
|
|
|
4404
4404
|
],
|
|
4405
4405
|
"import": "import { Button, DropdownMenu } from \"@agentero/design-system\";"
|
|
4406
4406
|
},
|
|
4407
|
+
"components-fieldtext": {
|
|
4408
|
+
"id": "components-fieldtext",
|
|
4409
|
+
"name": "FieldText",
|
|
4410
|
+
"path": "./src/field-text/field-text.stories.tsx",
|
|
4411
|
+
"jsDocTags": {
|
|
4412
|
+
"summary": [
|
|
4413
|
+
"Field for a single-line text control, wiring the Input inside it"
|
|
4414
|
+
],
|
|
4415
|
+
"example": [
|
|
4416
|
+
"<FieldText invalid={!!error} required>\n <Label>Email</Label>\n <Input type=\"email\" />\n <Field.Description>We only use this for policy documents.</Field.Description>\n <Field.Error errors={[error]} />\n</FieldText>"
|
|
4417
|
+
]
|
|
4418
|
+
},
|
|
4419
|
+
"description": "FieldText is a `Field.Root` for a single-line text control. It provides\n`InputContext`, so the `Input` inside associates itself with the label and\nthe messages and takes `invalid`, `required`, `disabled` and `readOnly` from\nthe field — no `id`, `htmlFor`, `aria-describedby` or `aria-invalid` written\nby hand.\n\nIt knows nothing about form libraries, and its contexts compose: a provider\nnested inside it can extend `InputContext` with `value`, `onChange`, `onBlur`\nand `name`, and `FieldContext` with the errors, as the last story shows.",
|
|
4420
|
+
"summary": "Field for a single-line text control, wiring the Input inside it",
|
|
4421
|
+
"reactComponentMeta": {
|
|
4422
|
+
"displayName": "FieldText",
|
|
4423
|
+
"exportName": "FieldText",
|
|
4424
|
+
"filePath": "/home/runner/work/design-system/design-system/src/field-text/index.ts",
|
|
4425
|
+
"description": "A `Field.Root` for a single-line text control: it provides `InputContext`,\nso the `Input` inside associates itself with the label and the messages and\ntakes `invalid`, `required`, `disabled` and `readOnly` from the field. Every\nother part (`Label`, `Field.Description`, `Field.Error`) works as in any\nfield.\n\nForm-library agnostic, and its contexts compose: a provider nested inside it\ncan extend `InputContext` with `name`, `value`, `onChange`, `onBlur` and\n`ref` to control the `Input`, and `FieldContext` with the errors, on top of\nthe wiring `FieldText` already set.",
|
|
4426
|
+
"jsDocTags": {
|
|
4427
|
+
"summary": [
|
|
4428
|
+
"Field for a single-line text control, wiring the Input inside it"
|
|
4429
|
+
],
|
|
4430
|
+
"example": [
|
|
4431
|
+
"<FieldText invalid={!!error} required>\n <Label>Email</Label>\n <Input type=\"email\" />\n <Field.Description>We only use this for policy documents.</Field.Description>\n <Field.Error errors={[error]} />\n</FieldText>"
|
|
4432
|
+
]
|
|
4433
|
+
},
|
|
4434
|
+
"props": {
|
|
4435
|
+
"orientation": {
|
|
4436
|
+
"name": "orientation",
|
|
4437
|
+
"required": false,
|
|
4438
|
+
"type": {
|
|
4439
|
+
"name": "enum",
|
|
4440
|
+
"raw": "\"horizontal\" | \"vertical\" | \"responsive\"",
|
|
4441
|
+
"value": [
|
|
4442
|
+
{
|
|
4443
|
+
"value": "\"horizontal\""
|
|
4444
|
+
},
|
|
4445
|
+
{
|
|
4446
|
+
"value": "\"vertical\""
|
|
4447
|
+
},
|
|
4448
|
+
{
|
|
4449
|
+
"value": "\"responsive\""
|
|
4450
|
+
}
|
|
4451
|
+
]
|
|
4452
|
+
},
|
|
4453
|
+
"description": "Layout of the field. `vertical` (default) stacks label, control and\nmessages. `horizontal` is one row at every width: the first child fills it\nand the rest keep their natural width, aligned to the right, so the\ncontrols of stacked fields line up. `responsive` stacks below `28rem` and\nbehaves like `horizontal` from there, measured on the field itself, so it\nneeds no particular wrapper. In both, `Field.Content` groups a control with\nits messages, or a label with its description.",
|
|
4454
|
+
"defaultValue": null,
|
|
4455
|
+
"parent": {
|
|
4456
|
+
"name": "FieldRootProps",
|
|
4457
|
+
"fileName": "src/field/field.tsx"
|
|
4458
|
+
},
|
|
4459
|
+
"declarations": [
|
|
4460
|
+
{
|
|
4461
|
+
"name": "TypeLiteral",
|
|
4462
|
+
"fileName": "src/field/field.tsx"
|
|
4463
|
+
}
|
|
4464
|
+
]
|
|
4465
|
+
},
|
|
4466
|
+
"invalid": {
|
|
4467
|
+
"name": "invalid",
|
|
4468
|
+
"required": false,
|
|
4469
|
+
"type": {
|
|
4470
|
+
"name": "boolean"
|
|
4471
|
+
},
|
|
4472
|
+
"description": "Marks the field as failing validation: sets `data-invalid` on the root and\n`aria-invalid` on the control through its context, which drives the\ncontrol's destructive border. The label keeps its color by design.",
|
|
4473
|
+
"defaultValue": null,
|
|
4474
|
+
"parent": {
|
|
4475
|
+
"name": "FieldRootProps",
|
|
4476
|
+
"fileName": "src/field/field.tsx"
|
|
4477
|
+
},
|
|
4478
|
+
"declarations": [
|
|
4479
|
+
{
|
|
4480
|
+
"name": "TypeLiteral",
|
|
4481
|
+
"fileName": "src/field/field.tsx"
|
|
4482
|
+
}
|
|
4483
|
+
]
|
|
4484
|
+
},
|
|
4485
|
+
"disabled": {
|
|
4486
|
+
"name": "disabled",
|
|
4487
|
+
"required": false,
|
|
4488
|
+
"type": {
|
|
4489
|
+
"name": "boolean"
|
|
4490
|
+
},
|
|
4491
|
+
"description": "Disables the control through its context and sets `data-disabled` on the root.",
|
|
4492
|
+
"defaultValue": null,
|
|
4493
|
+
"parent": {
|
|
4494
|
+
"name": "FieldRootProps",
|
|
4495
|
+
"fileName": "src/field/field.tsx"
|
|
4496
|
+
},
|
|
4497
|
+
"declarations": [
|
|
4498
|
+
{
|
|
4499
|
+
"name": "TypeLiteral",
|
|
4500
|
+
"fileName": "src/field/field.tsx"
|
|
4501
|
+
}
|
|
4502
|
+
]
|
|
4503
|
+
},
|
|
4504
|
+
"readOnly": {
|
|
4505
|
+
"name": "readOnly",
|
|
4506
|
+
"required": false,
|
|
4507
|
+
"type": {
|
|
4508
|
+
"name": "boolean"
|
|
4509
|
+
},
|
|
4510
|
+
"description": "Makes the control read-only through its context (focusable and copyable,\nnot editable, still submitted) and sets `data-readonly` on the root.",
|
|
4511
|
+
"defaultValue": null,
|
|
4512
|
+
"parent": {
|
|
4513
|
+
"name": "FieldRootProps",
|
|
4514
|
+
"fileName": "src/field/field.tsx"
|
|
4515
|
+
},
|
|
4516
|
+
"declarations": [
|
|
4517
|
+
{
|
|
4518
|
+
"name": "TypeLiteral",
|
|
4519
|
+
"fileName": "src/field/field.tsx"
|
|
4520
|
+
}
|
|
4521
|
+
]
|
|
4522
|
+
},
|
|
4523
|
+
"required": {
|
|
4524
|
+
"name": "required",
|
|
4525
|
+
"required": false,
|
|
4526
|
+
"type": {
|
|
4527
|
+
"name": "boolean"
|
|
4528
|
+
},
|
|
4529
|
+
"description": "Single source of truth for a required field: the `Label` shows its\nasterisk and the control receives `required`, both through context.",
|
|
4530
|
+
"defaultValue": null,
|
|
4531
|
+
"parent": {
|
|
4532
|
+
"name": "FieldRootProps",
|
|
4533
|
+
"fileName": "src/field/field.tsx"
|
|
4534
|
+
},
|
|
4535
|
+
"declarations": [
|
|
4536
|
+
{
|
|
4537
|
+
"name": "TypeLiteral",
|
|
4538
|
+
"fileName": "src/field/field.tsx"
|
|
4539
|
+
}
|
|
4540
|
+
]
|
|
4541
|
+
},
|
|
4542
|
+
"controlId": {
|
|
4543
|
+
"name": "controlId",
|
|
4544
|
+
"required": false,
|
|
4545
|
+
"type": {
|
|
4546
|
+
"name": "string"
|
|
4547
|
+
},
|
|
4548
|
+
"description": "`id` for the control. Generated when omitted. Set it here, not on the\ncontrol, so the label and the messages keep pointing at the right element.",
|
|
4549
|
+
"defaultValue": null,
|
|
4550
|
+
"parent": {
|
|
4551
|
+
"name": "FieldRootProps",
|
|
4552
|
+
"fileName": "src/field/field.tsx"
|
|
4553
|
+
},
|
|
4554
|
+
"declarations": [
|
|
4555
|
+
{
|
|
4556
|
+
"name": "TypeLiteral",
|
|
4557
|
+
"fileName": "src/field/field.tsx"
|
|
4558
|
+
}
|
|
4559
|
+
]
|
|
4560
|
+
}
|
|
4561
|
+
}
|
|
4562
|
+
},
|
|
4563
|
+
"stories": [
|
|
4564
|
+
{
|
|
4565
|
+
"id": "components-fieldtext--default",
|
|
4566
|
+
"name": "Default",
|
|
4567
|
+
"snippet": "const Default = () => <FieldText\n orientation=\"vertical\"\n invalid={false}\n disabled={false}\n readOnly={false}\n required={false}>\n <Label>Email</Label>\n <Input type=\"email\" placeholder=\"you@example.com\" />\n <Field.Description>We only use this to send policy documents.</Field.Description>\n</FieldText>;",
|
|
4568
|
+
"description": "The composition consumers write: a label, the design system's `Input` and\nhelper text. The label points at the input and the input is described by the\ntext, all through context.",
|
|
4569
|
+
"summary": "Label, Input and description wired with no ids"
|
|
4570
|
+
},
|
|
4571
|
+
{
|
|
4572
|
+
"id": "components-fieldtext--required",
|
|
4573
|
+
"name": "Required",
|
|
4574
|
+
"snippet": "const Required = () => <FieldText\n orientation=\"vertical\"\n invalid={false}\n disabled={false}\n readOnly={false}\n required>\n <Label>Full name</Label>\n <Input placeholder=\"Jane Doe\" />\n</FieldText>;",
|
|
4575
|
+
"description": "`required` on the field reaches both the label's asterisk and the input's\n`required` attribute.",
|
|
4576
|
+
"summary": "Required field driven from the root alone"
|
|
4577
|
+
},
|
|
4578
|
+
{
|
|
4579
|
+
"id": "components-fieldtext--invalid",
|
|
4580
|
+
"name": "Invalid",
|
|
4581
|
+
"snippet": "const Invalid = () => <FieldText\n orientation=\"vertical\"\n invalid\n disabled={false}\n readOnly={false}\n required={false}>\n <Label>Email</Label>\n <Input type=\"email\" defaultValue=\"not-an-email\" />\n <Field.Error errors={[{ message: 'Enter a valid email address.' }]} />\n</FieldText>;",
|
|
4582
|
+
"description": "`invalid` on the field sets `aria-invalid` on the input, which drives its\ndestructive border, and the error is announced with the input.",
|
|
4583
|
+
"summary": "Invalid field with the Input styled by aria-invalid"
|
|
4584
|
+
},
|
|
4585
|
+
{
|
|
4586
|
+
"id": "components-fieldtext--disabled",
|
|
4587
|
+
"name": "Disabled",
|
|
4588
|
+
"snippet": "const Disabled = () => <FieldText\n orientation=\"vertical\"\n invalid={false}\n disabled\n readOnly={false}\n required={false}>\n <Label>Agency</Label>\n <Input defaultValue=\"Acme Insurance\" />\n</FieldText>;",
|
|
4589
|
+
"description": "`disabled` on the field disables the input through context.",
|
|
4590
|
+
"summary": "Disabled field driven from the root"
|
|
4591
|
+
},
|
|
4592
|
+
{
|
|
4593
|
+
"id": "components-fieldtext--read-only",
|
|
4594
|
+
"name": "Read Only",
|
|
4595
|
+
"snippet": "const ReadOnly = () => <FieldText\n orientation=\"vertical\"\n invalid={false}\n disabled={false}\n readOnly\n required={false}>\n <Label>Policy number</Label>\n <Input defaultValue=\"POL-2049-118\" />\n <Field.Description>Assigned by the carrier; contact support to change it.</Field.Description>\n</FieldText>;",
|
|
4596
|
+
"description": "`readOnly` on the field reaches the input through context. The value stays\nfocusable, copyable and submitted, and the input looks like any other.",
|
|
4597
|
+
"summary": "Read-only field driven from the root"
|
|
4598
|
+
},
|
|
4599
|
+
{
|
|
4600
|
+
"id": "components-fieldtext--own-props-win",
|
|
4601
|
+
"name": "Own Props Win",
|
|
4602
|
+
"snippet": "const OwnPropsWin = () => <div className=\"flex flex-col gap-2\">\n <FieldText\n orientation=\"vertical\"\n invalid={false}\n disabled={false}\n readOnly={false}\n required={false}>\n <Label>Website</Label>\n <Input type=\"url\" size=\"lg\" className=\"max-w-xs\" aria-describedby=\"website-hint\" />\n <Field.Description>Include the protocol.</Field.Description>\n </FieldText>\n <p id=\"website-hint\" className=\"text-sm\">Shown on your public profile.\n </p>\n</div>;",
|
|
4603
|
+
"description": "The context is a default, never an override: an extra `aria-describedby` is\nconcatenated with the field's ids, `className` is merged and `size` passes\nthrough untouched.",
|
|
4604
|
+
"summary": "Input's own props merge with, and win over, the field's context"
|
|
4605
|
+
},
|
|
4606
|
+
{
|
|
4607
|
+
"id": "components-fieldtext--controlled-from-context",
|
|
4608
|
+
"name": "Controlled From Context",
|
|
4609
|
+
"snippet": "const ControlledFromContext = () => <ControlledField />;",
|
|
4610
|
+
"description": "The contexts are an extension point: a provider nested in the field adds\n`name`, `value`, `onChange` and `onBlur` to `InputContext`, so a bare\n`<Input />` becomes controlled, and the errors to `FieldContext`, so a bare\n`<Field.Error />` renders them — here with `useState` and no form library.\nThe input's own `onChange` still runs, chained after the provider's.",
|
|
4611
|
+
"summary": "Input controlled and errors supplied from outside the field"
|
|
4612
|
+
}
|
|
4613
|
+
],
|
|
4614
|
+
"import": "import { Field, FieldContext, FieldText, Input, InputContext, Label } from \"@agentero/design-system\";"
|
|
4615
|
+
},
|
|
4616
|
+
"components-field": {
|
|
4617
|
+
"id": "components-field",
|
|
4618
|
+
"name": "Field.Root",
|
|
4619
|
+
"path": "./src/field/field.stories.tsx",
|
|
4620
|
+
"jsDocTags": {
|
|
4621
|
+
"summary": [
|
|
4622
|
+
"Wraps a label, control, description and error into one field"
|
|
4623
|
+
],
|
|
4624
|
+
"example": [
|
|
4625
|
+
"<Field.Root invalid={!!error} required>\n <Field.Label>Email</Field.Label>\n <Input type=\"email\" />\n <Field.Description>We only use this for policy documents.</Field.Description>\n <Field.Error errors={[error]} />\n</Field.Root>"
|
|
4626
|
+
]
|
|
4627
|
+
},
|
|
4628
|
+
"description": "Field lays out a single form field — label, control, helper text and error —\nand wires the accessibility relationships between them. `Field.Root`\ngenerates the ids and shares them through context: `Label` reads\n`LabelContext`, `Field.Description` and `Field.Error` read `FieldContext`,\nand a `Field<X>` such as `FieldText` provides the control's context. Nobody\npasses an `id` by hand.\n\nPresentational and form-library agnostic: pass `invalid` and the error\nmessages from whatever validates the form. Spacing between fields belongs to\n`Field.Group`, never to a margin on the field itself.\n\n`Field.Description` and `Field.Error` register themselves with the root, so\nthe control's `aria-describedby` lists exactly the messages on screen and is\nabsent when there is none.",
|
|
4629
|
+
"summary": "Wraps a label, control, description and error into one field",
|
|
4630
|
+
"reactComponentMeta": {
|
|
4631
|
+
"displayName": "Field.Root",
|
|
4632
|
+
"exportName": "Field",
|
|
4633
|
+
"filePath": "/home/runner/work/design-system/design-system/src/field/index.ts",
|
|
4634
|
+
"description": "Wraps one label, control, description and error into a single field and\nwires the accessibility relationships between them. It generates the ids\nand shares them through context: `Label` reads `LabelContext`,\n`Field.Description` and `Field.Error` read `FieldContext` and register\nthemselves so the control's `aria-describedby` lists exactly the messages on\nscreen, and a `Field<X>` such as `FieldText` provides the control's context so\nthe control associates itself too. Nobody passes an `id` by hand.\n\nPresentational and form-library agnostic: pass `invalid` and the error\nmessages from whatever validates the form. Deliberately not a `role=\"group\"`:\none field is not a set of related controls, and an unnamed group only adds\nscreen-reader verbosity. Real groupings belong to a fieldset with a legend.",
|
|
4635
|
+
"jsDocTags": {
|
|
4636
|
+
"summary": [
|
|
4637
|
+
"Wraps a label, control, description and error into one field"
|
|
4638
|
+
],
|
|
4639
|
+
"example": [
|
|
4640
|
+
"<Field.Root invalid={!!error} required>\n <Field.Label>Email</Field.Label>\n <Input type=\"email\" />\n <Field.Description>We only use this for policy documents.</Field.Description>\n <Field.Error errors={[error]} />\n</Field.Root>"
|
|
4641
|
+
]
|
|
4642
|
+
},
|
|
4643
|
+
"props": {
|
|
4644
|
+
"orientation": {
|
|
4645
|
+
"name": "orientation",
|
|
4646
|
+
"required": false,
|
|
4647
|
+
"type": {
|
|
4648
|
+
"name": "enum",
|
|
4649
|
+
"raw": "\"horizontal\" | \"vertical\" | \"responsive\"",
|
|
4650
|
+
"value": [
|
|
4651
|
+
{
|
|
4652
|
+
"value": "\"horizontal\""
|
|
4653
|
+
},
|
|
4654
|
+
{
|
|
4655
|
+
"value": "\"vertical\""
|
|
4656
|
+
},
|
|
4657
|
+
{
|
|
4658
|
+
"value": "\"responsive\""
|
|
4659
|
+
}
|
|
4660
|
+
]
|
|
4661
|
+
},
|
|
4662
|
+
"description": "Layout of the field. `vertical` (default) stacks label, control and\nmessages. `horizontal` is one row at every width: the first child fills it\nand the rest keep their natural width, aligned to the right, so the\ncontrols of stacked fields line up. `responsive` stacks below `28rem` and\nbehaves like `horizontal` from there, measured on the field itself, so it\nneeds no particular wrapper. In both, `Field.Content` groups a control with\nits messages, or a label with its description.",
|
|
4663
|
+
"defaultValue": {
|
|
4664
|
+
"value": "'vertical'"
|
|
4665
|
+
},
|
|
4666
|
+
"parent": {
|
|
4667
|
+
"name": "FieldRootProps",
|
|
4668
|
+
"fileName": "src/field/field.tsx"
|
|
4669
|
+
},
|
|
4670
|
+
"declarations": [
|
|
4671
|
+
{
|
|
4672
|
+
"name": "TypeLiteral",
|
|
4673
|
+
"fileName": "src/field/field.tsx"
|
|
4674
|
+
}
|
|
4675
|
+
]
|
|
4676
|
+
},
|
|
4677
|
+
"invalid": {
|
|
4678
|
+
"name": "invalid",
|
|
4679
|
+
"required": false,
|
|
4680
|
+
"type": {
|
|
4681
|
+
"name": "boolean"
|
|
4682
|
+
},
|
|
4683
|
+
"description": "Marks the field as failing validation: sets `data-invalid` on the root and\n`aria-invalid` on the control through its context, which drives the\ncontrol's destructive border. The label keeps its color by design.",
|
|
4684
|
+
"defaultValue": {
|
|
4685
|
+
"value": "false"
|
|
4686
|
+
},
|
|
4687
|
+
"parent": {
|
|
4688
|
+
"name": "FieldRootProps",
|
|
4689
|
+
"fileName": "src/field/field.tsx"
|
|
4690
|
+
},
|
|
4691
|
+
"declarations": [
|
|
4692
|
+
{
|
|
4693
|
+
"name": "TypeLiteral",
|
|
4694
|
+
"fileName": "src/field/field.tsx"
|
|
4695
|
+
}
|
|
4696
|
+
]
|
|
4697
|
+
},
|
|
4698
|
+
"disabled": {
|
|
4699
|
+
"name": "disabled",
|
|
4700
|
+
"required": false,
|
|
4701
|
+
"type": {
|
|
4702
|
+
"name": "boolean"
|
|
4703
|
+
},
|
|
4704
|
+
"description": "Disables the control through its context and sets `data-disabled` on the root.",
|
|
4705
|
+
"defaultValue": {
|
|
4706
|
+
"value": "false"
|
|
4707
|
+
},
|
|
4708
|
+
"parent": {
|
|
4709
|
+
"name": "FieldRootProps",
|
|
4710
|
+
"fileName": "src/field/field.tsx"
|
|
4711
|
+
},
|
|
4712
|
+
"declarations": [
|
|
4713
|
+
{
|
|
4714
|
+
"name": "TypeLiteral",
|
|
4715
|
+
"fileName": "src/field/field.tsx"
|
|
4716
|
+
}
|
|
4717
|
+
]
|
|
4718
|
+
},
|
|
4719
|
+
"readOnly": {
|
|
4720
|
+
"name": "readOnly",
|
|
4721
|
+
"required": false,
|
|
4722
|
+
"type": {
|
|
4723
|
+
"name": "boolean"
|
|
4724
|
+
},
|
|
4725
|
+
"description": "Makes the control read-only through its context (focusable and copyable,\nnot editable, still submitted) and sets `data-readonly` on the root.",
|
|
4726
|
+
"defaultValue": {
|
|
4727
|
+
"value": "false"
|
|
4728
|
+
},
|
|
4729
|
+
"parent": {
|
|
4730
|
+
"name": "FieldRootProps",
|
|
4731
|
+
"fileName": "src/field/field.tsx"
|
|
4732
|
+
},
|
|
4733
|
+
"declarations": [
|
|
4734
|
+
{
|
|
4735
|
+
"name": "TypeLiteral",
|
|
4736
|
+
"fileName": "src/field/field.tsx"
|
|
4737
|
+
}
|
|
4738
|
+
]
|
|
4739
|
+
},
|
|
4740
|
+
"required": {
|
|
4741
|
+
"name": "required",
|
|
4742
|
+
"required": false,
|
|
4743
|
+
"type": {
|
|
4744
|
+
"name": "boolean"
|
|
4745
|
+
},
|
|
4746
|
+
"description": "Single source of truth for a required field: the `Label` shows its\nasterisk and the control receives `required`, both through context.",
|
|
4747
|
+
"defaultValue": {
|
|
4748
|
+
"value": "false"
|
|
4749
|
+
},
|
|
4750
|
+
"parent": {
|
|
4751
|
+
"name": "FieldRootProps",
|
|
4752
|
+
"fileName": "src/field/field.tsx"
|
|
4753
|
+
},
|
|
4754
|
+
"declarations": [
|
|
4755
|
+
{
|
|
4756
|
+
"name": "TypeLiteral",
|
|
4757
|
+
"fileName": "src/field/field.tsx"
|
|
4758
|
+
}
|
|
4759
|
+
]
|
|
4760
|
+
},
|
|
4761
|
+
"controlId": {
|
|
4762
|
+
"name": "controlId",
|
|
4763
|
+
"required": false,
|
|
4764
|
+
"type": {
|
|
4765
|
+
"name": "string"
|
|
4766
|
+
},
|
|
4767
|
+
"description": "`id` for the control. Generated when omitted. Set it here, not on the\ncontrol, so the label and the messages keep pointing at the right element.",
|
|
4768
|
+
"defaultValue": null,
|
|
4769
|
+
"parent": {
|
|
4770
|
+
"name": "FieldRootProps",
|
|
4771
|
+
"fileName": "src/field/field.tsx"
|
|
4772
|
+
},
|
|
4773
|
+
"declarations": [
|
|
4774
|
+
{
|
|
4775
|
+
"name": "TypeLiteral",
|
|
4776
|
+
"fileName": "src/field/field.tsx"
|
|
4777
|
+
}
|
|
4778
|
+
]
|
|
4779
|
+
}
|
|
4780
|
+
}
|
|
4781
|
+
},
|
|
4782
|
+
"stories": [
|
|
4783
|
+
{
|
|
4784
|
+
"id": "components-field--default",
|
|
4785
|
+
"name": "Default",
|
|
4786
|
+
"snippet": "const Default = () => <Field.Root\n orientation=\"vertical\"\n invalid={false}\n disabled={false}\n readOnly={false}\n required={false}>\n <Label>Email</Label>\n <DemoInput placeholder=\"you@example.com\" />\n <Field.Description>We only use this to send policy documents.</Field.Description>\n</Field.Root>;",
|
|
4787
|
+
"description": "A vertical field with a label, a control and helper text. The label points\nat the control and the description is referenced by it — neither needed an\nexplicit `id`.",
|
|
4788
|
+
"summary": "Default vertical field with label, control and description"
|
|
4789
|
+
},
|
|
4790
|
+
{
|
|
4791
|
+
"id": "components-field--required",
|
|
4792
|
+
"name": "Required",
|
|
4793
|
+
"snippet": "const Required = () => <Field.Root\n orientation=\"vertical\"\n invalid={false}\n disabled={false}\n readOnly={false}\n required>\n <Label>Full name</Label>\n <DemoInput placeholder=\"Jane Doe\" />\n</Field.Root>;",
|
|
4794
|
+
"description": "`required` on the root is the single source of truth: the label shows its\nasterisk and the control receives `required`, both through context.",
|
|
4795
|
+
"summary": "Required field driven from the root alone"
|
|
4796
|
+
},
|
|
4797
|
+
{
|
|
4798
|
+
"id": "components-field--optional",
|
|
4799
|
+
"name": "Optional",
|
|
4800
|
+
"snippet": "const Optional = () => <Field.Root\n orientation=\"vertical\"\n invalid={false}\n disabled={false}\n readOnly={false}\n required={false}>\n <Label optional>Phone number</Label>\n <DemoInput type=\"tel\" placeholder=\"+1 (555) 000-0000\" />\n</Field.Root>;",
|
|
4801
|
+
"description": "`optional` on the label appends the muted suffix; the control stays\nnon-required.",
|
|
4802
|
+
"summary": "Optional field with the muted label suffix"
|
|
4803
|
+
},
|
|
4804
|
+
{
|
|
4805
|
+
"id": "components-field--with-tooltip",
|
|
4806
|
+
"name": "With Tooltip",
|
|
4807
|
+
"snippet": "const WithTooltip = () => <Field.Root\n orientation=\"vertical\"\n invalid={false}\n disabled={false}\n readOnly={false}\n required>\n <Field.Label tooltip=\"Issued by the IRS to identify your business.\">Tax ID</Field.Label>\n <DemoInput placeholder=\"XX-XXXXXXX\" />\n</Field.Root>;",
|
|
4808
|
+
"description": "`Field.Label` puts an info button beside the caption. It is a sibling of the\n`<label>`, so it keeps its own accessible name, clicking it does not focus\nthe control, and the control's name stays clean. It opens on focus too.",
|
|
4809
|
+
"summary": "Label with a tooltip trigger beside it"
|
|
4810
|
+
},
|
|
4811
|
+
{
|
|
4812
|
+
"id": "components-field--invalid",
|
|
4813
|
+
"name": "Invalid",
|
|
4814
|
+
"snippet": "const Invalid = () => <Field.Root\n orientation=\"vertical\"\n invalid\n disabled={false}\n readOnly={false}\n required={false}>\n <Label>Email</Label>\n <DemoInput type=\"email\" defaultValue=\"not-an-email\" />\n <Field.Error errors={[{ message: 'Enter a valid email address.' }]} />\n</Field.Root>;",
|
|
4815
|
+
"description": "`invalid` on the root sets `data-invalid` for styling and `aria-invalid` on\nthe control, which drives its destructive border; the label keeps its color\nby design. `Field.Error` takes the error objects as they come from a form\nlibrary.",
|
|
4816
|
+
"summary": "Invalid field with a single error message"
|
|
4817
|
+
},
|
|
4818
|
+
{
|
|
4819
|
+
"id": "components-field--multiple-errors",
|
|
4820
|
+
"name": "Multiple Errors",
|
|
4821
|
+
"snippet": "const MultipleErrors = () => <Field.Root\n orientation=\"vertical\"\n invalid\n disabled={false}\n readOnly={false}\n required={false}>\n <Label>Password</Label>\n <DemoInput type=\"password\" defaultValue=\"abc\" />\n <Field.Error\n errors={[\n { message: 'Use at least 8 characters.' },\n { message: 'Include a number.' },\n { message: 'Use at least 8 characters.' }\n ]} />\n</Field.Root>;",
|
|
4822
|
+
"description": "Several errors render as a list, de-duplicated by message.",
|
|
4823
|
+
"summary": "Several errors rendered as a de-duplicated list"
|
|
4824
|
+
},
|
|
4825
|
+
{
|
|
4826
|
+
"id": "components-field--no-error",
|
|
4827
|
+
"name": "No Error",
|
|
4828
|
+
"snippet": "const NoError = () => <Field.Root\n orientation=\"vertical\"\n invalid={false}\n disabled={false}\n readOnly={false}\n required={false}>\n <Label>Email</Label>\n <DemoInput type=\"email\" />\n <Field.Error errors={[undefined]} />\n</Field.Root>;",
|
|
4829
|
+
"description": "`Field.Error` renders nothing without a message, so it can stay mounted and\nreceive `undefined` entries while the field is valid. With no description\neither, the control carries no `aria-describedby` at all.",
|
|
4830
|
+
"summary": "Error stays mounted and renders nothing while valid"
|
|
4831
|
+
},
|
|
4832
|
+
{
|
|
4833
|
+
"id": "components-field--disabled",
|
|
4834
|
+
"name": "Disabled",
|
|
4835
|
+
"snippet": "const Disabled = () => <Field.Root\n orientation=\"vertical\"\n invalid={false}\n disabled\n readOnly={false}\n required={false}>\n <Label>Agency</Label>\n <DemoInput defaultValue=\"Acme Insurance\" />\n <Field.Description>Managed by your administrator.</Field.Description>\n</Field.Root>;",
|
|
4836
|
+
"description": "`disabled` on the root disables the control through context and sets\n`data-disabled` for styling.",
|
|
4837
|
+
"summary": "Disabled field driven from the root"
|
|
4838
|
+
},
|
|
4839
|
+
{
|
|
4840
|
+
"id": "components-field--read-only",
|
|
4841
|
+
"name": "Read Only",
|
|
4842
|
+
"snippet": "const ReadOnly = () => <Field.Root\n orientation=\"vertical\"\n invalid={false}\n disabled={false}\n readOnly\n required={false}>\n <Label>Policy number</Label>\n <DemoInput defaultValue=\"POL-2049-118\" />\n <Field.Description>Assigned by the carrier; contact support to change it.</Field.Description>\n</Field.Root>;",
|
|
4843
|
+
"description": "`readOnly` on the root makes the control read-only through context and sets\n`data-readonly` for styling. Unlike `disabled`, the value stays focusable,\ncopyable and submitted.",
|
|
4844
|
+
"summary": "Read-only field driven from the root"
|
|
4845
|
+
},
|
|
4846
|
+
{
|
|
4847
|
+
"id": "components-field--horizontal",
|
|
4848
|
+
"name": "Horizontal",
|
|
4849
|
+
"snippet": "const Horizontal = () => (\n <Field.Group className=\"w-[40rem]\">\n <Field.Root orientation=\"horizontal\" data-testid=\"short\">\n <Label>Full name</Label>\n <DemoInput defaultValue=\"Rafa Moro\" className=\"w-72\" />\n </Field.Root>\n\n <Field.Root orientation=\"horizontal\" data-testid=\"long\">\n <Label>Title</Label>\n <Field.Content className=\"w-72\">\n <DemoInput placeholder=\"Software engineer\" />\n <Field.Description>Shown on your public profile.</Field.Description>\n </Field.Content>\n </Field.Root>\n\n <Field.Root orientation=\"horizontal\" data-testid=\"switch\">\n <Field.Content>\n <Label>Auto-renew</Label>\n <Field.Description>Renews the policy automatically before it expires.</Field.Description>\n </Field.Content>\n <DemoInput type=\"checkbox\" className=\"size-5\" />\n </Field.Root>\n\n <div className=\"w-[20rem]\" data-testid=\"narrow\">\n <Field.Root orientation=\"horizontal\">\n <Label>Email</Label>\n <DemoInput type=\"email\" placeholder=\"you@example.com\" className=\"w-40\" />\n </Field.Root>\n </div>\n </Field.Group>\n);",
|
|
4850
|
+
"description": "`horizontal` is one row at every width. The first child fills the row and\neverything after it keeps its natural width, aligned to the right edge, so\nthe controls of stacked fields line up whatever their labels measure. Wrap a\nlabel with its description, or a control with its messages, in\n`Field.Content`. A control sets its own width: `Input` is `w-full`, so it\ngets one here.",
|
|
4851
|
+
"summary": "Horizontal field, one row at every width, controls right-aligned"
|
|
4852
|
+
},
|
|
4853
|
+
{
|
|
4854
|
+
"id": "components-field--responsive",
|
|
4855
|
+
"name": "Responsive",
|
|
4856
|
+
"snippet": "const Responsive = () => (\n <div className=\"flex flex-col gap-8\">\n <div className=\"w-full max-w-[40rem]\" data-testid=\"wide\">\n <Field.Root orientation=\"responsive\">\n <Label>Email</Label>\n <Field.Content className=\"@md/field:w-72\">\n <DemoInput type=\"email\" placeholder=\"you@example.com\" />\n <Field.Description>\n We only use this to send policy documents, and never to contact you about anything\n else.\n </Field.Description>\n </Field.Content>\n </Field.Root>\n </div>\n\n <div className=\"w-full max-w-[20rem]\" data-testid=\"narrow\">\n <Field.Root orientation=\"responsive\">\n <Label>Email</Label>\n <Field.Content>\n <DemoInput type=\"email\" placeholder=\"you@example.com\" />\n <Field.Description>We only use this to send policy documents.</Field.Description>\n </Field.Content>\n </Field.Root>\n </div>\n </div>\n);",
|
|
4857
|
+
"description": "`responsive` stacks the parts below `28rem` and behaves like `horizontal`\nfrom there: first child fills, the rest keep their width on the right. It\nmeasures the field itself, so it needs no particular wrapper. A width that\nshould only apply once horizontal goes behind `@md/field:`.",
|
|
4858
|
+
"summary": "Responsive field that stacks when narrow"
|
|
4859
|
+
},
|
|
4860
|
+
{
|
|
4861
|
+
"id": "components-field--group",
|
|
4862
|
+
"name": "Group",
|
|
4863
|
+
"snippet": "const Group = () => (\n <Field.Group>\n <Field.Root required>\n <Label>Full name</Label>\n <DemoInput placeholder=\"Jane Doe\" />\n </Field.Root>\n\n <Field.Root required invalid>\n <Label>Email</Label>\n <DemoInput type=\"email\" defaultValue=\"not-an-email\" />\n <Field.Error>Enter a valid email address.</Field.Error>\n </Field.Root>\n\n <Field.Root>\n <Label optional>Phone number</Label>\n <DemoInput type=\"tel\" placeholder=\"+1 (555) 000-0000\" />\n </Field.Root>\n </Field.Group>\n);",
|
|
4864
|
+
"description": "`Field.Group` stacks fields and owns the space between them. Each field gets\nits own ids, so several on one page never collide.",
|
|
4865
|
+
"summary": "Several fields stacked in a group"
|
|
4866
|
+
},
|
|
4867
|
+
{
|
|
4868
|
+
"id": "components-field--standalone-outside-field",
|
|
4869
|
+
"name": "Standalone Outside Field",
|
|
4870
|
+
"snippet": "const StandaloneOutsideField = () => (\n <div className=\"flex flex-col gap-2\">\n <Label htmlFor=\"standalone-email\">Email</Label>\n <DemoInput id=\"standalone-email\" type=\"email\" aria-describedby=\"standalone-error\" />\n <Field.Error id=\"standalone-error\">Something went wrong.</Field.Error>\n </div>\n);",
|
|
4871
|
+
"description": "Outside a `Field.Root` every part reads a `null` context and works on its own\nprops alone: `Label` needs its `htmlFor`, `Field.Error` its own `id`.",
|
|
4872
|
+
"summary": "Label and Field.Error used without a Field.Root"
|
|
4873
|
+
},
|
|
4874
|
+
{
|
|
4875
|
+
"id": "components-field--own-props-win",
|
|
4876
|
+
"name": "Own Props Win",
|
|
4877
|
+
"snippet": "const OwnPropsWin = () => (\n <Field.Root>\n <Label htmlFor=\"own-input\">Email</Label>\n <input id=\"own-input\" type=\"email\" className={inputRecipe()} />\n <Field.Description id=\"own-description\">Points wherever you say.</Field.Description>\n </Field.Root>\n);",
|
|
4878
|
+
"description": "A context is a default, never an override: an explicit `htmlFor` or `id` on a\npart wins over what `Field.Root` provides.",
|
|
4879
|
+
"summary": "Explicit props on a part win over the field's context"
|
|
4880
|
+
},
|
|
4881
|
+
{
|
|
4882
|
+
"id": "components-field--errors-from-context",
|
|
4883
|
+
"name": "Errors From Context",
|
|
4884
|
+
"snippet": "const ErrorsFromContext = () => <FieldWithSuppliedErrors />;",
|
|
4885
|
+
"description": "`FieldContext` is an extension point: re-provided under the root with the\nerrors, a bare `<Field.Error />` renders them — here with `useState` and no\nform library. `InputContext` extends the same way with `value`, `onChange`,\n`onBlur` and `name`; see `FieldText`.",
|
|
4886
|
+
"summary": "Errors supplied to a bare Field.Error through context"
|
|
4887
|
+
}
|
|
4888
|
+
],
|
|
4889
|
+
"import": "import { Field, FieldContext, Label } from \"@agentero/design-system\";"
|
|
4890
|
+
},
|
|
4407
4891
|
"components-hovercard": {
|
|
4408
4892
|
"id": "components-hovercard",
|
|
4409
4893
|
"name": "HoverCard.Root",
|
|
@@ -4605,23 +5089,23 @@
|
|
|
4605
5089
|
"path": "./src/input/input.stories.tsx",
|
|
4606
5090
|
"jsDocTags": {
|
|
4607
5091
|
"summary": [
|
|
4608
|
-
"Base single-line text control
|
|
5092
|
+
"Base single-line text control that takes its wiring from InputContext"
|
|
4609
5093
|
],
|
|
4610
5094
|
"example": [
|
|
4611
5095
|
"<Label htmlFor=\"email\">Email</Label>\n<Input id=\"email\" type=\"email\" placeholder=\"you@example.com\" />",
|
|
4612
5096
|
"<Input id=\"email\" aria-invalid aria-describedby=\"email-error\" />\n<span id=\"email-error\">Enter a valid email address.</span>"
|
|
4613
5097
|
]
|
|
4614
5098
|
},
|
|
4615
|
-
"description": "Input is the base single-line text control.
|
|
4616
|
-
"summary": "Base single-line text control
|
|
5099
|
+
"description": "Input is the base single-line text control. When a container such as\n`FieldText` provides `InputContext`, it picks up `id`, `aria-invalid` and\n`aria-describedby` on its own; standalone, as here, they are plain props set\nby hand.\n\nThere is no `status` prop. Mark the control `aria-invalid` and the\ndestructive border follows, so the styling can never disagree with what\nassistive technology announces.",
|
|
5100
|
+
"summary": "Base single-line text control that takes its wiring from InputContext",
|
|
4617
5101
|
"reactComponentMeta": {
|
|
4618
5102
|
"displayName": "Input",
|
|
4619
5103
|
"exportName": "Input",
|
|
4620
5104
|
"filePath": "/home/runner/work/design-system/design-system/src/input/input.tsx",
|
|
4621
|
-
"description": "Input is the design system's base single-line text control. Reach for it\nwhenever a form collects free text, and pair it with\n[Label](?path=/docs/components-label--docs) so the control has an accessible\nname.\n\
|
|
5105
|
+
"description": "Input is the design system's base single-line text control. Reach for it\nwhenever a form collects free text, and pair it with\n[Label](?path=/docs/components-label--docs) so the control has an accessible\nname.\n\nWhen a container provides `InputContext`, the input takes its wiring (`id`,\n`aria-describedby`, `aria-invalid`, `required`, `disabled`, `readOnly`) from\nit with nothing passed by hand; `FieldText` is one such container. Standalone it\nrenders exactly the props it is given, and its own props always win over the\ncontext. There is no `status` prop — mark the control `aria-invalid` and the\ndestructive border follows.\n\nDo not use Input for multi-line text; that is TextArea's job. It also has no\nslots for leading or trailing addons — an input with a currency prefix or a\nunit suffix belongs in an input group, not here.",
|
|
4622
5106
|
"jsDocTags": {
|
|
4623
5107
|
"summary": [
|
|
4624
|
-
"Base single-line text control
|
|
5108
|
+
"Base single-line text control that takes its wiring from InputContext"
|
|
4625
5109
|
],
|
|
4626
5110
|
"example": [
|
|
4627
5111
|
"<Label htmlFor=\"email\">Email</Label>\n<Input id=\"email\" type=\"email\" placeholder=\"you@example.com\" />",
|
|
@@ -4885,7 +5369,7 @@
|
|
|
4885
5369
|
"displayName": "Label",
|
|
4886
5370
|
"exportName": "Label",
|
|
4887
5371
|
"filePath": "/home/runner/work/design-system/design-system/src/label/label.tsx",
|
|
4888
|
-
"description": "Accessible caption for a form control, built on Radix's Label primitive so it\nassociates with the control via `htmlFor` and does not select text on\ndouble-click.\n\nKeep it text-only. Nesting an interactive element (a help tooltip trigger, a\nbutton) inside a `<label>` gives that element the label's accessible name and\nmakes a click focus the control — render it as a sibling instead.",
|
|
5372
|
+
"description": "Accessible caption for a form control, built on Radix's Label primitive so it\nassociates with the control via `htmlFor` and does not select text on\ndouble-click.\n\nKeep it text-only. Nesting an interactive element (a help tooltip trigger, a\nbutton) inside a `<label>` gives that element the label's accessible name and\nmakes a click focus the control — render it as a sibling instead.\n\nWhen a container provides `LabelContext`, the label takes `htmlFor` and\n`required` from it and associates itself with the control without an explicit\n`htmlFor`; `Field.Root` is one such container. Standalone it behaves as a\nplain label. Its own props always win over the context.",
|
|
4889
5373
|
"jsDocTags": {
|
|
4890
5374
|
"summary": [
|
|
4891
5375
|
"Accessible caption for a form control"
|
|
@@ -4962,7 +5446,7 @@
|
|
|
4962
5446
|
{
|
|
4963
5447
|
"id": "components-label--default",
|
|
4964
5448
|
"name": "Default",
|
|
4965
|
-
"snippet": "const Default = () => <>\n <Label htmlFor=\"email\">Email</Label>\n <input id=\"email\" placeholder=\"you@example.com\" />\n</>;",
|
|
5449
|
+
"snippet": "const Default = () => <>\n <Label htmlFor=\"email\">Email</Label>\n <input id=\"email\" placeholder=\"you@example.com\" className={inputRecipe()} />\n</>;",
|
|
4966
5450
|
"description": "A plain caption, associated with its control through `htmlFor`.",
|
|
4967
5451
|
"summary": "Default label associated with a control"
|
|
4968
5452
|
},
|
|
@@ -4986,9 +5470,16 @@
|
|
|
4986
5470
|
"snippet": "const RequiredWinsOverOptional = () => <Label optional required>Agency name</Label>;",
|
|
4987
5471
|
"description": "Contradictory props do not throw — `required` wins and the optional suffix is\ndropped, so a mistake never takes the page down.",
|
|
4988
5472
|
"summary": "required takes precedence over optional"
|
|
5473
|
+
},
|
|
5474
|
+
{
|
|
5475
|
+
"id": "components-label--inside-field",
|
|
5476
|
+
"name": "Inside Field",
|
|
5477
|
+
"snippet": "const InsideField = () => (\n <div className=\"flex flex-col gap-6\">\n <Field.Root>\n <Label>Email</Label>\n <FieldInput />\n </Field.Root>\n\n <Field.Root>\n <Label htmlFor=\"explicit-control\">Phone</Label>\n <input id=\"explicit-control\" className={inputRecipe()} />\n </Field.Root>\n </div>\n);",
|
|
5478
|
+
"description": "Inside a `Field.Root` the label reads `LabelContext` and points at the\nfield's control with no `htmlFor`. An explicit `htmlFor` still wins.",
|
|
5479
|
+
"summary": "Inside a Field the label associates itself; explicit htmlFor wins"
|
|
4989
5480
|
}
|
|
4990
5481
|
],
|
|
4991
|
-
"import": "import { Label } from \"@agentero/design-system\";"
|
|
5482
|
+
"import": "import { Field, Label } from \"@agentero/design-system\";"
|
|
4992
5483
|
},
|
|
4993
5484
|
"components-loading": {
|
|
4994
5485
|
"id": "components-loading",
|
|
@@ -7582,6 +8073,6 @@
|
|
|
7582
8073
|
},
|
|
7583
8074
|
"meta": {
|
|
7584
8075
|
"docgen": "react-component-meta",
|
|
7585
|
-
"durationMs":
|
|
8076
|
+
"durationMs": 4116
|
|
7586
8077
|
}
|
|
7587
8078
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentero/design-system",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.0",
|
|
4
4
|
"description": "A React component library built with Tailwind CSS v4 and Radix UI primitives",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -65,6 +65,14 @@
|
|
|
65
65
|
"types": "./src/dropdown-menu/index.d.ts",
|
|
66
66
|
"import": "./src/dropdown-menu/index.js"
|
|
67
67
|
},
|
|
68
|
+
"./field": {
|
|
69
|
+
"types": "./src/field/index.d.ts",
|
|
70
|
+
"import": "./src/field/index.js"
|
|
71
|
+
},
|
|
72
|
+
"./field-text": {
|
|
73
|
+
"types": "./src/field-text/index.d.ts",
|
|
74
|
+
"import": "./src/field-text/index.js"
|
|
75
|
+
},
|
|
68
76
|
"./hover-card": {
|
|
69
77
|
"types": "./src/hover-card/index.d.ts",
|
|
70
78
|
"import": "./src/hover-card/index.js"
|
|
@@ -155,6 +163,7 @@
|
|
|
155
163
|
"@radix-ui/react-accordion": "^1.2.14",
|
|
156
164
|
"@radix-ui/react-avatar": "^1.1.11",
|
|
157
165
|
"@radix-ui/react-checkbox": "^1.3.11",
|
|
166
|
+
"@radix-ui/react-compose-refs": "^1.1.3",
|
|
158
167
|
"@radix-ui/react-dialog": "^1.1.19",
|
|
159
168
|
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
160
169
|
"@radix-ui/react-hover-card": "^1.1.19",
|