@entropix/react 0.1.1 → 0.3.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/dist/index.cjs +468 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +1043 -588
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +183 -2
- package/dist/index.d.ts +183 -2
- package/dist/index.js +462 -4
- package/dist/index.js.map +1 -1
- package/dist/styles/accordion.css +56 -54
- package/dist/styles/button.css +115 -113
- package/dist/styles/checkbox.css +121 -0
- package/dist/styles/dialog.css +88 -86
- package/dist/styles/index.css +7 -0
- package/dist/styles/input.css +178 -0
- package/dist/styles/layout.css +105 -103
- package/dist/styles/menu.css +51 -49
- package/dist/styles/radio.css +130 -0
- package/dist/styles/select.css +150 -0
- package/dist/styles/switch.css +44 -42
- package/dist/styles/tabs.css +70 -68
- package/dist/styles/toggle.css +40 -38
- package/package.json +4 -4
package/dist/index.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/styles/button.css","../src/styles/toggle.css","../src/styles/switch.css","../src/styles/dialog.css","../src/styles/tabs.css","../src/styles/accordion.css","../src/styles/menu.css","../src/styles/layout.css"],"sourcesContent":["/* Button — @entropix/react */\n\n.entropix-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--entropix-button-gap);\n border: 1px solid transparent;\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-button-font-size);\n font-weight: var(--entropix-button-font-weight);\n line-height: var(--entropix-button-line-height);\n border-radius: var(--entropix-button-border-radius);\n padding: var(--entropix-button-padding-y) var(--entropix-button-padding-x);\n cursor: pointer;\n text-decoration: none;\n user-select: none;\n transition:\n background var(--entropix-duration-fast) var(--entropix-easing-default),\n color var(--entropix-duration-fast) var(--entropix-easing-default),\n border-color var(--entropix-duration-fast) var(--entropix-easing-default),\n box-shadow var(--entropix-duration-fast) var(--entropix-easing-default);\n}\n\n/* === Variants === */\n\n.entropix-button--primary {\n background: var(--entropix-button-primary-bg);\n color: var(--entropix-button-primary-text);\n border-color: var(--entropix-button-primary-border);\n}\n.entropix-button--primary:hover:not(:disabled) {\n background: var(--entropix-button-primary-bg-hover);\n}\n.entropix-button--primary:active:not(:disabled) {\n background: var(--entropix-button-primary-bg-active);\n}\n\n.entropix-button--secondary {\n background: var(--entropix-button-secondary-bg);\n color: var(--entropix-button-secondary-text);\n border-color: var(--entropix-button-secondary-border);\n}\n.entropix-button--secondary:hover:not(:disabled) {\n background: var(--entropix-button-secondary-bg-hover);\n}\n.entropix-button--secondary:active:not(:disabled) {\n background: var(--entropix-button-secondary-bg-active);\n}\n\n.entropix-button--outline {\n background: transparent;\n color: var(--entropix-color-text-primary);\n border-color: var(--entropix-color-border-default);\n}\n.entropix-button--outline:hover:not(:disabled) {\n background: var(--entropix-color-action-secondary-hover);\n}\n.entropix-button--outline:active:not(:disabled) {\n background: var(--entropix-color-action-secondary-active);\n}\n\n.entropix-button--ghost {\n background: transparent;\n color: var(--entropix-color-text-primary);\n border-color: transparent;\n}\n.entropix-button--ghost:hover:not(:disabled) {\n background: var(--entropix-color-action-secondary-default);\n}\n.entropix-button--ghost:active:not(:disabled) {\n background: var(--entropix-color-action-secondary-hover);\n}\n\n.entropix-button--danger {\n background: var(--entropix-button-danger-bg);\n color: var(--entropix-button-danger-text);\n border-color: var(--entropix-button-danger-border);\n}\n.entropix-button--danger:hover:not(:disabled) {\n background: var(--entropix-button-danger-bg-hover);\n}\n.entropix-button--danger:active:not(:disabled) {\n background: var(--entropix-button-danger-bg-active);\n}\n\n/* === Sizes === */\n\n.entropix-button--sm {\n padding: var(--entropix-spacing-1) var(--entropix-spacing-3);\n font-size: var(--entropix-font-size-xs);\n border-radius: var(--entropix-radius-sm);\n}\n\n.entropix-button--md {\n padding: var(--entropix-button-padding-y) var(--entropix-button-padding-x);\n font-size: var(--entropix-button-font-size);\n}\n\n.entropix-button--lg {\n padding: var(--entropix-spacing-3) var(--entropix-spacing-6);\n font-size: var(--entropix-font-size-base);\n border-radius: var(--entropix-radius-lg);\n}\n\n/* === States === */\n\n.entropix-button:disabled,\n.entropix-button[data-state=\"disabled\"],\n.entropix-button[data-state=\"loading\"] {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.entropix-button:focus-visible {\n outline: 2px solid var(--entropix-color-border-focus);\n outline-offset: 2px;\n}\n\n/* === Responsive — Touch-friendly sizing on mobile === */\n\n@media (max-width: 767px) {\n .entropix-button {\n min-height: 44px;\n }\n\n .entropix-button--sm {\n min-height: 36px;\n padding: var(--entropix-spacing-2) var(--entropix-spacing-3);\n font-size: var(--entropix-font-size-sm);\n }\n}\n","/* Toggle (checkbox) — @entropix/react */\n\n.entropix-toggle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: var(--entropix-spacing-2) var(--entropix-spacing-3);\n border: 1px solid var(--entropix-color-border-default);\n border-radius: var(--entropix-radius-md);\n background: var(--entropix-color-bg-primary);\n color: var(--entropix-color-text-primary);\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-font-size-sm);\n font-weight: var(--entropix-font-weight-medium);\n cursor: pointer;\n user-select: none;\n transition:\n background var(--entropix-duration-fast) var(--entropix-easing-default),\n border-color var(--entropix-duration-fast) var(--entropix-easing-default),\n color var(--entropix-duration-fast) var(--entropix-easing-default);\n}\n\n.entropix-toggle:hover:not(:disabled) {\n background: var(--entropix-color-action-secondary-hover);\n}\n\n.entropix-toggle[data-state=\"checked\"] {\n background: var(--entropix-color-action-primary-default);\n color: var(--entropix-color-text-inverse);\n border-color: transparent;\n}\n.entropix-toggle[data-state=\"checked\"]:hover:not(:disabled) {\n background: var(--entropix-color-action-primary-hover);\n}\n\n.entropix-toggle:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.entropix-toggle:focus-visible {\n outline: 2px solid var(--entropix-color-border-focus);\n outline-offset: 2px;\n}\n","/* Switch — @entropix/react */\n\n.entropix-switch {\n position: relative;\n display: inline-flex;\n align-items: center;\n width: 44px;\n height: 24px;\n padding: 2px;\n border: none;\n border-radius: var(--entropix-radius-full);\n background: var(--entropix-color-gray-300);\n cursor: pointer;\n transition: background var(--entropix-duration-fast) var(--entropix-easing-default);\n}\n\n.entropix-switch::after {\n content: \"\";\n display: block;\n width: 20px;\n height: 20px;\n border-radius: var(--entropix-radius-full);\n background: var(--entropix-color-white);\n box-shadow: var(--entropix-shadow-sm);\n transition: transform var(--entropix-duration-fast) var(--entropix-easing-default);\n}\n\n.entropix-switch[data-state=\"checked\"] {\n background: var(--entropix-color-action-primary-default);\n}\n.entropix-switch[data-state=\"checked\"]::after {\n transform: translateX(20px);\n}\n\n.entropix-switch:hover:not(:disabled) {\n background: var(--entropix-color-gray-400);\n}\n.entropix-switch[data-state=\"checked\"]:hover:not(:disabled) {\n background: var(--entropix-color-action-primary-hover);\n}\n\n.entropix-switch:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.entropix-switch:focus-visible {\n outline: 2px solid var(--entropix-color-border-focus);\n outline-offset: 2px;\n}\n","/* Dialog — @entropix/react */\n\n.entropix-dialog-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n z-index: 50;\n}\n\n.entropix-dialog-content {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background: var(--entropix-color-bg-primary);\n border-radius: var(--entropix-radius-lg);\n box-shadow: var(--entropix-shadow-xl);\n padding: var(--entropix-spacing-6);\n z-index: 51;\n max-width: 480px;\n width: 90vw;\n max-height: 85vh;\n overflow-y: auto;\n}\n\n.entropix-dialog-content:focus {\n outline: none;\n}\n\n.entropix-dialog-title {\n margin: 0;\n margin-bottom: var(--entropix-spacing-2);\n font-family: var(--entropix-text-heading-md-font-family);\n font-size: var(--entropix-text-heading-md-font-size);\n font-weight: var(--entropix-text-heading-md-font-weight);\n line-height: var(--entropix-text-heading-md-line-height);\n color: var(--entropix-color-text-primary);\n}\n\n.entropix-dialog-description {\n margin: 0;\n margin-bottom: var(--entropix-spacing-4);\n font-family: var(--entropix-text-body-md-font-family);\n font-size: var(--entropix-text-body-md-font-size);\n font-weight: var(--entropix-text-body-md-font-weight);\n line-height: var(--entropix-text-body-md-line-height);\n color: var(--entropix-color-text-secondary);\n}\n\n.entropix-dialog-close {\n position: absolute;\n top: var(--entropix-spacing-3);\n right: var(--entropix-spacing-3);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: none;\n border-radius: var(--entropix-radius-sm);\n background: transparent;\n color: var(--entropix-color-text-secondary);\n cursor: pointer;\n transition: background var(--entropix-duration-fast) var(--entropix-easing-default);\n}\n\n.entropix-dialog-close:hover {\n background: var(--entropix-color-action-secondary-default);\n}\n\n.entropix-dialog-close:focus-visible {\n outline: 2px solid var(--entropix-color-border-focus);\n outline-offset: 2px;\n}\n\n.entropix-dialog-trigger {\n /* Inherits button styles if also .entropix-button */\n}\n\n/* === Responsive — Full-width bottom sheet on mobile === */\n\n@media (max-width: 767px) {\n .entropix-dialog-content {\n top: auto;\n bottom: 0;\n left: 0;\n right: 0;\n transform: none;\n width: 100%;\n max-width: 100%;\n border-radius: var(--entropix-radius-lg) var(--entropix-radius-lg) 0 0;\n max-height: 90vh;\n padding: var(--entropix-spacing-5);\n }\n}\n\n@media (min-width: 768px) {\n .entropix-dialog-content {\n max-width: 560px;\n }\n}\n","/* Tabs — @entropix/react */\n\n.entropix-tabs {\n display: flex;\n flex-direction: column;\n}\n\n.entropix-tablist {\n display: flex;\n gap: var(--entropix-spacing-1);\n border-bottom: 1px solid var(--entropix-color-border-default);\n}\n.entropix-tablist[data-orientation=\"vertical\"] {\n flex-direction: column;\n border-bottom: none;\n border-right: 1px solid var(--entropix-color-border-default);\n}\n\n.entropix-tab {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: var(--entropix-spacing-2) var(--entropix-spacing-4);\n border: none;\n border-bottom: 2px solid transparent;\n background: transparent;\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-font-size-sm);\n font-weight: var(--entropix-font-weight-medium);\n color: var(--entropix-color-text-secondary);\n cursor: pointer;\n transition:\n color var(--entropix-duration-fast) var(--entropix-easing-default),\n border-color var(--entropix-duration-fast) var(--entropix-easing-default);\n}\n\n.entropix-tab:hover:not(:disabled) {\n color: var(--entropix-color-text-primary);\n}\n\n.entropix-tab[data-state=\"active\"] {\n color: var(--entropix-color-action-primary-default);\n border-bottom-color: var(--entropix-color-action-primary-default);\n}\n\n.entropix-tab:disabled,\n.entropix-tab[aria-disabled=\"true\"] {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.entropix-tab:focus-visible {\n outline: 2px solid var(--entropix-color-border-focus);\n outline-offset: -2px;\n border-radius: var(--entropix-radius-sm);\n}\n\n.entropix-tabpanel {\n padding: var(--entropix-spacing-4);\n}\n\n/* === Responsive — Scrollable tabs on mobile === */\n\n@media (max-width: 767px) {\n .entropix-tablist {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n\n .entropix-tablist::-webkit-scrollbar {\n display: none;\n }\n\n .entropix-tab {\n white-space: nowrap;\n flex-shrink: 0;\n }\n\n .entropix-tabpanel {\n padding: var(--entropix-spacing-3);\n }\n}\n","/* Accordion — @entropix/react */\n\n.entropix-accordion {\n border: 1px solid var(--entropix-color-border-default);\n border-radius: var(--entropix-radius-lg);\n overflow: hidden;\n}\n\n.entropix-accordion-item {\n border-bottom: 1px solid var(--entropix-color-border-default);\n}\n.entropix-accordion-item:last-child {\n border-bottom: none;\n}\n\n.entropix-accordion-trigger {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: var(--entropix-spacing-4);\n border: none;\n background: transparent;\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-font-size-sm);\n font-weight: var(--entropix-font-weight-medium);\n color: var(--entropix-color-text-primary);\n text-align: left;\n cursor: pointer;\n transition: background var(--entropix-duration-fast) var(--entropix-easing-default);\n}\n\n.entropix-accordion-trigger:hover:not(:disabled) {\n background: var(--entropix-color-bg-secondary);\n}\n\n.entropix-accordion-trigger:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.entropix-accordion-trigger:focus-visible {\n outline: 2px solid var(--entropix-color-border-focus);\n outline-offset: -2px;\n}\n\n.entropix-accordion-panel {\n padding: 0 var(--entropix-spacing-4) var(--entropix-spacing-4);\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-font-size-sm);\n color: var(--entropix-color-text-secondary);\n line-height: var(--entropix-line-height-normal);\n}\n\n/* === Responsive — Touch-friendly on mobile === */\n\n@media (max-width: 767px) {\n .entropix-accordion-trigger {\n padding: var(--entropix-spacing-4) var(--entropix-spacing-3);\n min-height: 48px;\n font-size: var(--entropix-font-size-base);\n }\n\n .entropix-accordion-panel {\n padding: 0 var(--entropix-spacing-3) var(--entropix-spacing-3);\n }\n}\n","/* Menu — @entropix/react */\n\n.entropix-menu-trigger {\n /* Inherits button styles if also .entropix-button */\n}\n\n.entropix-menu-content {\n min-width: 160px;\n padding: var(--entropix-spacing-1);\n background: var(--entropix-color-bg-primary);\n border: 1px solid var(--entropix-color-border-default);\n border-radius: var(--entropix-radius-md);\n box-shadow: var(--entropix-shadow-lg);\n z-index: 50;\n}\n\n.entropix-menu-item {\n display: flex;\n align-items: center;\n padding: var(--entropix-spacing-2) var(--entropix-spacing-3);\n border-radius: var(--entropix-radius-sm);\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-font-size-sm);\n color: var(--entropix-color-text-primary);\n cursor: pointer;\n user-select: none;\n transition: background var(--entropix-duration-fast) var(--entropix-easing-default);\n}\n\n.entropix-menu-item:hover {\n background: var(--entropix-color-action-secondary-default);\n}\n\n.entropix-menu-item[data-state=\"active\"] {\n background: var(--entropix-color-action-secondary-default);\n}\n\n.entropix-menu-item[data-disabled=\"true\"],\n.entropix-menu-item[aria-disabled=\"true\"] {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.entropix-menu-item:focus-visible {\n outline: 2px solid var(--entropix-color-border-focus);\n outline-offset: -2px;\n}\n\n/* === Responsive — Larger touch targets on mobile === */\n\n@media (max-width: 767px) {\n .entropix-menu-content {\n min-width: 200px;\n }\n\n .entropix-menu-item {\n padding: var(--entropix-spacing-3) var(--entropix-spacing-4);\n font-size: var(--entropix-font-size-base);\n min-height: 44px;\n }\n}\n","/* Layout Primitives — @entropix/react */\n\n/* === Stack (vertical flex layout) === */\n\n.entropix-stack {\n display: flex;\n flex-direction: column;\n gap: var(--entropix-space-layout-stack);\n}\n\n.entropix-stack--gap-none { gap: 0; }\n.entropix-stack--gap-xs { gap: var(--entropix-spacing-1); }\n.entropix-stack--gap-sm { gap: var(--entropix-spacing-2); }\n.entropix-stack--gap-md { gap: var(--entropix-spacing-4); }\n.entropix-stack--gap-lg { gap: var(--entropix-spacing-6); }\n.entropix-stack--gap-xl { gap: var(--entropix-spacing-8); }\n.entropix-stack--gap-2xl { gap: var(--entropix-spacing-12); }\n\n.entropix-stack--align-start { align-items: flex-start; }\n.entropix-stack--align-center { align-items: center; }\n.entropix-stack--align-end { align-items: flex-end; }\n.entropix-stack--align-stretch { align-items: stretch; }\n\n.entropix-stack--full-width { width: 100%; }\n\n/* === Inline (horizontal flex layout) === */\n\n.entropix-inline {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--entropix-space-layout-inline);\n}\n\n.entropix-inline--gap-none { gap: 0; }\n.entropix-inline--gap-xs { gap: var(--entropix-spacing-1); }\n.entropix-inline--gap-sm { gap: var(--entropix-spacing-2); }\n.entropix-inline--gap-md { gap: var(--entropix-spacing-4); }\n.entropix-inline--gap-lg { gap: var(--entropix-spacing-6); }\n.entropix-inline--gap-xl { gap: var(--entropix-spacing-8); }\n.entropix-inline--gap-2xl { gap: var(--entropix-spacing-12); }\n\n.entropix-inline--align-start { align-items: flex-start; }\n.entropix-inline--align-center { align-items: center; }\n.entropix-inline--align-end { align-items: flex-end; }\n.entropix-inline--align-stretch { align-items: stretch; }\n.entropix-inline--align-baseline { align-items: baseline; }\n\n.entropix-inline--justify-start { justify-content: flex-start; }\n.entropix-inline--justify-center { justify-content: center; }\n.entropix-inline--justify-end { justify-content: flex-end; }\n.entropix-inline--justify-between { justify-content: space-between; }\n.entropix-inline--justify-around { justify-content: space-around; }\n\n.entropix-inline--wrap { flex-wrap: wrap; }\n\n/* === Container (page-level wrapper) === */\n\n.entropix-container {\n width: 100%;\n margin-left: auto;\n margin-right: auto;\n padding-left: var(--entropix-space-layout-page-margin);\n padding-right: var(--entropix-space-layout-page-margin);\n}\n\n.entropix-container--xs { max-width: 480px; }\n.entropix-container--sm { max-width: 640px; }\n.entropix-container--md { max-width: 768px; }\n.entropix-container--lg { max-width: 1024px; }\n.entropix-container--xl { max-width: 1280px; }\n.entropix-container--full { max-width: 100%; }\n\n.entropix-container--center {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n/* === Divider (visual separator) === */\n\n.entropix-divider {\n border: 0;\n border-top: 1px solid var(--entropix-color-border-default);\n margin: 0;\n width: 100%;\n}\n\n.entropix-divider--vertical {\n border-top: 0;\n border-left: 1px solid var(--entropix-color-border-default);\n width: auto;\n height: auto;\n align-self: stretch;\n}\n\n.entropix-divider--spacing-sm { margin: var(--entropix-spacing-2) 0; }\n.entropix-divider--spacing-md { margin: var(--entropix-spacing-4) 0; }\n.entropix-divider--spacing-lg { margin: var(--entropix-spacing-6) 0; }\n\n.entropix-divider--vertical.entropix-divider--spacing-sm { margin: 0 var(--entropix-spacing-2); }\n.entropix-divider--vertical.entropix-divider--spacing-md { margin: 0 var(--entropix-spacing-4); }\n.entropix-divider--vertical.entropix-divider--spacing-lg { margin: 0 var(--entropix-spacing-6); }\n\n/* ═══════════════════════════════════════════════════════════════════════════\n RESPONSIVE — Tablet and up (≥768px)\n ═══════════════════════════════════════════════════════════════════════════ */\n\n@media (min-width: 768px) {\n .entropix-container {\n padding-left: var(--entropix-space-layout-page-margin-md);\n padding-right: var(--entropix-space-layout-page-margin-md);\n }\n}\n\n/* ═══════════════════════════════════════════════════════════════════════════\n RESPONSIVE — Desktop and up (≥1024px)\n ═══════════════════════════════════════════════════════════════════════════ */\n\n@media (min-width: 1024px) {\n .entropix-container {\n padding-left: var(--entropix-space-layout-page-margin-lg);\n padding-right: var(--entropix-space-layout-page-margin-lg);\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/styles/button.css","../src/styles/toggle.css","../src/styles/switch.css","../src/styles/dialog.css","../src/styles/tabs.css","../src/styles/accordion.css","../src/styles/menu.css","../src/styles/input.css","../src/styles/checkbox.css","../src/styles/radio.css","../src/styles/select.css","../src/styles/layout.css"],"sourcesContent":["/* Button — @entropix/react */\n\n@layer entropix {\n .entropix-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--entropix-button-gap);\n border: 1px solid transparent;\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-button-font-size);\n font-weight: var(--entropix-button-font-weight);\n line-height: var(--entropix-button-line-height);\n border-radius: var(--entropix-button-border-radius);\n padding: var(--entropix-button-padding-y) var(--entropix-button-padding-x);\n cursor: pointer;\n text-decoration: none;\n user-select: none;\n transition:\n background var(--entropix-duration-fast) var(--entropix-easing-default),\n color var(--entropix-duration-fast) var(--entropix-easing-default),\n border-color var(--entropix-duration-fast) var(--entropix-easing-default),\n box-shadow var(--entropix-duration-fast) var(--entropix-easing-default);\n }\n\n /* === Variants === */\n\n .entropix-button--primary {\n background: var(--entropix-button-primary-bg);\n color: var(--entropix-button-primary-text);\n border-color: var(--entropix-button-primary-border);\n }\n .entropix-button--primary:hover:not(:disabled) {\n background: var(--entropix-button-primary-bg-hover);\n }\n .entropix-button--primary:active:not(:disabled) {\n background: var(--entropix-button-primary-bg-active);\n }\n\n .entropix-button--secondary {\n background: var(--entropix-button-secondary-bg);\n color: var(--entropix-button-secondary-text);\n border-color: var(--entropix-button-secondary-border);\n }\n .entropix-button--secondary:hover:not(:disabled) {\n background: var(--entropix-button-secondary-bg-hover);\n }\n .entropix-button--secondary:active:not(:disabled) {\n background: var(--entropix-button-secondary-bg-active);\n }\n\n .entropix-button--outline {\n background: transparent;\n color: var(--entropix-color-text-primary);\n border-color: var(--entropix-color-border-default);\n }\n .entropix-button--outline:hover:not(:disabled) {\n background: var(--entropix-color-action-secondary-hover);\n }\n .entropix-button--outline:active:not(:disabled) {\n background: var(--entropix-color-action-secondary-active);\n }\n\n .entropix-button--ghost {\n background: transparent;\n color: var(--entropix-color-text-primary);\n border-color: transparent;\n }\n .entropix-button--ghost:hover:not(:disabled) {\n background: var(--entropix-color-action-secondary-default);\n }\n .entropix-button--ghost:active:not(:disabled) {\n background: var(--entropix-color-action-secondary-hover);\n }\n\n .entropix-button--danger {\n background: var(--entropix-button-danger-bg);\n color: var(--entropix-button-danger-text);\n border-color: var(--entropix-button-danger-border);\n }\n .entropix-button--danger:hover:not(:disabled) {\n background: var(--entropix-button-danger-bg-hover);\n }\n .entropix-button--danger:active:not(:disabled) {\n background: var(--entropix-button-danger-bg-active);\n }\n\n /* === Sizes === */\n\n .entropix-button--sm {\n padding: var(--entropix-spacing-1) var(--entropix-spacing-3);\n font-size: var(--entropix-font-size-xs);\n border-radius: var(--entropix-radius-sm);\n }\n\n .entropix-button--md {\n padding: var(--entropix-button-padding-y) var(--entropix-button-padding-x);\n font-size: var(--entropix-button-font-size);\n }\n\n .entropix-button--lg {\n padding: var(--entropix-spacing-3) var(--entropix-spacing-6);\n font-size: var(--entropix-font-size-base);\n border-radius: var(--entropix-radius-lg);\n }\n\n /* === States === */\n\n .entropix-button:disabled,\n .entropix-button[data-state=\"disabled\"],\n .entropix-button[data-state=\"loading\"] {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n }\n\n .entropix-button:focus-visible {\n outline: 2px solid var(--entropix-color-border-focus);\n outline-offset: 2px;\n }\n\n /* === Responsive — Touch-friendly sizing on mobile === */\n\n @media (max-width: 767px) {\n .entropix-button {\n min-height: 44px;\n }\n\n .entropix-button--sm {\n min-height: 36px;\n padding: var(--entropix-spacing-2) var(--entropix-spacing-3);\n font-size: var(--entropix-font-size-sm);\n }\n }\n}\n","/* Toggle (checkbox) — @entropix/react */\n\n@layer entropix {\n .entropix-toggle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: var(--entropix-spacing-2) var(--entropix-spacing-3);\n border: 1px solid var(--entropix-color-border-default);\n border-radius: var(--entropix-radius-md);\n background: var(--entropix-color-bg-primary);\n color: var(--entropix-color-text-primary);\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-font-size-sm);\n font-weight: var(--entropix-font-weight-medium);\n cursor: pointer;\n user-select: none;\n transition:\n background var(--entropix-duration-fast) var(--entropix-easing-default),\n border-color var(--entropix-duration-fast) var(--entropix-easing-default),\n color var(--entropix-duration-fast) var(--entropix-easing-default);\n }\n\n .entropix-toggle:hover:not(:disabled) {\n background: var(--entropix-color-action-secondary-hover);\n }\n\n .entropix-toggle[data-state=\"checked\"] {\n background: var(--entropix-color-action-primary-default);\n color: var(--entropix-color-text-inverse);\n border-color: transparent;\n }\n .entropix-toggle[data-state=\"checked\"]:hover:not(:disabled) {\n background: var(--entropix-color-action-primary-hover);\n }\n\n .entropix-toggle:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n }\n\n .entropix-toggle:focus-visible {\n outline: 2px solid var(--entropix-color-border-focus);\n outline-offset: 2px;\n }\n}\n","/* Switch — @entropix/react */\n\n@layer entropix {\n .entropix-switch {\n position: relative;\n display: inline-flex;\n align-items: center;\n width: 44px;\n height: 24px;\n padding: 2px;\n border: none;\n border-radius: var(--entropix-radius-full);\n background: var(--entropix-color-gray-300);\n cursor: pointer;\n transition: background var(--entropix-duration-fast) var(--entropix-easing-default);\n }\n\n .entropix-switch::after {\n content: \"\";\n display: block;\n width: 20px;\n height: 20px;\n border-radius: var(--entropix-radius-full);\n background: var(--entropix-color-white);\n box-shadow: var(--entropix-shadow-sm);\n transition: transform var(--entropix-duration-fast) var(--entropix-easing-default);\n }\n\n .entropix-switch[data-state=\"checked\"] {\n background: var(--entropix-color-action-primary-default);\n }\n .entropix-switch[data-state=\"checked\"]::after {\n transform: translateX(20px);\n }\n\n .entropix-switch:hover:not(:disabled) {\n background: var(--entropix-color-gray-400);\n }\n .entropix-switch[data-state=\"checked\"]:hover:not(:disabled) {\n background: var(--entropix-color-action-primary-hover);\n }\n\n .entropix-switch:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .entropix-switch:focus-visible {\n outline: 2px solid var(--entropix-color-border-focus);\n outline-offset: 2px;\n }\n}\n","/* Dialog — @entropix/react */\n\n@layer entropix {\n .entropix-dialog-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n z-index: 50;\n }\n\n .entropix-dialog-content {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background: var(--entropix-color-bg-primary);\n border-radius: var(--entropix-radius-lg);\n box-shadow: var(--entropix-shadow-xl);\n padding: var(--entropix-spacing-6);\n z-index: 51;\n max-width: 480px;\n width: 90vw;\n max-height: 85vh;\n overflow-y: auto;\n }\n\n .entropix-dialog-content:focus {\n outline: none;\n }\n\n .entropix-dialog-title {\n margin: 0;\n margin-bottom: var(--entropix-spacing-2);\n font-family: var(--entropix-text-heading-md-font-family);\n font-size: var(--entropix-text-heading-md-font-size);\n font-weight: var(--entropix-text-heading-md-font-weight);\n line-height: var(--entropix-text-heading-md-line-height);\n color: var(--entropix-color-text-primary);\n }\n\n .entropix-dialog-description {\n margin: 0;\n margin-bottom: var(--entropix-spacing-4);\n font-family: var(--entropix-text-body-md-font-family);\n font-size: var(--entropix-text-body-md-font-size);\n font-weight: var(--entropix-text-body-md-font-weight);\n line-height: var(--entropix-text-body-md-line-height);\n color: var(--entropix-color-text-secondary);\n }\n\n .entropix-dialog-close {\n position: absolute;\n top: var(--entropix-spacing-3);\n right: var(--entropix-spacing-3);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: none;\n border-radius: var(--entropix-radius-sm);\n background: transparent;\n color: var(--entropix-color-text-secondary);\n cursor: pointer;\n transition: background var(--entropix-duration-fast) var(--entropix-easing-default);\n }\n\n .entropix-dialog-close:hover {\n background: var(--entropix-color-action-secondary-default);\n }\n\n .entropix-dialog-close:focus-visible {\n outline: 2px solid var(--entropix-color-border-focus);\n outline-offset: 2px;\n }\n\n .entropix-dialog-trigger {\n /* Inherits button styles if also .entropix-button */\n }\n\n /* === Responsive — Full-width bottom sheet on mobile === */\n\n @media (max-width: 767px) {\n .entropix-dialog-content {\n top: auto;\n bottom: 0;\n left: 0;\n right: 0;\n transform: none;\n width: 100%;\n max-width: 100%;\n border-radius: var(--entropix-radius-lg) var(--entropix-radius-lg) 0 0;\n max-height: 90vh;\n padding: var(--entropix-spacing-5);\n }\n }\n\n @media (min-width: 768px) {\n .entropix-dialog-content {\n max-width: 560px;\n }\n }\n}\n","/* Tabs — @entropix/react */\n\n@layer entropix {\n .entropix-tabs {\n display: flex;\n flex-direction: column;\n }\n\n .entropix-tablist {\n display: flex;\n gap: var(--entropix-spacing-1);\n border-bottom: 1px solid var(--entropix-color-border-default);\n }\n .entropix-tablist[data-orientation=\"vertical\"] {\n flex-direction: column;\n border-bottom: none;\n border-right: 1px solid var(--entropix-color-border-default);\n }\n\n .entropix-tab {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: var(--entropix-spacing-2) var(--entropix-spacing-4);\n border: none;\n border-bottom: 2px solid transparent;\n background: transparent;\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-font-size-sm);\n font-weight: var(--entropix-font-weight-medium);\n color: var(--entropix-color-text-secondary);\n cursor: pointer;\n transition:\n color var(--entropix-duration-fast) var(--entropix-easing-default),\n border-color var(--entropix-duration-fast) var(--entropix-easing-default);\n }\n\n .entropix-tab:hover:not(:disabled) {\n color: var(--entropix-color-text-primary);\n }\n\n .entropix-tab[data-state=\"active\"] {\n color: var(--entropix-color-action-primary-default);\n border-bottom-color: var(--entropix-color-action-primary-default);\n }\n\n .entropix-tab:disabled,\n .entropix-tab[aria-disabled=\"true\"] {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .entropix-tab:focus-visible {\n outline: 2px solid var(--entropix-color-border-focus);\n outline-offset: -2px;\n border-radius: var(--entropix-radius-sm);\n }\n\n .entropix-tabpanel {\n padding: var(--entropix-spacing-4);\n }\n\n /* === Responsive — Scrollable tabs on mobile === */\n\n @media (max-width: 767px) {\n .entropix-tablist {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n\n .entropix-tablist::-webkit-scrollbar {\n display: none;\n }\n\n .entropix-tab {\n white-space: nowrap;\n flex-shrink: 0;\n }\n\n .entropix-tabpanel {\n padding: var(--entropix-spacing-3);\n }\n }\n}\n","/* Accordion — @entropix/react */\n\n@layer entropix {\n .entropix-accordion {\n border: 1px solid var(--entropix-color-border-default);\n border-radius: var(--entropix-radius-lg);\n overflow: hidden;\n }\n\n .entropix-accordion-item {\n border-bottom: 1px solid var(--entropix-color-border-default);\n }\n .entropix-accordion-item:last-child {\n border-bottom: none;\n }\n\n .entropix-accordion-trigger {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: var(--entropix-spacing-4);\n border: none;\n background: transparent;\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-font-size-sm);\n font-weight: var(--entropix-font-weight-medium);\n color: var(--entropix-color-text-primary);\n text-align: left;\n cursor: pointer;\n transition: background var(--entropix-duration-fast) var(--entropix-easing-default);\n }\n\n .entropix-accordion-trigger:hover:not(:disabled) {\n background: var(--entropix-color-bg-secondary);\n }\n\n .entropix-accordion-trigger:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .entropix-accordion-trigger:focus-visible {\n outline: 2px solid var(--entropix-color-border-focus);\n outline-offset: -2px;\n }\n\n .entropix-accordion-panel {\n padding: 0 var(--entropix-spacing-4) var(--entropix-spacing-4);\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-font-size-sm);\n color: var(--entropix-color-text-secondary);\n line-height: var(--entropix-line-height-normal);\n }\n\n /* === Responsive — Touch-friendly on mobile === */\n\n @media (max-width: 767px) {\n .entropix-accordion-trigger {\n padding: var(--entropix-spacing-4) var(--entropix-spacing-3);\n min-height: 48px;\n font-size: var(--entropix-font-size-base);\n }\n\n .entropix-accordion-panel {\n padding: 0 var(--entropix-spacing-3) var(--entropix-spacing-3);\n }\n }\n}\n","/* Menu — @entropix/react */\n\n@layer entropix {\n .entropix-menu-trigger {\n /* Inherits button styles if also .entropix-button */\n }\n\n .entropix-menu-content {\n min-width: 160px;\n padding: var(--entropix-spacing-1);\n background: var(--entropix-color-bg-primary);\n border: 1px solid var(--entropix-color-border-default);\n border-radius: var(--entropix-radius-md);\n box-shadow: var(--entropix-shadow-lg);\n z-index: 50;\n }\n\n .entropix-menu-item {\n display: flex;\n align-items: center;\n padding: var(--entropix-spacing-2) var(--entropix-spacing-3);\n border-radius: var(--entropix-radius-sm);\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-font-size-sm);\n color: var(--entropix-color-text-primary);\n cursor: pointer;\n user-select: none;\n transition: background var(--entropix-duration-fast) var(--entropix-easing-default);\n }\n\n .entropix-menu-item:hover {\n background: var(--entropix-color-action-secondary-default);\n }\n\n .entropix-menu-item[data-state=\"active\"] {\n background: var(--entropix-color-action-secondary-default);\n }\n\n .entropix-menu-item[data-disabled=\"true\"],\n .entropix-menu-item[aria-disabled=\"true\"] {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n }\n\n .entropix-menu-item:focus-visible {\n outline: 2px solid var(--entropix-color-border-focus);\n outline-offset: -2px;\n }\n\n /* === Responsive — Larger touch targets on mobile === */\n\n @media (max-width: 767px) {\n .entropix-menu-content {\n min-width: 200px;\n }\n\n .entropix-menu-item {\n padding: var(--entropix-spacing-3) var(--entropix-spacing-4);\n font-size: var(--entropix-font-size-base);\n min-height: 44px;\n }\n }\n}\n","/* Input & Textarea — @entropix/react */\n\n@layer entropix {\n .entropix-input-wrapper {\n --input-border-color: var(--entropix-color-border-default);\n --input-border-radius: var(--entropix-radius-md);\n --input-bg: var(--entropix-color-bg-primary);\n --input-font-size: var(--entropix-font-size-sm);\n --input-padding-y: var(--entropix-spacing-2);\n --input-padding-x: var(--entropix-spacing-3);\n --input-focus-color: var(--entropix-color-border-focus);\n --input-error-color: var(--entropix-color-border-danger);\n\n display: flex;\n flex-direction: column;\n gap: var(--entropix-spacing-1);\n width: 100%;\n }\n\n /* === Label === */\n\n .entropix-input-label {\n display: block;\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-font-size-sm);\n font-weight: var(--entropix-font-weight-medium);\n color: var(--entropix-color-text-primary);\n line-height: var(--entropix-line-height-normal);\n }\n\n .entropix-input-required {\n color: var(--entropix-color-text-danger);\n margin-left: var(--entropix-spacing-1);\n }\n\n /* === Shared Input / Textarea base === */\n\n .entropix-input,\n .entropix-textarea {\n display: block;\n width: 100%;\n border: 1px solid var(--input-border-color);\n border-radius: var(--input-border-radius);\n background: var(--input-bg);\n color: var(--entropix-color-text-primary);\n font-family: var(--entropix-font-family-sans);\n font-size: var(--input-font-size);\n line-height: var(--entropix-line-height-normal);\n padding: var(--input-padding-y) var(--input-padding-x);\n transition:\n border-color var(--entropix-duration-fast) var(--entropix-easing-default),\n box-shadow var(--entropix-duration-fast) var(--entropix-easing-default),\n background var(--entropix-duration-fast) var(--entropix-easing-default);\n }\n\n .entropix-input::placeholder,\n .entropix-textarea::placeholder {\n color: var(--entropix-color-text-tertiary);\n }\n\n /* === Focus === */\n\n .entropix-input:focus,\n .entropix-textarea:focus {\n outline: none;\n border-color: var(--input-focus-color);\n box-shadow: 0 0 0 1px var(--input-focus-color);\n }\n\n .entropix-input:focus-visible,\n .entropix-textarea:focus-visible {\n outline: 2px solid var(--input-focus-color);\n outline-offset: 2px;\n }\n\n /* === Hover === */\n\n .entropix-input:hover:not(:disabled):not(:focus),\n .entropix-textarea:hover:not(:disabled):not(:focus) {\n border-color: var(--entropix-color-border-hover);\n }\n\n /* === Variants === */\n\n .entropix-input[data-variant=\"filled\"],\n .entropix-textarea[data-variant=\"filled\"] {\n background: var(--entropix-color-bg-secondary);\n border-color: transparent;\n }\n\n .entropix-input[data-variant=\"filled\"]:focus,\n .entropix-textarea[data-variant=\"filled\"]:focus {\n background: var(--input-bg);\n border-color: var(--input-focus-color);\n }\n\n /* === Sizes === */\n\n .entropix-input[data-size=\"sm\"],\n .entropix-textarea[data-size=\"sm\"] {\n padding: var(--entropix-spacing-1) var(--entropix-spacing-2);\n font-size: var(--entropix-font-size-xs);\n border-radius: var(--entropix-radius-sm);\n }\n\n .entropix-input[data-size=\"md\"],\n .entropix-textarea[data-size=\"md\"] {\n padding: var(--input-padding-y) var(--input-padding-x);\n font-size: var(--input-font-size);\n }\n\n .entropix-input[data-size=\"lg\"],\n .entropix-textarea[data-size=\"lg\"] {\n padding: var(--entropix-spacing-3) var(--entropix-spacing-4);\n font-size: var(--entropix-font-size-base);\n border-radius: var(--entropix-radius-lg);\n }\n\n /* === States === */\n\n .entropix-input[data-state=\"invalid\"],\n .entropix-textarea[data-state=\"invalid\"] {\n border-color: var(--input-error-color);\n }\n\n .entropix-input[data-state=\"invalid\"]:focus,\n .entropix-textarea[data-state=\"invalid\"]:focus {\n border-color: var(--input-error-color);\n box-shadow: 0 0 0 1px var(--input-error-color);\n }\n\n .entropix-input:disabled,\n .entropix-textarea:disabled,\n .entropix-input[data-state=\"disabled\"],\n .entropix-textarea[data-state=\"disabled\"] {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n }\n\n /* === Helper & Error text === */\n\n .entropix-input-helper {\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-font-size-xs);\n color: var(--entropix-color-text-secondary);\n line-height: var(--entropix-line-height-normal);\n }\n\n .entropix-input-error {\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-font-size-xs);\n color: var(--entropix-color-text-danger);\n line-height: var(--entropix-line-height-normal);\n }\n\n /* === Textarea specific === */\n\n .entropix-textarea {\n min-height: 80px;\n }\n\n /* === Responsive — Touch-friendly sizing on mobile === */\n\n @media (max-width: 767px) {\n .entropix-input,\n .entropix-textarea {\n min-height: 44px;\n font-size: var(--entropix-font-size-base);\n }\n\n .entropix-input[data-size=\"sm\"],\n .entropix-textarea[data-size=\"sm\"] {\n min-height: 36px;\n font-size: var(--entropix-font-size-sm);\n }\n }\n}\n","/* Checkbox — @entropix/react */\n\n@layer entropix {\n .entropix-checkbox {\n --checkbox-size: 18px;\n --checkbox-border-color: var(--entropix-color-border-default);\n --checkbox-checked-bg: var(--entropix-color-action-primary-default);\n --checkbox-checked-border: var(--entropix-color-action-primary-default);\n --checkbox-border-radius: var(--entropix-radius-sm);\n\n display: inline-flex;\n align-items: center;\n gap: var(--entropix-spacing-2);\n padding: var(--entropix-spacing-1) 0;\n border: none;\n background: transparent;\n cursor: pointer;\n user-select: none;\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-font-size-sm);\n color: var(--entropix-color-text-primary);\n line-height: var(--entropix-line-height-normal);\n }\n\n /* === Indicator === */\n\n .entropix-checkbox__indicator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--checkbox-size);\n height: var(--checkbox-size);\n border: 2px solid var(--checkbox-border-color);\n border-radius: var(--checkbox-border-radius);\n background: var(--entropix-color-bg-primary);\n flex-shrink: 0;\n transition:\n background var(--entropix-duration-fast) var(--entropix-easing-default),\n border-color var(--entropix-duration-fast) var(--entropix-easing-default);\n }\n\n .entropix-checkbox__indicator[data-state=\"checked\"],\n .entropix-checkbox__indicator[data-state=\"indeterminate\"] {\n background: var(--checkbox-checked-bg);\n border-color: var(--checkbox-checked-border);\n }\n\n /* Checkmark via ::after pseudo-element */\n .entropix-checkbox__indicator[data-state=\"checked\"]::after {\n content: \"\";\n display: block;\n width: 5px;\n height: 9px;\n border: solid var(--entropix-color-text-inverse);\n border-width: 0 2px 2px 0;\n transform: rotate(45deg);\n margin-top: -1px;\n }\n\n /* Indeterminate minus via ::after pseudo-element */\n .entropix-checkbox__indicator[data-state=\"indeterminate\"]::after {\n content: \"\";\n display: block;\n width: 8px;\n height: 2px;\n background: var(--entropix-color-text-inverse);\n border-radius: 1px;\n }\n\n /* === Label === */\n\n .entropix-checkbox__label {\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-font-size-sm);\n color: var(--entropix-color-text-primary);\n line-height: var(--entropix-line-height-normal);\n }\n\n /* === Hover === */\n\n .entropix-checkbox:hover:not(:disabled) .entropix-checkbox__indicator {\n border-color: var(--entropix-color-border-hover);\n }\n\n .entropix-checkbox:hover:not(:disabled)\n .entropix-checkbox__indicator[data-state=\"checked\"],\n .entropix-checkbox:hover:not(:disabled)\n .entropix-checkbox__indicator[data-state=\"indeterminate\"] {\n background: var(--entropix-color-action-primary-hover);\n border-color: var(--entropix-color-action-primary-hover);\n }\n\n /* === Focus === */\n\n .entropix-checkbox:focus-visible {\n outline: 2px solid var(--entropix-color-border-focus);\n outline-offset: 2px;\n border-radius: var(--checkbox-border-radius);\n }\n\n /* === Disabled === */\n\n .entropix-checkbox:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n }\n\n /* === Responsive — Touch-friendly sizing on mobile === */\n\n @media (max-width: 767px) {\n .entropix-checkbox {\n min-height: 44px;\n }\n\n .entropix-checkbox__indicator {\n width: 22px;\n height: 22px;\n }\n }\n}\n","/* Radio — @entropix/react */\n\n@layer entropix {\n .entropix-radio-group {\n display: flex;\n gap: var(--entropix-spacing-2);\n }\n\n .entropix-radio-group[data-orientation=\"vertical\"] {\n flex-direction: column;\n }\n\n .entropix-radio-group[data-orientation=\"horizontal\"] {\n flex-direction: row;\n flex-wrap: wrap;\n }\n\n /* === Radio Item === */\n\n .entropix-radio-item {\n --radio-size: 20px;\n --radio-border-color: var(--entropix-color-border-default);\n --radio-checked-color: var(--entropix-color-action-primary-default);\n --radio-dot-size: 10px;\n\n display: inline-flex;\n align-items: center;\n gap: var(--entropix-spacing-2);\n padding: var(--entropix-spacing-1) 0;\n border: none;\n background: transparent;\n cursor: pointer;\n user-select: none;\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-font-size-sm);\n color: var(--entropix-color-text-primary);\n line-height: var(--entropix-line-height-normal);\n }\n\n /* === Indicator (circle) === */\n\n .entropix-radio-item__indicator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--radio-size);\n height: var(--radio-size);\n border: 2px solid var(--radio-border-color);\n border-radius: 50%;\n background: var(--entropix-color-bg-primary);\n flex-shrink: 0;\n transition:\n border-color var(--entropix-duration-fast) var(--entropix-easing-default),\n background var(--entropix-duration-fast) var(--entropix-easing-default);\n }\n\n .entropix-radio-item__indicator[data-state=\"checked\"] {\n border-color: var(--radio-checked-color);\n }\n\n /* Inner filled circle via ::after */\n .entropix-radio-item__indicator[data-state=\"checked\"]::after {\n content: \"\";\n display: block;\n width: var(--radio-dot-size);\n height: var(--radio-dot-size);\n border-radius: 50%;\n background: var(--radio-checked-color);\n }\n\n /* === Label === */\n\n .entropix-radio-item__label {\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-font-size-sm);\n color: var(--entropix-color-text-primary);\n line-height: var(--entropix-line-height-normal);\n }\n\n /* === Hover === */\n\n .entropix-radio-item:hover:not(:disabled) .entropix-radio-item__indicator {\n border-color: var(--entropix-color-border-hover);\n }\n\n .entropix-radio-item:hover:not(:disabled)\n .entropix-radio-item__indicator[data-state=\"checked\"] {\n border-color: var(--entropix-color-action-primary-hover);\n }\n\n .entropix-radio-item:hover:not(:disabled)\n .entropix-radio-item__indicator[data-state=\"checked\"]::after {\n background: var(--entropix-color-action-primary-hover);\n }\n\n /* === Focus === */\n\n .entropix-radio-item:focus-visible {\n outline: 2px solid var(--entropix-color-border-focus);\n outline-offset: 2px;\n border-radius: var(--entropix-radius-sm);\n }\n\n /* === Disabled === */\n\n .entropix-radio-item:disabled,\n .entropix-radio-item[data-disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n }\n\n /* === Responsive — Touch-friendly sizing on mobile === */\n\n @media (max-width: 767px) {\n .entropix-radio-item {\n min-height: 44px;\n }\n\n .entropix-radio-item__indicator {\n width: 22px;\n height: 22px;\n }\n\n .entropix-radio-item__indicator[data-state=\"checked\"]::after {\n width: 10px;\n height: 10px;\n }\n }\n}\n","/* Select — @entropix/react */\n\n@layer entropix {\n .entropix-select {\n --select-border-color: var(--entropix-color-border-default);\n --select-border-radius: var(--entropix-radius-md);\n --select-bg: var(--entropix-color-bg-primary);\n --select-dropdown-shadow: var(--entropix-shadow-lg);\n\n display: flex;\n flex-direction: column;\n gap: var(--entropix-spacing-1);\n position: relative;\n width: 100%;\n }\n\n /* === Label === */\n\n .entropix-select-label {\n display: block;\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-font-size-sm);\n font-weight: var(--entropix-font-weight-medium);\n color: var(--entropix-color-text-primary);\n line-height: var(--entropix-line-height-normal);\n }\n\n /* === Trigger === */\n\n .entropix-select-trigger {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--entropix-spacing-2);\n width: 100%;\n border: 1px solid var(--select-border-color);\n border-radius: var(--select-border-radius);\n background: var(--select-bg);\n color: var(--entropix-color-text-primary);\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-font-size-sm);\n line-height: var(--entropix-line-height-normal);\n padding: var(--entropix-spacing-2) var(--entropix-spacing-3);\n cursor: pointer;\n user-select: none;\n text-align: left;\n transition:\n border-color var(--entropix-duration-fast) var(--entropix-easing-default),\n box-shadow var(--entropix-duration-fast) var(--entropix-easing-default);\n }\n\n .entropix-select-trigger__value {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .entropix-select-trigger__chevron {\n flex-shrink: 0;\n font-size: var(--entropix-font-size-xs);\n color: var(--entropix-color-text-secondary);\n line-height: 1;\n }\n\n /* === Trigger Hover === */\n\n .entropix-select-trigger:hover:not(:disabled) {\n border-color: var(--entropix-color-border-hover);\n }\n\n /* === Trigger Focus === */\n\n .entropix-select-trigger:focus-visible {\n outline: 2px solid var(--entropix-color-border-focus);\n outline-offset: 2px;\n }\n\n /* === Trigger Disabled === */\n\n .entropix-select-trigger:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n }\n\n /* === Content (Dropdown) === */\n\n .entropix-select-content {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n z-index: 50;\n margin-top: var(--entropix-spacing-1);\n border: 1px solid var(--select-border-color);\n border-radius: var(--select-border-radius);\n background: var(--select-bg);\n box-shadow: var(--select-dropdown-shadow);\n padding: var(--entropix-spacing-1) 0;\n max-height: 240px;\n overflow-y: auto;\n }\n\n /* === Option === */\n\n .entropix-select-option {\n display: flex;\n align-items: center;\n padding: var(--entropix-spacing-2) var(--entropix-spacing-3);\n font-family: var(--entropix-font-family-sans);\n font-size: var(--entropix-font-size-sm);\n color: var(--entropix-color-text-primary);\n line-height: var(--entropix-line-height-normal);\n cursor: pointer;\n user-select: none;\n transition: background var(--entropix-duration-fast) var(--entropix-easing-default);\n }\n\n .entropix-select-option:hover:not([data-disabled]) {\n background: var(--entropix-color-action-secondary-hover);\n }\n\n .entropix-select-option[data-state=\"selected\"] {\n background: var(--entropix-color-action-secondary-default);\n font-weight: var(--entropix-font-weight-medium);\n }\n\n .entropix-select-option[data-state=\"selected\"]:hover {\n background: var(--entropix-color-action-secondary-hover);\n }\n\n .entropix-select-option[data-disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n }\n\n /* === Responsive — Touch-friendly sizing on mobile === */\n\n @media (max-width: 767px) {\n .entropix-select-trigger {\n min-height: 44px;\n }\n\n .entropix-select-option {\n min-height: 44px;\n }\n }\n}\n","/* Layout Primitives — @entropix/react */\n\n@layer entropix {\n /* === Stack (vertical flex layout) === */\n\n .entropix-stack {\n display: flex;\n flex-direction: column;\n gap: var(--entropix-space-layout-stack);\n }\n\n .entropix-stack--gap-none { gap: 0; }\n .entropix-stack--gap-xs { gap: var(--entropix-spacing-1); }\n .entropix-stack--gap-sm { gap: var(--entropix-spacing-2); }\n .entropix-stack--gap-md { gap: var(--entropix-spacing-4); }\n .entropix-stack--gap-lg { gap: var(--entropix-spacing-6); }\n .entropix-stack--gap-xl { gap: var(--entropix-spacing-8); }\n .entropix-stack--gap-2xl { gap: var(--entropix-spacing-12); }\n\n .entropix-stack--align-start { align-items: flex-start; }\n .entropix-stack--align-center { align-items: center; }\n .entropix-stack--align-end { align-items: flex-end; }\n .entropix-stack--align-stretch { align-items: stretch; }\n\n .entropix-stack--full-width { width: 100%; }\n\n /* === Inline (horizontal flex layout) === */\n\n .entropix-inline {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--entropix-space-layout-inline);\n }\n\n .entropix-inline--gap-none { gap: 0; }\n .entropix-inline--gap-xs { gap: var(--entropix-spacing-1); }\n .entropix-inline--gap-sm { gap: var(--entropix-spacing-2); }\n .entropix-inline--gap-md { gap: var(--entropix-spacing-4); }\n .entropix-inline--gap-lg { gap: var(--entropix-spacing-6); }\n .entropix-inline--gap-xl { gap: var(--entropix-spacing-8); }\n .entropix-inline--gap-2xl { gap: var(--entropix-spacing-12); }\n\n .entropix-inline--align-start { align-items: flex-start; }\n .entropix-inline--align-center { align-items: center; }\n .entropix-inline--align-end { align-items: flex-end; }\n .entropix-inline--align-stretch { align-items: stretch; }\n .entropix-inline--align-baseline { align-items: baseline; }\n\n .entropix-inline--justify-start { justify-content: flex-start; }\n .entropix-inline--justify-center { justify-content: center; }\n .entropix-inline--justify-end { justify-content: flex-end; }\n .entropix-inline--justify-between { justify-content: space-between; }\n .entropix-inline--justify-around { justify-content: space-around; }\n\n .entropix-inline--wrap { flex-wrap: wrap; }\n\n /* === Container (page-level wrapper) === */\n\n .entropix-container {\n width: 100%;\n margin-left: auto;\n margin-right: auto;\n padding-left: var(--entropix-space-layout-page-margin);\n padding-right: var(--entropix-space-layout-page-margin);\n }\n\n .entropix-container--xs { max-width: 480px; }\n .entropix-container--sm { max-width: 640px; }\n .entropix-container--md { max-width: 768px; }\n .entropix-container--lg { max-width: 1024px; }\n .entropix-container--xl { max-width: 1280px; }\n .entropix-container--full { max-width: 100%; }\n\n .entropix-container--center {\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n\n /* === Divider (visual separator) === */\n\n .entropix-divider {\n border: 0;\n border-top: 1px solid var(--entropix-color-border-default);\n margin: 0;\n width: 100%;\n }\n\n .entropix-divider--vertical {\n border-top: 0;\n border-left: 1px solid var(--entropix-color-border-default);\n width: auto;\n height: auto;\n align-self: stretch;\n }\n\n .entropix-divider--spacing-sm { margin: var(--entropix-spacing-2) 0; }\n .entropix-divider--spacing-md { margin: var(--entropix-spacing-4) 0; }\n .entropix-divider--spacing-lg { margin: var(--entropix-spacing-6) 0; }\n\n .entropix-divider--vertical.entropix-divider--spacing-sm { margin: 0 var(--entropix-spacing-2); }\n .entropix-divider--vertical.entropix-divider--spacing-md { margin: 0 var(--entropix-spacing-4); }\n .entropix-divider--vertical.entropix-divider--spacing-lg { margin: 0 var(--entropix-spacing-6); }\n\n /* ═══════════════════════════════════════════════════════════════════════════\n RESPONSIVE — Tablet and up (>=768px)\n ═══════════════════════════════════════════════════════════════════════════ */\n\n @media (min-width: 768px) {\n .entropix-container {\n padding-left: var(--entropix-space-layout-page-margin-md);\n padding-right: var(--entropix-space-layout-page-margin-md);\n }\n }\n\n /* ═══════════════════════════════════════════════════════════════════════════\n RESPONSIVE — Desktop and up (>=1024px)\n ═══════════════════════════════════════════════════════════════════════════ */\n\n @media (min-width: 1024px) {\n .entropix-container {\n padding-left: var(--entropix-space-layout-page-margin-lg);\n padding-right: var(--entropix-space-layout-page-margin-lg);\n }\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AccessibilityProps, KeyboardHandlerConfig, KeyIntent, UseDialogOptions, UseTabsOptions, UseAccordionOptions, UseMenuOptions } from '@entropix/core';
|
|
1
|
+
import { AccessibilityProps, KeyboardHandlerConfig, KeyIntent, UseDialogOptions, UseTabsOptions, UseAccordionOptions, UseMenuOptions, UseRadioGroupOptions, UseSelectOptions } from '@entropix/core';
|
|
2
2
|
import * as react from 'react';
|
|
3
3
|
import react__default from 'react';
|
|
4
4
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
@@ -225,6 +225,187 @@ interface MenuItemProps {
|
|
|
225
225
|
}
|
|
226
226
|
declare function MenuItem({ index, onSelect, disabled, children, className, }: MenuItemProps): react_jsx_runtime.JSX.Element;
|
|
227
227
|
|
|
228
|
+
interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "onChange" | "disabled" | "value" | "size"> {
|
|
229
|
+
/** Controlled value */
|
|
230
|
+
value?: string;
|
|
231
|
+
/** Default value for uncontrolled mode */
|
|
232
|
+
defaultValue?: string;
|
|
233
|
+
/** Called when the value changes */
|
|
234
|
+
onChange?: (value: string) => void;
|
|
235
|
+
/** Whether the input is disabled */
|
|
236
|
+
disabled?: boolean;
|
|
237
|
+
/** Whether the input is read-only */
|
|
238
|
+
readOnly?: boolean;
|
|
239
|
+
/** Whether the input is required */
|
|
240
|
+
required?: boolean;
|
|
241
|
+
/** Whether the input is in an invalid state */
|
|
242
|
+
invalid?: boolean;
|
|
243
|
+
/** Label text */
|
|
244
|
+
label?: string;
|
|
245
|
+
/** Helper text displayed below the input */
|
|
246
|
+
helperText?: string;
|
|
247
|
+
/** Error message displayed below the input (sets invalid=true when present) */
|
|
248
|
+
errorMessage?: string;
|
|
249
|
+
/** Visual variant */
|
|
250
|
+
variant?: "default" | "filled";
|
|
251
|
+
/** Size */
|
|
252
|
+
size?: "sm" | "md" | "lg";
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Input component — web adapter for @entropix/core's useInput.
|
|
256
|
+
*
|
|
257
|
+
* Renders a wrapper div with label, input, helper text, and error message.
|
|
258
|
+
* Sets data-state, data-variant, and data-size attributes for CSS targeting.
|
|
259
|
+
*/
|
|
260
|
+
declare const Input: react.ForwardRefExoticComponent<InputProps & react.RefAttributes<HTMLInputElement>>;
|
|
261
|
+
|
|
262
|
+
interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, "onChange" | "disabled" | "value"> {
|
|
263
|
+
/** Controlled value */
|
|
264
|
+
value?: string;
|
|
265
|
+
/** Default value for uncontrolled mode */
|
|
266
|
+
defaultValue?: string;
|
|
267
|
+
/** Called when the value changes */
|
|
268
|
+
onChange?: (value: string) => void;
|
|
269
|
+
/** Whether the textarea is disabled */
|
|
270
|
+
disabled?: boolean;
|
|
271
|
+
/** Whether the textarea is read-only */
|
|
272
|
+
readOnly?: boolean;
|
|
273
|
+
/** Whether the textarea is required */
|
|
274
|
+
required?: boolean;
|
|
275
|
+
/** Whether the textarea is in an invalid state */
|
|
276
|
+
invalid?: boolean;
|
|
277
|
+
/** Label text */
|
|
278
|
+
label?: string;
|
|
279
|
+
/** Helper text displayed below the textarea */
|
|
280
|
+
helperText?: string;
|
|
281
|
+
/** Error message displayed below the textarea (sets invalid=true when present) */
|
|
282
|
+
errorMessage?: string;
|
|
283
|
+
/** Visual variant */
|
|
284
|
+
variant?: "default" | "filled";
|
|
285
|
+
/** Size */
|
|
286
|
+
size?: "sm" | "md" | "lg";
|
|
287
|
+
/** Number of visible text rows */
|
|
288
|
+
rows?: number;
|
|
289
|
+
/** Resize behavior */
|
|
290
|
+
resize?: "none" | "vertical" | "both";
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Textarea component — web adapter for @entropix/core's useInput.
|
|
294
|
+
*
|
|
295
|
+
* Renders a wrapper div with label, textarea, helper text, and error message.
|
|
296
|
+
* Sets data-state, data-variant, and data-size attributes for CSS targeting.
|
|
297
|
+
*/
|
|
298
|
+
declare const Textarea: react.ForwardRefExoticComponent<TextareaProps & react.RefAttributes<HTMLTextAreaElement>>;
|
|
299
|
+
|
|
300
|
+
interface CheckboxProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onChange" | "disabled"> {
|
|
301
|
+
/** Controlled checked state */
|
|
302
|
+
checked?: boolean;
|
|
303
|
+
/** Default checked state for uncontrolled mode */
|
|
304
|
+
defaultChecked?: boolean;
|
|
305
|
+
/** Called when checked state changes */
|
|
306
|
+
onChange?: (checked: boolean) => void;
|
|
307
|
+
/** Whether the checkbox is disabled */
|
|
308
|
+
disabled?: boolean;
|
|
309
|
+
/** Accessible label text */
|
|
310
|
+
label?: string;
|
|
311
|
+
/** Whether the checkbox is in an indeterminate state */
|
|
312
|
+
indeterminate?: boolean;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Checkbox component — web adapter for @entropix/core's useToggle.
|
|
316
|
+
*
|
|
317
|
+
* Renders a `<button type="button">` with role="checkbox" containing
|
|
318
|
+
* an indicator span and a label span.
|
|
319
|
+
* Sets data-state="checked"|"unchecked"|"indeterminate" for CSS targeting.
|
|
320
|
+
*/
|
|
321
|
+
declare const Checkbox: react.ForwardRefExoticComponent<CheckboxProps & react.RefAttributes<HTMLButtonElement>>;
|
|
322
|
+
|
|
323
|
+
interface RadioGroupProps extends UseRadioGroupOptions {
|
|
324
|
+
/** Label for the radio group */
|
|
325
|
+
label?: string;
|
|
326
|
+
children: react__default.ReactNode;
|
|
327
|
+
className?: string;
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* RadioGroup component — web adapter for @entropix/core's useRadioGroup.
|
|
331
|
+
*
|
|
332
|
+
* Renders a `<div role="radiogroup">` that provides context to RadioItem children.
|
|
333
|
+
* Sets data-orientation for CSS targeting.
|
|
334
|
+
*/
|
|
335
|
+
declare function RadioGroup({ children, label, className, ...options }: RadioGroupProps): react_jsx_runtime.JSX.Element;
|
|
336
|
+
|
|
337
|
+
interface RadioItemProps {
|
|
338
|
+
/** The value this radio option represents */
|
|
339
|
+
value: string;
|
|
340
|
+
/** Whether this specific radio is disabled */
|
|
341
|
+
disabled?: boolean;
|
|
342
|
+
/** Label text */
|
|
343
|
+
label?: string;
|
|
344
|
+
children?: react__default.ReactNode;
|
|
345
|
+
className?: string;
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* RadioItem component — a single radio option within a RadioGroup.
|
|
349
|
+
*
|
|
350
|
+
* Renders a `<button type="button" role="radio">` with an indicator
|
|
351
|
+
* circle and label. Sets data-state="checked"|"unchecked" for CSS targeting.
|
|
352
|
+
*/
|
|
353
|
+
declare function RadioItem({ value, disabled, label, children, className, }: RadioItemProps): react_jsx_runtime.JSX.Element;
|
|
354
|
+
|
|
355
|
+
interface SelectProps extends UseSelectOptions {
|
|
356
|
+
/** Label for the select */
|
|
357
|
+
label?: string;
|
|
358
|
+
children: react__default.ReactNode;
|
|
359
|
+
className?: string;
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Select component — web adapter for @entropix/core's useSelect.
|
|
363
|
+
*
|
|
364
|
+
* Provides context to SelectTrigger, SelectContent, and SelectOption children.
|
|
365
|
+
*/
|
|
366
|
+
declare function Select({ children, label, className, ...options }: SelectProps): react_jsx_runtime.JSX.Element;
|
|
367
|
+
|
|
368
|
+
interface SelectTriggerProps {
|
|
369
|
+
/** Placeholder text when no value is selected */
|
|
370
|
+
placeholder?: string;
|
|
371
|
+
children?: react__default.ReactNode;
|
|
372
|
+
className?: string;
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* SelectTrigger — renders like a styled input with a chevron.
|
|
376
|
+
*
|
|
377
|
+
* Displays the currently selected value or placeholder text.
|
|
378
|
+
*/
|
|
379
|
+
declare function SelectTrigger({ placeholder, children, className, }: SelectTriggerProps): react_jsx_runtime.JSX.Element;
|
|
380
|
+
|
|
381
|
+
interface SelectContentProps {
|
|
382
|
+
children: react__default.ReactNode;
|
|
383
|
+
className?: string;
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* SelectContent — renders the dropdown container for options.
|
|
387
|
+
*
|
|
388
|
+
* Only visible when the select is open.
|
|
389
|
+
*/
|
|
390
|
+
declare function SelectContent({ children, className }: SelectContentProps): react_jsx_runtime.JSX.Element | null;
|
|
391
|
+
|
|
392
|
+
interface SelectOptionProps {
|
|
393
|
+
/** The value this option represents */
|
|
394
|
+
value: string;
|
|
395
|
+
/** The index of this option in the list (auto-assigned by SelectContent if omitted) */
|
|
396
|
+
index?: number;
|
|
397
|
+
/** Whether this option is disabled */
|
|
398
|
+
disabled?: boolean;
|
|
399
|
+
children: react__default.ReactNode;
|
|
400
|
+
className?: string;
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* SelectOption — renders an option within SelectContent.
|
|
404
|
+
*
|
|
405
|
+
* Sets data-state="selected"|"unselected" for CSS targeting.
|
|
406
|
+
*/
|
|
407
|
+
declare function SelectOption({ value, index, disabled, children, className, }: SelectOptionProps): react_jsx_runtime.JSX.Element;
|
|
408
|
+
|
|
228
409
|
/**
|
|
229
410
|
* Breakpoint values in pixels, matching @entropix/tokens breakpoint primitives.
|
|
230
411
|
*/
|
|
@@ -376,4 +557,4 @@ interface DividerProps extends React.HTMLAttributes<HTMLHRElement> {
|
|
|
376
557
|
*/
|
|
377
558
|
declare const Divider: react.ForwardRefExoticComponent<DividerProps & react.RefAttributes<HTMLHRElement>>;
|
|
378
559
|
|
|
379
|
-
export { Accordion, AccordionItem, type AccordionItemProps, AccordionPanel, type AccordionPanelProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, BREAKPOINTS, type Breakpoint, Button, type ButtonProps, Container, type ContainerProps, type ContainerSize, Dialog, DialogClose, type DialogCloseProps, DialogContent, type DialogContentProps, DialogDescription, type DialogDescriptionProps, DialogOverlay, type DialogOverlayProps, type DialogProps, DialogTitle, type DialogTitleProps, DialogTrigger, type DialogTriggerProps, Divider, type DividerProps, Inline, type InlineProps, Menu, MenuContent, type MenuContentProps, MenuItem, type MenuItemProps, type MenuProps, MenuTrigger, type MenuTriggerProps, type SpacingSize$1 as SpacingSize, Stack, type StackProps, Switch, type SwitchProps, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, type TabProps, Tabs, type TabsProps, Toggle, type ToggleProps, mapAccessibilityToAria, useBreakpoint, useBreakpointValue, useFocusRestore, useFocusTrap, useKeyboardHandler, useMediaQuery };
|
|
560
|
+
export { Accordion, AccordionItem, type AccordionItemProps, AccordionPanel, type AccordionPanelProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, BREAKPOINTS, type Breakpoint, Button, type ButtonProps, Checkbox, type CheckboxProps, Container, type ContainerProps, type ContainerSize, Dialog, DialogClose, type DialogCloseProps, DialogContent, type DialogContentProps, DialogDescription, type DialogDescriptionProps, DialogOverlay, type DialogOverlayProps, type DialogProps, DialogTitle, type DialogTitleProps, DialogTrigger, type DialogTriggerProps, Divider, type DividerProps, Inline, type InlineProps, Input, type InputProps, Menu, MenuContent, type MenuContentProps, MenuItem, type MenuItemProps, type MenuProps, MenuTrigger, type MenuTriggerProps, RadioGroup, type RadioGroupProps, RadioItem, type RadioItemProps, Select, SelectContent, type SelectContentProps, SelectOption, type SelectOptionProps, type SelectProps, SelectTrigger, type SelectTriggerProps, type SpacingSize$1 as SpacingSize, Stack, type StackProps, Switch, type SwitchProps, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, type TabProps, Tabs, type TabsProps, Textarea, type TextareaProps, Toggle, type ToggleProps, mapAccessibilityToAria, useBreakpoint, useBreakpointValue, useFocusRestore, useFocusTrap, useKeyboardHandler, useMediaQuery };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AccessibilityProps, KeyboardHandlerConfig, KeyIntent, UseDialogOptions, UseTabsOptions, UseAccordionOptions, UseMenuOptions } from '@entropix/core';
|
|
1
|
+
import { AccessibilityProps, KeyboardHandlerConfig, KeyIntent, UseDialogOptions, UseTabsOptions, UseAccordionOptions, UseMenuOptions, UseRadioGroupOptions, UseSelectOptions } from '@entropix/core';
|
|
2
2
|
import * as react from 'react';
|
|
3
3
|
import react__default from 'react';
|
|
4
4
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
@@ -225,6 +225,187 @@ interface MenuItemProps {
|
|
|
225
225
|
}
|
|
226
226
|
declare function MenuItem({ index, onSelect, disabled, children, className, }: MenuItemProps): react_jsx_runtime.JSX.Element;
|
|
227
227
|
|
|
228
|
+
interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "onChange" | "disabled" | "value" | "size"> {
|
|
229
|
+
/** Controlled value */
|
|
230
|
+
value?: string;
|
|
231
|
+
/** Default value for uncontrolled mode */
|
|
232
|
+
defaultValue?: string;
|
|
233
|
+
/** Called when the value changes */
|
|
234
|
+
onChange?: (value: string) => void;
|
|
235
|
+
/** Whether the input is disabled */
|
|
236
|
+
disabled?: boolean;
|
|
237
|
+
/** Whether the input is read-only */
|
|
238
|
+
readOnly?: boolean;
|
|
239
|
+
/** Whether the input is required */
|
|
240
|
+
required?: boolean;
|
|
241
|
+
/** Whether the input is in an invalid state */
|
|
242
|
+
invalid?: boolean;
|
|
243
|
+
/** Label text */
|
|
244
|
+
label?: string;
|
|
245
|
+
/** Helper text displayed below the input */
|
|
246
|
+
helperText?: string;
|
|
247
|
+
/** Error message displayed below the input (sets invalid=true when present) */
|
|
248
|
+
errorMessage?: string;
|
|
249
|
+
/** Visual variant */
|
|
250
|
+
variant?: "default" | "filled";
|
|
251
|
+
/** Size */
|
|
252
|
+
size?: "sm" | "md" | "lg";
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Input component — web adapter for @entropix/core's useInput.
|
|
256
|
+
*
|
|
257
|
+
* Renders a wrapper div with label, input, helper text, and error message.
|
|
258
|
+
* Sets data-state, data-variant, and data-size attributes for CSS targeting.
|
|
259
|
+
*/
|
|
260
|
+
declare const Input: react.ForwardRefExoticComponent<InputProps & react.RefAttributes<HTMLInputElement>>;
|
|
261
|
+
|
|
262
|
+
interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, "onChange" | "disabled" | "value"> {
|
|
263
|
+
/** Controlled value */
|
|
264
|
+
value?: string;
|
|
265
|
+
/** Default value for uncontrolled mode */
|
|
266
|
+
defaultValue?: string;
|
|
267
|
+
/** Called when the value changes */
|
|
268
|
+
onChange?: (value: string) => void;
|
|
269
|
+
/** Whether the textarea is disabled */
|
|
270
|
+
disabled?: boolean;
|
|
271
|
+
/** Whether the textarea is read-only */
|
|
272
|
+
readOnly?: boolean;
|
|
273
|
+
/** Whether the textarea is required */
|
|
274
|
+
required?: boolean;
|
|
275
|
+
/** Whether the textarea is in an invalid state */
|
|
276
|
+
invalid?: boolean;
|
|
277
|
+
/** Label text */
|
|
278
|
+
label?: string;
|
|
279
|
+
/** Helper text displayed below the textarea */
|
|
280
|
+
helperText?: string;
|
|
281
|
+
/** Error message displayed below the textarea (sets invalid=true when present) */
|
|
282
|
+
errorMessage?: string;
|
|
283
|
+
/** Visual variant */
|
|
284
|
+
variant?: "default" | "filled";
|
|
285
|
+
/** Size */
|
|
286
|
+
size?: "sm" | "md" | "lg";
|
|
287
|
+
/** Number of visible text rows */
|
|
288
|
+
rows?: number;
|
|
289
|
+
/** Resize behavior */
|
|
290
|
+
resize?: "none" | "vertical" | "both";
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Textarea component — web adapter for @entropix/core's useInput.
|
|
294
|
+
*
|
|
295
|
+
* Renders a wrapper div with label, textarea, helper text, and error message.
|
|
296
|
+
* Sets data-state, data-variant, and data-size attributes for CSS targeting.
|
|
297
|
+
*/
|
|
298
|
+
declare const Textarea: react.ForwardRefExoticComponent<TextareaProps & react.RefAttributes<HTMLTextAreaElement>>;
|
|
299
|
+
|
|
300
|
+
interface CheckboxProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onChange" | "disabled"> {
|
|
301
|
+
/** Controlled checked state */
|
|
302
|
+
checked?: boolean;
|
|
303
|
+
/** Default checked state for uncontrolled mode */
|
|
304
|
+
defaultChecked?: boolean;
|
|
305
|
+
/** Called when checked state changes */
|
|
306
|
+
onChange?: (checked: boolean) => void;
|
|
307
|
+
/** Whether the checkbox is disabled */
|
|
308
|
+
disabled?: boolean;
|
|
309
|
+
/** Accessible label text */
|
|
310
|
+
label?: string;
|
|
311
|
+
/** Whether the checkbox is in an indeterminate state */
|
|
312
|
+
indeterminate?: boolean;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Checkbox component — web adapter for @entropix/core's useToggle.
|
|
316
|
+
*
|
|
317
|
+
* Renders a `<button type="button">` with role="checkbox" containing
|
|
318
|
+
* an indicator span and a label span.
|
|
319
|
+
* Sets data-state="checked"|"unchecked"|"indeterminate" for CSS targeting.
|
|
320
|
+
*/
|
|
321
|
+
declare const Checkbox: react.ForwardRefExoticComponent<CheckboxProps & react.RefAttributes<HTMLButtonElement>>;
|
|
322
|
+
|
|
323
|
+
interface RadioGroupProps extends UseRadioGroupOptions {
|
|
324
|
+
/** Label for the radio group */
|
|
325
|
+
label?: string;
|
|
326
|
+
children: react__default.ReactNode;
|
|
327
|
+
className?: string;
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* RadioGroup component — web adapter for @entropix/core's useRadioGroup.
|
|
331
|
+
*
|
|
332
|
+
* Renders a `<div role="radiogroup">` that provides context to RadioItem children.
|
|
333
|
+
* Sets data-orientation for CSS targeting.
|
|
334
|
+
*/
|
|
335
|
+
declare function RadioGroup({ children, label, className, ...options }: RadioGroupProps): react_jsx_runtime.JSX.Element;
|
|
336
|
+
|
|
337
|
+
interface RadioItemProps {
|
|
338
|
+
/** The value this radio option represents */
|
|
339
|
+
value: string;
|
|
340
|
+
/** Whether this specific radio is disabled */
|
|
341
|
+
disabled?: boolean;
|
|
342
|
+
/** Label text */
|
|
343
|
+
label?: string;
|
|
344
|
+
children?: react__default.ReactNode;
|
|
345
|
+
className?: string;
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* RadioItem component — a single radio option within a RadioGroup.
|
|
349
|
+
*
|
|
350
|
+
* Renders a `<button type="button" role="radio">` with an indicator
|
|
351
|
+
* circle and label. Sets data-state="checked"|"unchecked" for CSS targeting.
|
|
352
|
+
*/
|
|
353
|
+
declare function RadioItem({ value, disabled, label, children, className, }: RadioItemProps): react_jsx_runtime.JSX.Element;
|
|
354
|
+
|
|
355
|
+
interface SelectProps extends UseSelectOptions {
|
|
356
|
+
/** Label for the select */
|
|
357
|
+
label?: string;
|
|
358
|
+
children: react__default.ReactNode;
|
|
359
|
+
className?: string;
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Select component — web adapter for @entropix/core's useSelect.
|
|
363
|
+
*
|
|
364
|
+
* Provides context to SelectTrigger, SelectContent, and SelectOption children.
|
|
365
|
+
*/
|
|
366
|
+
declare function Select({ children, label, className, ...options }: SelectProps): react_jsx_runtime.JSX.Element;
|
|
367
|
+
|
|
368
|
+
interface SelectTriggerProps {
|
|
369
|
+
/** Placeholder text when no value is selected */
|
|
370
|
+
placeholder?: string;
|
|
371
|
+
children?: react__default.ReactNode;
|
|
372
|
+
className?: string;
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* SelectTrigger — renders like a styled input with a chevron.
|
|
376
|
+
*
|
|
377
|
+
* Displays the currently selected value or placeholder text.
|
|
378
|
+
*/
|
|
379
|
+
declare function SelectTrigger({ placeholder, children, className, }: SelectTriggerProps): react_jsx_runtime.JSX.Element;
|
|
380
|
+
|
|
381
|
+
interface SelectContentProps {
|
|
382
|
+
children: react__default.ReactNode;
|
|
383
|
+
className?: string;
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* SelectContent — renders the dropdown container for options.
|
|
387
|
+
*
|
|
388
|
+
* Only visible when the select is open.
|
|
389
|
+
*/
|
|
390
|
+
declare function SelectContent({ children, className }: SelectContentProps): react_jsx_runtime.JSX.Element | null;
|
|
391
|
+
|
|
392
|
+
interface SelectOptionProps {
|
|
393
|
+
/** The value this option represents */
|
|
394
|
+
value: string;
|
|
395
|
+
/** The index of this option in the list (auto-assigned by SelectContent if omitted) */
|
|
396
|
+
index?: number;
|
|
397
|
+
/** Whether this option is disabled */
|
|
398
|
+
disabled?: boolean;
|
|
399
|
+
children: react__default.ReactNode;
|
|
400
|
+
className?: string;
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* SelectOption — renders an option within SelectContent.
|
|
404
|
+
*
|
|
405
|
+
* Sets data-state="selected"|"unselected" for CSS targeting.
|
|
406
|
+
*/
|
|
407
|
+
declare function SelectOption({ value, index, disabled, children, className, }: SelectOptionProps): react_jsx_runtime.JSX.Element;
|
|
408
|
+
|
|
228
409
|
/**
|
|
229
410
|
* Breakpoint values in pixels, matching @entropix/tokens breakpoint primitives.
|
|
230
411
|
*/
|
|
@@ -376,4 +557,4 @@ interface DividerProps extends React.HTMLAttributes<HTMLHRElement> {
|
|
|
376
557
|
*/
|
|
377
558
|
declare const Divider: react.ForwardRefExoticComponent<DividerProps & react.RefAttributes<HTMLHRElement>>;
|
|
378
559
|
|
|
379
|
-
export { Accordion, AccordionItem, type AccordionItemProps, AccordionPanel, type AccordionPanelProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, BREAKPOINTS, type Breakpoint, Button, type ButtonProps, Container, type ContainerProps, type ContainerSize, Dialog, DialogClose, type DialogCloseProps, DialogContent, type DialogContentProps, DialogDescription, type DialogDescriptionProps, DialogOverlay, type DialogOverlayProps, type DialogProps, DialogTitle, type DialogTitleProps, DialogTrigger, type DialogTriggerProps, Divider, type DividerProps, Inline, type InlineProps, Menu, MenuContent, type MenuContentProps, MenuItem, type MenuItemProps, type MenuProps, MenuTrigger, type MenuTriggerProps, type SpacingSize$1 as SpacingSize, Stack, type StackProps, Switch, type SwitchProps, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, type TabProps, Tabs, type TabsProps, Toggle, type ToggleProps, mapAccessibilityToAria, useBreakpoint, useBreakpointValue, useFocusRestore, useFocusTrap, useKeyboardHandler, useMediaQuery };
|
|
560
|
+
export { Accordion, AccordionItem, type AccordionItemProps, AccordionPanel, type AccordionPanelProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, BREAKPOINTS, type Breakpoint, Button, type ButtonProps, Checkbox, type CheckboxProps, Container, type ContainerProps, type ContainerSize, Dialog, DialogClose, type DialogCloseProps, DialogContent, type DialogContentProps, DialogDescription, type DialogDescriptionProps, DialogOverlay, type DialogOverlayProps, type DialogProps, DialogTitle, type DialogTitleProps, DialogTrigger, type DialogTriggerProps, Divider, type DividerProps, Inline, type InlineProps, Input, type InputProps, Menu, MenuContent, type MenuContentProps, MenuItem, type MenuItemProps, type MenuProps, MenuTrigger, type MenuTriggerProps, RadioGroup, type RadioGroupProps, RadioItem, type RadioItemProps, Select, SelectContent, type SelectContentProps, SelectOption, type SelectOptionProps, type SelectProps, SelectTrigger, type SelectTriggerProps, type SpacingSize$1 as SpacingSize, Stack, type StackProps, Switch, type SwitchProps, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, type TabProps, Tabs, type TabsProps, Textarea, type TextareaProps, Toggle, type ToggleProps, mapAccessibilityToAria, useBreakpoint, useBreakpointValue, useFocusRestore, useFocusTrap, useKeyboardHandler, useMediaQuery };
|