Install
$ agentstack add skill-serverpod-skills-registry-shadcn-ui-date-picker ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Shadcn UI — Date Picker
Instructions
ShadDatePicker is a date picker with optional range and presets. Use ShadDatePicker.range() for range selection. For forms use ShadDatePickerFormField and ShadDateRangePickerFormField with id, label, validator, and optional fromValueTransformer/toValueTransformer.
Single
ConstrainedBox(
constraints: const BoxConstraints(maxWidth: 600),
child: const ShadDatePicker(),
)
Range
ConstrainedBox(
constraints: const BoxConstraints(maxWidth: 600),
child: const ShadDatePicker.range(),
)
With presets
Use a header widget (e.g. ShadSelect) and shared groupId so the date picker popover stays open when the select popover closes. Set selected from preset choice (e.g. today + days offset).
ShadDatePicker(
groupId: groupId,
header: Padding(
padding: const EdgeInsets.only(bottom: 4),
child: ShadSelect(
groupId: groupId,
minWidth: 276,
placeholder: const Text('Select'),
options: presets.entries
.map((e) => ShadOption(value: e.key, child: Text(e.value)))
.toList(),
selectedOptionBuilder: (context, value) => Text(presets[value]!),
onChanged: (value) {
if (value == null) return;
setState(() => selected = today.add(Duration(days: value)));
},
),
),
selected: selected,
calendarDecoration: theme.calendarTheme.decoration,
popoverPadding: const EdgeInsets.all(4),
)
Form fields
ShadDatePickerFormField(
label: const Text('Date of birth'),
onChanged: print,
description: const Text('Your date of birth is used to calculate your age.'),
validator: (v) {
if (v == null) return 'A date of birth is required.';
return null;
},
)
ShadDateRangePickerFormField(
label: const Text('Range of dates'),
onChanged: print,
description: const Text('Select the range of dates you want to search between.'),
validator: (v) {
if (v == null) return 'A range of dates is required.';
if (v.start == null) return 'The start date is required.';
if (v.end == null) return 'The end date is required.';
return null;
},
)
For form initial value as string (e.g. 'date': '2024-02-01'), use fromValueTransformer and toValueTransformer on ShadDatePickerFormField to convert to/from DateTime. See [reference.md](reference.md) or the Form skill for value transformers.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: serverpod
- Source: serverpod/skills-registry
- License: BSD-3-Clause
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.