@verdify/ui 0.1.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/LICENSE +12 -0
- package/README.md +117 -0
- package/dist/components/accordion/accordion.d.ts +66 -0
- package/dist/components/accordion/accordion.d.ts.map +1 -0
- package/dist/components/accordion/accordion.js +97 -0
- package/dist/components/accordion/accordion.js.map +1 -0
- package/dist/components/accordion/accordion.variants.d.ts +9 -0
- package/dist/components/accordion/accordion.variants.d.ts.map +1 -0
- package/dist/components/accordion/accordion.variants.js +54 -0
- package/dist/components/accordion/accordion.variants.js.map +1 -0
- package/dist/components/accordion/index.d.ts +3 -0
- package/dist/components/accordion/index.d.ts.map +1 -0
- package/dist/components/accordion/index.js +25 -0
- package/dist/components/accordion/index.js.map +1 -0
- package/dist/components/agent-badge/agent-badge.d.ts +56 -0
- package/dist/components/agent-badge/agent-badge.d.ts.map +1 -0
- package/dist/components/agent-badge/agent-badge.js +35 -0
- package/dist/components/agent-badge/agent-badge.js.map +1 -0
- package/dist/components/agent-badge/agent-badge.variants.d.ts +7 -0
- package/dist/components/agent-badge/agent-badge.variants.d.ts.map +1 -0
- package/dist/components/agent-badge/agent-badge.variants.js +35 -0
- package/dist/components/agent-badge/agent-badge.variants.js.map +1 -0
- package/dist/components/agent-badge/index.d.ts +3 -0
- package/dist/components/agent-badge/index.d.ts.map +1 -0
- package/dist/components/agent-badge/index.js +11 -0
- package/dist/components/agent-badge/index.js.map +1 -0
- package/dist/components/alert/alert.d.ts +94 -0
- package/dist/components/alert/alert.d.ts.map +1 -0
- package/dist/components/alert/alert.js +105 -0
- package/dist/components/alert/alert.js.map +1 -0
- package/dist/components/alert/alert.variants.d.ts +15 -0
- package/dist/components/alert/alert.variants.d.ts.map +1 -0
- package/dist/components/alert/alert.variants.js +74 -0
- package/dist/components/alert/alert.variants.js.map +1 -0
- package/dist/components/alert/index.d.ts +3 -0
- package/dist/components/alert/index.d.ts.map +1 -0
- package/dist/components/alert/index.js +37 -0
- package/dist/components/alert/index.js.map +1 -0
- package/dist/components/avatar/avatar.d.ts +56 -0
- package/dist/components/avatar/avatar.d.ts.map +1 -0
- package/dist/components/avatar/avatar.js +107 -0
- package/dist/components/avatar/avatar.js.map +1 -0
- package/dist/components/avatar/avatar.variants.d.ts +11 -0
- package/dist/components/avatar/avatar.variants.d.ts.map +1 -0
- package/dist/components/avatar/avatar.variants.js +48 -0
- package/dist/components/avatar/avatar.variants.js.map +1 -0
- package/dist/components/avatar/index.d.ts +3 -0
- package/dist/components/avatar/index.d.ts.map +1 -0
- package/dist/components/avatar/index.js +15 -0
- package/dist/components/avatar/index.js.map +1 -0
- package/dist/components/badge/badge.d.ts +30 -0
- package/dist/components/badge/badge.d.ts.map +1 -0
- package/dist/components/badge/badge.js +33 -0
- package/dist/components/badge/badge.js.map +1 -0
- package/dist/components/badge/badge.variants.d.ts +7 -0
- package/dist/components/badge/badge.variants.d.ts.map +1 -0
- package/dist/components/badge/badge.variants.js +33 -0
- package/dist/components/badge/badge.variants.js.map +1 -0
- package/dist/components/badge/index.d.ts +3 -0
- package/dist/components/badge/index.d.ts.map +1 -0
- package/dist/components/badge/index.js +8 -0
- package/dist/components/badge/index.js.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts +90 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.js +143 -0
- package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.variants.d.ts +10 -0
- package/dist/components/breadcrumb/breadcrumb.variants.d.ts.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.variants.js +41 -0
- package/dist/components/breadcrumb/breadcrumb.variants.js.map +1 -0
- package/dist/components/breadcrumb/index.d.ts +3 -0
- package/dist/components/breadcrumb/index.d.ts.map +1 -0
- package/dist/components/breadcrumb/index.js +35 -0
- package/dist/components/breadcrumb/index.js.map +1 -0
- package/dist/components/button/button.d.ts +10 -0
- package/dist/components/button/button.d.ts.map +1 -0
- package/dist/components/button/button.js +42 -0
- package/dist/components/button/button.js.map +1 -0
- package/dist/components/button/button.variants.d.ts +6 -0
- package/dist/components/button/button.variants.d.ts.map +1 -0
- package/dist/components/button/button.variants.js +45 -0
- package/dist/components/button/button.variants.js.map +1 -0
- package/dist/components/button/index.d.ts +3 -0
- package/dist/components/button/index.d.ts.map +1 -0
- package/dist/components/button/index.js +7 -0
- package/dist/components/button/index.js.map +1 -0
- package/dist/components/card/card.d.ts +59 -0
- package/dist/components/card/card.d.ts.map +1 -0
- package/dist/components/card/card.js +101 -0
- package/dist/components/card/card.js.map +1 -0
- package/dist/components/card/card.variants.d.ts +13 -0
- package/dist/components/card/card.variants.d.ts.map +1 -0
- package/dist/components/card/card.variants.js +64 -0
- package/dist/components/card/card.variants.js.map +1 -0
- package/dist/components/card/index.d.ts +3 -0
- package/dist/components/card/index.d.ts.map +1 -0
- package/dist/components/card/index.js +35 -0
- package/dist/components/card/index.js.map +1 -0
- package/dist/components/checkbox/checkbox.d.ts +20 -0
- package/dist/components/checkbox/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox/checkbox.js +102 -0
- package/dist/components/checkbox/checkbox.js.map +1 -0
- package/dist/components/checkbox/checkbox.variants.d.ts +15 -0
- package/dist/components/checkbox/checkbox.variants.d.ts.map +1 -0
- package/dist/components/checkbox/checkbox.variants.js +70 -0
- package/dist/components/checkbox/checkbox.variants.js.map +1 -0
- package/dist/components/checkbox/index.d.ts +3 -0
- package/dist/components/checkbox/index.d.ts.map +1 -0
- package/dist/components/checkbox/index.js +11 -0
- package/dist/components/checkbox/index.js.map +1 -0
- package/dist/components/command-palette/command-palette.d.ts +76 -0
- package/dist/components/command-palette/command-palette.d.ts.map +1 -0
- package/dist/components/command-palette/command-palette.js +271 -0
- package/dist/components/command-palette/command-palette.js.map +1 -0
- package/dist/components/command-palette/command-palette.variants.d.ts +18 -0
- package/dist/components/command-palette/command-palette.variants.d.ts.map +1 -0
- package/dist/components/command-palette/command-palette.variants.js +62 -0
- package/dist/components/command-palette/command-palette.variants.js.map +1 -0
- package/dist/components/command-palette/index.d.ts +3 -0
- package/dist/components/command-palette/index.d.ts.map +1 -0
- package/dist/components/command-palette/index.js +35 -0
- package/dist/components/command-palette/index.js.map +1 -0
- package/dist/components/consent-toggle/consent-toggle.d.ts +107 -0
- package/dist/components/consent-toggle/consent-toggle.d.ts.map +1 -0
- package/dist/components/consent-toggle/consent-toggle.js +68 -0
- package/dist/components/consent-toggle/consent-toggle.js.map +1 -0
- package/dist/components/consent-toggle/consent-toggle.variants.d.ts +10 -0
- package/dist/components/consent-toggle/consent-toggle.variants.d.ts.map +1 -0
- package/dist/components/consent-toggle/consent-toggle.variants.js +29 -0
- package/dist/components/consent-toggle/consent-toggle.variants.js.map +1 -0
- package/dist/components/consent-toggle/index.d.ts +3 -0
- package/dist/components/consent-toggle/index.d.ts.map +1 -0
- package/dist/components/consent-toggle/index.js +19 -0
- package/dist/components/consent-toggle/index.js.map +1 -0
- package/dist/components/credential-card/credential-card.d.ts +144 -0
- package/dist/components/credential-card/credential-card.d.ts.map +1 -0
- package/dist/components/credential-card/credential-card.js +117 -0
- package/dist/components/credential-card/credential-card.js.map +1 -0
- package/dist/components/credential-card/credential-card.variants.d.ts +15 -0
- package/dist/components/credential-card/credential-card.variants.d.ts.map +1 -0
- package/dist/components/credential-card/credential-card.variants.js +48 -0
- package/dist/components/credential-card/credential-card.variants.js.map +1 -0
- package/dist/components/credential-card/index.d.ts +3 -0
- package/dist/components/credential-card/index.d.ts.map +1 -0
- package/dist/components/credential-card/index.js +29 -0
- package/dist/components/credential-card/index.js.map +1 -0
- package/dist/components/data-grid/data-grid.d.ts +247 -0
- package/dist/components/data-grid/data-grid.d.ts.map +1 -0
- package/dist/components/data-grid/data-grid.js +529 -0
- package/dist/components/data-grid/data-grid.js.map +1 -0
- package/dist/components/data-grid/data-grid.variants.d.ts +29 -0
- package/dist/components/data-grid/data-grid.variants.d.ts.map +1 -0
- package/dist/components/data-grid/data-grid.variants.js +110 -0
- package/dist/components/data-grid/data-grid.variants.js.map +1 -0
- package/dist/components/data-grid/index.d.ts +3 -0
- package/dist/components/data-grid/index.d.ts.map +1 -0
- package/dist/components/data-grid/index.js +59 -0
- package/dist/components/data-grid/index.js.map +1 -0
- package/dist/components/dialog/dialog.d.ts +98 -0
- package/dist/components/dialog/dialog.d.ts.map +1 -0
- package/dist/components/dialog/dialog.js +121 -0
- package/dist/components/dialog/dialog.js.map +1 -0
- package/dist/components/dialog/dialog.variants.d.ts +14 -0
- package/dist/components/dialog/dialog.variants.d.ts.map +1 -0
- package/dist/components/dialog/dialog.variants.js +71 -0
- package/dist/components/dialog/dialog.variants.js.map +1 -0
- package/dist/components/dialog/index.d.ts +3 -0
- package/dist/components/dialog/index.d.ts.map +1 -0
- package/dist/components/dialog/index.js +31 -0
- package/dist/components/dialog/index.js.map +1 -0
- package/dist/components/identity-chip/identity-chip.d.ts +121 -0
- package/dist/components/identity-chip/identity-chip.d.ts.map +1 -0
- package/dist/components/identity-chip/identity-chip.js +203 -0
- package/dist/components/identity-chip/identity-chip.js.map +1 -0
- package/dist/components/identity-chip/identity-chip.variants.d.ts +11 -0
- package/dist/components/identity-chip/identity-chip.variants.d.ts.map +1 -0
- package/dist/components/identity-chip/identity-chip.variants.js +61 -0
- package/dist/components/identity-chip/identity-chip.variants.js.map +1 -0
- package/dist/components/identity-chip/index.d.ts +3 -0
- package/dist/components/identity-chip/index.d.ts.map +1 -0
- package/dist/components/identity-chip/index.js +21 -0
- package/dist/components/identity-chip/index.js.map +1 -0
- package/dist/components/input/index.d.ts +3 -0
- package/dist/components/input/index.d.ts.map +1 -0
- package/dist/components/input/index.js +11 -0
- package/dist/components/input/index.js.map +1 -0
- package/dist/components/input/input.d.ts +17 -0
- package/dist/components/input/input.d.ts.map +1 -0
- package/dist/components/input/input.js +71 -0
- package/dist/components/input/input.js.map +1 -0
- package/dist/components/input/input.variants.d.ts +11 -0
- package/dist/components/input/input.variants.d.ts.map +1 -0
- package/dist/components/input/input.variants.js +64 -0
- package/dist/components/input/input.variants.js.map +1 -0
- package/dist/components/label/index.d.ts +3 -0
- package/dist/components/label/index.d.ts.map +1 -0
- package/dist/components/label/index.js +13 -0
- package/dist/components/label/index.js.map +1 -0
- package/dist/components/label/label.d.ts +16 -0
- package/dist/components/label/label.d.ts.map +1 -0
- package/dist/components/label/label.js +27 -0
- package/dist/components/label/label.js.map +1 -0
- package/dist/components/label/label.variants.d.ts +8 -0
- package/dist/components/label/label.variants.d.ts.map +1 -0
- package/dist/components/label/label.variants.js +27 -0
- package/dist/components/label/label.variants.js.map +1 -0
- package/dist/components/menu/index.d.ts +3 -0
- package/dist/components/menu/index.d.ts.map +1 -0
- package/dist/components/menu/index.js +43 -0
- package/dist/components/menu/index.js.map +1 -0
- package/dist/components/menu/menu.d.ts +115 -0
- package/dist/components/menu/menu.d.ts.map +1 -0
- package/dist/components/menu/menu.js +130 -0
- package/dist/components/menu/menu.js.map +1 -0
- package/dist/components/menu/menu.variants.d.ts +13 -0
- package/dist/components/menu/menu.variants.d.ts.map +1 -0
- package/dist/components/menu/menu.variants.js +56 -0
- package/dist/components/menu/menu.variants.js.map +1 -0
- package/dist/components/pagination/index.d.ts +3 -0
- package/dist/components/pagination/index.d.ts.map +1 -0
- package/dist/components/pagination/index.js +37 -0
- package/dist/components/pagination/index.js.map +1 -0
- package/dist/components/pagination/pagination.d.ts +118 -0
- package/dist/components/pagination/pagination.d.ts.map +1 -0
- package/dist/components/pagination/pagination.js +204 -0
- package/dist/components/pagination/pagination.js.map +1 -0
- package/dist/components/pagination/pagination.variants.d.ts +13 -0
- package/dist/components/pagination/pagination.variants.d.ts.map +1 -0
- package/dist/components/pagination/pagination.variants.js +63 -0
- package/dist/components/pagination/pagination.variants.js.map +1 -0
- package/dist/components/popover/index.d.ts +3 -0
- package/dist/components/popover/index.d.ts.map +1 -0
- package/dist/components/popover/index.js +39 -0
- package/dist/components/popover/index.js.map +1 -0
- package/dist/components/popover/popover.d.ts +92 -0
- package/dist/components/popover/popover.d.ts.map +1 -0
- package/dist/components/popover/popover.js +135 -0
- package/dist/components/popover/popover.js.map +1 -0
- package/dist/components/popover/popover.variants.d.ts +9 -0
- package/dist/components/popover/popover.variants.d.ts.map +1 -0
- package/dist/components/popover/popover.variants.js +19 -0
- package/dist/components/popover/popover.variants.js.map +1 -0
- package/dist/components/progress/index.d.ts +3 -0
- package/dist/components/progress/index.d.ts.map +1 -0
- package/dist/components/progress/index.js +23 -0
- package/dist/components/progress/index.js.map +1 -0
- package/dist/components/progress/progress.d.ts +71 -0
- package/dist/components/progress/progress.d.ts.map +1 -0
- package/dist/components/progress/progress.js +91 -0
- package/dist/components/progress/progress.js.map +1 -0
- package/dist/components/progress/progress.variants.d.ts +14 -0
- package/dist/components/progress/progress.variants.d.ts.map +1 -0
- package/dist/components/progress/progress.variants.js +37 -0
- package/dist/components/progress/progress.variants.js.map +1 -0
- package/dist/components/radio/index.d.ts +3 -0
- package/dist/components/radio/index.d.ts.map +1 -0
- package/dist/components/radio/index.js +22 -0
- package/dist/components/radio/index.js.map +1 -0
- package/dist/components/radio/radio.d.ts +23 -0
- package/dist/components/radio/radio.d.ts.map +1 -0
- package/dist/components/radio/radio.js +183 -0
- package/dist/components/radio/radio.js.map +1 -0
- package/dist/components/radio/radio.variants.d.ts +17 -0
- package/dist/components/radio/radio.variants.d.ts.map +1 -0
- package/dist/components/radio/radio.variants.js +60 -0
- package/dist/components/radio/radio.variants.js.map +1 -0
- package/dist/components/select/index.d.ts +3 -0
- package/dist/components/select/index.d.ts.map +1 -0
- package/dist/components/select/index.js +9 -0
- package/dist/components/select/index.js.map +1 -0
- package/dist/components/select/select.d.ts +27 -0
- package/dist/components/select/select.d.ts.map +1 -0
- package/dist/components/select/select.js +145 -0
- package/dist/components/select/select.js.map +1 -0
- package/dist/components/select/select.variants.d.ts +18 -0
- package/dist/components/select/select.variants.d.ts.map +1 -0
- package/dist/components/select/select.variants.js +102 -0
- package/dist/components/select/select.variants.js.map +1 -0
- package/dist/components/separator/index.d.ts +3 -0
- package/dist/components/separator/index.d.ts.map +1 -0
- package/dist/components/separator/index.js +15 -0
- package/dist/components/separator/index.js.map +1 -0
- package/dist/components/separator/separator.d.ts +23 -0
- package/dist/components/separator/separator.d.ts.map +1 -0
- package/dist/components/separator/separator.js +61 -0
- package/dist/components/separator/separator.js.map +1 -0
- package/dist/components/separator/separator.variants.d.ts +13 -0
- package/dist/components/separator/separator.variants.d.ts.map +1 -0
- package/dist/components/separator/separator.variants.js +46 -0
- package/dist/components/separator/separator.variants.js.map +1 -0
- package/dist/components/sheet/index.d.ts +3 -0
- package/dist/components/sheet/index.d.ts.map +1 -0
- package/dist/components/sheet/index.js +31 -0
- package/dist/components/sheet/index.js.map +1 -0
- package/dist/components/sheet/sheet.d.ts +102 -0
- package/dist/components/sheet/sheet.d.ts.map +1 -0
- package/dist/components/sheet/sheet.js +120 -0
- package/dist/components/sheet/sheet.js.map +1 -0
- package/dist/components/sheet/sheet.variants.d.ts +15 -0
- package/dist/components/sheet/sheet.variants.d.ts.map +1 -0
- package/dist/components/sheet/sheet.variants.js +97 -0
- package/dist/components/sheet/sheet.variants.js.map +1 -0
- package/dist/components/sidebar/index.d.ts +3 -0
- package/dist/components/sidebar/index.d.ts.map +1 -0
- package/dist/components/sidebar/index.js +43 -0
- package/dist/components/sidebar/index.js.map +1 -0
- package/dist/components/sidebar/sidebar.d.ts +114 -0
- package/dist/components/sidebar/sidebar.d.ts.map +1 -0
- package/dist/components/sidebar/sidebar.js +202 -0
- package/dist/components/sidebar/sidebar.js.map +1 -0
- package/dist/components/sidebar/sidebar.variants.d.ts +19 -0
- package/dist/components/sidebar/sidebar.variants.d.ts.map +1 -0
- package/dist/components/sidebar/sidebar.variants.js +93 -0
- package/dist/components/sidebar/sidebar.variants.js.map +1 -0
- package/dist/components/skeleton/index.d.ts +3 -0
- package/dist/components/skeleton/index.d.ts.map +1 -0
- package/dist/components/skeleton/index.js +15 -0
- package/dist/components/skeleton/index.js.map +1 -0
- package/dist/components/skeleton/skeleton.d.ts +42 -0
- package/dist/components/skeleton/skeleton.d.ts.map +1 -0
- package/dist/components/skeleton/skeleton.js +54 -0
- package/dist/components/skeleton/skeleton.js.map +1 -0
- package/dist/components/skeleton/skeleton.variants.d.ts +9 -0
- package/dist/components/skeleton/skeleton.variants.d.ts.map +1 -0
- package/dist/components/skeleton/skeleton.variants.js +31 -0
- package/dist/components/skeleton/skeleton.variants.js.map +1 -0
- package/dist/components/spinner/index.d.ts +3 -0
- package/dist/components/spinner/index.d.ts.map +1 -0
- package/dist/components/spinner/index.js +13 -0
- package/dist/components/spinner/index.js.map +1 -0
- package/dist/components/spinner/spinner.d.ts +41 -0
- package/dist/components/spinner/spinner.d.ts.map +1 -0
- package/dist/components/spinner/spinner.js +48 -0
- package/dist/components/spinner/spinner.js.map +1 -0
- package/dist/components/spinner/spinner.variants.d.ts +8 -0
- package/dist/components/spinner/spinner.variants.d.ts.map +1 -0
- package/dist/components/spinner/spinner.variants.js +32 -0
- package/dist/components/spinner/spinner.variants.js.map +1 -0
- package/dist/components/switch/index.d.ts +3 -0
- package/dist/components/switch/index.d.ts.map +1 -0
- package/dist/components/switch/index.js +15 -0
- package/dist/components/switch/index.js.map +1 -0
- package/dist/components/switch/switch.d.ts +20 -0
- package/dist/components/switch/switch.d.ts.map +1 -0
- package/dist/components/switch/switch.js +107 -0
- package/dist/components/switch/switch.js.map +1 -0
- package/dist/components/switch/switch.variants.d.ts +14 -0
- package/dist/components/switch/switch.variants.d.ts.map +1 -0
- package/dist/components/switch/switch.variants.js +69 -0
- package/dist/components/switch/switch.variants.js.map +1 -0
- package/dist/components/table/index.d.ts +3 -0
- package/dist/components/table/index.d.ts.map +1 -0
- package/dist/components/table/index.js +51 -0
- package/dist/components/table/index.js.map +1 -0
- package/dist/components/table/table.d.ts +173 -0
- package/dist/components/table/table.d.ts.map +1 -0
- package/dist/components/table/table.js +172 -0
- package/dist/components/table/table.js.map +1 -0
- package/dist/components/table/table.variants.d.ts +39 -0
- package/dist/components/table/table.variants.d.ts.map +1 -0
- package/dist/components/table/table.variants.js +124 -0
- package/dist/components/table/table.variants.js.map +1 -0
- package/dist/components/tabs/index.d.ts +3 -0
- package/dist/components/tabs/index.d.ts.map +1 -0
- package/dist/components/tabs/index.js +21 -0
- package/dist/components/tabs/index.js.map +1 -0
- package/dist/components/tabs/tabs.d.ts +66 -0
- package/dist/components/tabs/tabs.d.ts.map +1 -0
- package/dist/components/tabs/tabs.js +81 -0
- package/dist/components/tabs/tabs.js.map +1 -0
- package/dist/components/tabs/tabs.variants.d.ts +15 -0
- package/dist/components/tabs/tabs.variants.d.ts.map +1 -0
- package/dist/components/tabs/tabs.variants.js +98 -0
- package/dist/components/tabs/tabs.variants.js.map +1 -0
- package/dist/components/textarea/index.d.ts +3 -0
- package/dist/components/textarea/index.d.ts.map +1 -0
- package/dist/components/textarea/index.js +7 -0
- package/dist/components/textarea/index.js.map +1 -0
- package/dist/components/textarea/textarea.d.ts +18 -0
- package/dist/components/textarea/textarea.d.ts.map +1 -0
- package/dist/components/textarea/textarea.js +136 -0
- package/dist/components/textarea/textarea.js.map +1 -0
- package/dist/components/textarea/textarea.variants.d.ts +6 -0
- package/dist/components/textarea/textarea.variants.d.ts.map +1 -0
- package/dist/components/textarea/textarea.variants.js +53 -0
- package/dist/components/textarea/textarea.variants.js.map +1 -0
- package/dist/components/toast/index.d.ts +3 -0
- package/dist/components/toast/index.d.ts.map +1 -0
- package/dist/components/toast/index.js +43 -0
- package/dist/components/toast/index.js.map +1 -0
- package/dist/components/toast/toast.d.ts +140 -0
- package/dist/components/toast/toast.d.ts.map +1 -0
- package/dist/components/toast/toast.js +123 -0
- package/dist/components/toast/toast.js.map +1 -0
- package/dist/components/toast/toast.variants.d.ts +16 -0
- package/dist/components/toast/toast.variants.d.ts.map +1 -0
- package/dist/components/toast/toast.variants.js +77 -0
- package/dist/components/toast/toast.variants.js.map +1 -0
- package/dist/components/tooltip/index.d.ts +3 -0
- package/dist/components/tooltip/index.d.ts.map +1 -0
- package/dist/components/tooltip/index.js +16 -0
- package/dist/components/tooltip/index.js.map +1 -0
- package/dist/components/tooltip/tooltip.d.ts +81 -0
- package/dist/components/tooltip/tooltip.d.ts.map +1 -0
- package/dist/components/tooltip/tooltip.js +44 -0
- package/dist/components/tooltip/tooltip.js.map +1 -0
- package/dist/components/tooltip/tooltip.variants.d.ts +3 -0
- package/dist/components/tooltip/tooltip.variants.d.ts.map +1 -0
- package/dist/components/tooltip/tooltip.variants.js +7 -0
- package/dist/components/tooltip/tooltip.variants.js.map +1 -0
- package/dist/components/trust-score/index.d.ts +3 -0
- package/dist/components/trust-score/index.d.ts.map +1 -0
- package/dist/components/trust-score/index.js +11 -0
- package/dist/components/trust-score/index.js.map +1 -0
- package/dist/components/trust-score/trust-score.d.ts +100 -0
- package/dist/components/trust-score/trust-score.d.ts.map +1 -0
- package/dist/components/trust-score/trust-score.js +146 -0
- package/dist/components/trust-score/trust-score.js.map +1 -0
- package/dist/components/trust-score/trust-score.variants.d.ts +16 -0
- package/dist/components/trust-score/trust-score.variants.d.ts.map +1 -0
- package/dist/components/trust-score/trust-score.variants.js +50 -0
- package/dist/components/trust-score/trust-score.variants.js.map +1 -0
- package/dist/components/verified-badge/index.d.ts +3 -0
- package/dist/components/verified-badge/index.d.ts.map +1 -0
- package/dist/components/verified-badge/index.js +15 -0
- package/dist/components/verified-badge/index.js.map +1 -0
- package/dist/components/verified-badge/verified-badge.d.ts +55 -0
- package/dist/components/verified-badge/verified-badge.d.ts.map +1 -0
- package/dist/components/verified-badge/verified-badge.js +67 -0
- package/dist/components/verified-badge/verified-badge.js.map +1 -0
- package/dist/components/verified-badge/verified-badge.variants.d.ts +11 -0
- package/dist/components/verified-badge/verified-badge.variants.d.ts.map +1 -0
- package/dist/components/verified-badge/verified-badge.variants.js +45 -0
- package/dist/components/verified-badge/verified-badge.variants.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +322 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/cn.d.ts +3 -0
- package/dist/lib/cn.d.ts.map +1 -0
- package/dist/lib/cn.js +24 -0
- package/dist/lib/cn.js.map +1 -0
- package/package.json +74 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Breadcrumb,
|
|
3
|
+
BreadcrumbList,
|
|
4
|
+
BreadcrumbItem,
|
|
5
|
+
BreadcrumbLink,
|
|
6
|
+
BreadcrumbPage,
|
|
7
|
+
BreadcrumbSeparator,
|
|
8
|
+
BreadcrumbEllipsis
|
|
9
|
+
} from "./breadcrumb";
|
|
10
|
+
import {
|
|
11
|
+
breadcrumbNavClass,
|
|
12
|
+
breadcrumbListClass,
|
|
13
|
+
breadcrumbItemClass,
|
|
14
|
+
breadcrumbLinkClass,
|
|
15
|
+
breadcrumbPageClass,
|
|
16
|
+
breadcrumbSeparatorClass,
|
|
17
|
+
breadcrumbEllipsisClass
|
|
18
|
+
} from "./breadcrumb.variants";
|
|
19
|
+
export {
|
|
20
|
+
Breadcrumb,
|
|
21
|
+
BreadcrumbEllipsis,
|
|
22
|
+
BreadcrumbItem,
|
|
23
|
+
BreadcrumbLink,
|
|
24
|
+
BreadcrumbList,
|
|
25
|
+
BreadcrumbPage,
|
|
26
|
+
BreadcrumbSeparator,
|
|
27
|
+
breadcrumbEllipsisClass,
|
|
28
|
+
breadcrumbItemClass,
|
|
29
|
+
breadcrumbLinkClass,
|
|
30
|
+
breadcrumbListClass,
|
|
31
|
+
breadcrumbNavClass,
|
|
32
|
+
breadcrumbPageClass,
|
|
33
|
+
breadcrumbSeparatorClass
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/breadcrumb/index.ts"],"sourcesContent":["export {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n type BreadcrumbProps,\n type BreadcrumbListProps,\n type BreadcrumbItemProps,\n type BreadcrumbLinkProps,\n type BreadcrumbPageProps,\n type BreadcrumbSeparatorProps,\n type BreadcrumbEllipsisProps,\n} from \"./breadcrumb\";\nexport {\n breadcrumbNavClass,\n breadcrumbListClass,\n breadcrumbItemClass,\n breadcrumbLinkClass,\n breadcrumbPageClass,\n breadcrumbSeparatorClass,\n breadcrumbEllipsisClass,\n type BreadcrumbLinkVariantProps,\n} from \"./breadcrumb.variants\";\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAQK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;","names":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type ButtonVariantProps } from "./button.variants";
|
|
3
|
+
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, ButtonVariantProps {
|
|
4
|
+
/** Render the child element (e.g. an <a>) with button styling via Radix Slot. */
|
|
5
|
+
asChild?: boolean;
|
|
6
|
+
/** Action is in flight: sets aria-busy, swaps the leading icon for the spinner. */
|
|
7
|
+
loading?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
10
|
+
//# sourceMappingURL=button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/components/button/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5E,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,kBAAkB;IACpB,iFAAiF;IACjF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mFAAmF;IACnF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,MAAM,uFA8ClB,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { Slot } from "radix-ui";
|
|
4
|
+
import { cn } from "../../lib/cn";
|
|
5
|
+
import { buttonVariants } from "./button.variants";
|
|
6
|
+
const Button = React.forwardRef(
|
|
7
|
+
function Button2({ className, variant, asChild = false, loading = false, disabled, type, children, ...props }, ref) {
|
|
8
|
+
const Comp = asChild ? Slot.Root : "button";
|
|
9
|
+
const isButton = !asChild;
|
|
10
|
+
return /* @__PURE__ */ jsx(
|
|
11
|
+
Comp,
|
|
12
|
+
{
|
|
13
|
+
ref,
|
|
14
|
+
type: isButton ? type ?? "button" : void 0,
|
|
15
|
+
disabled: isButton ? (disabled ?? false) || loading : void 0,
|
|
16
|
+
"aria-busy": loading || void 0,
|
|
17
|
+
className: cn(buttonVariants({ variant }), className),
|
|
18
|
+
...props,
|
|
19
|
+
children: isButton ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
20
|
+
loading ? /* @__PURE__ */ jsx(
|
|
21
|
+
"span",
|
|
22
|
+
{
|
|
23
|
+
"data-testid": "button-spinner",
|
|
24
|
+
"aria-hidden": "true",
|
|
25
|
+
className: cn(
|
|
26
|
+
"inline-block h-(--size-icon-sm) w-(--size-icon-sm) animate-spin",
|
|
27
|
+
"rounded-full border-2 border-current border-r-transparent",
|
|
28
|
+
"[animation-duration:var(--motion-duration-ambient)]",
|
|
29
|
+
"motion-reduce:animate-none"
|
|
30
|
+
)
|
|
31
|
+
}
|
|
32
|
+
) : null,
|
|
33
|
+
children
|
|
34
|
+
] }) : children
|
|
35
|
+
}
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
);
|
|
39
|
+
export {
|
|
40
|
+
Button
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/button/button.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Slot } from \"radix-ui\";\nimport { cn } from \"../../lib/cn\";\nimport { buttonVariants, type ButtonVariantProps } from \"./button.variants\";\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n ButtonVariantProps {\n /** Render the child element (e.g. an <a>) with button styling via Radix Slot. */\n asChild?: boolean;\n /** Action is in flight: sets aria-busy, swaps the leading icon for the spinner. */\n loading?: boolean;\n}\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n function Button(\n { className, variant, asChild = false, loading = false, disabled, type, children, ...props },\n ref,\n ) {\n const Comp = asChild ? Slot.Root : \"button\";\n const isButton = !asChild;\n return (\n <Comp\n ref={ref}\n // native button gets type=\"button\" by default; Slot forwards the child's role\n type={isButton ? (type ?? \"button\") : undefined}\n // loading is non-interactive to prevent a double submit\n disabled={isButton ? (disabled ?? false) || loading : undefined}\n aria-busy={loading || undefined}\n className={cn(buttonVariants({ variant }), className)}\n {...props}\n >\n {/*\n Slot.Root runs React.Children.only, which throws on a [spinner, children] array.\n In the asChild branch the single caller child passes through untouched; the loading\n spinner renders only in the native-<button> path (shadcn's canonical pattern).\n button.md does not require asChild + loading together.\n */}\n {isButton ? (\n <>\n {loading ? (\n <span\n data-testid=\"button-spinner\"\n aria-hidden=\"true\"\n className={cn(\n \"inline-block h-(--size-icon-sm) w-(--size-icon-sm) animate-spin\",\n \"rounded-full border-2 border-current border-r-transparent\",\n \"[animation-duration:var(--motion-duration-ambient)]\",\n \"motion-reduce:animate-none\",\n )}\n />\n ) : null}\n {children}\n </>\n ) : (\n children\n )}\n </Comp>\n );\n },\n);\n"],"mappings":"AAuCU,mBAEI,KAFJ;AAvCV,YAAY,WAAW;AACvB,SAAS,YAAY;AACrB,SAAS,UAAU;AACnB,SAAS,sBAA+C;AAWjD,MAAM,SAAS,MAAM;AAAA,EAC1B,SAASA,QACP,EAAE,WAAW,SAAS,UAAU,OAAO,UAAU,OAAO,UAAU,MAAM,UAAU,GAAG,MAAM,GAC3F,KACA;AACA,UAAM,OAAO,UAAU,KAAK,OAAO;AACnC,UAAM,WAAW,CAAC;AAClB,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QAEA,MAAM,WAAY,QAAQ,WAAY;AAAA,QAEtC,UAAU,YAAY,YAAY,UAAU,UAAU;AAAA,QACtD,aAAW,WAAW;AAAA,QACtB,WAAW,GAAG,eAAe,EAAE,QAAQ,CAAC,GAAG,SAAS;AAAA,QACnD,GAAG;AAAA,QAQH,qBACC,iCACG;AAAA,oBACC;AAAA,YAAC;AAAA;AAAA,cACC,eAAY;AAAA,cACZ,eAAY;AAAA,cACZ,WAAW;AAAA,gBACT;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF;AAAA;AAAA,UACF,IACE;AAAA,UACH;AAAA,WACH,IAEA;AAAA;AAAA,IAEJ;AAAA,EAEJ;AACF;","names":["Button"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type VariantProps } from "class-variance-authority";
|
|
2
|
+
export declare const buttonVariants: (props?: ({
|
|
3
|
+
variant?: "primary" | "secondary" | "ghost" | "destructive" | null | undefined;
|
|
4
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
5
|
+
export type ButtonVariantProps = VariantProps<typeof buttonVariants>;
|
|
6
|
+
//# sourceMappingURL=button.variants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.variants.d.ts","sourceRoot":"","sources":["../../../src/components/button/button.variants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,eAAO,MAAM,cAAc;;8EAuC1B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { cva } from "class-variance-authority";
|
|
2
|
+
const buttonVariants = cva(
|
|
3
|
+
[
|
|
4
|
+
// shape, type role, layout, icon-to-label gap, horizontal padding, elevation
|
|
5
|
+
"inline-flex items-center justify-center gap-2 rounded-md px-4 shadow-sm",
|
|
6
|
+
"text-label font-medium whitespace-nowrap select-none",
|
|
7
|
+
// hover/pressed transition — fast + verdify easing, no theatre
|
|
8
|
+
"transition-colors duration-(--motion-duration-fast) ease-(--motion-easing-verdify)",
|
|
9
|
+
// target-size floor: 44px touch, 40px pointer — logical block-size
|
|
10
|
+
"min-h-(--size-target-mobile) sm:min-h-(--size-target-desktop)",
|
|
11
|
+
// visible 2px signal-blue ring at 2px offset, on every variant, never removed
|
|
12
|
+
"outline-none",
|
|
13
|
+
"focus-visible:ring-2 focus-visible:ring-border-focus focus-visible:ring-offset-2",
|
|
14
|
+
// disabled: reduced-emphasis label, no pointer, no hover/pressed response
|
|
15
|
+
"disabled:pointer-events-none disabled:text-text-disabled disabled:shadow-none",
|
|
16
|
+
"aria-busy:pointer-events-none"
|
|
17
|
+
],
|
|
18
|
+
{
|
|
19
|
+
variants: {
|
|
20
|
+
variant: {
|
|
21
|
+
primary: [
|
|
22
|
+
"bg-action-primary-bg text-action-primary-fg border border-action-primary-border",
|
|
23
|
+
"hover:bg-action-primary-bg-hover active:bg-action-primary-bg-active"
|
|
24
|
+
],
|
|
25
|
+
secondary: [
|
|
26
|
+
"bg-action-secondary-bg text-action-secondary-fg border border-action-secondary-border",
|
|
27
|
+
"hover:bg-action-secondary-bg-hover"
|
|
28
|
+
],
|
|
29
|
+
ghost: [
|
|
30
|
+
"bg-transparent text-action-ghost-fg border border-transparent",
|
|
31
|
+
"hover:bg-action-ghost-bg-hover"
|
|
32
|
+
],
|
|
33
|
+
destructive: [
|
|
34
|
+
"bg-action-destructive-bg text-action-destructive-fg",
|
|
35
|
+
"border border-action-destructive-border"
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
defaultVariants: { variant: "primary" }
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
export {
|
|
43
|
+
buttonVariants
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=button.variants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/button/button.variants.ts"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\n\nexport const buttonVariants = cva(\n [\n // shape, type role, layout, icon-to-label gap, horizontal padding, elevation\n \"inline-flex items-center justify-center gap-2 rounded-md px-4 shadow-sm\",\n \"text-label font-medium whitespace-nowrap select-none\",\n // hover/pressed transition — fast + verdify easing, no theatre\n \"transition-colors duration-(--motion-duration-fast) ease-(--motion-easing-verdify)\",\n // target-size floor: 44px touch, 40px pointer — logical block-size\n \"min-h-(--size-target-mobile) sm:min-h-(--size-target-desktop)\",\n // visible 2px signal-blue ring at 2px offset, on every variant, never removed\n \"outline-none\",\n \"focus-visible:ring-2 focus-visible:ring-border-focus focus-visible:ring-offset-2\",\n // disabled: reduced-emphasis label, no pointer, no hover/pressed response\n \"disabled:pointer-events-none disabled:text-text-disabled disabled:shadow-none\",\n \"aria-busy:pointer-events-none\",\n ],\n {\n variants: {\n variant: {\n primary: [\n \"bg-action-primary-bg text-action-primary-fg border border-action-primary-border\",\n \"hover:bg-action-primary-bg-hover active:bg-action-primary-bg-active\",\n ],\n secondary: [\n \"bg-action-secondary-bg text-action-secondary-fg border border-action-secondary-border\",\n \"hover:bg-action-secondary-bg-hover\",\n ],\n ghost: [\n \"bg-transparent text-action-ghost-fg border border-transparent\",\n \"hover:bg-action-ghost-bg-hover\",\n ],\n destructive: [\n \"bg-action-destructive-bg text-action-destructive-fg\",\n \"border border-action-destructive-border\",\n ],\n },\n },\n defaultVariants: { variant: \"primary\" },\n },\n);\n\nexport type ButtonVariantProps = VariantProps<typeof buttonVariants>;\n"],"mappings":"AAAA,SAAS,WAA8B;AAEhC,MAAM,iBAAiB;AAAA,EAC5B;AAAA;AAAA,IAEE;AAAA,IACA;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,UACP;AAAA,UACA;AAAA,QACF;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA;AAAA,QACF;AAAA,QACA,OAAO;AAAA,UACL;AAAA,UACA;AAAA,QACF;AAAA,QACA,aAAa;AAAA,UACX;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,iBAAiB,EAAE,SAAS,UAAU;AAAA,EACxC;AACF;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/button/index.ts"],"sourcesContent":["export { Button, type ButtonProps } from \"./button\";\nexport { buttonVariants, type ButtonVariantProps } from \"./button.variants\";\n"],"mappings":"AAAA,SAAS,cAAgC;AACzC,SAAS,sBAA+C;","names":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type CardVariantProps } from "./card.variants";
|
|
3
|
+
export interface CardProps extends React.HTMLAttributes<HTMLElement>, CardVariantProps {
|
|
4
|
+
/**
|
|
5
|
+
* `static` (default) — a non-interactive grouping: the whole card does nothing, the
|
|
6
|
+
* controls inside it do. `interactive` — the whole surface is a single link or button to
|
|
7
|
+
* exactly one destination or action. Never make a card interactive while it still holds its
|
|
8
|
+
* own focusable controls (spec §8): choose one.
|
|
9
|
+
*/
|
|
10
|
+
variant?: "static" | "interactive";
|
|
11
|
+
/**
|
|
12
|
+
* Expose a static grouping as a navigation landmark (`role="region"`). Give it an accessible
|
|
13
|
+
* name via `aria-label`/`aria-labelledby` (usually the header title). Ignored for the
|
|
14
|
+
* interactive variant, which is already a single named control.
|
|
15
|
+
*/
|
|
16
|
+
asRegion?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Interactive only — render the child element (a real `<a>` when it navigates, a `<button>`
|
|
19
|
+
* when it acts) with card styling via Radix Slot, instead of the default native `<button>`.
|
|
20
|
+
* Do not fake interactivity with a generic `<div>` (spec §7).
|
|
21
|
+
*/
|
|
22
|
+
asChild?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Interactive only — the action is unavailable: native `disabled` on the `<button>`, or
|
|
25
|
+
* `aria-disabled` + removal from the tab order on the `<a>`. A static card is never disabled;
|
|
26
|
+
* it simply has no action to disable.
|
|
27
|
+
*/
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* A card groups related content and actions on one raised, neutral surface. It is a layout
|
|
32
|
+
* container, not a status indicator: it never carries the brand violet or a status color across
|
|
33
|
+
* its whole surface — those are accents on the controls and badges it holds (spec §1/§3/§8).
|
|
34
|
+
* It is render-only (no hook / stateful Radix), so it needs no `'use client'`.
|
|
35
|
+
*/
|
|
36
|
+
export declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLElement>>;
|
|
37
|
+
/**
|
|
38
|
+
* The media slot — a leading image, illustration, or chart spanning the inline edges above the
|
|
39
|
+
* header. A decorative image is `aria-hidden`; an informative one carries alt text on its `<img>`.
|
|
40
|
+
*/
|
|
41
|
+
export declare const CardMedia: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
|
|
42
|
+
decorative?: boolean;
|
|
43
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
44
|
+
/** The header slot — a title and optional supporting text plus an optional `header-actions` set. */
|
|
45
|
+
export declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
46
|
+
/**
|
|
47
|
+
* The card title — a statement in sentence case (no all-caps, no exclamation mark). Defaults to a
|
|
48
|
+
* `<div>`; pass `asChild` to render the correct heading element for the document outline.
|
|
49
|
+
*/
|
|
50
|
+
export declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
|
|
51
|
+
asChild?: boolean;
|
|
52
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
53
|
+
/** The header-actions slot — a small control set aligned to the header's inline-end edge. */
|
|
54
|
+
export declare const CardHeaderActions: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
55
|
+
/** The body slot — the card's primary content. */
|
|
56
|
+
export declare const CardBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
57
|
+
/** The footer slot — actions or closing metadata; holds at most one primary button (restraint). */
|
|
58
|
+
export declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
59
|
+
//# sourceMappingURL=card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../src/components/card/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAQL,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,SACf,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EACvC,gBAAgB;IAClB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,eAAO,MAAM,IAAI,+EAoDf,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,SAAS;iBAEkC,OAAO;wCAU7D,CAAC;AAEH,oGAAoG;AACpG,eAAO,MAAM,UAAU,6GAItB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS;cAE+B,OAAO;wCAI1D,CAAC;AAEH,6FAA6F;AAC7F,eAAO,MAAM,iBAAiB,6GAK5B,CAAC;AAEH,kDAAkD;AAClD,eAAO,MAAM,QAAQ,6GAIpB,CAAC;AAEF,mGAAmG;AACnG,eAAO,MAAM,UAAU,6GAItB,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { Slot } from "radix-ui";
|
|
4
|
+
import { cn } from "../../lib/cn";
|
|
5
|
+
import {
|
|
6
|
+
cardVariants,
|
|
7
|
+
cardMediaClass,
|
|
8
|
+
cardHeaderClass,
|
|
9
|
+
cardTitleClass,
|
|
10
|
+
cardHeaderActionsClass,
|
|
11
|
+
cardBodyClass,
|
|
12
|
+
cardFooterClass
|
|
13
|
+
} from "./card.variants";
|
|
14
|
+
const Card = React.forwardRef(function Card2({
|
|
15
|
+
className,
|
|
16
|
+
variant = "static",
|
|
17
|
+
emphasis,
|
|
18
|
+
asRegion = false,
|
|
19
|
+
asChild = false,
|
|
20
|
+
disabled = false,
|
|
21
|
+
role,
|
|
22
|
+
...props
|
|
23
|
+
}, ref) {
|
|
24
|
+
const classes = cn(cardVariants({ variant, emphasis }), className);
|
|
25
|
+
if (variant === "interactive") {
|
|
26
|
+
if (asChild) {
|
|
27
|
+
return /* @__PURE__ */ jsx(
|
|
28
|
+
Slot.Root,
|
|
29
|
+
{
|
|
30
|
+
ref,
|
|
31
|
+
className: classes,
|
|
32
|
+
"aria-disabled": disabled || void 0,
|
|
33
|
+
tabIndex: disabled ? -1 : void 0,
|
|
34
|
+
...props
|
|
35
|
+
}
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
return /* @__PURE__ */ jsx(
|
|
39
|
+
"button",
|
|
40
|
+
{
|
|
41
|
+
ref,
|
|
42
|
+
type: "button",
|
|
43
|
+
disabled,
|
|
44
|
+
className: classes,
|
|
45
|
+
...props
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
return /* @__PURE__ */ jsx(
|
|
50
|
+
"div",
|
|
51
|
+
{
|
|
52
|
+
ref,
|
|
53
|
+
role: asRegion ? "region" : role,
|
|
54
|
+
className: classes,
|
|
55
|
+
...props
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
});
|
|
59
|
+
const CardMedia = React.forwardRef(function CardMedia2({ className, decorative = false, ...props }, ref) {
|
|
60
|
+
return /* @__PURE__ */ jsx(
|
|
61
|
+
"div",
|
|
62
|
+
{
|
|
63
|
+
ref,
|
|
64
|
+
"aria-hidden": decorative || void 0,
|
|
65
|
+
className: cn(cardMediaClass, className),
|
|
66
|
+
...props
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
});
|
|
70
|
+
const CardHeader = React.forwardRef(
|
|
71
|
+
function CardHeader2({ className, ...props }, ref) {
|
|
72
|
+
return /* @__PURE__ */ jsx("div", { ref, className: cn(cardHeaderClass, className), ...props });
|
|
73
|
+
}
|
|
74
|
+
);
|
|
75
|
+
const CardTitle = React.forwardRef(function CardTitle2({ className, asChild = false, ...props }, ref) {
|
|
76
|
+
const Comp = asChild ? Slot.Root : "div";
|
|
77
|
+
return /* @__PURE__ */ jsx(Comp, { ref, className: cn(cardTitleClass, className), ...props });
|
|
78
|
+
});
|
|
79
|
+
const CardHeaderActions = React.forwardRef(function CardHeaderActions2({ className, ...props }, ref) {
|
|
80
|
+
return /* @__PURE__ */ jsx("div", { ref, className: cn(cardHeaderActionsClass, className), ...props });
|
|
81
|
+
});
|
|
82
|
+
const CardBody = React.forwardRef(
|
|
83
|
+
function CardBody2({ className, ...props }, ref) {
|
|
84
|
+
return /* @__PURE__ */ jsx("div", { ref, className: cn(cardBodyClass, className), ...props });
|
|
85
|
+
}
|
|
86
|
+
);
|
|
87
|
+
const CardFooter = React.forwardRef(
|
|
88
|
+
function CardFooter2({ className, ...props }, ref) {
|
|
89
|
+
return /* @__PURE__ */ jsx("div", { ref, className: cn(cardFooterClass, className), ...props });
|
|
90
|
+
}
|
|
91
|
+
);
|
|
92
|
+
export {
|
|
93
|
+
Card,
|
|
94
|
+
CardBody,
|
|
95
|
+
CardFooter,
|
|
96
|
+
CardHeader,
|
|
97
|
+
CardHeaderActions,
|
|
98
|
+
CardMedia,
|
|
99
|
+
CardTitle
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/card/card.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Slot } from \"radix-ui\";\nimport { cn } from \"../../lib/cn\";\nimport {\n cardVariants,\n cardMediaClass,\n cardHeaderClass,\n cardTitleClass,\n cardHeaderActionsClass,\n cardBodyClass,\n cardFooterClass,\n type CardVariantProps,\n} from \"./card.variants\";\n\nexport interface CardProps\n extends React.HTMLAttributes<HTMLElement>,\n CardVariantProps {\n /**\n * `static` (default) — a non-interactive grouping: the whole card does nothing, the\n * controls inside it do. `interactive` — the whole surface is a single link or button to\n * exactly one destination or action. Never make a card interactive while it still holds its\n * own focusable controls (spec §8): choose one.\n */\n variant?: \"static\" | \"interactive\";\n /**\n * Expose a static grouping as a navigation landmark (`role=\"region\"`). Give it an accessible\n * name via `aria-label`/`aria-labelledby` (usually the header title). Ignored for the\n * interactive variant, which is already a single named control.\n */\n asRegion?: boolean;\n /**\n * Interactive only — render the child element (a real `<a>` when it navigates, a `<button>`\n * when it acts) with card styling via Radix Slot, instead of the default native `<button>`.\n * Do not fake interactivity with a generic `<div>` (spec §7).\n */\n asChild?: boolean;\n /**\n * Interactive only — the action is unavailable: native `disabled` on the `<button>`, or\n * `aria-disabled` + removal from the tab order on the `<a>`. A static card is never disabled;\n * it simply has no action to disable.\n */\n disabled?: boolean;\n}\n\n/**\n * A card groups related content and actions on one raised, neutral surface. It is a layout\n * container, not a status indicator: it never carries the brand violet or a status color across\n * its whole surface — those are accents on the controls and badges it holds (spec §1/§3/§8).\n * It is render-only (no hook / stateful Radix), so it needs no `'use client'`.\n */\nexport const Card = React.forwardRef<HTMLElement, CardProps>(function Card(\n {\n className,\n variant = \"static\",\n emphasis,\n asRegion = false,\n asChild = false,\n disabled = false,\n role,\n ...props\n },\n ref,\n) {\n const classes = cn(cardVariants({ variant, emphasis }), className);\n\n if (variant === \"interactive\") {\n // The interactive card is a single native control. `asChild` projects the styling onto a\n // caller-supplied <a>/<button> (Slot runs React.Children.only — one child, no spinner-style\n // sibling). The default is a native <button>. Disabled is native on the <button>; on the\n // projected element we set aria-disabled + tabindex=-1 and let the caller suppress the href.\n if (asChild) {\n return (\n <Slot.Root\n ref={ref as React.Ref<HTMLElement>}\n className={classes}\n aria-disabled={disabled || undefined}\n tabIndex={disabled ? -1 : undefined}\n {...props}\n />\n );\n }\n return (\n <button\n ref={ref as React.Ref<HTMLButtonElement>}\n type=\"button\"\n disabled={disabled}\n className={classes}\n {...(props as React.ButtonHTMLAttributes<HTMLButtonElement>)}\n />\n );\n }\n\n // Static: a non-interactive grouping <div>. Exposed as a named region only when asRegion is set\n // (otherwise a generic grouping with no interactive role — never a faked role=\"button\").\n return (\n <div\n ref={ref as React.Ref<HTMLDivElement>}\n role={asRegion ? \"region\" : role}\n className={classes}\n {...(props as React.HTMLAttributes<HTMLDivElement>)}\n />\n );\n});\n\n/**\n * The media slot — a leading image, illustration, or chart spanning the inline edges above the\n * header. A decorative image is `aria-hidden`; an informative one carries alt text on its `<img>`.\n */\nexport const CardMedia = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & { decorative?: boolean }\n>(function CardMedia({ className, decorative = false, ...props }, ref) {\n return (\n <div\n ref={ref}\n aria-hidden={decorative || undefined}\n className={cn(cardMediaClass, className)}\n {...props}\n />\n );\n});\n\n/** The header slot — a title and optional supporting text plus an optional `header-actions` set. */\nexport const CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n function CardHeader({ className, ...props }, ref) {\n return <div ref={ref} className={cn(cardHeaderClass, className)} {...props} />;\n },\n);\n\n/**\n * The card title — a statement in sentence case (no all-caps, no exclamation mark). Defaults to a\n * `<div>`; pass `asChild` to render the correct heading element for the document outline.\n */\nexport const CardTitle = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & { asChild?: boolean }\n>(function CardTitle({ className, asChild = false, ...props }, ref) {\n const Comp = asChild ? Slot.Root : \"div\";\n return <Comp ref={ref} className={cn(cardTitleClass, className)} {...props} />;\n});\n\n/** The header-actions slot — a small control set aligned to the header's inline-end edge. */\nexport const CardHeaderActions = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(function CardHeaderActions({ className, ...props }, ref) {\n return <div ref={ref} className={cn(cardHeaderActionsClass, className)} {...props} />;\n});\n\n/** The body slot — the card's primary content. */\nexport const CardBody = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n function CardBody({ className, ...props }, ref) {\n return <div ref={ref} className={cn(cardBodyClass, className)} {...props} />;\n },\n);\n\n/** The footer slot — actions or closing metadata; holds at most one primary button (restraint). */\nexport const CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n function CardFooter({ className, ...props }, ref) {\n return <div ref={ref} className={cn(cardFooterClass, className)} {...props} />;\n },\n);\n"],"mappings":"AAwEQ;AAxER,YAAY,WAAW;AACvB,SAAS,YAAY;AACrB,SAAS,UAAU;AACnB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAsCA,MAAM,OAAO,MAAM,WAAmC,SAASA,MACpE;AAAA,EACE;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA,WAAW;AAAA,EACX,UAAU;AAAA,EACV,WAAW;AAAA,EACX;AAAA,EACA,GAAG;AACL,GACA,KACA;AACA,QAAM,UAAU,GAAG,aAAa,EAAE,SAAS,SAAS,CAAC,GAAG,SAAS;AAEjE,MAAI,YAAY,eAAe;AAK7B,QAAI,SAAS;AACX,aACE;AAAA,QAAC,KAAK;AAAA,QAAL;AAAA,UACC;AAAA,UACA,WAAW;AAAA,UACX,iBAAe,YAAY;AAAA,UAC3B,UAAU,WAAW,KAAK;AAAA,UACzB,GAAG;AAAA;AAAA,MACN;AAAA,IAEJ;AACA,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAK;AAAA,QACL;AAAA,QACA,WAAW;AAAA,QACV,GAAI;AAAA;AAAA,IACP;AAAA,EAEJ;AAIA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,MAAM,WAAW,WAAW;AAAA,MAC5B,WAAW;AAAA,MACV,GAAI;AAAA;AAAA,EACP;AAEJ,CAAC;AAMM,MAAM,YAAY,MAAM,WAG7B,SAASC,WAAU,EAAE,WAAW,aAAa,OAAO,GAAG,MAAM,GAAG,KAAK;AACrE,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,eAAa,cAAc;AAAA,MAC3B,WAAW,GAAG,gBAAgB,SAAS;AAAA,MACtC,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AAGM,MAAM,aAAa,MAAM;AAAA,EAC9B,SAASC,YAAW,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK;AAChD,WAAO,oBAAC,SAAI,KAAU,WAAW,GAAG,iBAAiB,SAAS,GAAI,GAAG,OAAO;AAAA,EAC9E;AACF;AAMO,MAAM,YAAY,MAAM,WAG7B,SAASC,WAAU,EAAE,WAAW,UAAU,OAAO,GAAG,MAAM,GAAG,KAAK;AAClE,QAAM,OAAO,UAAU,KAAK,OAAO;AACnC,SAAO,oBAAC,QAAK,KAAU,WAAW,GAAG,gBAAgB,SAAS,GAAI,GAAG,OAAO;AAC9E,CAAC;AAGM,MAAM,oBAAoB,MAAM,WAGrC,SAASC,mBAAkB,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK;AACzD,SAAO,oBAAC,SAAI,KAAU,WAAW,GAAG,wBAAwB,SAAS,GAAI,GAAG,OAAO;AACrF,CAAC;AAGM,MAAM,WAAW,MAAM;AAAA,EAC5B,SAASC,UAAS,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK;AAC9C,WAAO,oBAAC,SAAI,KAAU,WAAW,GAAG,eAAe,SAAS,GAAI,GAAG,OAAO;AAAA,EAC5E;AACF;AAGO,MAAM,aAAa,MAAM;AAAA,EAC9B,SAASC,YAAW,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK;AAChD,WAAO,oBAAC,SAAI,KAAU,WAAW,GAAG,iBAAiB,SAAS,GAAI,GAAG,OAAO;AAAA,EAC9E;AACF;","names":["Card","CardMedia","CardHeader","CardTitle","CardHeaderActions","CardBody","CardFooter"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type VariantProps } from "class-variance-authority";
|
|
2
|
+
export declare const cardVariants: (props?: ({
|
|
3
|
+
variant?: "static" | "interactive" | null | undefined;
|
|
4
|
+
emphasis?: "default" | "muted" | null | undefined;
|
|
5
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
|
+
export declare const cardMediaClass = "-mt-(--space-4) -mx-(--space-4) mb-(--space-2) overflow-hidden rounded-t-lg";
|
|
7
|
+
export declare const cardHeaderClass = "flex items-start justify-between gap-(--space-2) mb-(--space-2)";
|
|
8
|
+
export declare const cardTitleClass = "text-h3 text-text-primary";
|
|
9
|
+
export declare const cardHeaderActionsClass = "flex shrink-0 items-center gap-(--space-2) -mt-(--space-1) -me-(--space-1)";
|
|
10
|
+
export declare const cardBodyClass = "text-body text-text-secondary";
|
|
11
|
+
export declare const cardFooterClass = "flex items-center justify-between gap-(--space-2) mt-(--space-2) text-label text-text-secondary";
|
|
12
|
+
export type CardVariantProps = VariantProps<typeof cardVariants>;
|
|
13
|
+
//# sourceMappingURL=card.variants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.variants.d.ts","sourceRoot":"","sources":["../../../src/components/card/card.variants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AASlE,eAAO,MAAM,YAAY;;;8EA8CxB,CAAC;AAKF,eAAO,MAAM,cAAc,gFACoD,CAAC;AAIhF,eAAO,MAAM,eAAe,oEAAoE,CAAC;AAIjG,eAAO,MAAM,cAAc,8BAA8B,CAAC;AAG1D,eAAO,MAAM,sBAAsB,+EAC2C,CAAC;AAG/E,eAAO,MAAM,aAAa,kCAAkC,CAAC;AAI7D,eAAO,MAAM,eAAe,oGACuE,CAAC;AAEpG,MAAM,MAAM,gBAAgB,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { cva } from "class-variance-authority";
|
|
2
|
+
const cardVariants = cva(
|
|
3
|
+
[
|
|
4
|
+
// raised surface, rounded container, resting elevation, internal padding from --space-4
|
|
5
|
+
"block bg-surface-raised border rounded-lg shadow-sm p-(--space-4)",
|
|
6
|
+
// logical-property text alignment so the card mirrors under dir=rtl (G-U6)
|
|
7
|
+
"text-start text-text-primary"
|
|
8
|
+
],
|
|
9
|
+
{
|
|
10
|
+
variants: {
|
|
11
|
+
variant: {
|
|
12
|
+
// a non-interactive grouping: the whole card does nothing; the controls inside it do
|
|
13
|
+
static: "",
|
|
14
|
+
// the whole surface is one control: a restrained hover lift (fast + verdify easing,
|
|
15
|
+
// NEVER the deliberate verified-check theatre), a stronger hover border, and the
|
|
16
|
+
// settle-back on press; the focus ring + target-size floor live in the interactive base
|
|
17
|
+
interactive: [
|
|
18
|
+
"cursor-pointer",
|
|
19
|
+
"transition-[color,box-shadow,border-color] duration-(--motion-duration-fast) ease-(--motion-easing-verdify)",
|
|
20
|
+
"motion-reduce:duration-(--motion-duration-instant)",
|
|
21
|
+
// hover lift: the resting hairline (border-surface-border / -muted, set by `emphasis`)
|
|
22
|
+
// strengthens to the higher-contrast border-border-strong, alongside the shadow-sm->md
|
|
23
|
+
// elevation. Two DISTINCT tokens, so the §4 "slightly stronger border" is a real delta,
|
|
24
|
+
// not the no-op that mapping both rest+hover to --color-surface-border would produce.
|
|
25
|
+
"hover:shadow-md hover:border-border-strong",
|
|
26
|
+
"active:shadow-sm",
|
|
27
|
+
// target-size floor: 44px touch / 40px pointer (§7 2.5.8)
|
|
28
|
+
"min-h-(--size-target-mobile) sm:min-h-(--size-target-desktop)",
|
|
29
|
+
// visible 2px focus ring around the whole card, on every state, never removed (§4)
|
|
30
|
+
"outline-none",
|
|
31
|
+
"focus-visible:ring-2 focus-visible:ring-border-focus focus-visible:ring-offset-2",
|
|
32
|
+
// disabled — DEC-C: dim via the disabled TOKEN, never a blanket opacity; remove the
|
|
33
|
+
// pointer + hover/pressed response. aria-disabled covers the <a> path (native disabled
|
|
34
|
+
// already blocks the <button> path).
|
|
35
|
+
"disabled:pointer-events-none disabled:text-text-disabled disabled:shadow-none",
|
|
36
|
+
"aria-disabled:pointer-events-none aria-disabled:text-text-disabled aria-disabled:shadow-none"
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
emphasis: {
|
|
40
|
+
// the default container hairline
|
|
41
|
+
default: "border-surface-border",
|
|
42
|
+
// the quieter hairline for a low-emphasis grouping (spec §4)
|
|
43
|
+
muted: "border-surface-border-muted"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
defaultVariants: { variant: "static", emphasis: "default" }
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
const cardMediaClass = "-mt-(--space-4) -mx-(--space-4) mb-(--space-2) overflow-hidden rounded-t-lg";
|
|
50
|
+
const cardHeaderClass = "flex items-start justify-between gap-(--space-2) mb-(--space-2)";
|
|
51
|
+
const cardTitleClass = "text-h3 text-text-primary";
|
|
52
|
+
const cardHeaderActionsClass = "flex shrink-0 items-center gap-(--space-2) -mt-(--space-1) -me-(--space-1)";
|
|
53
|
+
const cardBodyClass = "text-body text-text-secondary";
|
|
54
|
+
const cardFooterClass = "flex items-center justify-between gap-(--space-2) mt-(--space-2) text-label text-text-secondary";
|
|
55
|
+
export {
|
|
56
|
+
cardBodyClass,
|
|
57
|
+
cardFooterClass,
|
|
58
|
+
cardHeaderActionsClass,
|
|
59
|
+
cardHeaderClass,
|
|
60
|
+
cardMediaClass,
|
|
61
|
+
cardTitleClass,
|
|
62
|
+
cardVariants
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=card.variants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/card/card.variants.ts"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\n\n// The card container. A card is a NEUTRAL layout surface (spec §1/§5): it paints from the\n// surface-* roles only — never from a --color-action-* or --color-status-* token, which belong\n// to the controls and badges it holds. The structural axis is the container BEHAVIOR (spec §3):\n// `static` (a non-interactive grouping, the common case) vs `interactive` (the whole surface is\n// one link/button). A second `emphasis` axis flips the resting hairline between the default and\n// the quieter muted border for a low-emphasis grouping (spec §4). The `media` slot composes via\n// the CardMedia subcomponent, so it is not a container-behavior variant here.\nexport const cardVariants = cva(\n [\n // raised surface, rounded container, resting elevation, internal padding from --space-4\n \"block bg-surface-raised border rounded-lg shadow-sm p-(--space-4)\",\n // logical-property text alignment so the card mirrors under dir=rtl (G-U6)\n \"text-start text-text-primary\",\n ],\n {\n variants: {\n variant: {\n // a non-interactive grouping: the whole card does nothing; the controls inside it do\n static: \"\",\n // the whole surface is one control: a restrained hover lift (fast + verdify easing,\n // NEVER the deliberate verified-check theatre), a stronger hover border, and the\n // settle-back on press; the focus ring + target-size floor live in the interactive base\n interactive: [\n \"cursor-pointer\",\n \"transition-[color,box-shadow,border-color] duration-(--motion-duration-fast) ease-(--motion-easing-verdify)\",\n \"motion-reduce:duration-(--motion-duration-instant)\",\n // hover lift: the resting hairline (border-surface-border / -muted, set by `emphasis`)\n // strengthens to the higher-contrast border-border-strong, alongside the shadow-sm->md\n // elevation. Two DISTINCT tokens, so the §4 \"slightly stronger border\" is a real delta,\n // not the no-op that mapping both rest+hover to --color-surface-border would produce.\n \"hover:shadow-md hover:border-border-strong\",\n \"active:shadow-sm\",\n // target-size floor: 44px touch / 40px pointer (§7 2.5.8)\n \"min-h-(--size-target-mobile) sm:min-h-(--size-target-desktop)\",\n // visible 2px focus ring around the whole card, on every state, never removed (§4)\n \"outline-none\",\n \"focus-visible:ring-2 focus-visible:ring-border-focus focus-visible:ring-offset-2\",\n // disabled — DEC-C: dim via the disabled TOKEN, never a blanket opacity; remove the\n // pointer + hover/pressed response. aria-disabled covers the <a> path (native disabled\n // already blocks the <button> path).\n \"disabled:pointer-events-none disabled:text-text-disabled disabled:shadow-none\",\n \"aria-disabled:pointer-events-none aria-disabled:text-text-disabled aria-disabled:shadow-none\",\n ],\n },\n emphasis: {\n // the default container hairline\n default: \"border-surface-border\",\n // the quieter hairline for a low-emphasis grouping (spec §4)\n muted: \"border-surface-border-muted\",\n },\n },\n defaultVariants: { variant: \"static\", emphasis: \"default\" },\n },\n);\n\n// The media slot: a leading image/illustration/chart spanning the inline edges above the header.\n// It negates the container's --space-4 padding on the top + inline edges so the media bleeds to\n// the card edge, and re-establishes the --space-2 stacked-slot gap below it.\nexport const cardMediaClass =\n \"-mt-(--space-4) -mx-(--space-4) mb-(--space-2) overflow-hidden rounded-t-lg\";\n\n// The header slot: title + supporting text on the inline-start, an optional control set on the\n// inline-end. --space-2 stacked-slot gap below it.\nexport const cardHeaderClass = \"flex items-start justify-between gap-(--space-2) mb-(--space-2)\";\n\n// The title: a statement in the h3 type role + the primary text color. Sentence case, no all-caps\n// (the type role already avoids the label tracking); brand violet never paints the title.\nexport const cardTitleClass = \"text-h3 text-text-primary\";\n\n// The header-actions slot: a small control set aligned to the header's inline-end edge.\nexport const cardHeaderActionsClass =\n \"flex shrink-0 items-center gap-(--space-2) -mt-(--space-1) -me-(--space-1)\";\n\n// The body slot: the card's primary content, in the body type role + secondary text color.\nexport const cardBodyClass = \"text-body text-text-secondary\";\n\n// The footer slot: actions or closing metadata, in the label type role + secondary text color.\n// --space-2 stacked-slot gap above it.\nexport const cardFooterClass =\n \"flex items-center justify-between gap-(--space-2) mt-(--space-2) text-label text-text-secondary\";\n\nexport type CardVariantProps = VariantProps<typeof cardVariants>;\n"],"mappings":"AAAA,SAAS,WAA8B;AAShC,MAAM,eAAe;AAAA,EAC1B;AAAA;AAAA,IAEE;AAAA;AAAA,IAEA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA;AAAA,QAEP,QAAQ;AAAA;AAAA;AAAA;AAAA,QAIR,aAAa;AAAA,UACX;AAAA,UACA;AAAA,UACA;AAAA;AAAA;AAAA;AAAA;AAAA,UAKA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA;AAAA,UAEA;AAAA,UACA;AAAA;AAAA;AAAA;AAAA,UAIA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAU;AAAA;AAAA,QAER,SAAS;AAAA;AAAA,QAET,OAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,iBAAiB,EAAE,SAAS,UAAU,UAAU,UAAU;AAAA,EAC5D;AACF;AAKO,MAAM,iBACX;AAIK,MAAM,kBAAkB;AAIxB,MAAM,iBAAiB;AAGvB,MAAM,yBACX;AAGK,MAAM,gBAAgB;AAItB,MAAM,kBACX;","names":[]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { Card, CardMedia, CardHeader, CardTitle, CardHeaderActions, CardBody, CardFooter, type CardProps, } from "./card";
|
|
2
|
+
export { cardVariants, cardMediaClass, cardHeaderClass, cardTitleClass, cardHeaderActionsClass, cardBodyClass, cardFooterClass, type CardVariantProps, } from "./card.variants";
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/card/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,SAAS,EACT,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,KAAK,SAAS,GACf,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Card,
|
|
3
|
+
CardMedia,
|
|
4
|
+
CardHeader,
|
|
5
|
+
CardTitle,
|
|
6
|
+
CardHeaderActions,
|
|
7
|
+
CardBody,
|
|
8
|
+
CardFooter
|
|
9
|
+
} from "./card";
|
|
10
|
+
import {
|
|
11
|
+
cardVariants,
|
|
12
|
+
cardMediaClass,
|
|
13
|
+
cardHeaderClass,
|
|
14
|
+
cardTitleClass,
|
|
15
|
+
cardHeaderActionsClass,
|
|
16
|
+
cardBodyClass,
|
|
17
|
+
cardFooterClass
|
|
18
|
+
} from "./card.variants";
|
|
19
|
+
export {
|
|
20
|
+
Card,
|
|
21
|
+
CardBody,
|
|
22
|
+
CardFooter,
|
|
23
|
+
CardHeader,
|
|
24
|
+
CardHeaderActions,
|
|
25
|
+
CardMedia,
|
|
26
|
+
CardTitle,
|
|
27
|
+
cardBodyClass,
|
|
28
|
+
cardFooterClass,
|
|
29
|
+
cardHeaderActionsClass,
|
|
30
|
+
cardHeaderClass,
|
|
31
|
+
cardMediaClass,
|
|
32
|
+
cardTitleClass,
|
|
33
|
+
cardVariants
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/card/index.ts"],"sourcesContent":["export {\n Card,\n CardMedia,\n CardHeader,\n CardTitle,\n CardHeaderActions,\n CardBody,\n CardFooter,\n type CardProps,\n} from \"./card\";\nexport {\n cardVariants,\n cardMediaClass,\n cardHeaderClass,\n cardTitleClass,\n cardHeaderActionsClass,\n cardBodyClass,\n cardFooterClass,\n type CardVariantProps,\n} from \"./card.variants\";\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;","names":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type CheckboxBoxVariantProps } from "./checkbox.variants";
|
|
3
|
+
type NativeInputProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, "size" | "type" | "onChange">;
|
|
4
|
+
export interface CheckboxProps extends NativeInputProps, CheckboxBoxVariantProps {
|
|
5
|
+
/** The visible text naming the choice. Becomes the accessible name via <label for>. */
|
|
6
|
+
label: string;
|
|
7
|
+
/** Secondary helper text beneath the label. Linked via aria-describedby. */
|
|
8
|
+
description?: string;
|
|
9
|
+
/** Validation message; sets aria-invalid and the critical-bordered error state. */
|
|
10
|
+
error?: string;
|
|
11
|
+
/** standalone = one value; parent = summarizes children (the only place mixed rests). */
|
|
12
|
+
variant?: "standalone" | "parent";
|
|
13
|
+
/** Mixed/“some children” state. Honored ONLY on variant="parent"; ignored on standalone. */
|
|
14
|
+
indeterminate?: boolean;
|
|
15
|
+
/** Fired with the resolved boolean; a parent toggle resolves mixed → checked/unchecked. */
|
|
16
|
+
onCheckedChange?: (checked: boolean) => void;
|
|
17
|
+
}
|
|
18
|
+
export declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLInputElement>>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=checkbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/checkbox/checkbox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAKL,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAE7B,KAAK,gBAAgB,GAAG,IAAI,CAC1B,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAC3C,MAAM,GAAG,MAAM,GAAG,UAAU,CAC7B,CAAC;AAEF,MAAM,WAAW,aAAc,SAAQ,gBAAgB,EAAE,uBAAuB;IAC9E,uFAAuF;IACvF,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yFAAyF;IACzF,OAAO,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC;IAClC,4FAA4F;IAC5F,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2FAA2F;IAC3F,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC9C;AAID,eAAO,MAAM,QAAQ,wFA8GpB,CAAC"}
|