shadcn-glass-ui 2.2.1 → 2.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +51 -0
- package/dist/cli/commands/info.d.ts +15 -0
- package/dist/cli/commands/info.d.ts.map +1 -0
- package/dist/cli/commands/list.d.ts +23 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/index.cjs +1 -1
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/{index.js → index.mjs} +1 -1
- package/dist/cli/index.mjs.map +1 -0
- package/dist/cli/utils/format.d.ts +76 -0
- package/dist/cli/utils/format.d.ts.map +1 -0
- package/dist/cli/utils/fuzzy-search.d.ts +73 -0
- package/dist/cli/utils/fuzzy-search.d.ts.map +1 -0
- package/dist/cli/utils/load-exports.d.ts +141 -0
- package/dist/cli/utils/load-exports.d.ts.map +1 -0
- package/dist/components/blocks/avatar-gallery/index.d.ts +2 -0
- package/dist/components/blocks/avatar-gallery/index.d.ts.map +1 -0
- package/dist/components/blocks/avatar-gallery/page.d.ts +7 -0
- package/dist/components/blocks/avatar-gallery/page.d.ts.map +1 -0
- package/dist/components/blocks/badges/index.d.ts +2 -0
- package/dist/components/blocks/badges/index.d.ts.map +1 -0
- package/dist/components/blocks/badges/page.d.ts +7 -0
- package/dist/components/blocks/badges/page.d.ts.map +1 -0
- package/dist/components/blocks/buttons/index.d.ts +2 -0
- package/dist/components/blocks/buttons/index.d.ts.map +1 -0
- package/dist/components/blocks/buttons/page.d.ts +7 -0
- package/dist/components/blocks/buttons/page.d.ts.map +1 -0
- package/dist/components/blocks/form-elements/index.d.ts +2 -0
- package/dist/components/blocks/form-elements/index.d.ts.map +1 -0
- package/dist/components/blocks/form-elements/page.d.ts +7 -0
- package/dist/components/blocks/form-elements/page.d.ts.map +1 -0
- package/dist/components/blocks/index.d.ts +14 -0
- package/dist/components/blocks/index.d.ts.map +1 -0
- package/dist/components/blocks/notifications/index.d.ts +2 -0
- package/dist/components/blocks/notifications/index.d.ts.map +1 -0
- package/dist/components/blocks/notifications/page.d.ts +7 -0
- package/dist/components/blocks/notifications/page.d.ts.map +1 -0
- package/dist/components/blocks/progress/index.d.ts +2 -0
- package/dist/components/blocks/progress/index.d.ts.map +1 -0
- package/dist/components/blocks/progress/page.d.ts +7 -0
- package/dist/components/blocks/progress/page.d.ts.map +1 -0
- package/dist/components/blocks/registry.d.ts +16 -0
- package/dist/components/blocks/registry.d.ts.map +1 -0
- package/dist/components/demos/AnimatedBackground.d.ts +5 -0
- package/dist/components/demos/AnimatedBackground.d.ts.map +1 -0
- package/dist/components/demos/ComponentShowcase.d.ts +6 -0
- package/dist/components/demos/ComponentShowcase.d.ts.map +1 -0
- package/dist/components/demos/DesktopShowcase.d.ts +3 -0
- package/dist/components/demos/DesktopShowcase.d.ts.map +1 -0
- package/dist/components/demos/GlassFixesDemo.d.ts +6 -0
- package/dist/components/demos/GlassFixesDemo.d.ts.map +1 -0
- package/dist/components/demos/MobileShowcase.d.ts +3 -0
- package/dist/components/demos/MobileShowcase.d.ts.map +1 -0
- package/dist/components/glass/atomic/expandable-header-glass.d.ts +16 -0
- package/dist/components/glass/atomic/expandable-header-glass.d.ts.map +1 -0
- package/dist/components/glass/atomic/icon-button-glass.d.ts +18 -0
- package/dist/components/glass/atomic/icon-button-glass.d.ts.map +1 -0
- package/dist/components/glass/atomic/index.d.ts +14 -0
- package/dist/components/glass/atomic/index.d.ts.map +1 -0
- package/dist/components/glass/atomic/insight-card-glass.d.ts +22 -0
- package/dist/components/glass/atomic/insight-card-glass.d.ts.map +1 -0
- package/dist/components/glass/atomic/search-box-glass.d.ts +17 -0
- package/dist/components/glass/atomic/search-box-glass.d.ts.map +1 -0
- package/dist/components/glass/atomic/sort-dropdown-glass.d.ts +38 -0
- package/dist/components/glass/atomic/sort-dropdown-glass.d.ts.map +1 -0
- package/dist/components/glass/atomic/stat-item-glass.d.ts +22 -0
- package/dist/components/glass/atomic/stat-item-glass.d.ts.map +1 -0
- package/dist/components/glass/atomic/theme-toggle-glass.d.ts +11 -0
- package/dist/components/glass/atomic/theme-toggle-glass.d.ts.map +1 -0
- package/dist/components/glass/composite/ai-card-glass.d.ts +7 -0
- package/dist/components/glass/composite/ai-card-glass.d.ts.map +1 -0
- package/dist/components/glass/composite/career-stats-header-glass.d.ts +15 -0
- package/dist/components/glass/composite/career-stats-header-glass.d.ts.map +1 -0
- package/dist/components/glass/composite/circular-metric-glass.d.ts +24 -0
- package/dist/components/glass/composite/circular-metric-glass.d.ts.map +1 -0
- package/dist/components/glass/composite/contribution-metrics-glass.d.ts +15 -0
- package/dist/components/glass/composite/contribution-metrics-glass.d.ts.map +1 -0
- package/dist/components/glass/composite/index.d.ts +22 -0
- package/dist/components/glass/composite/index.d.ts.map +1 -0
- package/dist/components/glass/composite/metric-card-glass.d.ts +96 -0
- package/dist/components/glass/composite/metric-card-glass.d.ts.map +1 -0
- package/dist/components/glass/composite/metrics-grid-glass.d.ts +17 -0
- package/dist/components/glass/composite/metrics-grid-glass.d.ts.map +1 -0
- package/dist/components/glass/composite/repository-card-glass.d.ts +16 -0
- package/dist/components/glass/composite/repository-card-glass.d.ts.map +1 -0
- package/dist/components/glass/composite/repository-header-glass.d.ts +16 -0
- package/dist/components/glass/composite/repository-header-glass.d.ts.map +1 -0
- package/dist/components/glass/composite/repository-metadata-glass.d.ts +13 -0
- package/dist/components/glass/composite/repository-metadata-glass.d.ts.map +1 -0
- package/dist/components/glass/composite/split-layout-glass/index.d.ts +16 -0
- package/dist/components/glass/composite/split-layout-glass/index.d.ts.map +1 -0
- package/dist/components/glass/composite/split-layout-glass/split-layout-accordion.d.ts +66 -0
- package/dist/components/glass/composite/split-layout-glass/split-layout-accordion.d.ts.map +1 -0
- package/dist/components/glass/composite/split-layout-glass/split-layout-context.d.ts +122 -0
- package/dist/components/glass/composite/split-layout-glass/split-layout-context.d.ts.map +1 -0
- package/dist/components/glass/composite/split-layout-glass/split-layout-glass.d.ts +177 -0
- package/dist/components/glass/composite/split-layout-glass/split-layout-glass.d.ts.map +1 -0
- package/dist/components/glass/composite/trust-score-display-glass.d.ts +15 -0
- package/dist/components/glass/composite/trust-score-display-glass.d.ts.map +1 -0
- package/dist/components/glass/composite/user-info-glass.d.ts +15 -0
- package/dist/components/glass/composite/user-info-glass.d.ts.map +1 -0
- package/dist/components/glass/composite/user-stats-line-glass.d.ts +15 -0
- package/dist/components/glass/composite/user-stats-line-glass.d.ts.map +1 -0
- package/dist/components/glass/composite/year-card-glass.d.ts +53 -0
- package/dist/components/glass/composite/year-card-glass.d.ts.map +1 -0
- package/dist/components/glass/index.d.ts +16 -0
- package/dist/components/glass/index.d.ts.map +1 -0
- package/dist/components/glass/primitives/form-field-wrapper.d.ts +69 -0
- package/dist/components/glass/primitives/form-field-wrapper.d.ts.map +1 -0
- package/dist/components/glass/primitives/index.d.ts +12 -0
- package/dist/components/glass/primitives/index.d.ts.map +1 -0
- package/dist/components/glass/primitives/interactive-card.d.ts +91 -0
- package/dist/components/glass/primitives/interactive-card.d.ts.map +1 -0
- package/dist/components/glass/primitives/style-utils.d.ts +147 -0
- package/dist/components/glass/primitives/style-utils.d.ts.map +1 -0
- package/dist/components/glass/primitives/touch-target.d.ts +46 -0
- package/dist/components/glass/primitives/touch-target.d.ts.map +1 -0
- package/dist/components/glass/sections/career-stats-glass.d.ts +17 -0
- package/dist/components/glass/sections/career-stats-glass.d.ts.map +1 -0
- package/dist/components/glass/sections/flags-section-glass.d.ts +13 -0
- package/dist/components/glass/sections/flags-section-glass.d.ts.map +1 -0
- package/dist/components/glass/sections/header-branding-glass.d.ts +16 -0
- package/dist/components/glass/sections/header-branding-glass.d.ts.map +1 -0
- package/dist/components/glass/sections/header-nav-glass.d.ts +7 -0
- package/dist/components/glass/sections/header-nav-glass.d.ts.map +1 -0
- package/dist/components/glass/sections/index.d.ts +13 -0
- package/dist/components/glass/sections/index.d.ts.map +1 -0
- package/dist/components/glass/sections/profile-header-glass.d.ts +16 -0
- package/dist/components/glass/sections/profile-header-glass.d.ts.map +1 -0
- package/dist/components/glass/sections/projects-list-glass.d.ts +42 -0
- package/dist/components/glass/sections/projects-list-glass.d.ts.map +1 -0
- package/dist/components/glass/sections/trust-score-card-glass.d.ts +12 -0
- package/dist/components/glass/sections/trust-score-card-glass.d.ts.map +1 -0
- package/dist/components/glass/specialized/base-progress-glass.d.ts +8 -0
- package/dist/components/glass/specialized/base-progress-glass.d.ts.map +1 -0
- package/dist/components/glass/specialized/flag-alert-glass.d.ts +8 -0
- package/dist/components/glass/specialized/flag-alert-glass.d.ts.map +1 -0
- package/dist/components/glass/specialized/index.d.ts +21 -0
- package/dist/components/glass/specialized/index.d.ts.map +1 -0
- package/dist/components/glass/specialized/language-bar-glass.d.ts +24 -0
- package/dist/components/glass/specialized/language-bar-glass.d.ts.map +1 -0
- package/dist/components/glass/specialized/profile-avatar-glass.d.ts +26 -0
- package/dist/components/glass/specialized/profile-avatar-glass.d.ts.map +1 -0
- package/dist/components/glass/specialized/progress-glass.d.ts +9 -0
- package/dist/components/glass/specialized/progress-glass.d.ts.map +1 -0
- package/dist/components/glass/specialized/rainbow-progress-glass.d.ts +8 -0
- package/dist/components/glass/specialized/rainbow-progress-glass.d.ts.map +1 -0
- package/dist/components/glass/specialized/segmented-control-glass.d.ts +11 -0
- package/dist/components/glass/specialized/segmented-control-glass.d.ts.map +1 -0
- package/dist/components/glass/specialized/sparkline-glass.d.ts +34 -0
- package/dist/components/glass/specialized/sparkline-glass.d.ts.map +1 -0
- package/dist/components/glass/specialized/status-indicator-glass.d.ts +8 -0
- package/dist/components/glass/specialized/status-indicator-glass.d.ts.map +1 -0
- package/dist/components/glass/ui/alert-glass.d.ts +13 -0
- package/dist/components/glass/ui/alert-glass.d.ts.map +1 -0
- package/dist/components/glass/ui/avatar-glass.d.ts +58 -0
- package/dist/components/glass/ui/avatar-glass.d.ts.map +1 -0
- package/dist/components/glass/ui/badge-glass.d.ts +74 -0
- package/dist/components/glass/ui/badge-glass.d.ts.map +1 -0
- package/dist/components/glass/ui/button-glass.d.ts +110 -0
- package/dist/components/glass/ui/button-glass.d.ts.map +1 -0
- package/dist/components/glass/ui/card-glass.d.ts +115 -0
- package/dist/components/glass/ui/card-glass.d.ts.map +1 -0
- package/dist/components/glass/ui/checkbox-glass.d.ts +80 -0
- package/dist/components/glass/ui/checkbox-glass.d.ts.map +1 -0
- package/dist/components/glass/ui/circular-progress-glass.d.ts +36 -0
- package/dist/components/glass/ui/circular-progress-glass.d.ts.map +1 -0
- package/dist/components/glass/ui/combobox-glass.d.ts +61 -0
- package/dist/components/glass/ui/combobox-glass.d.ts.map +1 -0
- package/dist/components/glass/ui/dropdown-glass.d.ts +83 -0
- package/dist/components/glass/ui/dropdown-glass.d.ts.map +1 -0
- package/dist/components/glass/ui/dropdown-menu-glass.d.ts +77 -0
- package/dist/components/glass/ui/dropdown-menu-glass.d.ts.map +1 -0
- package/dist/components/glass/ui/glass-card.d.ts +78 -0
- package/dist/components/glass/ui/glass-card.d.ts.map +1 -0
- package/dist/components/glass/ui/index.d.ts +44 -0
- package/dist/components/glass/ui/index.d.ts.map +1 -0
- package/dist/components/glass/ui/input-glass.d.ts +98 -0
- package/dist/components/glass/ui/input-glass.d.ts.map +1 -0
- package/dist/components/glass/ui/modal-glass.d.ts +180 -0
- package/dist/components/glass/ui/modal-glass.d.ts.map +1 -0
- package/dist/components/glass/ui/notification-glass.d.ts +13 -0
- package/dist/components/glass/ui/notification-glass.d.ts.map +1 -0
- package/dist/components/glass/ui/popover-glass.d.ts +71 -0
- package/dist/components/glass/ui/popover-glass.d.ts.map +1 -0
- package/dist/components/glass/ui/sidebar-glass/index.d.ts +100 -0
- package/dist/components/glass/ui/sidebar-glass/index.d.ts.map +1 -0
- package/dist/components/glass/ui/sidebar-glass/sidebar-context.d.ts +96 -0
- package/dist/components/glass/ui/sidebar-glass/sidebar-context.d.ts.map +1 -0
- package/dist/components/glass/ui/sidebar-glass/sidebar-glass.d.ts +88 -0
- package/dist/components/glass/ui/sidebar-glass/sidebar-glass.d.ts.map +1 -0
- package/dist/components/glass/ui/sidebar-glass/sidebar-menu.d.ts +121 -0
- package/dist/components/glass/ui/sidebar-glass/sidebar-menu.d.ts.map +1 -0
- package/dist/components/glass/ui/skeleton-glass.d.ts +8 -0
- package/dist/components/glass/ui/skeleton-glass.d.ts.map +1 -0
- package/dist/components/glass/ui/slider-glass.d.ts +38 -0
- package/dist/components/glass/ui/slider-glass.d.ts.map +1 -0
- package/dist/components/glass/ui/stepper-glass.d.ts +63 -0
- package/dist/components/glass/ui/stepper-glass.d.ts.map +1 -0
- package/dist/components/glass/ui/tabs-glass.d.ts +149 -0
- package/dist/components/glass/ui/tabs-glass.d.ts.map +1 -0
- package/dist/components/glass/ui/toggle-glass.d.ts +27 -0
- package/dist/components/glass/ui/toggle-glass.d.ts.map +1 -0
- package/dist/components/glass/ui/tooltip-glass.d.ts +65 -0
- package/dist/components/glass/ui/tooltip-glass.d.ts.map +1 -0
- package/dist/components/ui/alert.d.ts +8 -0
- package/dist/components/ui/alert.d.ts.map +1 -0
- package/dist/components/ui/avatar.d.ts +7 -0
- package/dist/components/ui/avatar.d.ts.map +1 -0
- package/dist/components/ui/badge.d.ts +8 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/button.d.ts +8 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/card.d.ts +10 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/chart.d.ts +69 -0
- package/dist/components/ui/chart.d.ts.map +1 -0
- package/dist/components/ui/checkbox.d.ts +5 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/collapsible.d.ts +6 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -0
- package/dist/components/ui/command.d.ts +19 -0
- package/dist/components/ui/command.d.ts.map +1 -0
- package/dist/components/ui/dialog.d.ts +16 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +26 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/input.d.ts +4 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/popover.d.ts +8 -0
- package/dist/components/ui/popover.d.ts.map +1 -0
- package/dist/components/ui/progress.d.ts +5 -0
- package/dist/components/ui/progress.d.ts.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +6 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -0
- package/dist/components/ui/separator.d.ts +5 -0
- package/dist/components/ui/separator.d.ts.map +1 -0
- package/dist/components/ui/skeleton.d.ts +3 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/slider.d.ts +5 -0
- package/dist/components/ui/slider.d.ts.map +1 -0
- package/dist/components/ui/sonner.d.ts +4 -0
- package/dist/components/ui/sonner.d.ts.map +1 -0
- package/dist/components/ui/switch.d.ts +5 -0
- package/dist/components/ui/switch.d.ts.map +1 -0
- package/dist/components/ui/tabs.d.ts +8 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/tooltip.d.ts +8 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/components.cjs +4 -4
- package/dist/components.d.ts +56 -1932
- package/dist/components.d.ts.map +1 -0
- package/dist/components.mjs +5 -0
- package/dist/hooks.cjs +2 -2
- package/dist/hooks.d.ts +5 -225
- package/dist/hooks.d.ts.map +1 -0
- package/dist/{hooks.js → hooks.mjs} +2 -2
- package/dist/index.cjs +138 -1109
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +81 -1
- package/dist/index.d.ts.map +1 -0
- package/dist/{index.js → index.mjs} +116 -1115
- package/dist/index.mjs.map +1 -0
- package/dist/lib/config.d.ts +28 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/hooks/index.d.ts +11 -0
- package/dist/lib/hooks/index.d.ts.map +1 -0
- package/dist/lib/hooks/use-focus.d.ts +61 -0
- package/dist/lib/hooks/use-focus.d.ts.map +1 -0
- package/dist/lib/hooks/use-hover.d.ts +54 -0
- package/dist/lib/hooks/use-hover.d.ts.map +1 -0
- package/dist/lib/hooks/use-responsive.d.ts +44 -0
- package/dist/lib/hooks/use-responsive.d.ts.map +1 -0
- package/dist/lib/hooks/use-wallpaper-tint.d.ts +57 -0
- package/dist/lib/hooks/use-wallpaper-tint.d.ts.map +1 -0
- package/dist/lib/hooks.d.ts +92 -0
- package/dist/lib/hooks.d.ts.map +1 -0
- package/dist/lib/theme/tokens.d.ts +441 -0
- package/dist/lib/theme/tokens.d.ts.map +1 -0
- package/dist/lib/theme-context.d.ts +115 -0
- package/dist/lib/theme-context.d.ts.map +1 -0
- package/dist/lib/types.d.ts +24 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/utils.d.ts +8 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/variants/alert-glass-variants.d.ts +10 -0
- package/dist/lib/variants/alert-glass-variants.d.ts.map +1 -0
- package/dist/lib/variants/alert-variants.d.ts +8 -0
- package/dist/lib/variants/alert-variants.d.ts.map +1 -0
- package/dist/lib/variants/avatar-glass-variants.d.ts +12 -0
- package/dist/lib/variants/avatar-glass-variants.d.ts.map +1 -0
- package/dist/lib/variants/badge-glass-variants.d.ts +10 -0
- package/dist/lib/variants/badge-glass-variants.d.ts.map +1 -0
- package/dist/lib/variants/badge-variants.d.ts +8 -0
- package/dist/lib/variants/badge-variants.d.ts.map +1 -0
- package/dist/lib/variants/button-glass-variants.d.ts +29 -0
- package/dist/lib/variants/button-glass-variants.d.ts.map +1 -0
- package/dist/lib/variants/button-variants.d.ts +9 -0
- package/dist/lib/variants/button-variants.d.ts.map +1 -0
- package/dist/lib/variants/dropdown-content-styles.d.ts +102 -0
- package/dist/lib/variants/dropdown-content-styles.d.ts.map +1 -0
- package/dist/lib/variants/dropdown-glass-variants.d.ts +9 -0
- package/dist/lib/variants/dropdown-glass-variants.d.ts.map +1 -0
- package/dist/lib/variants/glass-card-variants.d.ts +13 -0
- package/dist/lib/variants/glass-card-variants.d.ts.map +1 -0
- package/dist/lib/variants/index.d.ts +26 -0
- package/dist/lib/variants/index.d.ts.map +1 -0
- package/dist/lib/variants/input-glass-variants.d.ts +9 -0
- package/dist/lib/variants/input-glass-variants.d.ts.map +1 -0
- package/dist/lib/variants/insight-card-glass-variants.d.ts +11 -0
- package/dist/lib/variants/insight-card-glass-variants.d.ts.map +1 -0
- package/dist/lib/variants/modal-glass-variants.d.ts +9 -0
- package/dist/lib/variants/modal-glass-variants.d.ts.map +1 -0
- package/dist/lib/variants/notification-glass-variants.d.ts +9 -0
- package/dist/lib/variants/notification-glass-variants.d.ts.map +1 -0
- package/dist/lib/variants/progress-glass-variants.d.ts +10 -0
- package/dist/lib/variants/progress-glass-variants.d.ts.map +1 -0
- package/dist/lib/variants/skeleton-glass-variants.d.ts +9 -0
- package/dist/lib/variants/skeleton-glass-variants.d.ts.map +1 -0
- package/dist/lib/variants/sparkline-glass-variants.d.ts +10 -0
- package/dist/lib/variants/sparkline-glass-variants.d.ts.map +1 -0
- package/dist/lib/variants/stepper-glass-variants.d.ts +40 -0
- package/dist/lib/variants/stepper-glass-variants.d.ts.map +1 -0
- package/dist/lib/variants/toggle-glass-variants.d.ts +26 -0
- package/dist/lib/variants/toggle-glass-variants.d.ts.map +1 -0
- package/dist/lib/variants/tooltip-glass-variants.d.ts +9 -0
- package/dist/lib/variants/tooltip-glass-variants.d.ts.map +1 -0
- package/dist/{theme-context-BEA8K_rq.cjs → theme-context-DBAPfMto.cjs} +2 -2
- package/dist/{theme-context-BEA8K_rq.cjs.map → theme-context-DBAPfMto.cjs.map} +1 -1
- package/dist/{theme-context-_T5r1KG4.js → theme-context-DLS2uAgJ.mjs} +1 -1
- package/dist/theme-context-DLS2uAgJ.mjs.map +1 -0
- package/dist/themes.cjs +1 -1
- package/dist/themes.d.ts +2 -124
- package/dist/themes.d.ts.map +1 -0
- package/dist/{themes.js → themes.mjs} +1 -1
- package/dist/trust-score-card-glass-BUt9MIF0.mjs +4197 -0
- package/dist/trust-score-card-glass-BUt9MIF0.mjs.map +1 -0
- package/dist/trust-score-card-glass-_v9hGnCW.cjs +4834 -0
- package/dist/trust-score-card-glass-_v9hGnCW.cjs.map +1 -0
- package/dist/{use-focus-CX0TJJIj.js → use-focus-C5kPAKr_.mjs} +1 -1
- package/dist/use-focus-C5kPAKr_.mjs.map +1 -0
- package/dist/{use-focus-CdoUzFQ8.cjs → use-focus-DBs46Dxv.cjs} +2 -2
- package/dist/{use-focus-CdoUzFQ8.cjs.map → use-focus-DBs46Dxv.cjs.map} +1 -1
- package/dist/{use-wallpaper-tint-DUgmytlY.js → use-wallpaper-tint-C0kYXNiN.mjs} +1 -1
- package/dist/use-wallpaper-tint-C0kYXNiN.mjs.map +1 -0
- package/dist/{use-wallpaper-tint-Rq5UgY9L.cjs → use-wallpaper-tint-DNdTbD1y.cjs} +2 -2
- package/dist/{use-wallpaper-tint-Rq5UgY9L.cjs.map → use-wallpaper-tint-DNdTbD1y.cjs.map} +1 -1
- package/dist/{utils-CcyeqpKQ.js → utils-B792GPM_.mjs} +1 -1
- package/dist/utils-B792GPM_.mjs.map +1 -0
- package/dist/{utils-NLnOCttr.cjs → utils-D5ef293O.cjs} +2 -2
- package/dist/{utils-NLnOCttr.cjs.map → utils-D5ef293O.cjs.map} +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.d.ts +2 -10
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.mjs +2 -0
- package/package.json +9 -9
- package/dist/cli/index.js.map +0 -1
- package/dist/components.js +0 -5
- package/dist/index.js.map +0 -1
- package/dist/theme-context-_T5r1KG4.js.map +0 -1
- package/dist/trust-score-card-glass-DTS1RdIt.cjs +0 -28660
- package/dist/trust-score-card-glass-DTS1RdIt.cjs.map +0 -1
- package/dist/trust-score-card-glass-Dg4_b_g_.js +0 -27660
- package/dist/trust-score-card-glass-Dg4_b_g_.js.map +0 -1
- package/dist/use-focus-CX0TJJIj.js.map +0 -1
- package/dist/use-wallpaper-tint-DUgmytlY.js.map +0 -1
- package/dist/utils-CcyeqpKQ.js.map +0 -1
- package/dist/utils.js +0 -2
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-focus-CX0TJJIj.js","names":["hoverProps: UseHoverReturn['hoverProps']","focusProps: UseFocusReturn['focusProps']"],"sources":["../src/lib/hooks/use-hover.ts","../src/lib/hooks/use-focus.ts"],"sourcesContent":["/**\n * useHover Hook\n *\n * Replaces the repeated hover state pattern found in 13+ components:\n *\n * ```tsx\n * // BEFORE (duplicated in every component)\n * const [isHovered, setIsHovered] = useState(false);\n * <div\n * onMouseEnter={() => setIsHovered(true)}\n * onMouseLeave={() => setIsHovered(false)}\n * />\n *\n * // AFTER\n * const { isHovered, hoverProps } = useHover();\n * <div {...hoverProps} />\n * ```\n */\n\nimport { useState, useCallback, type MouseEvent, type FocusEvent } from 'react';\n\nexport interface UseHoverOptions {\n /** Delay before hover state becomes true (ms) */\n enterDelay?: number;\n /** Delay before hover state becomes false (ms) */\n leaveDelay?: number;\n /** Include focus events for accessibility */\n includeFocus?: boolean;\n /** Callback when hover state changes */\n onHoverChange?: (isHovered: boolean) => void;\n}\n\nexport interface UseHoverReturn {\n /** Current hover state */\n isHovered: boolean;\n /** Props to spread on the target element */\n hoverProps: {\n onMouseEnter: (e: MouseEvent) => void;\n onMouseLeave: (e: MouseEvent) => void;\n onFocus?: (e: FocusEvent) => void;\n onBlur?: (e: FocusEvent) => void;\n };\n /** Manually set hover state */\n setIsHovered: (value: boolean) => void;\n}\n\n/**\n * Hook for managing hover state with optional delays and focus support.\n *\n * @example\n * ```tsx\n * const { isHovered, hoverProps } = useHover();\n *\n * return (\n * <div\n * {...hoverProps}\n * style={{ opacity: isHovered ? 1 : 0.8 }}\n * >\n * Hover me\n * </div>\n * );\n * ```\n *\n * @example With options\n * ```tsx\n * const { isHovered, hoverProps } = useHover({\n * enterDelay: 100,\n * leaveDelay: 200,\n * includeFocus: true,\n * onHoverChange: (hover) => console.log('Hovered:', hover),\n * });\n * ```\n */\nexport function useHover(options: UseHoverOptions = {}): UseHoverReturn {\n const {\n enterDelay = 0,\n leaveDelay = 0,\n includeFocus = false,\n onHoverChange,\n } = options;\n\n const [isHovered, setIsHoveredState] = useState(false);\n const [enterTimeout, setEnterTimeout] = useState<ReturnType<typeof setTimeout> | null>(null);\n const [leaveTimeout, setLeaveTimeout] = useState<ReturnType<typeof setTimeout> | null>(null);\n\n const setIsHovered = useCallback(\n (value: boolean) => {\n setIsHoveredState(value);\n onHoverChange?.(value);\n },\n [onHoverChange]\n );\n\n const handleMouseEnter = useCallback(\n () => {\n // Clear any pending leave timeout\n if (leaveTimeout) {\n clearTimeout(leaveTimeout);\n setLeaveTimeout(null);\n }\n\n if (enterDelay > 0) {\n const timeout = setTimeout(() => {\n setIsHovered(true);\n }, enterDelay);\n setEnterTimeout(timeout);\n } else {\n setIsHovered(true);\n }\n },\n [enterDelay, leaveTimeout, setIsHovered]\n );\n\n const handleMouseLeave = useCallback(\n () => {\n // Clear any pending enter timeout\n if (enterTimeout) {\n clearTimeout(enterTimeout);\n setEnterTimeout(null);\n }\n\n if (leaveDelay > 0) {\n const timeout = setTimeout(() => {\n setIsHovered(false);\n }, leaveDelay);\n setLeaveTimeout(timeout);\n } else {\n setIsHovered(false);\n }\n },\n [leaveDelay, enterTimeout, setIsHovered]\n );\n\n const handleFocus = useCallback(\n () => {\n if (includeFocus) {\n setIsHovered(true);\n }\n },\n [includeFocus, setIsHovered]\n );\n\n const handleBlur = useCallback(\n () => {\n if (includeFocus) {\n setIsHovered(false);\n }\n },\n [includeFocus, setIsHovered]\n );\n\n const hoverProps: UseHoverReturn['hoverProps'] = {\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n ...(includeFocus && {\n onFocus: handleFocus,\n onBlur: handleBlur,\n }),\n };\n\n return {\n isHovered,\n hoverProps,\n setIsHovered,\n };\n}\n\nexport default useHover;\n","/**\n * useFocus Hook\n *\n * Manages focus state for form elements with keyboard navigation support.\n * Similar to useHover but for focus events.\n *\n * Implements proper :focus-visible behavior by tracking keyboard vs mouse interaction\n * at the document level, ensuring focus rings only appear for keyboard navigation.\n */\n\nimport {\n useState,\n useCallback,\n useRef,\n useEffect,\n type FocusEvent,\n type KeyboardEvent,\n} from 'react';\n\n// Global state to track whether the last user interaction was via keyboard\nlet hadKeyboardEvent = false;\nlet isInitialized = false;\n\n/**\n * Initialize global keyboard/mouse tracking for focus-visible behavior.\n * This ensures focus rings only appear when navigating via keyboard (Tab key),\n * not when clicking with a mouse.\n */\nfunction initializeKeyboardTracking() {\n if (isInitialized || typeof window === 'undefined') return;\n\n isInitialized = true;\n\n // Track keyboard events (Tab, Shift, Arrow keys, etc.)\n const handleKeyDown = (e: globalThis.KeyboardEvent) => {\n // Only consider keyboard navigation keys\n if (e.key === 'Tab' || e.key.startsWith('Arrow') || e.key === 'Enter' || e.key === ' ') {\n hadKeyboardEvent = true;\n }\n };\n\n // Track mouse/pointer events - clear keyboard flag\n const handlePointerDown = () => {\n hadKeyboardEvent = false;\n };\n\n // Use capture phase to detect events before they reach components\n document.addEventListener('keydown', handleKeyDown, true);\n document.addEventListener('mousedown', handlePointerDown, true);\n document.addEventListener('pointerdown', handlePointerDown, true);\n document.addEventListener('touchstart', handlePointerDown, true);\n\n // Cleanup not needed - these are global listeners that persist for the app lifecycle\n}\n\nexport interface UseFocusOptions {\n /** Callback when focus state changes */\n onFocusChange?: (isFocused: boolean) => void;\n /** Include focus-visible behavior (keyboard focus only) */\n focusVisible?: boolean;\n /** Callback for keyboard events while focused */\n onKeyDown?: (e: KeyboardEvent) => void;\n}\n\nexport interface UseFocusReturn {\n /** Current focus state */\n isFocused: boolean;\n /** True only when focused via keyboard (if focusVisible enabled) */\n isFocusVisible: boolean;\n /** Props to spread on the target element */\n focusProps: {\n onFocus: (e: FocusEvent) => void;\n onBlur: (e: FocusEvent) => void;\n onKeyDown?: (e: KeyboardEvent) => void;\n };\n /** Manually set focus state */\n setIsFocused: (value: boolean) => void;\n /** Reference to track if last focus was from keyboard */\n focusRef: React.RefObject<boolean>;\n}\n\n/**\n * Hook for managing focus state with optional focus-visible support.\n *\n * @example Basic usage\n * ```tsx\n * const { isFocused, focusProps } = useFocus();\n *\n * return (\n * <input\n * {...focusProps}\n * style={{\n * borderColor: isFocused ? 'violet' : 'gray',\n * }}\n * />\n * );\n * ```\n *\n * @example Focus-visible for keyboard navigation\n * ```tsx\n * const { isFocusVisible, focusProps } = useFocus({ focusVisible: true });\n *\n * return (\n * <button\n * {...focusProps}\n * style={{\n * outline: isFocusVisible ? '2px solid violet' : 'none',\n * }}\n * >\n * Click or Tab to me\n * </button>\n * );\n * ```\n */\nexport function useFocus(options: UseFocusOptions = {}): UseFocusReturn {\n const { onFocusChange, focusVisible = false, onKeyDown } = options;\n\n const [isFocused, setIsFocusedState] = useState(false);\n const [isFocusVisible, setIsFocusVisible] = useState(false);\n const hadKeyboardEventRef = useRef(false);\n const focusRef = useRef(false);\n\n // Initialize global keyboard tracking on mount (runs once per app)\n useEffect(() => {\n if (focusVisible) {\n initializeKeyboardTracking();\n }\n }, [focusVisible]);\n\n const setIsFocused = useCallback(\n (value: boolean) => {\n setIsFocusedState(value);\n focusRef.current = value;\n onFocusChange?.(value);\n },\n [onFocusChange]\n );\n\n const handleFocus = useCallback(\n () => {\n setIsFocused(true);\n\n if (focusVisible) {\n // Use global keyboard tracking state for accurate focus-visible detection\n const isKeyboardFocus = hadKeyboardEvent;\n setIsFocusVisible(isKeyboardFocus);\n hadKeyboardEventRef.current = isKeyboardFocus;\n }\n },\n [setIsFocused, focusVisible]\n );\n\n const handleBlur = useCallback(\n () => {\n setIsFocused(false);\n setIsFocusVisible(false);\n },\n [setIsFocused]\n );\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n hadKeyboardEventRef.current = true;\n onKeyDown?.(e);\n },\n [onKeyDown]\n );\n\n const focusProps: UseFocusReturn['focusProps'] = {\n onFocus: handleFocus,\n onBlur: handleBlur,\n ...(onKeyDown && { onKeyDown: handleKeyDown }),\n };\n\n return {\n isFocused,\n isFocusVisible,\n focusProps,\n setIsFocused,\n focusRef,\n };\n}\n\nexport default useFocus;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-wallpaper-tint-DUgmytlY.js","names":["colors: { r: number; g: number; b: number }[]"],"sources":["../src/lib/hooks/use-responsive.ts","../src/lib/hooks/use-wallpaper-tint.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\n\n/**\n * Tailwind CSS breakpoints\n * @see https://tailwindcss.com/docs/responsive-design\n */\nconst BREAKPOINTS = {\n xs: 0,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536,\n} as const;\n\nexport type Breakpoint = keyof typeof BREAKPOINTS;\n\nexport interface UseResponsiveReturn {\n /** Window width is less than 768px (mobile) */\n isMobile: boolean;\n /** Window width is >= 768px and < 1024px (tablet) */\n isTablet: boolean;\n /** Window width is >= 1024px (desktop) */\n isDesktop: boolean;\n /** Current active breakpoint */\n currentBreakpoint: Breakpoint;\n /** Current window width in pixels */\n width: number;\n}\n\n/**\n * Hook to detect current responsive breakpoint\n *\n * @returns Responsive state with current breakpoint and device type flags\n *\n * @example\n * ```tsx\n * const { isMobile, isTablet, isDesktop, currentBreakpoint } = useResponsive();\n *\n * return (\n * <div className={isMobile ? 'flex-col' : 'flex-row'}>\n * {currentBreakpoint === 'lg' && <Sidebar />}\n * </div>\n * );\n * ```\n */\nexport function useResponsive(): UseResponsiveReturn {\n const [width, setWidth] = useState<number>(\n typeof window !== 'undefined' ? window.innerWidth : BREAKPOINTS.lg\n );\n\n useEffect(() => {\n // Server-side rendering guard\n if (typeof window === 'undefined') return;\n\n const handleResize = () => {\n setWidth(window.innerWidth);\n };\n\n // Set initial value\n handleResize();\n\n // Add event listener\n window.addEventListener('resize', handleResize);\n\n // Cleanup\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n // Calculate current breakpoint\n const getCurrentBreakpoint = (): Breakpoint => {\n if (width >= BREAKPOINTS['2xl']) return '2xl';\n if (width >= BREAKPOINTS.xl) return 'xl';\n if (width >= BREAKPOINTS.lg) return 'lg';\n if (width >= BREAKPOINTS.md) return 'md';\n if (width >= BREAKPOINTS.sm) return 'sm';\n return 'xs';\n };\n\n const currentBreakpoint = getCurrentBreakpoint();\n\n return {\n isMobile: width < BREAKPOINTS.md,\n isTablet: width >= BREAKPOINTS.md && width < BREAKPOINTS.lg,\n isDesktop: width >= BREAKPOINTS.lg,\n currentBreakpoint,\n width,\n };\n}\n","// ========================================\n// WALLPAPER TINT HOOK\n// Extract dominant color from background image\n// ========================================\n\nimport { useState, useEffect, useCallback } from \"react\";\n\nexport interface WallpaperTintOptions {\n /**\n * The image URL to sample for tint color\n */\n imageUrl?: string;\n\n /**\n * Debounce delay in milliseconds\n * @default 300\n */\n debounceMs?: number;\n\n /**\n * Number of sample points to take from the image\n * @default 10\n */\n sampleSize?: number;\n\n /**\n * Whether to enable the tint extraction\n * @default true\n */\n enabled?: boolean;\n}\n\nexport interface WallpaperTintResult {\n /**\n * The extracted tint color in RGB format\n * Example: \"120, 80, 200\"\n */\n tintColor: string | null;\n\n /**\n * Whether the tint extraction is in progress\n */\n isLoading: boolean;\n\n /**\n * Error message if extraction failed\n */\n error: string | null;\n\n /**\n * Re-extract the tint color from the current image\n */\n refresh: () => void;\n}\n\n/**\n * Converts RGB values to a luminance value (0-255)\n */\nconst getLuminance = (r: number, g: number, b: number): number => {\n // Use standard luminance formula\n return 0.299 * r + 0.587 * g + 0.114 * b;\n};\n\n/**\n * Extracts the dominant color from an image using canvas sampling\n */\nconst extractDominantColor = async (\n imageUrl: string,\n sampleSize: number = 10\n): Promise<string> => {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = \"Anonymous\"; // Enable CORS\n\n img.onload = () => {\n try {\n // Create canvas for sampling\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n\n if (!ctx) {\n reject(new Error(\"Failed to get canvas context\"));\n return;\n }\n\n // Set canvas size to image size\n canvas.width = img.width;\n canvas.height = img.height;\n\n // Draw image to canvas\n ctx.drawImage(img, 0, 0);\n\n // Sample colors from grid\n const colors: { r: number; g: number; b: number }[] = [];\n const stepX = Math.floor(img.width / sampleSize);\n const stepY = Math.floor(img.height / sampleSize);\n\n for (let y = stepY / 2; y < img.height; y += stepY) {\n for (let x = stepX / 2; x < img.width; x += stepX) {\n const pixel = ctx.getImageData(x, y, 1, 1).data;\n colors.push({\n r: pixel[0],\n g: pixel[1],\n b: pixel[2],\n });\n }\n }\n\n // Calculate average color (simple approach)\n const avgColor = colors.reduce(\n (acc, color) => ({\n r: acc.r + color.r,\n g: acc.g + color.g,\n b: acc.b + color.b,\n }),\n { r: 0, g: 0, b: 0 }\n );\n\n const count = colors.length;\n avgColor.r = Math.round(avgColor.r / count);\n avgColor.g = Math.round(avgColor.g / count);\n avgColor.b = Math.round(avgColor.b / count);\n\n // Adjust color based on luminance for better glass effect\n const luminance = getLuminance(avgColor.r, avgColor.g, avgColor.b);\n\n // If too dark, lighten it\n if (luminance < 80) {\n const factor = 1.5;\n avgColor.r = Math.min(255, Math.round(avgColor.r * factor));\n avgColor.g = Math.min(255, Math.round(avgColor.g * factor));\n avgColor.b = Math.min(255, Math.round(avgColor.b * factor));\n }\n\n // If too bright, darken it slightly\n if (luminance > 200) {\n const factor = 0.7;\n avgColor.r = Math.round(avgColor.r * factor);\n avgColor.g = Math.round(avgColor.g * factor);\n avgColor.b = Math.round(avgColor.b * factor);\n }\n\n resolve(`${avgColor.r}, ${avgColor.g}, ${avgColor.b}`);\n } catch (error) {\n reject(error);\n }\n };\n\n img.onerror = () => {\n reject(new Error(\"Failed to load image\"));\n };\n\n img.src = imageUrl;\n });\n};\n\n/**\n * Hook to extract and use wallpaper tint color\n *\n * @example\n * ```tsx\n * const { tintColor, isLoading } = useWallpaperTint({\n * imageUrl: '/path/to/background.jpg',\n * });\n *\n * // Use tintColor in CSS variables\n * <div style={{ '--wallpaper-tint': tintColor }}>\n * <GlassCard />\n * </div>\n * ```\n */\nexport const useWallpaperTint = (\n options: WallpaperTintOptions = {}\n): WallpaperTintResult => {\n const {\n imageUrl,\n debounceMs = 300,\n sampleSize = 10,\n enabled = true,\n } = options;\n\n const [tintColor, setTintColor] = useState<string | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n const extractTint = useCallback(async () => {\n if (!imageUrl || !enabled) {\n setTintColor(null);\n setError(null);\n return;\n }\n\n setIsLoading(true);\n setError(null);\n\n try {\n const color = await extractDominantColor(imageUrl, sampleSize);\n setTintColor(color);\n } catch (err) {\n const errorMessage =\n err instanceof Error ? err.message : \"Failed to extract tint color\";\n setError(errorMessage);\n setTintColor(null);\n } finally {\n setIsLoading(false);\n }\n }, [imageUrl, sampleSize, enabled]);\n\n useEffect(() => {\n if (!enabled) return;\n\n const timeoutId = setTimeout(() => {\n extractTint();\n }, debounceMs);\n\n return () => clearTimeout(timeoutId);\n }, [extractTint, debounceMs, enabled]);\n\n return {\n tintColor,\n isLoading,\n error,\n refresh: extractTint,\n };\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils-CcyeqpKQ.js","names":[],"sources":["../src/lib/utils.ts"],"sourcesContent":["// ========================================\n// GLASS THEME UTILITIES\n// ========================================\n\nimport { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Combine class names with Tailwind merge support (shadcn standard)\n * @param inputs - Array of class values\n * @returns Merged class string\n */\nexport const cn = (...inputs: ClassValue[]): string => {\n return twMerge(clsx(inputs));\n};\n"],"mappings":";;AAYA,MAAa,MAAM,GAAG,WAAiC;AACrD,QAAO,QAAQ,KAAK,OAAO,CAAC"}
|
package/dist/utils.js
DELETED