@handijit/ui 0.0.0-stage → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +786 -2
- package/build/base.css +1 -0
- package/build/charts.cjs +2 -0
- package/build/charts.cjs.map +1 -0
- package/build/charts.css +1 -0
- package/build/charts.js +1866 -0
- package/build/charts.js.map +1 -0
- package/build/chat.cjs +4 -0
- package/build/chat.cjs.map +1 -0
- package/build/chat.css +1 -0
- package/build/chat.js +1121 -0
- package/build/chat.js.map +1 -0
- package/build/components/Accordion/index.cjs +2 -0
- package/build/components/Accordion/index.cjs.map +1 -0
- package/build/components/Accordion/index.d.ts +29 -0
- package/build/components/Accordion/index.js +42 -0
- package/build/components/Accordion/index.js.map +1 -0
- package/build/components/Accordion/style.css +1 -0
- package/build/components/Alert/index.cjs +2 -0
- package/build/components/Alert/index.cjs.map +1 -0
- package/build/components/Alert/index.d.ts +15 -0
- package/build/components/Alert/index.js +30 -0
- package/build/components/Alert/index.js.map +1 -0
- package/build/components/Alert/style.css +1 -0
- package/build/components/Avatar/index.cjs +2 -0
- package/build/components/Avatar/index.cjs.map +1 -0
- package/build/components/Avatar/index.d.ts +26 -0
- package/build/components/Avatar/index.js +57 -0
- package/build/components/Avatar/index.js.map +1 -0
- package/build/components/Avatar/style.css +1 -0
- package/build/components/Badge/index.cjs +2 -0
- package/build/components/Badge/index.cjs.map +1 -0
- package/build/components/Badge/index.d.ts +21 -0
- package/build/components/Badge/index.js +26 -0
- package/build/components/Badge/index.js.map +1 -0
- package/build/components/Badge/style.css +1 -0
- package/build/components/BottomSheet/index.cjs +2 -0
- package/build/components/BottomSheet/index.cjs.map +1 -0
- package/build/components/BottomSheet/index.d.ts +21 -0
- package/build/components/BottomSheet/index.js +85 -0
- package/build/components/BottomSheet/index.js.map +1 -0
- package/build/components/BottomSheet/style.css +1 -0
- package/build/components/Breadcrumb/index.cjs +2 -0
- package/build/components/Breadcrumb/index.cjs.map +1 -0
- package/build/components/Breadcrumb/index.d.ts +20 -0
- package/build/components/Breadcrumb/index.js +31 -0
- package/build/components/Breadcrumb/index.js.map +1 -0
- package/build/components/Breadcrumb/style.css +1 -0
- package/build/components/Button/index.cjs +2 -0
- package/build/components/Button/index.cjs.map +1 -0
- package/build/components/Button/index.d.ts +32 -0
- package/build/components/Button/index.js +88 -0
- package/build/components/Button/index.js.map +1 -0
- package/build/components/Button/style.css +1 -0
- package/build/components/Card/index.cjs +2 -0
- package/build/components/Card/index.cjs.map +1 -0
- package/build/components/Card/index.d.ts +51 -0
- package/build/components/Card/index.js +58 -0
- package/build/components/Card/index.js.map +1 -0
- package/build/components/Card/style.css +1 -0
- package/build/components/Carousel/index.cjs +2 -0
- package/build/components/Carousel/index.cjs.map +1 -0
- package/build/components/Carousel/index.d.ts +24 -0
- package/build/components/Carousel/index.js +111 -0
- package/build/components/Carousel/index.js.map +1 -0
- package/build/components/Carousel/style.css +1 -0
- package/build/components/Checkbox/index.cjs +2 -0
- package/build/components/Checkbox/index.cjs.map +1 -0
- package/build/components/Checkbox/index.d.ts +10 -0
- package/build/components/Checkbox/index.js +33 -0
- package/build/components/Checkbox/index.js.map +1 -0
- package/build/components/Checkbox/style.css +1 -0
- package/build/components/Chip/index.cjs +2 -0
- package/build/components/Chip/index.cjs.map +1 -0
- package/build/components/Chip/index.d.ts +27 -0
- package/build/components/Chip/index.js +67 -0
- package/build/components/Chip/index.js.map +1 -0
- package/build/components/Chip/style.css +1 -0
- package/build/components/ChipGroup/index.cjs +2 -0
- package/build/components/ChipGroup/index.cjs.map +1 -0
- package/build/components/ChipGroup/index.d.ts +34 -0
- package/build/components/ChipGroup/index.js +64 -0
- package/build/components/ChipGroup/index.js.map +1 -0
- package/build/components/ChipGroup/style.css +1 -0
- package/build/components/CodeBadge/index.cjs +2 -0
- package/build/components/CodeBadge/index.cjs.map +1 -0
- package/build/components/CodeBadge/index.d.ts +36 -0
- package/build/components/CodeBadge/index.js +62 -0
- package/build/components/CodeBadge/index.js.map +1 -0
- package/build/components/CodeBadge/style.css +1 -0
- package/build/components/Combobox/index.cjs +2 -0
- package/build/components/Combobox/index.cjs.map +1 -0
- package/build/components/Combobox/index.d.ts +6 -0
- package/build/components/Combobox/index.js +302 -0
- package/build/components/Combobox/index.js.map +1 -0
- package/build/components/Combobox/style.css +1 -0
- package/build/components/CommandPalette/index.cjs +2 -0
- package/build/components/CommandPalette/index.cjs.map +1 -0
- package/build/components/CommandPalette/index.d.ts +37 -0
- package/build/components/CommandPalette/index.js +181 -0
- package/build/components/CommandPalette/index.js.map +1 -0
- package/build/components/CommandPalette/style.css +1 -0
- package/build/components/ConfirmDialog/index.cjs +2 -0
- package/build/components/ConfirmDialog/index.cjs.map +1 -0
- package/build/components/ConfirmDialog/index.d.ts +34 -0
- package/build/components/ConfirmDialog/index.js +85 -0
- package/build/components/ConfirmDialog/index.js.map +1 -0
- package/build/components/CopyField/index.cjs +2 -0
- package/build/components/CopyField/index.cjs.map +1 -0
- package/build/components/CopyField/index.d.ts +20 -0
- package/build/components/CopyField/index.js +44 -0
- package/build/components/CopyField/index.js.map +1 -0
- package/build/components/CopyField/style.css +1 -0
- package/build/components/DataTable/index.cjs +2 -0
- package/build/components/DataTable/index.cjs.map +1 -0
- package/build/components/DataTable/index.d.ts +60 -0
- package/build/components/DataTable/index.js +109 -0
- package/build/components/DataTable/index.js.map +1 -0
- package/build/components/DataTable/style.css +1 -0
- package/build/components/DateField/index.cjs +2 -0
- package/build/components/DateField/index.cjs.map +1 -0
- package/build/components/DateField/index.d.ts +44 -0
- package/build/components/DateField/index.js +79 -0
- package/build/components/DateField/index.js.map +1 -0
- package/build/components/DateField/style.css +1 -0
- package/build/components/Directory/index.cjs +2 -0
- package/build/components/Directory/index.cjs.map +1 -0
- package/build/components/Directory/index.d.ts +51 -0
- package/build/components/Directory/index.js +46 -0
- package/build/components/Directory/index.js.map +1 -0
- package/build/components/Directory/style.css +1 -0
- package/build/components/Disclosure/index.cjs +2 -0
- package/build/components/Disclosure/index.cjs.map +1 -0
- package/build/components/Disclosure/index.d.ts +34 -0
- package/build/components/Disclosure/index.js +64 -0
- package/build/components/Disclosure/index.js.map +1 -0
- package/build/components/Disclosure/style.css +1 -0
- package/build/components/Divider/index.cjs +2 -0
- package/build/components/Divider/index.cjs.map +1 -0
- package/build/components/Divider/index.d.ts +10 -0
- package/build/components/Divider/index.js +24 -0
- package/build/components/Divider/index.js.map +1 -0
- package/build/components/Divider/style.css +1 -0
- package/build/components/Drawer/index.cjs +2 -0
- package/build/components/Drawer/index.cjs.map +1 -0
- package/build/components/Drawer/index.d.ts +22 -0
- package/build/components/Drawer/index.js +88 -0
- package/build/components/Drawer/index.js.map +1 -0
- package/build/components/Drawer/style.css +1 -0
- package/build/components/EmptyState/index.cjs +2 -0
- package/build/components/EmptyState/index.cjs.map +1 -0
- package/build/components/EmptyState/index.d.ts +19 -0
- package/build/components/EmptyState/index.js +35 -0
- package/build/components/EmptyState/index.js.map +1 -0
- package/build/components/EmptyState/style.css +1 -0
- package/build/components/Field/index.cjs +2 -0
- package/build/components/Field/index.cjs.map +1 -0
- package/build/components/Field/index.d.ts +31 -0
- package/build/components/Field/index.js +52 -0
- package/build/components/Field/index.js.map +1 -0
- package/build/components/Field/style.css +1 -0
- package/build/components/FileUpload/index.cjs +2 -0
- package/build/components/FileUpload/index.cjs.map +1 -0
- package/build/components/FileUpload/index.d.ts +42 -0
- package/build/components/FileUpload/index.js +145 -0
- package/build/components/FileUpload/index.js.map +1 -0
- package/build/components/FileUpload/style.css +1 -0
- package/build/components/FilterBar/index.cjs +2 -0
- package/build/components/FilterBar/index.cjs.map +1 -0
- package/build/components/FilterBar/index.d.ts +28 -0
- package/build/components/FilterBar/index.js +35 -0
- package/build/components/FilterBar/index.js.map +1 -0
- package/build/components/FilterBar/style.css +1 -0
- package/build/components/IconButton/index.cjs +2 -0
- package/build/components/IconButton/index.cjs.map +1 -0
- package/build/components/IconButton/index.d.ts +22 -0
- package/build/components/IconButton/index.js +61 -0
- package/build/components/IconButton/index.js.map +1 -0
- package/build/components/IconButton/style.css +1 -0
- package/build/components/Input/index.cjs +2 -0
- package/build/components/Input/index.cjs.map +1 -0
- package/build/components/Input/index.d.ts +15 -0
- package/build/components/Input/index.js +52 -0
- package/build/components/Input/index.js.map +1 -0
- package/build/components/Input/style.css +1 -0
- package/build/components/Kbd/index.cjs +2 -0
- package/build/components/Kbd/index.cjs.map +1 -0
- package/build/components/Kbd/index.d.ts +12 -0
- package/build/components/Kbd/index.js +13 -0
- package/build/components/Kbd/index.js.map +1 -0
- package/build/components/Kbd/style.css +1 -0
- package/build/components/Link/index.cjs +2 -0
- package/build/components/Link/index.cjs.map +1 -0
- package/build/components/Link/index.d.ts +5 -0
- package/build/components/Link/index.js +11 -0
- package/build/components/Link/index.js.map +1 -0
- package/build/components/Menu/index.cjs +2 -0
- package/build/components/Menu/index.cjs.map +1 -0
- package/build/components/Menu/index.d.ts +46 -0
- package/build/components/Menu/index.js +241 -0
- package/build/components/Menu/index.js.map +1 -0
- package/build/components/Menu/style.css +1 -0
- package/build/components/Modal/index.cjs +2 -0
- package/build/components/Modal/index.cjs.map +1 -0
- package/build/components/Modal/index.d.ts +28 -0
- package/build/components/Modal/index.js +92 -0
- package/build/components/Modal/index.js.map +1 -0
- package/build/components/Modal/style.css +1 -0
- package/build/components/PageHeader/index.cjs +2 -0
- package/build/components/PageHeader/index.cjs.map +1 -0
- package/build/components/PageHeader/index.d.ts +24 -0
- package/build/components/PageHeader/index.js +34 -0
- package/build/components/PageHeader/index.js.map +1 -0
- package/build/components/PageHeader/style.css +1 -0
- package/build/components/Pagination/index.cjs +2 -0
- package/build/components/Pagination/index.cjs.map +1 -0
- package/build/components/Pagination/index.d.ts +39 -0
- package/build/components/Pagination/index.js +128 -0
- package/build/components/Pagination/index.js.map +1 -0
- package/build/components/Pagination/style.css +1 -0
- package/build/components/Panel/index.cjs +2 -0
- package/build/components/Panel/index.cjs.map +1 -0
- package/build/components/Panel/index.d.ts +43 -0
- package/build/components/Panel/index.js +55 -0
- package/build/components/Panel/index.js.map +1 -0
- package/build/components/Panel/style.css +1 -0
- package/build/components/PasswordInput/index.cjs +2 -0
- package/build/components/PasswordInput/index.cjs.map +1 -0
- package/build/components/PasswordInput/index.d.ts +14 -0
- package/build/components/PasswordInput/index.js +40 -0
- package/build/components/PasswordInput/index.js.map +1 -0
- package/build/components/PasswordInput/style.css +1 -0
- package/build/components/Popover/index.cjs +2 -0
- package/build/components/Popover/index.cjs.map +1 -0
- package/build/components/Popover/index.d.ts +20 -0
- package/build/components/Popover/index.js +91 -0
- package/build/components/Popover/index.js.map +1 -0
- package/build/components/Popover/style.css +1 -0
- package/build/components/Price/index.cjs +2 -0
- package/build/components/Price/index.cjs.map +1 -0
- package/build/components/Price/index.d.ts +22 -0
- package/build/components/Price/index.js +46 -0
- package/build/components/Price/index.js.map +1 -0
- package/build/components/Price/style.css +1 -0
- package/build/components/Progress/index.cjs +2 -0
- package/build/components/Progress/index.cjs.map +1 -0
- package/build/components/Progress/index.d.ts +49 -0
- package/build/components/Progress/index.js +120 -0
- package/build/components/Progress/index.js.map +1 -0
- package/build/components/Progress/style.css +1 -0
- package/build/components/PromptDialog/index.cjs +2 -0
- package/build/components/PromptDialog/index.cjs.map +1 -0
- package/build/components/PromptDialog/index.d.ts +36 -0
- package/build/components/PromptDialog/index.js +119 -0
- package/build/components/PromptDialog/index.js.map +1 -0
- package/build/components/PromptDialog/style.css +1 -0
- package/build/components/QuantityStepper/index.cjs +2 -0
- package/build/components/QuantityStepper/index.cjs.map +1 -0
- package/build/components/QuantityStepper/index.d.ts +21 -0
- package/build/components/QuantityStepper/index.js +106 -0
- package/build/components/QuantityStepper/index.js.map +1 -0
- package/build/components/QuantityStepper/style.css +1 -0
- package/build/components/Radio/index.cjs +2 -0
- package/build/components/Radio/index.cjs.map +1 -0
- package/build/components/Radio/index.d.ts +12 -0
- package/build/components/Radio/index.js +35 -0
- package/build/components/Radio/index.js.map +1 -0
- package/build/components/Radio/style.css +1 -0
- package/build/components/RadioCard/index.cjs +2 -0
- package/build/components/RadioCard/index.cjs.map +1 -0
- package/build/components/RadioCard/index.d.ts +16 -0
- package/build/components/RadioCard/index.js +48 -0
- package/build/components/RadioCard/index.js.map +1 -0
- package/build/components/RadioCard/style.css +1 -0
- package/build/components/RangeSlider/index.cjs +2 -0
- package/build/components/RangeSlider/index.cjs.map +1 -0
- package/build/components/RangeSlider/index.d.ts +26 -0
- package/build/components/RangeSlider/index.js +102 -0
- package/build/components/RangeSlider/index.js.map +1 -0
- package/build/components/RangeSlider/style.css +1 -0
- package/build/components/Rating/index.cjs +2 -0
- package/build/components/Rating/index.cjs.map +1 -0
- package/build/components/Rating/index.d.ts +16 -0
- package/build/components/Rating/index.js +29 -0
- package/build/components/Rating/index.js.map +1 -0
- package/build/components/Rating/style.css +1 -0
- package/build/components/RatingInput/index.cjs +2 -0
- package/build/components/RatingInput/index.cjs.map +1 -0
- package/build/components/RatingInput/index.d.ts +21 -0
- package/build/components/RatingInput/index.js +75 -0
- package/build/components/RatingInput/index.js.map +1 -0
- package/build/components/RatingInput/style.css +1 -0
- package/build/components/ScrollArea/index.cjs +2 -0
- package/build/components/ScrollArea/index.cjs.map +1 -0
- package/build/components/ScrollArea/index.d.ts +23 -0
- package/build/components/ScrollArea/index.js +65 -0
- package/build/components/ScrollArea/index.js.map +1 -0
- package/build/components/ScrollArea/style.css +1 -0
- package/build/components/SectionHeader/index.cjs +2 -0
- package/build/components/SectionHeader/index.cjs.map +1 -0
- package/build/components/SectionHeader/index.d.ts +17 -0
- package/build/components/SectionHeader/index.js +25 -0
- package/build/components/SectionHeader/index.js.map +1 -0
- package/build/components/SectionHeader/style.css +1 -0
- package/build/components/SegmentedControl/index.cjs +2 -0
- package/build/components/SegmentedControl/index.cjs.map +1 -0
- package/build/components/SegmentedControl/index.d.ts +24 -0
- package/build/components/SegmentedControl/index.js +69 -0
- package/build/components/SegmentedControl/index.js.map +1 -0
- package/build/components/SegmentedControl/style.css +1 -0
- package/build/components/Select/index.cjs +2 -0
- package/build/components/Select/index.cjs.map +1 -0
- package/build/components/Select/index.d.ts +39 -0
- package/build/components/Select/index.js +179 -0
- package/build/components/Select/index.js.map +1 -0
- package/build/components/Select/style.css +1 -0
- package/build/components/Skeleton/index.cjs +2 -0
- package/build/components/Skeleton/index.cjs.map +1 -0
- package/build/components/Skeleton/index.d.ts +25 -0
- package/build/components/Skeleton/index.js +50 -0
- package/build/components/Skeleton/index.js.map +1 -0
- package/build/components/Skeleton/style.css +1 -0
- package/build/components/Spinner/index.cjs +2 -0
- package/build/components/Spinner/index.cjs.map +1 -0
- package/build/components/Spinner/index.d.ts +11 -0
- package/build/components/Spinner/index.js +15 -0
- package/build/components/Spinner/index.js.map +1 -0
- package/build/components/Spinner/style.css +1 -0
- package/build/components/Stat/index.cjs +2 -0
- package/build/components/Stat/index.cjs.map +1 -0
- package/build/components/Stat/index.d.ts +34 -0
- package/build/components/Stat/index.js +72 -0
- package/build/components/Stat/index.js.map +1 -0
- package/build/components/Stat/style.css +1 -0
- package/build/components/StatusDot/index.cjs +2 -0
- package/build/components/StatusDot/index.cjs.map +1 -0
- package/build/components/StatusDot/index.d.ts +23 -0
- package/build/components/StatusDot/index.js +23 -0
- package/build/components/StatusDot/index.js.map +1 -0
- package/build/components/StatusDot/style.css +1 -0
- package/build/components/Steps/index.cjs +2 -0
- package/build/components/Steps/index.cjs.map +1 -0
- package/build/components/Steps/index.d.ts +23 -0
- package/build/components/Steps/index.js +69 -0
- package/build/components/Steps/index.js.map +1 -0
- package/build/components/Steps/style.css +1 -0
- package/build/components/SummaryCard/index.cjs +2 -0
- package/build/components/SummaryCard/index.cjs.map +1 -0
- package/build/components/SummaryCard/index.d.ts +24 -0
- package/build/components/SummaryCard/index.js +33 -0
- package/build/components/SummaryCard/index.js.map +1 -0
- package/build/components/SummaryCard/style.css +1 -0
- package/build/components/Switch/index.cjs +2 -0
- package/build/components/Switch/index.cjs.map +1 -0
- package/build/components/Switch/index.d.ts +16 -0
- package/build/components/Switch/index.js +42 -0
- package/build/components/Switch/index.js.map +1 -0
- package/build/components/Switch/style.css +1 -0
- package/build/components/Table/index.cjs +2 -0
- package/build/components/Table/index.cjs.map +1 -0
- package/build/components/Table/index.d.ts +28 -0
- package/build/components/Table/index.js +58 -0
- package/build/components/Table/index.js.map +1 -0
- package/build/components/Table/style.css +1 -0
- package/build/components/TableCheckbox/index.cjs +2 -0
- package/build/components/TableCheckbox/index.cjs.map +1 -0
- package/build/components/TableCheckbox/index.d.ts +15 -0
- package/build/components/TableCheckbox/index.js +31 -0
- package/build/components/TableCheckbox/index.js.map +1 -0
- package/build/components/TableCheckbox/style.css +1 -0
- package/build/components/Tabs/index.cjs +2 -0
- package/build/components/Tabs/index.cjs.map +1 -0
- package/build/components/Tabs/index.d.ts +27 -0
- package/build/components/Tabs/index.js +102 -0
- package/build/components/Tabs/index.js.map +1 -0
- package/build/components/Tabs/style.css +1 -0
- package/build/components/TagInput/index.cjs +2 -0
- package/build/components/TagInput/index.cjs.map +1 -0
- package/build/components/TagInput/index.d.ts +25 -0
- package/build/components/TagInput/index.js +124 -0
- package/build/components/TagInput/index.js.map +1 -0
- package/build/components/TagInput/style.css +1 -0
- package/build/components/TextLink/index.cjs +2 -0
- package/build/components/TextLink/index.cjs.map +1 -0
- package/build/components/TextLink/index.d.ts +16 -0
- package/build/components/TextLink/index.js +32 -0
- package/build/components/TextLink/index.js.map +1 -0
- package/build/components/TextLink/style.css +1 -0
- package/build/components/Textarea/index.cjs +2 -0
- package/build/components/Textarea/index.cjs.map +1 -0
- package/build/components/Textarea/index.d.ts +20 -0
- package/build/components/Textarea/index.js +68 -0
- package/build/components/Textarea/index.js.map +1 -0
- package/build/components/Textarea/style.css +1 -0
- package/build/components/Tile/index.cjs +2 -0
- package/build/components/Tile/index.cjs.map +1 -0
- package/build/components/Tile/index.d.ts +19 -0
- package/build/components/Tile/index.js +24 -0
- package/build/components/Tile/index.js.map +1 -0
- package/build/components/Tile/style.css +1 -0
- package/build/components/Timeline/index.cjs +2 -0
- package/build/components/Timeline/index.cjs.map +1 -0
- package/build/components/Timeline/index.d.ts +24 -0
- package/build/components/Timeline/index.js +56 -0
- package/build/components/Timeline/index.js.map +1 -0
- package/build/components/Timeline/style.css +1 -0
- package/build/components/Toast/index.cjs +2 -0
- package/build/components/Toast/index.cjs.map +1 -0
- package/build/components/Toast/index.d.ts +43 -0
- package/build/components/Toast/index.js +136 -0
- package/build/components/Toast/index.js.map +1 -0
- package/build/components/Toast/style.css +1 -0
- package/build/components/ToastPortal/index.cjs +2 -0
- package/build/components/ToastPortal/index.cjs.map +1 -0
- package/build/components/ToastPortal/index.d.ts +8 -0
- package/build/components/ToastPortal/index.js +15 -0
- package/build/components/ToastPortal/index.js.map +1 -0
- package/build/components/Tooltip/index.cjs +2 -0
- package/build/components/Tooltip/index.cjs.map +1 -0
- package/build/components/Tooltip/index.d.ts +23 -0
- package/build/components/Tooltip/index.js +116 -0
- package/build/components/Tooltip/index.js.map +1 -0
- package/build/components/Tooltip/style.css +1 -0
- package/build/constants/breakpoint.constants.cjs +2 -0
- package/build/constants/breakpoint.constants.cjs.map +1 -0
- package/build/constants/breakpoint.constants.d.ts +13 -0
- package/build/constants/breakpoint.constants.js +11 -0
- package/build/constants/breakpoint.constants.js.map +1 -0
- package/build/constants/combobox.constants.cjs +2 -0
- package/build/constants/combobox.constants.cjs.map +1 -0
- package/build/constants/combobox.constants.d.ts +11 -0
- package/build/constants/combobox.constants.js +7 -0
- package/build/constants/combobox.constants.js.map +1 -0
- package/build/constants/scroll.constants.cjs +2 -0
- package/build/constants/scroll.constants.cjs.map +1 -0
- package/build/constants/scroll.constants.d.ts +7 -0
- package/build/constants/scroll.constants.js +5 -0
- package/build/constants/scroll.constants.js.map +1 -0
- package/build/enums/ui-size.enum.cjs +2 -0
- package/build/enums/ui-size.enum.cjs.map +1 -0
- package/build/enums/ui-size.enum.d.ts +12 -0
- package/build/enums/ui-size.enum.js +5 -0
- package/build/enums/ui-size.enum.js.map +1 -0
- package/build/enums/ui-variant.enum.cjs +2 -0
- package/build/enums/ui-variant.enum.cjs.map +1 -0
- package/build/enums/ui-variant.enum.d.ts +20 -0
- package/build/enums/ui-variant.enum.js +5 -0
- package/build/enums/ui-variant.enum.js.map +1 -0
- package/build/helpers/class-name.helper.cjs +2 -0
- package/build/helpers/class-name.helper.cjs.map +1 -0
- package/build/helpers/class-name.helper.d.ts +3 -0
- package/build/helpers/class-name.helper.js +10 -0
- package/build/helpers/class-name.helper.js.map +1 -0
- package/build/helpers/component.helper.cjs +2 -0
- package/build/helpers/component.helper.cjs.map +1 -0
- package/build/helpers/component.helper.d.ts +13 -0
- package/build/helpers/component.helper.js +5 -0
- package/build/helpers/component.helper.js.map +1 -0
- package/build/helpers/focus.helper.cjs +2 -0
- package/build/helpers/focus.helper.cjs.map +1 -0
- package/build/helpers/focus.helper.d.ts +42 -0
- package/build/helpers/focus.helper.js +65 -0
- package/build/helpers/focus.helper.js.map +1 -0
- package/build/helpers/label.helper.cjs +2 -0
- package/build/helpers/label.helper.cjs.map +1 -0
- package/build/helpers/label.helper.d.ts +11 -0
- package/build/helpers/label.helper.js +11 -0
- package/build/helpers/label.helper.js.map +1 -0
- package/build/helpers/portal.helper.cjs +2 -0
- package/build/helpers/portal.helper.cjs.map +1 -0
- package/build/helpers/portal.helper.d.ts +28 -0
- package/build/helpers/portal.helper.js +36 -0
- package/build/helpers/portal.helper.js.map +1 -0
- package/build/helpers/scroll.helper.cjs +2 -0
- package/build/helpers/scroll.helper.cjs.map +1 -0
- package/build/helpers/scroll.helper.d.ts +8 -0
- package/build/helpers/scroll.helper.js +11 -0
- package/build/helpers/scroll.helper.js.map +1 -0
- package/build/helpers/text.helper.cjs +2 -0
- package/build/helpers/text.helper.cjs.map +1 -0
- package/build/helpers/text.helper.d.ts +5 -0
- package/build/helpers/text.helper.js +6 -0
- package/build/helpers/text.helper.js.map +1 -0
- package/build/helpers/theme.helper.cjs +2 -0
- package/build/helpers/theme.helper.cjs.map +1 -0
- package/build/helpers/theme.helper.d.ts +18 -0
- package/build/helpers/theme.helper.js +37 -0
- package/build/helpers/theme.helper.js.map +1 -0
- package/build/hooks/useAnnounce.cjs +2 -0
- package/build/hooks/useAnnounce.cjs.map +1 -0
- package/build/hooks/useAnnounce.d.ts +4 -0
- package/build/hooks/useAnnounce.js +23 -0
- package/build/hooks/useAnnounce.js.map +1 -0
- package/build/hooks/useAsyncSearch.cjs +2 -0
- package/build/hooks/useAsyncSearch.cjs.map +1 -0
- package/build/hooks/useAsyncSearch.d.ts +11 -0
- package/build/hooks/useAsyncSearch.js +17 -0
- package/build/hooks/useAsyncSearch.js.map +1 -0
- package/build/hooks/useCopyFeedback.cjs +2 -0
- package/build/hooks/useCopyFeedback.cjs.map +1 -0
- package/build/hooks/useCopyFeedback.d.ts +10 -0
- package/build/hooks/useCopyFeedback.js +25 -0
- package/build/hooks/useCopyFeedback.js.map +1 -0
- package/build/hooks/useDismissOnEscape.cjs +2 -0
- package/build/hooks/useDismissOnEscape.cjs.map +1 -0
- package/build/hooks/useDismissOnEscape.d.ts +12 -0
- package/build/hooks/useDismissOnEscape.js +18 -0
- package/build/hooks/useDismissOnEscape.js.map +1 -0
- package/build/hooks/useListboxNavigation.cjs +2 -0
- package/build/hooks/useListboxNavigation.cjs.map +1 -0
- package/build/hooks/useListboxNavigation.d.ts +7 -0
- package/build/hooks/useListboxNavigation.js +53 -0
- package/build/hooks/useListboxNavigation.js.map +1 -0
- package/build/hooks/usePortalSurface.cjs +2 -0
- package/build/hooks/usePortalSurface.cjs.map +1 -0
- package/build/hooks/usePortalSurface.d.ts +25 -0
- package/build/hooks/usePortalSurface.js +19 -0
- package/build/hooks/usePortalSurface.js.map +1 -0
- package/build/hooks/usePositioning.cjs +2 -0
- package/build/hooks/usePositioning.cjs.map +1 -0
- package/build/hooks/usePositioning.d.ts +13 -0
- package/build/hooks/usePositioning.js +74 -0
- package/build/hooks/usePositioning.js.map +1 -0
- package/build/hooks/useScrollLock.cjs +2 -0
- package/build/hooks/useScrollLock.cjs.map +1 -0
- package/build/hooks/useScrollLock.d.ts +2 -0
- package/build/hooks/useScrollLock.js +34 -0
- package/build/hooks/useScrollLock.js.map +1 -0
- package/build/hooks/useSheetViewport.cjs +2 -0
- package/build/hooks/useSheetViewport.cjs.map +1 -0
- package/build/hooks/useSheetViewport.d.ts +6 -0
- package/build/hooks/useSheetViewport.js +29 -0
- package/build/hooks/useSheetViewport.js.map +1 -0
- package/build/hooks/useStickToBottom.cjs +2 -0
- package/build/hooks/useStickToBottom.cjs.map +1 -0
- package/build/hooks/useStickToBottom.d.ts +12 -0
- package/build/hooks/useStickToBottom.js +39 -0
- package/build/hooks/useStickToBottom.js.map +1 -0
- package/build/hooks/useUiTheme.cjs +2 -0
- package/build/hooks/useUiTheme.cjs.map +1 -0
- package/build/hooks/useUiTheme.d.ts +10 -0
- package/build/hooks/useUiTheme.js +42 -0
- package/build/hooks/useUiTheme.js.map +1 -0
- package/build/hooks/useUiTokens.cjs +2 -0
- package/build/hooks/useUiTokens.cjs.map +1 -0
- package/build/hooks/useUiTokens.d.ts +11 -0
- package/build/hooks/useUiTokens.js +36 -0
- package/build/hooks/useUiTokens.js.map +1 -0
- package/build/hooks/useVirtualList.cjs +2 -0
- package/build/hooks/useVirtualList.cjs.map +1 -0
- package/build/hooks/useVirtualList.d.ts +13 -0
- package/build/hooks/useVirtualList.js +41 -0
- package/build/hooks/useVirtualList.js.map +1 -0
- package/build/index.cjs +2 -0
- package/build/index.cjs.map +1 -0
- package/build/index.d.ts +93 -0
- package/build/index.js +199 -0
- package/build/index.js.map +1 -0
- package/build/scss/_index.scss +7 -0
- package/build/scss/_mixins.scss +828 -0
- package/build/scss/_variables.scss +243 -0
- package/build/styles/base.d.ts +0 -0
- package/build/styles.css +133 -0
- package/build/theme/UiProvider.cjs +2 -0
- package/build/theme/UiProvider.cjs.map +1 -0
- package/build/theme/UiProvider.d.ts +23 -0
- package/build/theme/UiProvider.js +12 -0
- package/build/theme/UiProvider.js.map +1 -0
- package/build/theme/UiThemeScript.cjs +2 -0
- package/build/theme/UiThemeScript.cjs.map +1 -0
- package/build/theme/UiThemeScript.d.ts +22 -0
- package/build/theme/UiThemeScript.js +8 -0
- package/build/theme/UiThemeScript.js.map +1 -0
- package/build/theme/context.cjs +2 -0
- package/build/theme/context.cjs.map +1 -0
- package/build/theme/context.d.ts +5 -0
- package/build/theme/context.js +8 -0
- package/build/theme/context.js.map +1 -0
- package/build/types/charts/AreaChart/index.d.ts +14 -0
- package/build/types/charts/BarChart/index.d.ts +16 -0
- package/build/types/charts/BoxPlot/index.d.ts +43 -0
- package/build/types/charts/ComposedChart/index.d.ts +16 -0
- package/build/types/charts/Heatmap/index.d.ts +30 -0
- package/build/types/charts/Histogram/index.d.ts +29 -0
- package/build/types/charts/LineChart/index.d.ts +14 -0
- package/build/types/charts/PieChart/index.d.ts +36 -0
- package/build/types/charts/RadarChart/index.d.ts +40 -0
- package/build/types/charts/ScatterPlot/index.d.ts +41 -0
- package/build/types/charts/core/CartesianChart.d.ts +43 -0
- package/build/types/charts/core/ChartFrame.d.ts +55 -0
- package/build/types/charts/core/axes.d.ts +37 -0
- package/build/types/charts/core/cartesian.d.ts +80 -0
- package/build/types/charts/core/format.d.ts +19 -0
- package/build/types/charts/core/margins.d.ts +9 -0
- package/build/types/charts/core/palette.d.ts +11 -0
- package/build/types/charts/core/path.d.ts +24 -0
- package/build/types/charts/core/scale.d.ts +40 -0
- package/build/types/charts/core/series.d.ts +11 -0
- package/build/types/charts/core/spatial.d.ts +12 -0
- package/build/types/charts/core/stats.d.ts +34 -0
- package/build/types/charts/core/types.d.ts +31 -0
- package/build/types/charts/core/useChartWidth.d.ts +7 -0
- package/build/types/charts/index.d.ts +21 -0
- package/build/types/chat/ActionList/index.d.ts +46 -0
- package/build/types/chat/AppBar/index.d.ts +21 -0
- package/build/types/chat/ChatMessage/index.d.ts +24 -0
- package/build/types/chat/ChatThread/index.d.ts +24 -0
- package/build/types/chat/Citation/index.d.ts +15 -0
- package/build/types/chat/CodeBlock/format.d.ts +7 -0
- package/build/types/chat/CodeBlock/grammars.d.ts +44 -0
- package/build/types/chat/CodeBlock/highlight.d.ts +22 -0
- package/build/types/chat/CodeBlock/index.d.ts +33 -0
- package/build/types/chat/DescriptionList/index.d.ts +16 -0
- package/build/types/chat/Legend/index.d.ts +21 -0
- package/build/types/chat/MessageActions/index.d.ts +21 -0
- package/build/types/chat/PromptInput/index.d.ts +47 -0
- package/build/types/chat/PromptSuggestions/index.d.ts +25 -0
- package/build/types/chat/Prose/index.d.ts +15 -0
- package/build/types/chat/ReasoningBlock/index.d.ts +24 -0
- package/build/types/chat/ReasoningText/index.d.ts +14 -0
- package/build/types/chat/SegmentBar/index.d.ts +46 -0
- package/build/types/chat/SourceList/index.d.ts +25 -0
- package/build/types/chat/TerminalOutput/index.d.ts +25 -0
- package/build/types/chat/ToolCall/index.d.ts +41 -0
- package/build/types/chat/index.d.ts +26 -0
- package/build/types/combobox.type.d.ts +49 -0
- package/build/types/common-element-props.type.d.ts +8 -0
- package/build/types/helpers/class-name.helper.d.ts +3 -0
- package/build/types/helpers/component.helper.d.ts +13 -0
- package/build/types/helpers/label.helper.d.ts +12 -0
- package/build/types/hook.type.d.ts +36 -0
- package/build/types/link.type.d.ts +14 -0
- package/build/types/positioning.type.d.ts +38 -0
- package/build/types/theme.type.d.ts +181 -0
- package/build/types/types/common-element-props.type.d.ts +8 -0
- package/build/types/types/link.type.d.ts +14 -0
- package/build/types/types/theme.type.d.ts +181 -0
- package/package.json +487 -4
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as r, jsxs as F, Fragment as N } from "react/jsx-runtime";
|
|
3
|
+
import { memo as Y, useId as k, useState as h, useRef as T, useEffect as G } from "react";
|
|
4
|
+
import { resolveLabel as y } from "../../helpers/label.helper.js";
|
|
5
|
+
import { useUi as H } from "../../theme/context.js";
|
|
6
|
+
import v from "../../enums/ui-size.enum.js";
|
|
7
|
+
import x from "../../enums/ui-variant.enum.js";
|
|
8
|
+
import S from "../Button/index.js";
|
|
9
|
+
import J from "../Field/index.js";
|
|
10
|
+
import K from "../Input/index.js";
|
|
11
|
+
import Q from "../Modal/index.js";
|
|
12
|
+
import V from "../Textarea/index.js";
|
|
13
|
+
const W = {"form":"ui-form-zpZn4"};
|
|
14
|
+
const X = ({
|
|
15
|
+
isOpen: e,
|
|
16
|
+
onClose: m,
|
|
17
|
+
onSubmit: M,
|
|
18
|
+
title: U,
|
|
19
|
+
label: z,
|
|
20
|
+
submitLabel: B,
|
|
21
|
+
cancelLabel: E,
|
|
22
|
+
closeLabel: L,
|
|
23
|
+
description: P,
|
|
24
|
+
hint: R,
|
|
25
|
+
placeholder: f,
|
|
26
|
+
defaultValue: s = "",
|
|
27
|
+
isRequired: l,
|
|
28
|
+
requiredLabel: C,
|
|
29
|
+
inputMode: u = "text",
|
|
30
|
+
maxLength: d,
|
|
31
|
+
rows: j = 4
|
|
32
|
+
}) => {
|
|
33
|
+
const { labels: t } = H(), p = k(), [n, a] = h(s), [o, b] = h(!1), D = T(!1);
|
|
34
|
+
G(() => {
|
|
35
|
+
e && !D.current && a(s), D.current = e;
|
|
36
|
+
}, [e, s]);
|
|
37
|
+
const I = n.trim(), g = !!l && I === "", w = (i) => u === "multiline" ? /* @__PURE__ */ r(
|
|
38
|
+
V,
|
|
39
|
+
{
|
|
40
|
+
...i,
|
|
41
|
+
value: n,
|
|
42
|
+
onChange: (c) => a(c.target.value),
|
|
43
|
+
placeholder: f,
|
|
44
|
+
maxLength: d,
|
|
45
|
+
rows: j
|
|
46
|
+
}
|
|
47
|
+
) : /* @__PURE__ */ r(
|
|
48
|
+
K,
|
|
49
|
+
{
|
|
50
|
+
...i,
|
|
51
|
+
type: u === "number" ? "number" : "text",
|
|
52
|
+
value: n,
|
|
53
|
+
onChange: (c) => a(c.target.value),
|
|
54
|
+
placeholder: f,
|
|
55
|
+
maxLength: d
|
|
56
|
+
}
|
|
57
|
+
), A = async () => {
|
|
58
|
+
if (!(g || o)) {
|
|
59
|
+
b(!0);
|
|
60
|
+
try {
|
|
61
|
+
await M(I), m();
|
|
62
|
+
} catch {
|
|
63
|
+
} finally {
|
|
64
|
+
b(!1);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
return /* @__PURE__ */ r(
|
|
69
|
+
Q,
|
|
70
|
+
{
|
|
71
|
+
isOpen: e,
|
|
72
|
+
onClose: m,
|
|
73
|
+
title: U,
|
|
74
|
+
closeLabel: L ?? (t == null ? void 0 : t.close),
|
|
75
|
+
description: P,
|
|
76
|
+
size: "sm",
|
|
77
|
+
isDismissable: !o,
|
|
78
|
+
footer: /* @__PURE__ */ F(N, { children: [
|
|
79
|
+
/* @__PURE__ */ r(
|
|
80
|
+
S,
|
|
81
|
+
{
|
|
82
|
+
variant: x.SECONDARY,
|
|
83
|
+
size: v.MEDIUM,
|
|
84
|
+
onClick: m,
|
|
85
|
+
disabled: o,
|
|
86
|
+
children: y("PromptDialog.cancelLabel", E, t == null ? void 0 : t.cancel)
|
|
87
|
+
}
|
|
88
|
+
),
|
|
89
|
+
/* @__PURE__ */ r(
|
|
90
|
+
S,
|
|
91
|
+
{
|
|
92
|
+
type: "submit",
|
|
93
|
+
form: p,
|
|
94
|
+
variant: x.PRIMARY,
|
|
95
|
+
size: v.MEDIUM,
|
|
96
|
+
disabled: g,
|
|
97
|
+
isLoading: o,
|
|
98
|
+
children: y("PromptDialog.submitLabel", B, t == null ? void 0 : t.submit)
|
|
99
|
+
}
|
|
100
|
+
)
|
|
101
|
+
] }),
|
|
102
|
+
children: /* @__PURE__ */ r(
|
|
103
|
+
"form",
|
|
104
|
+
{
|
|
105
|
+
id: p,
|
|
106
|
+
className: W.form,
|
|
107
|
+
onSubmit: (i) => {
|
|
108
|
+
i.preventDefault(), A();
|
|
109
|
+
},
|
|
110
|
+
children: /* @__PURE__ */ r(J, { label: z, hint: R, isRequired: l, requiredLabel: C, children: w })
|
|
111
|
+
}
|
|
112
|
+
)
|
|
113
|
+
}
|
|
114
|
+
);
|
|
115
|
+
}, nt = /* @__PURE__ */ Y(X);
|
|
116
|
+
export {
|
|
117
|
+
nt as default
|
|
118
|
+
};
|
|
119
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/PromptDialog/index.tsx"],"sourcesContent":["'use client';\n\nimport { type FC, memo, type ReactNode, useEffect, useId, useRef, useState } from 'react';\n\nimport { resolveLabel } from '../../helpers/label.helper';\nimport { useUi } from '../../theme/context';\nimport UISize from '../../enums/ui-size.enum';\nimport UIVariant from '../../enums/ui-variant.enum';\nimport Button from '../Button';\nimport Field, { type FieldChildProps } from '../Field';\nimport Input from '../Input';\nimport Modal from '../Modal';\nimport Textarea from '../Textarea';\n\nimport styles from './index.module.scss';\n\ntype BaseProps = {\n isOpen: boolean;\n /** Vazgeçme ve perde/Escape kapanışı. */\n onClose: () => void;\n /** Girilen değerle çalışır (değer kırpılmış gönderilir). */\n onSubmit: (value: string) => void | Promise<void>;\n title: string;\n /** Girdi alanının etiketi. */\n label: string;\n /** Verilmezse `labels.submit`. */\n submitLabel?: string;\n /** Verilmezse `labels.cancel`. */\n cancelLabel?: string;\n /** Kapatma düğmesinin erişilebilir adı. */\n closeLabel?: string;\n /** Başlığın altındaki bir cümlelik bağlam. */\n description?: ReactNode;\n hint?: string;\n placeholder?: string;\n defaultValue?: string;\n /** `text` tek satır, `multiline` gerekçe gibi uzun metin, `number` adet/fark gibi sayılar. */\n inputMode?: 'text' | 'multiline' | 'number';\n maxLength?: number;\n rows?: number;\n};\n\ntype Props = BaseProps & {\n /** Boş (yalnızca boşluk dahil) değer gönderilemez. */\n isRequired?: boolean;\n /** Zorunluluk yıldızının ekran okuyucu karşılığı (\"(zorunlu)\"). */\n requiredLabel?: string;\n};\n\n/** Metin isteyen pencere — `window.prompt()` yerine. */\nconst PromptDialog: FC<Props> = ({\n isOpen,\n onClose,\n onSubmit,\n title,\n label,\n submitLabel,\n cancelLabel,\n closeLabel,\n description,\n hint,\n placeholder,\n defaultValue = '',\n isRequired,\n requiredLabel,\n inputMode = 'text',\n maxLength,\n rows = 4,\n}) => {\n const { labels } = useUi();\n const formId = useId();\n const [value, setValue] = useState(defaultValue);\n const [isBusy, setIsBusy] = useState(false);\n\n /*\n * Deger yalnizca ACILIS kenarinda tazelenir. `isOpen`'a bagli duz bir etki, pencere acikken gelen\n * her ust render'da yazilani ezebilirdi\n */\n const wasOpenRef = useRef(false);\n useEffect(() => {\n if (isOpen && !wasOpenRef.current) setValue(defaultValue);\n wasOpenRef.current = isOpen;\n }, [isOpen, defaultValue]);\n\n const trimmed = value.trim();\n const isSubmitDisabled = Boolean(isRequired) && trimmed === '';\n\n /** Girdi, `Field`in urettigi erisilebilirlik baglariyla cizilir. */\n const renderControl = (props: FieldChildProps) =>\n inputMode === 'multiline' ? (\n <Textarea\n {...props}\n value={value}\n onChange={event => setValue(event.target.value)}\n placeholder={placeholder}\n maxLength={maxLength}\n rows={rows}\n />\n ) : (\n <Input\n {...props}\n type={inputMode === 'number' ? 'number' : 'text'}\n value={value}\n onChange={event => setValue(event.target.value)}\n placeholder={placeholder}\n maxLength={maxLength}\n />\n );\n\n const handleSubmit = async () => {\n if (isSubmitDisabled || isBusy) return;\n\n setIsBusy(true);\n try {\n await onSubmit(trimmed);\n // Yalnizca basarida: hata durumunda pencere acik, metin yerinde kalir.\n onClose();\n } catch {\n // Bildirim cagiranin isi; burada yalnizca pencere acik tutulur.\n } finally {\n setIsBusy(false);\n }\n };\n\n return (\n <Modal\n isOpen={isOpen}\n onClose={onClose}\n title={title}\n closeLabel={closeLabel ?? labels?.close}\n description={description}\n size=\"sm\"\n // Istek surerken kapanmaz: kapanis \"islem iptal oldu\" gibi gorunuyordu.\n isDismissable={!isBusy}\n footer={\n <>\n <Button\n variant={UIVariant.SECONDARY}\n size={UISize.MEDIUM}\n onClick={onClose}\n disabled={isBusy}\n >\n {resolveLabel('PromptDialog.cancelLabel', cancelLabel, labels?.cancel)}\n </Button>\n <Button\n type=\"submit\"\n form={formId}\n variant={UIVariant.PRIMARY}\n size={UISize.MEDIUM}\n disabled={isSubmitDisabled}\n isLoading={isBusy}\n >\n {resolveLabel('PromptDialog.submitLabel', submitLabel, labels?.submit)}\n </Button>\n </>\n }\n >\n <form\n id={formId}\n className={styles.form}\n onSubmit={event => {\n event.preventDefault();\n handleSubmit();\n }}\n >\n <Field label={label} hint={hint} isRequired={isRequired} requiredLabel={requiredLabel}>\n {renderControl}\n </Field>\n </form>\n </Modal>\n );\n};\n\nexport default /*#__PURE__*/ memo(PromptDialog) as typeof PromptDialog;\n"],"names":["PromptDialog","isOpen","onClose","onSubmit","title","label","submitLabel","cancelLabel","closeLabel","description","hint","placeholder","defaultValue","isRequired","requiredLabel","inputMode","maxLength","rows","labels","useUi","formId","useId","value","setValue","useState","isBusy","setIsBusy","wasOpenRef","useRef","useEffect","trimmed","isSubmitDisabled","renderControl","props","jsx","Textarea","event","Input","handleSubmit","Modal","jsxs","Fragment","Button","UIVariant","UISize","resolveLabel","styles","Field","index"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer ui{.ui-form-zpZn4{display:flex;flex-direction:column;gap:var(--hd-space-4)}}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("react/jsx-runtime"),q=require("react"),k=require("react-bootstrap-icons"),w=require("../../helpers/class-name.helper.cjs"),d=require("../../helpers/label.helper.cjs"),N=require("../../theme/context.cjs"),o={default:{"stepper":"ui-stepper-8s5Ih","stepper__button":"ui-stepper__button-h6g7d","stepper__input":"ui-stepper__input-OQh5v","stepper--sm":"ui-stepper--sm-RvrBP","stepper--md":"ui-stepper--md-Cnjei"}},P=({value:r,onChange:a,label:x,decreaseLabel:D,increaseLabel:h,min:l=1,max:s=99,isDisabled:c,size:j="md",className:L,testId:S})=>{var f,m,g;const{labels:t}=N.useUi(),b=d.resolveLabel("QuantityStepper.label",x,(f=t==null?void 0:t.quantity)==null?void 0:f.label),[M,i]=q.useState(null),p=e=>Math.min(Math.max(e,l),s),y=e=>{i(null);const n=e.replace(/\D/g,"");n!==""&&a(p(Number(n)))};return u.jsxs("div",{className:w.cx(o.default.stepper,o.default[`stepper--${j}`],L),role:"group","aria-label":b,"data-testid":S,children:[u.jsx("button",{type:"button",className:o.default.stepper__button,onClick:()=>a(Math.max(r-1,l)),disabled:c||r<=l,"aria-label":d.resolveLabel("QuantityStepper.decreaseLabel",D,(m=t==null?void 0:t.quantity)==null?void 0:m.decrease),children:u.jsx(k.DashLg,{"aria-hidden":!0})}),u.jsx("input",{className:o.default.stepper__input,value:M??String(r),onChange:e=>i(e.target.value.replace(/\D/g,"").slice(0,2)),onBlur:e=>y(e.target.value),onKeyDown:e=>{const n=e.key==="ArrowUp"?1:e.key==="ArrowDown"?-1:0;if(n!==0){e.preventDefault(),i(null),a(p(r+n));return}const _=e.key==="PageUp"?10:e.key==="PageDown"?-10:0;if(_!==0){e.preventDefault(),i(null),a(p(r+_));return}if(e.key==="Home"||e.key==="End"){e.preventDefault(),i(null),a(e.key==="Home"?l:s);return}e.key==="Enter"&&(e.preventDefault(),y(e.target.value))},inputMode:"numeric",disabled:c,role:"spinbutton","aria-valuenow":r,"aria-valuemin":l,"aria-valuemax":s,"aria-label":b}),u.jsx("button",{type:"button",className:o.default.stepper__button,onClick:()=>a(Math.min(r+1,s)),disabled:c||r>=s,"aria-label":d.resolveLabel("QuantityStepper.increaseLabel",h,(g=t==null?void 0:t.quantity)==null?void 0:g.increase),children:u.jsx(k.PlusLg,{"aria-hidden":!0})})]})},Q=q.memo(P);exports.default=Q;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/components/QuantityStepper/index.tsx"],"sourcesContent":["'use client';\n\nimport { type FC, memo, useState } from 'react';\n\nimport { DashLg, PlusLg } from 'react-bootstrap-icons';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { resolveLabel } from '../../helpers/label.helper';\nimport { useUi } from '../../theme/context';\n\nimport styles from './index.module.scss';\n\ntype Props = {\n value: number;\n onChange: (value: number) => void;\n /** Grubun ve girdinin erişilebilir adı. */\n label?: string;\n /** Verilmezse `labels.quantity.decrease`. */\n decreaseLabel?: string;\n /** Verilmezse `labels.quantity.increase`. */\n increaseLabel?: string;\n min?: number;\n max?: number;\n isDisabled?: boolean;\n size?: 'sm' | 'md';\n className?: string;\n testId?: string;\n};\n\n/** Adet seçici. */\nconst QuantityStepper: FC<Props> = ({\n value,\n onChange,\n label,\n decreaseLabel,\n increaseLabel,\n min = 1,\n max = 99,\n isDisabled,\n size = 'md',\n className,\n testId,\n}) => {\n const { labels } = useUi();\n const groupLabel = resolveLabel('QuantityStepper.label', label, labels?.quantity?.label);\n const [draft, setDraft] = useState<string | null>(null);\n\n const clamp = (next: number) => Math.min(Math.max(next, min), max);\n\n const commit = (raw: string) => {\n setDraft(null);\n\n /*\n * Onceki bicim `if (!parsed) return;` diyordu ve `0` falsy: `min={0}` ile kurulmus bir alanda\n * (stok duzeltme formu) kullanici `0` yazip alandan…\n * ⚠ BOSLUK KONTROLU HAM DIZEDEN yapilir, sayidan DEGIL.\n */\n const digits = raw.replace(/\\D/g, '');\n if (digits === '') return;\n\n onChange(clamp(Number(digits)));\n };\n\n return (\n <div\n className={cx(styles.stepper, styles[`stepper--${size}`], className)}\n role=\"group\"\n aria-label={groupLabel}\n data-testid={testId}\n >\n <button\n type=\"button\"\n className={styles.stepper__button}\n onClick={() => onChange(Math.max(value - 1, min))}\n disabled={isDisabled || value <= min}\n aria-label={resolveLabel(\n 'QuantityStepper.decreaseLabel',\n decreaseLabel,\n labels?.quantity?.decrease,\n )}\n >\n <DashLg aria-hidden />\n </button>\n\n <input\n className={styles.stepper__input}\n value={draft ?? String(value)}\n onChange={event => setDraft(event.target.value.replace(/\\D/g, '').slice(0, 2))}\n onBlur={event => commit(event.target.value)}\n /* ⚠ `spinbutton` ROLU BIR SOZ VERIR: */\n onKeyDown={event => {\n const step = event.key === 'ArrowUp' ? 1 : event.key === 'ArrowDown' ? -1 : 0;\n\n if (step !== 0) {\n event.preventDefault();\n setDraft(null);\n onChange(clamp(value + step));\n return;\n }\n\n const page = event.key === 'PageUp' ? 10 : event.key === 'PageDown' ? -10 : 0;\n\n if (page !== 0) {\n event.preventDefault();\n setDraft(null);\n onChange(clamp(value + page));\n return;\n }\n\n if (event.key === 'Home' || event.key === 'End') {\n event.preventDefault();\n setDraft(null);\n onChange(event.key === 'Home' ? min : max);\n return;\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n commit((event.target as HTMLInputElement).value);\n }\n }}\n inputMode=\"numeric\"\n disabled={isDisabled}\n /* ⚠ ARALIK ETIKETE GOMULMEZ, ROLE ILE BILDIRILIR. */\n role=\"spinbutton\"\n aria-valuenow={value}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-label={groupLabel}\n />\n\n <button\n type=\"button\"\n className={styles.stepper__button}\n onClick={() => onChange(Math.min(value + 1, max))}\n disabled={isDisabled || value >= max}\n aria-label={resolveLabel(\n 'QuantityStepper.increaseLabel',\n increaseLabel,\n labels?.quantity?.increase,\n )}\n >\n <PlusLg aria-hidden />\n </button>\n </div>\n );\n};\n\nexport default /*#__PURE__*/ memo(QuantityStepper) as typeof QuantityStepper;\n"],"names":["QuantityStepper","value","onChange","label","decreaseLabel","increaseLabel","min","max","isDisabled","size","className","testId","labels","useUi","groupLabel","resolveLabel","_a","draft","setDraft","useState","clamp","next","commit","raw","digits","jsxs","cx","styles","jsx","_b","DashLg","event","step","page","_c","PlusLg","index"],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
type Props = {
|
|
3
|
+
value: number;
|
|
4
|
+
onChange: (value: number) => void;
|
|
5
|
+
/** Grubun ve girdinin erişilebilir adı. */
|
|
6
|
+
label?: string;
|
|
7
|
+
/** Verilmezse `labels.quantity.decrease`. */
|
|
8
|
+
decreaseLabel?: string;
|
|
9
|
+
/** Verilmezse `labels.quantity.increase`. */
|
|
10
|
+
increaseLabel?: string;
|
|
11
|
+
min?: number;
|
|
12
|
+
max?: number;
|
|
13
|
+
isDisabled?: boolean;
|
|
14
|
+
size?: 'sm' | 'md';
|
|
15
|
+
className?: string;
|
|
16
|
+
testId?: string;
|
|
17
|
+
};
|
|
18
|
+
/** Adet seçici. */
|
|
19
|
+
declare const QuantityStepper: FC<Props>;
|
|
20
|
+
declare const _default: typeof QuantityStepper;
|
|
21
|
+
export default _default;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs as N, jsx as l } from "react/jsx-runtime";
|
|
3
|
+
import { memo as x, useState as Q } from "react";
|
|
4
|
+
import { DashLg as q, PlusLg as P } from "react-bootstrap-icons";
|
|
5
|
+
import { cx as U } from "../../helpers/class-name.helper.js";
|
|
6
|
+
import { resolveLabel as m } from "../../helpers/label.helper.js";
|
|
7
|
+
import { useUi as j } from "../../theme/context.js";
|
|
8
|
+
const n = {"stepper":"ui-stepper-8s5Ih","stepper__button":"ui-stepper__button-h6g7d","stepper__input":"ui-stepper__input-OQh5v","stepper--sm":"ui-stepper--sm-RvrBP","stepper--md":"ui-stepper--md-Cnjei"};
|
|
9
|
+
const A = ({
|
|
10
|
+
value: r,
|
|
11
|
+
onChange: a,
|
|
12
|
+
label: D,
|
|
13
|
+
decreaseLabel: h,
|
|
14
|
+
increaseLabel: w,
|
|
15
|
+
min: i = 1,
|
|
16
|
+
max: o = 99,
|
|
17
|
+
isDisabled: s,
|
|
18
|
+
size: L = "md",
|
|
19
|
+
className: S,
|
|
20
|
+
testId: _
|
|
21
|
+
}) => {
|
|
22
|
+
var y, b, g;
|
|
23
|
+
const { labels: e } = j(), d = m("QuantityStepper.label", D, (y = e == null ? void 0 : e.quantity) == null ? void 0 : y.label), [M, p] = Q(null), c = (t) => Math.min(Math.max(t, i), o), f = (t) => {
|
|
24
|
+
p(null);
|
|
25
|
+
const u = t.replace(/\D/g, "");
|
|
26
|
+
u !== "" && a(c(Number(u)));
|
|
27
|
+
};
|
|
28
|
+
return /* @__PURE__ */ N(
|
|
29
|
+
"div",
|
|
30
|
+
{
|
|
31
|
+
className: U(n.stepper, n[`stepper--${L}`], S),
|
|
32
|
+
role: "group",
|
|
33
|
+
"aria-label": d,
|
|
34
|
+
"data-testid": _,
|
|
35
|
+
children: [
|
|
36
|
+
/* @__PURE__ */ l(
|
|
37
|
+
"button",
|
|
38
|
+
{
|
|
39
|
+
type: "button",
|
|
40
|
+
className: n.stepper__button,
|
|
41
|
+
onClick: () => a(Math.max(r - 1, i)),
|
|
42
|
+
disabled: s || r <= i,
|
|
43
|
+
"aria-label": m(
|
|
44
|
+
"QuantityStepper.decreaseLabel",
|
|
45
|
+
h,
|
|
46
|
+
(b = e == null ? void 0 : e.quantity) == null ? void 0 : b.decrease
|
|
47
|
+
),
|
|
48
|
+
children: /* @__PURE__ */ l(q, { "aria-hidden": !0 })
|
|
49
|
+
}
|
|
50
|
+
),
|
|
51
|
+
/* @__PURE__ */ l(
|
|
52
|
+
"input",
|
|
53
|
+
{
|
|
54
|
+
className: n.stepper__input,
|
|
55
|
+
value: M ?? String(r),
|
|
56
|
+
onChange: (t) => p(t.target.value.replace(/\D/g, "").slice(0, 2)),
|
|
57
|
+
onBlur: (t) => f(t.target.value),
|
|
58
|
+
onKeyDown: (t) => {
|
|
59
|
+
const u = t.key === "ArrowUp" ? 1 : t.key === "ArrowDown" ? -1 : 0;
|
|
60
|
+
if (u !== 0) {
|
|
61
|
+
t.preventDefault(), p(null), a(c(r + u));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const k = t.key === "PageUp" ? 10 : t.key === "PageDown" ? -10 : 0;
|
|
65
|
+
if (k !== 0) {
|
|
66
|
+
t.preventDefault(), p(null), a(c(r + k));
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (t.key === "Home" || t.key === "End") {
|
|
70
|
+
t.preventDefault(), p(null), a(t.key === "Home" ? i : o);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
t.key === "Enter" && (t.preventDefault(), f(t.target.value));
|
|
74
|
+
},
|
|
75
|
+
inputMode: "numeric",
|
|
76
|
+
disabled: s,
|
|
77
|
+
role: "spinbutton",
|
|
78
|
+
"aria-valuenow": r,
|
|
79
|
+
"aria-valuemin": i,
|
|
80
|
+
"aria-valuemax": o,
|
|
81
|
+
"aria-label": d
|
|
82
|
+
}
|
|
83
|
+
),
|
|
84
|
+
/* @__PURE__ */ l(
|
|
85
|
+
"button",
|
|
86
|
+
{
|
|
87
|
+
type: "button",
|
|
88
|
+
className: n.stepper__button,
|
|
89
|
+
onClick: () => a(Math.min(r + 1, o)),
|
|
90
|
+
disabled: s || r >= o,
|
|
91
|
+
"aria-label": m(
|
|
92
|
+
"QuantityStepper.increaseLabel",
|
|
93
|
+
w,
|
|
94
|
+
(g = e == null ? void 0 : e.quantity) == null ? void 0 : g.increase
|
|
95
|
+
),
|
|
96
|
+
children: /* @__PURE__ */ l(P, { "aria-hidden": !0 })
|
|
97
|
+
}
|
|
98
|
+
)
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
);
|
|
102
|
+
}, G = /* @__PURE__ */ x(A);
|
|
103
|
+
export {
|
|
104
|
+
G as default
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/QuantityStepper/index.tsx"],"sourcesContent":["'use client';\n\nimport { type FC, memo, useState } from 'react';\n\nimport { DashLg, PlusLg } from 'react-bootstrap-icons';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { resolveLabel } from '../../helpers/label.helper';\nimport { useUi } from '../../theme/context';\n\nimport styles from './index.module.scss';\n\ntype Props = {\n value: number;\n onChange: (value: number) => void;\n /** Grubun ve girdinin erişilebilir adı. */\n label?: string;\n /** Verilmezse `labels.quantity.decrease`. */\n decreaseLabel?: string;\n /** Verilmezse `labels.quantity.increase`. */\n increaseLabel?: string;\n min?: number;\n max?: number;\n isDisabled?: boolean;\n size?: 'sm' | 'md';\n className?: string;\n testId?: string;\n};\n\n/** Adet seçici. */\nconst QuantityStepper: FC<Props> = ({\n value,\n onChange,\n label,\n decreaseLabel,\n increaseLabel,\n min = 1,\n max = 99,\n isDisabled,\n size = 'md',\n className,\n testId,\n}) => {\n const { labels } = useUi();\n const groupLabel = resolveLabel('QuantityStepper.label', label, labels?.quantity?.label);\n const [draft, setDraft] = useState<string | null>(null);\n\n const clamp = (next: number) => Math.min(Math.max(next, min), max);\n\n const commit = (raw: string) => {\n setDraft(null);\n\n /*\n * Onceki bicim `if (!parsed) return;` diyordu ve `0` falsy: `min={0}` ile kurulmus bir alanda\n * (stok duzeltme formu) kullanici `0` yazip alandan…\n * ⚠ BOSLUK KONTROLU HAM DIZEDEN yapilir, sayidan DEGIL.\n */\n const digits = raw.replace(/\\D/g, '');\n if (digits === '') return;\n\n onChange(clamp(Number(digits)));\n };\n\n return (\n <div\n className={cx(styles.stepper, styles[`stepper--${size}`], className)}\n role=\"group\"\n aria-label={groupLabel}\n data-testid={testId}\n >\n <button\n type=\"button\"\n className={styles.stepper__button}\n onClick={() => onChange(Math.max(value - 1, min))}\n disabled={isDisabled || value <= min}\n aria-label={resolveLabel(\n 'QuantityStepper.decreaseLabel',\n decreaseLabel,\n labels?.quantity?.decrease,\n )}\n >\n <DashLg aria-hidden />\n </button>\n\n <input\n className={styles.stepper__input}\n value={draft ?? String(value)}\n onChange={event => setDraft(event.target.value.replace(/\\D/g, '').slice(0, 2))}\n onBlur={event => commit(event.target.value)}\n /* ⚠ `spinbutton` ROLU BIR SOZ VERIR: */\n onKeyDown={event => {\n const step = event.key === 'ArrowUp' ? 1 : event.key === 'ArrowDown' ? -1 : 0;\n\n if (step !== 0) {\n event.preventDefault();\n setDraft(null);\n onChange(clamp(value + step));\n return;\n }\n\n const page = event.key === 'PageUp' ? 10 : event.key === 'PageDown' ? -10 : 0;\n\n if (page !== 0) {\n event.preventDefault();\n setDraft(null);\n onChange(clamp(value + page));\n return;\n }\n\n if (event.key === 'Home' || event.key === 'End') {\n event.preventDefault();\n setDraft(null);\n onChange(event.key === 'Home' ? min : max);\n return;\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n commit((event.target as HTMLInputElement).value);\n }\n }}\n inputMode=\"numeric\"\n disabled={isDisabled}\n /* ⚠ ARALIK ETIKETE GOMULMEZ, ROLE ILE BILDIRILIR. */\n role=\"spinbutton\"\n aria-valuenow={value}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-label={groupLabel}\n />\n\n <button\n type=\"button\"\n className={styles.stepper__button}\n onClick={() => onChange(Math.min(value + 1, max))}\n disabled={isDisabled || value >= max}\n aria-label={resolveLabel(\n 'QuantityStepper.increaseLabel',\n increaseLabel,\n labels?.quantity?.increase,\n )}\n >\n <PlusLg aria-hidden />\n </button>\n </div>\n );\n};\n\nexport default /*#__PURE__*/ memo(QuantityStepper) as typeof QuantityStepper;\n"],"names":["QuantityStepper","value","onChange","label","decreaseLabel","increaseLabel","min","max","isDisabled","size","className","testId","labels","useUi","groupLabel","resolveLabel","_a","draft","setDraft","useState","clamp","next","commit","raw","digits","jsxs","cx","styles","jsx","_b","DashLg","event","step","page","_c","PlusLg","index"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer ui{.ui-stepper-8s5Ih{display:inline-flex;align-items:stretch;border:1px solid var(--hd-border);border-radius:var(--hd-radius-sm);background-color:var(--hd-bg-surface);overflow:hidden}.ui-stepper__button-h6g7d{display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--hd-text-2);cursor:pointer;padding-inline:var(--hd-space-3);transition:background-color var(--hd-duration-fast) var(--hd-ease-standard)}.ui-stepper__button-h6g7d:hover:not(:disabled){background-color:var(--hd-bg-raised);color:var(--hd-text)}.ui-stepper__button-h6g7d:disabled{background-color:var(--hd-bg-raised);border-color:var(--hd-border);cursor:not-allowed;color:var(--hd-text-3)}@media (forced-colors: active){.ui-stepper__button-h6g7d:disabled{color:GrayText;border-color:GrayText}}.ui-stepper__button-h6g7d:focus-visible{outline:var(--ui-ring-width, 2px) solid var(--hd-focus);outline-offset:var(--ui-ring-offset, -2px)}@media (prefers-reduced-motion: reduce){.ui-stepper__button-h6g7d{transition:none}}.ui-stepper__input-OQh5v{font-family:var(--hd-font-mono);font-size:var(--hd-type-small-size);letter-spacing:.02em;font-variant-numeric:tabular-nums;width:40px;border:none;border-inline:1px solid var(--hd-border);background:none;text-align:center;color:var(--hd-text);font-weight:var(--hd-font-weight-semibold)}@media (hover: none) and (pointer: coarse){.ui-stepper__input-OQh5v{font-size:max(16px,var(--hd-type-body-size))}}.ui-stepper__input-OQh5v:focus{outline:none;background-color:var(--hd-bg-raised)}.ui-stepper__input-OQh5v:disabled{color:var(--hd-text-2)}.ui-stepper--sm-RvrBP .ui-stepper__button-h6g7d{height:32px;font-size:16px}.ui-stepper--sm-RvrBP .ui-stepper__input-OQh5v{width:34px;font-size:var(--hd-type-caption-size)}@media (hover: none) and (pointer: coarse){.ui-stepper--sm-RvrBP .ui-stepper__input-OQh5v{font-size:max(16px,var(--hd-type-body-size))}}.ui-stepper--md-Cnjei .ui-stepper__button-h6g7d{height:44px;font-size:18px}.ui-stepper--md-Cnjei .ui-stepper__input-OQh5v{width:46px}}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),l=require("react"),c=require("@handijit/utils"),x=require("../../helpers/class-name.helper.cjs"),j=require("../../helpers/component.helper.cjs"),a={default:{"radio":"ui-radio-KoZak","radio__input":"ui-radio__input-gVMgh","radio__body":"ui-radio__body-oZWg6","radio__label":"ui-radio__label-d-5ce","radio__hint":"ui-radio__hint-baVbs","radio__count":"ui-radio__count-OtkUM"}},h=l.forwardRef(({label:u,hint:d,count:i,className:_,id:b,testId:m,...n},f)=>{const p=l.useId(),s=b??p,r=`${s}-label`,t=`${s}-hint`,o=`${s}-count`;return e.jsxs("label",{className:x.cx(a.default.radio,_),"data-testid":m,children:[e.jsx("input",{ref:f,type:"radio",id:s,className:a.default.radio__input,"aria-labelledby":[r,c.isDefined(i)?o:null].filter(Boolean).join(" "),"aria-describedby":d?t:n["aria-describedby"],...n}),e.jsxs("span",{className:a.default.radio__body,children:[e.jsx("span",{id:r,className:a.default.radio__label,children:u}),d&&e.jsx("span",{id:t,className:a.default.radio__hint,children:d})]}),c.isDefined(i)&&e.jsx("span",{id:o,className:a.default.radio__count,children:i})]})}),N=l.memo(j.named(h,"Radio"));exports.default=N;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/components/Radio/index.tsx"],"sourcesContent":["'use client';\n\nimport { forwardRef, type InputHTMLAttributes, memo, type ReactNode, useId } from 'react';\n\nimport { isDefined } from '@handijit/utils';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\n\nimport styles from './index.module.scss';\n\ntype Props = Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> & {\n label: ReactNode;\n /** Etiketin altındaki açıklama; `aria-describedby` ile bağlanır. */\n hint?: string;\n /** Sağda gösterilen sonuç adedi (filtre listelerinde). */\n count?: number;\n testId?: string;\n};\n\n/** Radyo düğmesi. */\nconst Radio = /*#__PURE__*/ forwardRef<HTMLInputElement, Props>(\n ({ label, hint, count, className, id, testId, ...rest }, ref) => {\n /* ⚠ İpucu ADA değil AÇIKLAMAYA bağlanır — gerekçe `Switch`te yazılı. */\n const generatedId = useId();\n const baseId = id ?? generatedId;\n const labelId = `${baseId}-label`;\n const hintId = `${baseId}-hint`;\n const countId = `${baseId}-count`;\n\n return (\n <label className={cx(styles.radio, className)} data-testid={testId}>\n <input\n ref={ref}\n type=\"radio\"\n id={baseId}\n className={styles.radio__input}\n /*\n * Sayaç ADIN İÇİNDE KALIR (\"Disk Balata, 128\"): filtre listesinde kaç sonuç olduğu\n * seçimin bir parçası.\n */\n aria-labelledby={[labelId, isDefined(count) ? countId : null].filter(Boolean).join(' ')}\n aria-describedby={hint ? hintId : rest['aria-describedby']}\n {...rest}\n />\n <span className={styles.radio__body}>\n <span id={labelId} className={styles.radio__label}>\n {label}\n </span>\n {hint && (\n <span id={hintId} className={styles.radio__hint}>\n {hint}\n </span>\n )}\n </span>\n {isDefined(count) && (\n <span id={countId} className={styles.radio__count}>\n {count}\n </span>\n )}\n </label>\n );\n },\n);\n\nexport default /*#__PURE__*/ memo(/*#__PURE__*/ named(Radio, 'Radio')) as typeof Radio;\n"],"names":["Radio","forwardRef","label","hint","count","className","id","testId","rest","ref","generatedId","useId","baseId","labelId","hintId","countId","jsxs","cx","styles","jsx","isDefined","index","memo","named"],"mappings":"oVAoBMA,EAAsBC,EAAAA,WAC1B,CAAC,CAAE,MAAAC,EAAO,KAAAC,EAAM,MAAAC,EAAO,UAAAC,EAAW,GAAAC,EAAI,OAAAC,EAAQ,GAAGC,CAAA,EAAQC,IAAQ,CAE/D,MAAMC,EAAcC,EAAAA,MAAA,EACdC,EAASN,GAAMI,EACfG,EAAU,GAAGD,CAAM,SACnBE,EAAS,GAAGF,CAAM,QAClBG,EAAU,GAAGH,CAAM,SAEzB,OACEI,OAAC,SAAM,UAAWC,EAAAA,GAAGC,EAAAA,QAAO,MAAOb,CAAS,EAAG,cAAaE,EAC1D,SAAA,CAAAY,EAAAA,IAAC,QAAA,CACC,IAAAV,EACA,KAAK,QACL,GAAIG,EACJ,UAAWM,EAAAA,QAAO,aAKlB,kBAAiB,CAACL,EAASO,EAAAA,UAAUhB,CAAK,EAAIW,EAAU,IAAI,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EACtF,mBAAkBZ,EAAOW,EAASN,EAAK,kBAAkB,EACxD,GAAGA,CAAA,CAAA,EAENQ,EAAAA,KAAC,OAAA,CAAK,UAAWE,EAAAA,QAAO,YACtB,SAAA,CAAAC,MAAC,QAAK,GAAIN,EAAS,UAAWK,EAAAA,QAAO,aAClC,SAAAhB,EACH,EACCC,SACE,OAAA,CAAK,GAAIW,EAAQ,UAAWI,UAAO,YACjC,SAAAf,CAAA,CACH,CAAA,EAEJ,EACCiB,EAAAA,UAAUhB,CAAK,GACde,EAAAA,IAAC,OAAA,CAAK,GAAIJ,EAAS,UAAWG,EAAAA,QAAO,aAClC,SAAAd,CAAA,CACH,CAAA,EAEJ,CAEJ,CACF,EAEAiB,EAA6BC,OAAmBC,EAAAA,MAAMvB,EAAO,OAAO,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { InputHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
/** Radyo düğmesi. */
|
|
3
|
+
declare const Radio: import('react').ForwardRefExoticComponent<Omit<InputHTMLAttributes<HTMLInputElement>, "type"> & {
|
|
4
|
+
label: ReactNode;
|
|
5
|
+
/** Etiketin altındaki açıklama; `aria-describedby` ile bağlanır. */
|
|
6
|
+
hint?: string;
|
|
7
|
+
/** Sağda gösterilen sonuç adedi (filtre listelerinde). */
|
|
8
|
+
count?: number;
|
|
9
|
+
testId?: string;
|
|
10
|
+
} & import('react').RefAttributes<HTMLInputElement>>;
|
|
11
|
+
declare const _default: typeof Radio;
|
|
12
|
+
export default _default;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs as t, jsx as i } from "react/jsx-runtime";
|
|
3
|
+
import { memo as h, forwardRef as y, useId as I } from "react";
|
|
4
|
+
import { isDefined as c } from "@handijit/utils";
|
|
5
|
+
import { cx as N } from "../../helpers/class-name.helper.js";
|
|
6
|
+
import { named as x } from "../../helpers/component.helper.js";
|
|
7
|
+
const a = {"radio":"ui-radio-KoZak","radio__input":"ui-radio__input-gVMgh","radio__body":"ui-radio__body-oZWg6","radio__label":"ui-radio__label-d-5ce","radio__hint":"ui-radio__hint-baVbs","radio__count":"ui-radio__count-OtkUM"};
|
|
8
|
+
const j = /* @__PURE__ */ y(
|
|
9
|
+
({ label: m, hint: d, count: o, className: p, id: b, testId: f, ...r }, _) => {
|
|
10
|
+
const u = I(), e = b ?? u, s = `${e}-label`, l = `${e}-hint`, n = `${e}-count`;
|
|
11
|
+
return /* @__PURE__ */ t("label", { className: N(a.radio, p), "data-testid": f, children: [
|
|
12
|
+
/* @__PURE__ */ i(
|
|
13
|
+
"input",
|
|
14
|
+
{
|
|
15
|
+
ref: _,
|
|
16
|
+
type: "radio",
|
|
17
|
+
id: e,
|
|
18
|
+
className: a.radio__input,
|
|
19
|
+
"aria-labelledby": [s, c(o) ? n : null].filter(Boolean).join(" "),
|
|
20
|
+
"aria-describedby": d ? l : r["aria-describedby"],
|
|
21
|
+
...r
|
|
22
|
+
}
|
|
23
|
+
),
|
|
24
|
+
/* @__PURE__ */ t("span", { className: a.radio__body, children: [
|
|
25
|
+
/* @__PURE__ */ i("span", { id: s, className: a.radio__label, children: m }),
|
|
26
|
+
d && /* @__PURE__ */ i("span", { id: l, className: a.radio__hint, children: d })
|
|
27
|
+
] }),
|
|
28
|
+
c(o) && /* @__PURE__ */ i("span", { id: n, className: a.radio__count, children: o })
|
|
29
|
+
] });
|
|
30
|
+
}
|
|
31
|
+
), k = /* @__PURE__ */ h(/* @__PURE__ */ x(j, "Radio"));
|
|
32
|
+
export {
|
|
33
|
+
k as default
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Radio/index.tsx"],"sourcesContent":["'use client';\n\nimport { forwardRef, type InputHTMLAttributes, memo, type ReactNode, useId } from 'react';\n\nimport { isDefined } from '@handijit/utils';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\n\nimport styles from './index.module.scss';\n\ntype Props = Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> & {\n label: ReactNode;\n /** Etiketin altındaki açıklama; `aria-describedby` ile bağlanır. */\n hint?: string;\n /** Sağda gösterilen sonuç adedi (filtre listelerinde). */\n count?: number;\n testId?: string;\n};\n\n/** Radyo düğmesi. */\nconst Radio = /*#__PURE__*/ forwardRef<HTMLInputElement, Props>(\n ({ label, hint, count, className, id, testId, ...rest }, ref) => {\n /* ⚠ İpucu ADA değil AÇIKLAMAYA bağlanır — gerekçe `Switch`te yazılı. */\n const generatedId = useId();\n const baseId = id ?? generatedId;\n const labelId = `${baseId}-label`;\n const hintId = `${baseId}-hint`;\n const countId = `${baseId}-count`;\n\n return (\n <label className={cx(styles.radio, className)} data-testid={testId}>\n <input\n ref={ref}\n type=\"radio\"\n id={baseId}\n className={styles.radio__input}\n /*\n * Sayaç ADIN İÇİNDE KALIR (\"Disk Balata, 128\"): filtre listesinde kaç sonuç olduğu\n * seçimin bir parçası.\n */\n aria-labelledby={[labelId, isDefined(count) ? countId : null].filter(Boolean).join(' ')}\n aria-describedby={hint ? hintId : rest['aria-describedby']}\n {...rest}\n />\n <span className={styles.radio__body}>\n <span id={labelId} className={styles.radio__label}>\n {label}\n </span>\n {hint && (\n <span id={hintId} className={styles.radio__hint}>\n {hint}\n </span>\n )}\n </span>\n {isDefined(count) && (\n <span id={countId} className={styles.radio__count}>\n {count}\n </span>\n )}\n </label>\n );\n },\n);\n\nexport default /*#__PURE__*/ memo(/*#__PURE__*/ named(Radio, 'Radio')) as typeof Radio;\n"],"names":["Radio","forwardRef","label","hint","count","className","id","testId","rest","ref","generatedId","useId","baseId","labelId","hintId","countId","jsxs","cx","styles","jsx","isDefined","index","memo","named"],"mappings":";;;;;;;AAoBA,MAAMA,IAAsB,gBAAAC;AAAA,EAC1B,CAAC,EAAE,OAAAC,GAAO,MAAAC,GAAM,OAAAC,GAAO,WAAAC,GAAW,IAAAC,GAAI,QAAAC,GAAQ,GAAGC,EAAA,GAAQC,MAAQ;AAE/D,UAAMC,IAAcC,EAAA,GACdC,IAASN,KAAMI,GACfG,IAAU,GAAGD,CAAM,UACnBE,IAAS,GAAGF,CAAM,SAClBG,IAAU,GAAGH,CAAM;AAEzB,WACE,gBAAAI,EAAC,WAAM,WAAWC,EAAGC,EAAO,OAAOb,CAAS,GAAG,eAAaE,GAC1D,UAAA;AAAA,MAAA,gBAAAY;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAAV;AAAA,UACA,MAAK;AAAA,UACL,IAAIG;AAAA,UACJ,WAAWM,EAAO;AAAA,UAKlB,mBAAiB,CAACL,GAASO,EAAUhB,CAAK,IAAIW,IAAU,IAAI,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,UACtF,oBAAkBZ,IAAOW,IAASN,EAAK,kBAAkB;AAAA,UACxD,GAAGA;AAAA,QAAA;AAAA,MAAA;AAAA,MAEN,gBAAAQ,EAAC,QAAA,EAAK,WAAWE,EAAO,aACtB,UAAA;AAAA,QAAA,gBAAAC,EAAC,UAAK,IAAIN,GAAS,WAAWK,EAAO,cAClC,UAAAhB,GACH;AAAA,QACCC,uBACE,QAAA,EAAK,IAAIW,GAAQ,WAAWI,EAAO,aACjC,UAAAf,EAAA,CACH;AAAA,MAAA,GAEJ;AAAA,MACCiB,EAAUhB,CAAK,KACd,gBAAAe,EAAC,QAAA,EAAK,IAAIJ,GAAS,WAAWG,EAAO,cAClC,UAAAd,EAAA,CACH;AAAA,IAAA,GAEJ;AAAA,EAEJ;AACF,GAEAiB,IAA6B,gBAAAC,EAAmB,gBAAAC,EAAMvB,GAAO,OAAO,CAAC;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer ui{.ui-radio-KoZak{display:flex;align-items:flex-start;gap:var(--hd-space-3);cursor:pointer;padding:var(--hd-space-2);margin-inline:calc(-1 * var(--hd-space-2));border-radius:var(--hd-radius-xs);transition:background-color var(--hd-duration-fast) var(--hd-ease-standard)}.ui-radio-KoZak:hover{background-color:var(--hd-bg-raised)}@media (prefers-reduced-motion: reduce){.ui-radio-KoZak{transition:none}}.ui-radio__input-gVMgh{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-grid;place-content:center;flex-shrink:0;width:18px;height:18px;margin:0;border:1.5px solid var(--hd-text-3);border-radius:var(--hd-radius-xs);background-color:var(--hd-bg-surface);cursor:pointer;transition:background-color var(--hd-duration-fast) var(--hd-ease-standard),border-color var(--hd-duration-fast) var(--hd-ease-standard);border-radius:var(--hd-radius-pill)}.ui-radio__input-gVMgh:before{content:"";width:10px;height:10px;background-color:var(--hd-on-primary);scale:0;transition:scale var(--hd-duration-fast) var(--hd-ease-standard);width:8px;height:8px;border-radius:var(--hd-radius-pill)}.ui-radio__input-gVMgh:hover:not(:disabled){border-color:var(--hd-text-2)}.ui-radio__input-gVMgh:checked,.ui-radio__input-gVMgh:indeterminate{background-color:var(--hd-primary);border-color:var(--hd-primary)}.ui-radio__input-gVMgh:checked:before,.ui-radio__input-gVMgh:indeterminate:before{scale:1}.ui-radio__input-gVMgh:checked:hover:not(:disabled),.ui-radio__input-gVMgh:indeterminate:hover:not(:disabled){background-color:var(--hd-primary-hover);border-color:var(--hd-primary-hover)}.ui-radio__input-gVMgh:disabled{background-color:var(--hd-bg-disabled);border-color:var(--hd-border-strong);cursor:not-allowed}.ui-radio__input-gVMgh:checked:disabled,.ui-radio__input-gVMgh:indeterminate:disabled{background-color:var(--hd-text-disabled);border-color:transparent}.ui-radio__input-gVMgh:checked:disabled:before,.ui-radio__input-gVMgh:indeterminate:disabled:before{background-color:var(--hd-bg-surface)}@media (prefers-reduced-motion: reduce){.ui-radio__input-gVMgh{transition:none}.ui-radio__input-gVMgh:before{transition:none}}@media (forced-colors: active){.ui-radio__input-gVMgh{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.ui-radio__input-gVMgh:before{display:none}}.ui-radio__input-gVMgh{margin-top:2px}.ui-radio__input-gVMgh:focus-visible{outline:var(--ui-ring-width, 2px) solid var(--hd-focus);outline-offset:var(--ui-ring-offset, 2px)}.ui-radio__body-oZWg6{display:flex;flex-direction:column;gap:var(--hd-space-1);flex:1;min-width:0}.ui-radio__label-d-5ce{font-size:var(--hd-type-small-size);line-height:var(--hd-type-body-line-height);color:var(--hd-text)}.ui-radio__hint-baVbs{font-size:var(--hd-type-caption-size);color:var(--hd-text-2);line-height:var(--hd-type-body-line-height)}.ui-radio__count-OtkUM{font-size:var(--hd-type-caption-size);color:var(--hd-text-3);font-variant-numeric:tabular-nums;flex-shrink:0;margin-top:3px}}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("react/jsx-runtime"),c=require("react"),m=require("../../helpers/class-name.helper.cjs"),e={default:{"radioCard":"ui-radioCard-sndiC","radioCard__input":"ui-radioCard__input-6vuoD","radioCard--selected":"ui-radioCard--selected-Mi7ee","radioCard__indicator":"ui-radioCard__indicator--x9LT","radioCard--disabled":"ui-radioCard--disabled-YlYee","radioCard__body":"ui-radioCard__body-CFqoi"}},_=({name:s,value:d,isSelected:r,isDisabled:t,onChange:i,children:o,className:l,id:u,testId:n})=>a.jsxs("label",{className:m.cx(e.default.radioCard,r&&e.default["radioCard--selected"],t&&e.default["radioCard--disabled"],l),"data-testid":n,children:[a.jsx("input",{type:"radio",id:u,name:s,value:d,checked:r,disabled:t,onChange:()=>i(d),className:e.default.radioCard__input}),a.jsx("span",{className:e.default.radioCard__indicator,"aria-hidden":!0}),a.jsx("span",{className:e.default.radioCard__body,children:o})]}),f=c.memo(_);exports.default=f;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/components/RadioCard/index.tsx"],"sourcesContent":["'use client';\n\nimport { type FC, memo, type ReactNode } from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport type { CommonElementProps } from '../../types/common-element-props.type';\n\nimport styles from './index.module.scss';\n\ntype Props = {\n /** Radyo grubu adı — aynı gruptaki kartlar ok tuşlarıyla gezilir. */\n name: string;\n value: string;\n isSelected: boolean;\n isDisabled?: boolean;\n onChange: (value: string) => void;\n /** Zengin gövde: kartın içeriği çağırana aittir. */\n children: ReactNode;\n} & CommonElementProps;\n\n/** Seçilebilir kart — zengin gövdeli radyo. */\nconst RadioCard: FC<Props> = ({\n name,\n value,\n isSelected,\n isDisabled,\n onChange,\n children,\n className,\n id,\n testId,\n}) => (\n <label\n className={cx(\n styles.radioCard,\n isSelected && styles['radioCard--selected'],\n isDisabled && styles['radioCard--disabled'],\n className,\n )}\n data-testid={testId}\n >\n <input\n type=\"radio\"\n id={id}\n name={name}\n value={value}\n checked={isSelected}\n disabled={isDisabled}\n onChange={() => onChange(value)}\n className={styles.radioCard__input}\n />\n <span className={styles.radioCard__indicator} aria-hidden />\n <span className={styles.radioCard__body}>{children}</span>\n </label>\n);\n\nexport default /*#__PURE__*/ memo(RadioCard) as typeof RadioCard;\n"],"names":["RadioCard","name","value","isSelected","isDisabled","onChange","children","className","id","testId","jsxs","cx","styles","jsx","index"],"mappings":"uQAoBMA,EAAuB,CAAC,CAC5B,KAAAC,EACA,MAAAC,EACA,WAAAC,EACA,WAAAC,EACA,SAAAC,EACA,SAAAC,EACA,UAAAC,EACA,GAAAC,EACA,OAAAC,CACF,IACEC,EAAAA,KAAC,QAAA,CACC,UAAWC,EAAAA,GACTC,EAAAA,QAAO,UACPT,GAAcS,EAAAA,QAAO,qBAAqB,EAC1CR,GAAcQ,EAAAA,QAAO,qBAAqB,EAC1CL,CAAA,EAEF,cAAaE,EAEb,SAAA,CAAAI,EAAAA,IAAC,QAAA,CACC,KAAK,QACL,GAAAL,EACA,KAAAP,EACA,MAAAC,EACA,QAASC,EACT,SAAUC,EACV,SAAU,IAAMC,EAASH,CAAK,EAC9B,UAAWU,EAAAA,QAAO,gBAAA,CAAA,QAEnB,OAAA,CAAK,UAAWA,EAAAA,QAAO,qBAAsB,cAAW,GAAC,EAC1DC,EAAAA,IAAC,OAAA,CAAK,UAAWD,EAAAA,QAAO,gBAAkB,SAAAN,CAAA,CAAS,CAAA,CAAA,CACrD,EAGFQ,SAAkCd,CAAS"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { FC, ReactNode } from 'react';
|
|
2
|
+
import { CommonElementProps } from '../../types/common-element-props.type';
|
|
3
|
+
type Props = {
|
|
4
|
+
/** Radyo grubu adı — aynı gruptaki kartlar ok tuşlarıyla gezilir. */
|
|
5
|
+
name: string;
|
|
6
|
+
value: string;
|
|
7
|
+
isSelected: boolean;
|
|
8
|
+
isDisabled?: boolean;
|
|
9
|
+
onChange: (value: string) => void;
|
|
10
|
+
/** Zengin gövde: kartın içeriği çağırana aittir. */
|
|
11
|
+
children: ReactNode;
|
|
12
|
+
} & CommonElementProps;
|
|
13
|
+
/** Seçilebilir kart — zengin gövdeli radyo. */
|
|
14
|
+
declare const RadioCard: FC<Props>;
|
|
15
|
+
declare const _default: typeof RadioCard;
|
|
16
|
+
export default _default;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs as l, jsx as d } from "react/jsx-runtime";
|
|
3
|
+
import { memo as p } from "react";
|
|
4
|
+
import { cx as C } from "../../helpers/class-name.helper.js";
|
|
5
|
+
const a = {"radioCard":"ui-radioCard-sndiC","radioCard__input":"ui-radioCard__input-6vuoD","radioCard--selected":"ui-radioCard--selected-Mi7ee","radioCard__indicator":"ui-radioCard__indicator--x9LT","radioCard--disabled":"ui-radioCard--disabled-YlYee","radioCard__body":"ui-radioCard__body-CFqoi"};
|
|
6
|
+
const _ = ({
|
|
7
|
+
name: e,
|
|
8
|
+
value: r,
|
|
9
|
+
isSelected: o,
|
|
10
|
+
isDisabled: i,
|
|
11
|
+
onChange: s,
|
|
12
|
+
children: t,
|
|
13
|
+
className: m,
|
|
14
|
+
id: n,
|
|
15
|
+
testId: c
|
|
16
|
+
}) => /* @__PURE__ */ l(
|
|
17
|
+
"label",
|
|
18
|
+
{
|
|
19
|
+
className: C(
|
|
20
|
+
a.radioCard,
|
|
21
|
+
o && a["radioCard--selected"],
|
|
22
|
+
i && a["radioCard--disabled"],
|
|
23
|
+
m
|
|
24
|
+
),
|
|
25
|
+
"data-testid": c,
|
|
26
|
+
children: [
|
|
27
|
+
/* @__PURE__ */ d(
|
|
28
|
+
"input",
|
|
29
|
+
{
|
|
30
|
+
type: "radio",
|
|
31
|
+
id: n,
|
|
32
|
+
name: e,
|
|
33
|
+
value: r,
|
|
34
|
+
checked: o,
|
|
35
|
+
disabled: i,
|
|
36
|
+
onChange: () => s(r),
|
|
37
|
+
className: a.radioCard__input
|
|
38
|
+
}
|
|
39
|
+
),
|
|
40
|
+
/* @__PURE__ */ d("span", { className: a.radioCard__indicator, "aria-hidden": !0 }),
|
|
41
|
+
/* @__PURE__ */ d("span", { className: a.radioCard__body, children: t })
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
), N = /* @__PURE__ */ p(_);
|
|
45
|
+
export {
|
|
46
|
+
N as default
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/RadioCard/index.tsx"],"sourcesContent":["'use client';\n\nimport { type FC, memo, type ReactNode } from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport type { CommonElementProps } from '../../types/common-element-props.type';\n\nimport styles from './index.module.scss';\n\ntype Props = {\n /** Radyo grubu adı — aynı gruptaki kartlar ok tuşlarıyla gezilir. */\n name: string;\n value: string;\n isSelected: boolean;\n isDisabled?: boolean;\n onChange: (value: string) => void;\n /** Zengin gövde: kartın içeriği çağırana aittir. */\n children: ReactNode;\n} & CommonElementProps;\n\n/** Seçilebilir kart — zengin gövdeli radyo. */\nconst RadioCard: FC<Props> = ({\n name,\n value,\n isSelected,\n isDisabled,\n onChange,\n children,\n className,\n id,\n testId,\n}) => (\n <label\n className={cx(\n styles.radioCard,\n isSelected && styles['radioCard--selected'],\n isDisabled && styles['radioCard--disabled'],\n className,\n )}\n data-testid={testId}\n >\n <input\n type=\"radio\"\n id={id}\n name={name}\n value={value}\n checked={isSelected}\n disabled={isDisabled}\n onChange={() => onChange(value)}\n className={styles.radioCard__input}\n />\n <span className={styles.radioCard__indicator} aria-hidden />\n <span className={styles.radioCard__body}>{children}</span>\n </label>\n);\n\nexport default /*#__PURE__*/ memo(RadioCard) as typeof RadioCard;\n"],"names":["RadioCard","name","value","isSelected","isDisabled","onChange","children","className","id","testId","jsxs","cx","styles","jsx","index"],"mappings":";;;;;AAoBA,MAAMA,IAAuB,CAAC;AAAA,EAC5B,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,IAAAC;AAAA,EACA,QAAAC;AACF,MACE,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC;AAAA,MACTC,EAAO;AAAA,MACPT,KAAcS,EAAO,qBAAqB;AAAA,MAC1CR,KAAcQ,EAAO,qBAAqB;AAAA,MAC1CL;AAAA,IAAA;AAAA,IAEF,eAAaE;AAAA,IAEb,UAAA;AAAA,MAAA,gBAAAI;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,IAAAL;AAAA,UACA,MAAAP;AAAA,UACA,OAAAC;AAAA,UACA,SAASC;AAAA,UACT,UAAUC;AAAA,UACV,UAAU,MAAMC,EAASH,CAAK;AAAA,UAC9B,WAAWU,EAAO;AAAA,QAAA;AAAA,MAAA;AAAA,wBAEnB,QAAA,EAAK,WAAWA,EAAO,sBAAsB,eAAW,IAAC;AAAA,MAC1D,gBAAAC,EAAC,QAAA,EAAK,WAAWD,EAAO,iBAAkB,UAAAN,EAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AACrD,GAGFQ,sBAAkCd,CAAS;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer ui{.ui-radioCard-sndiC{display:flex;align-items:center;gap:var(--hd-space-3);min-height:44px;padding:var(--hd-space-3) var(--hd-space-4);background-color:var(--hd-bg-surface);border:1px solid var(--ui-radio-card-line, var(--hd-border));border-radius:var(--ui-radio-card-radius, var(--hd-radius-sm));cursor:pointer;transition:border-color var(--hd-duration-fast) var(--hd-ease-standard),background-color var(--hd-duration-fast) var(--hd-ease-standard)}.ui-radioCard-sndiC:hover{border-color:var(--hd-border-strong)}.ui-radioCard-sndiC:has(.ui-radioCard__input-6vuoD:focus-visible){outline:var(--ui-ring-width, 2px) solid var(--hd-focus);outline-offset:var(--ui-ring-offset, 2px)}.ui-radioCard--selected-Mi7ee{border-color:var(--hd-primary-line);background-color:var(--hd-primary-soft);box-shadow:inset 0 0 0 1px var(--hd-primary-line)}.ui-radioCard--selected-Mi7ee:hover,.ui-radioCard--selected-Mi7ee .ui-radioCard__indicator--x9LT{border-color:var(--hd-primary)}.ui-radioCard--selected-Mi7ee .ui-radioCard__indicator--x9LT:after{background-color:var(--hd-primary)}.ui-radioCard--disabled-YlYee{background-color:var(--hd-bg-raised);border-color:var(--hd-border);cursor:not-allowed;color:var(--hd-text-3)}@media (forced-colors: active){.ui-radioCard--disabled-YlYee{color:GrayText;border-color:GrayText}}.ui-radioCard--disabled-YlYee{box-shadow:none}.ui-radioCard--disabled-YlYee:hover{border-color:var(--hd-border)}.ui-radioCard--disabled-YlYee .ui-radioCard__indicator--x9LT{background-color:var(--hd-bg-raised);border-color:var(--hd-border)}.ui-radioCard--disabled-YlYee.ui-radioCard--selected-Mi7ee .ui-radioCard__indicator--x9LT{border-color:var(--hd-text-3)}.ui-radioCard--disabled-YlYee.ui-radioCard--selected-Mi7ee .ui-radioCard__indicator--x9LT:after{background-color:var(--hd-text-3)}.ui-radioCard__input-6vuoD{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.ui-radioCard__indicator--x9LT{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:18px;height:18px;background-color:var(--hd-bg-surface);border:1px solid var(--hd-border-strong);border-radius:var(--hd-radius-pill);transition:border-color var(--hd-duration-fast) var(--hd-ease-standard)}.ui-radioCard__indicator--x9LT:after{content:"";width:8px;height:8px;border-radius:var(--hd-radius-pill);background-color:transparent;transition:background-color var(--hd-duration-fast) var(--hd-ease-standard)}.ui-radioCard__body-CFqoi{display:flex;align-items:center;justify-content:space-between;gap:var(--hd-space-3);flex:1;min-width:0}@media (prefers-reduced-motion: reduce){.ui-radioCard-sndiC{transition:none}.ui-radioCard-sndiC .ui-radioCard__indicator--x9LT,.ui-radioCard-sndiC .ui-radioCard__indicator--x9LT:after{transition:none}}}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),h=require("react"),f=require("@handijit/utils"),M=require("../../helpers/class-name.helper.cjs"),y=require("../../helpers/label.helper.cjs"),R=require("../../theme/context.cjs"),a={default:{"range":"ui-range-RpDPh","range--disabled":"ui-range--disabled-13hlc","range__readout":"ui-range__readout-itDMd","range__fill":"ui-range__fill-VXMCE","range__input":"ui-range__input-TAN2I","range__separator":"ui-range__separator-u-ZJX","range__track":"ui-range__track-bCh5Y","range__bounds":"ui-range__bounds-GIhFd"}},I=({min:l,max:c,step:x=1,value:m,onChange:d,onCommit:u,formatValue:t=String,label:_,minLabel:q,maxLabel:L,isDisabled:p,className:S,testId:$})=>{var j,b;const{labels:i}=R.useUi(),w=y.resolveLabel("RangeSlider.minLabel",q,(j=i==null?void 0:i.range)==null?void 0:j.min),P=y.resolveLabel("RangeSlider.maxLabel",L,(b=i==null?void 0:i.range)==null?void 0:b.max),[s,n]=m,U=h.useCallback(r=>d([Math.min(r,n),n]),[n,d]),k=h.useCallback(r=>d([s,Math.max(r,s)]),[s,d]),o=h.useCallback(()=>u==null?void 0:u([s,n]),[s,n,u]),g=c-l,v=g===0?0:f.normalize(s-l,g),z=g===0?0:f.normalize(n-l,g),N=v>50;return e.jsxs("div",{className:M.cx(a.default.range,p&&a.default["range--disabled"],S),role:"group","aria-label":_,"data-testid":$,children:[e.jsxs("div",{className:a.default.range__readout,children:[e.jsx("span",{className:a.default.range__value,children:t(s)}),e.jsx("span",{className:a.default.range__separator,"aria-hidden":!0,children:"—"}),e.jsx("span",{className:a.default.range__value,children:t(n)})]}),e.jsxs("div",{className:a.default.range__track,children:[e.jsx("span",{className:a.default.range__fill,style:{left:`${v}%`,right:`${100-z}%`},"aria-hidden":!0}),e.jsx("input",{type:"range",className:a.default.range__input,style:{zIndex:N?4:3},min:l,max:c,step:x,value:s,disabled:p,"aria-label":`${_} — ${w}`,"aria-valuetext":t(s),onChange:r=>U(Number(r.target.value)),onPointerUp:o,onKeyUp:o}),e.jsx("input",{type:"range",className:a.default.range__input,style:{zIndex:N?3:4},min:l,max:c,step:x,value:n,disabled:p,"aria-label":`${_} — ${P}`,"aria-valuetext":t(n),onChange:r=>k(Number(r.target.value)),onPointerUp:o,onKeyUp:o})]}),e.jsxs("div",{className:a.default.range__bounds,"aria-hidden":!0,children:[e.jsx("span",{children:t(l)}),e.jsx("span",{children:t(c)})]})]})},K=h.memo(I);exports.default=K;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/components/RangeSlider/index.tsx"],"sourcesContent":["'use client';\n\nimport { memo, useCallback } from 'react';\n\nimport { normalize } from '@handijit/utils';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { resolveLabel } from '../../helpers/label.helper';\nimport { useUi } from '../../theme/context';\n\nimport styles from './index.module.scss';\n\nexport type RangeValue = [number, number];\n\ntype Props = {\n min: number;\n max: number;\n step?: number;\n value: RangeValue;\n /** Sürükleme sürerken her adımda çağrılır — ekrandaki değeri günceller. */\n onChange: (value: RangeValue) => void;\n /** Sürükleme bittiğinde çağrılır. */\n onCommit?: (value: RangeValue) => void;\n /** Ham sayıyı okunur metne çevirir (\"125000\" → \"1.250 TL\"). */\n formatValue?: (value: number) => string;\n /** Grubun erişilebilir adı (\"Fiyat aralığı\"). */\n label: string;\n /** Alt kulbun erişilebilir ad eki. */\n minLabel?: string;\n /** Üst kulbun erişilebilir ad eki. */\n maxLabel?: string;\n isDisabled?: boolean;\n className?: string;\n testId?: string;\n};\n\n/** Çift kulplu aralık kaydırıcı. */\nconst RangeSlider = ({\n min,\n max,\n step = 1,\n value,\n onChange,\n onCommit,\n formatValue = String,\n label,\n minLabel,\n maxLabel,\n isDisabled,\n className,\n testId,\n}: Props) => {\n const { labels } = useUi();\n const lowName = resolveLabel('RangeSlider.minLabel', minLabel, labels?.range?.min);\n const highName = resolveLabel('RangeSlider.maxLabel', maxLabel, labels?.range?.max);\n const [low, high] = value;\n\n const handleLowChange = useCallback(\n (raw: number) => onChange([Math.min(raw, high), high]),\n [high, onChange],\n );\n\n const handleHighChange = useCallback(\n (raw: number) => onChange([low, Math.max(raw, low)]),\n [low, onChange],\n );\n\n const commit = useCallback(() => onCommit?.([low, high]), [low, high, onCommit]);\n\n /*\n * `normalize` yuzdeyi verir ve 100'de kirpar; olcek sifir genislikte oldugunda (min === max) 0\n * doner.\n */\n const span = max - min;\n const lowPercent = span === 0 ? 0 : normalize(low - min, span);\n const highPercent = span === 0 ? 0 : normalize(high - min, span);\n\n /* Iki kulp ust uste geldiginde hangisinin tutulacagi belirsizlesir. */\n const isLowOnTop = lowPercent > 50;\n\n return (\n <div\n className={cx(styles.range, isDisabled && styles['range--disabled'], className)}\n role=\"group\"\n aria-label={label}\n data-testid={testId}\n >\n <div className={styles.range__readout}>\n <span className={styles.range__value}>{formatValue(low)}</span>\n <span className={styles.range__separator} aria-hidden>\n —\n </span>\n <span className={styles.range__value}>{formatValue(high)}</span>\n </div>\n\n <div className={styles.range__track}>\n {/* Secili aralik: kullanicinin nerede durdugunu tek bakista gosterir. */}\n <span\n className={styles.range__fill}\n style={{ left: `${lowPercent}%`, right: `${100 - highPercent}%` }}\n aria-hidden\n />\n\n <input\n type=\"range\"\n className={styles.range__input}\n style={{ zIndex: isLowOnTop ? 4 : 3 }}\n min={min}\n max={max}\n step={step}\n value={low}\n disabled={isDisabled}\n aria-label={`${label} — ${lowName}`}\n aria-valuetext={formatValue(low)}\n onChange={event => handleLowChange(Number(event.target.value))}\n onPointerUp={commit}\n onKeyUp={commit}\n />\n\n <input\n type=\"range\"\n className={styles.range__input}\n style={{ zIndex: isLowOnTop ? 3 : 4 }}\n min={min}\n max={max}\n step={step}\n value={high}\n disabled={isDisabled}\n aria-label={`${label} — ${highName}`}\n aria-valuetext={formatValue(high)}\n onChange={event => handleHighChange(Number(event.target.value))}\n onPointerUp={commit}\n onKeyUp={commit}\n />\n </div>\n\n {/* Olcegin uclari: kullanici kendi araligini baglama oturtabilmeli. */}\n <div className={styles.range__bounds} aria-hidden>\n <span>{formatValue(min)}</span>\n <span>{formatValue(max)}</span>\n </div>\n </div>\n );\n};\n\nexport default /*#__PURE__*/ memo(RangeSlider) as typeof RangeSlider;\n"],"names":["RangeSlider","min","max","step","value","onChange","onCommit","formatValue","label","minLabel","maxLabel","isDisabled","className","testId","labels","useUi","lowName","resolveLabel","_a","highName","_b","low","high","handleLowChange","useCallback","raw","handleHighChange","commit","span","lowPercent","normalize","highPercent","isLowOnTop","jsxs","cx","styles","jsx","event","index"],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export type RangeValue = [number, number];
|
|
2
|
+
type Props = {
|
|
3
|
+
min: number;
|
|
4
|
+
max: number;
|
|
5
|
+
step?: number;
|
|
6
|
+
value: RangeValue;
|
|
7
|
+
/** Sürükleme sürerken her adımda çağrılır — ekrandaki değeri günceller. */
|
|
8
|
+
onChange: (value: RangeValue) => void;
|
|
9
|
+
/** Sürükleme bittiğinde çağrılır. */
|
|
10
|
+
onCommit?: (value: RangeValue) => void;
|
|
11
|
+
/** Ham sayıyı okunur metne çevirir ("125000" → "1.250 TL"). */
|
|
12
|
+
formatValue?: (value: number) => string;
|
|
13
|
+
/** Grubun erişilebilir adı ("Fiyat aralığı"). */
|
|
14
|
+
label: string;
|
|
15
|
+
/** Alt kulbun erişilebilir ad eki. */
|
|
16
|
+
minLabel?: string;
|
|
17
|
+
/** Üst kulbun erişilebilir ad eki. */
|
|
18
|
+
maxLabel?: string;
|
|
19
|
+
isDisabled?: boolean;
|
|
20
|
+
className?: string;
|
|
21
|
+
testId?: string;
|
|
22
|
+
};
|
|
23
|
+
/** Çift kulplu aralık kaydırıcı. */
|
|
24
|
+
declare const RangeSlider: ({ min, max, step, value, onChange, onCommit, formatValue, label, minLabel, maxLabel, isDisabled, className, testId, }: Props) => import("react").JSX.Element;
|
|
25
|
+
declare const _default: typeof RangeSlider;
|
|
26
|
+
export default _default;
|