@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,34 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ChipSize } from '../Chip';
|
|
3
|
+
export type ChipOption<T extends string = string> = {
|
|
4
|
+
value: T;
|
|
5
|
+
label: string;
|
|
6
|
+
icon?: ReactNode;
|
|
7
|
+
count?: number;
|
|
8
|
+
isDisabled?: boolean;
|
|
9
|
+
};
|
|
10
|
+
type BaseProps<T extends string> = {
|
|
11
|
+
options: ChipOption<T>[];
|
|
12
|
+
/** Grubun erişilebilir adı ("Sıralama", "Kalite"). */
|
|
13
|
+
label: string;
|
|
14
|
+
size?: ChipSize;
|
|
15
|
+
/** Taşan çipleri alta sarmak yerine yatay kaydırır (mobil filtre şeridi). */
|
|
16
|
+
isScrollable?: boolean;
|
|
17
|
+
className?: string;
|
|
18
|
+
};
|
|
19
|
+
type SingleProps<T extends string> = BaseProps<T> & {
|
|
20
|
+
isMultiple?: false;
|
|
21
|
+
value: T | null;
|
|
22
|
+
/** Seçili çipe tekrar basılırsa `null` gelir — seçim geri alınabilir. */
|
|
23
|
+
onChange: (value: T | null) => void;
|
|
24
|
+
};
|
|
25
|
+
type MultipleProps<T extends string> = BaseProps<T> & {
|
|
26
|
+
isMultiple: true;
|
|
27
|
+
value: T[];
|
|
28
|
+
onChange: (value: T[]) => void;
|
|
29
|
+
};
|
|
30
|
+
type Props<T extends string> = SingleProps<T> | MultipleProps<T>;
|
|
31
|
+
/** Çip grubu — açılır liste yerine tek dokunuşla seçim. */
|
|
32
|
+
declare const ChipGroup: <T extends string>({ options, label, size, isScrollable, className, ...selection }: Props<T>) => import("react").JSX.Element;
|
|
33
|
+
declare const _default: typeof ChipGroup;
|
|
34
|
+
export default _default;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as c } from "react/jsx-runtime";
|
|
3
|
+
import { memo as D, useRef as M } from "react";
|
|
4
|
+
import { cx as C } from "../../helpers/class-name.helper.js";
|
|
5
|
+
import k from "../Chip/index.js";
|
|
6
|
+
const o = {"group":"ui-group-0tnVf","group--scrollable":"ui-group--scrollable-PMu6V"};
|
|
7
|
+
const A = ({
|
|
8
|
+
options: a,
|
|
9
|
+
label: h,
|
|
10
|
+
size: m = "md",
|
|
11
|
+
isScrollable: p,
|
|
12
|
+
className: v,
|
|
13
|
+
...e
|
|
14
|
+
}) => {
|
|
15
|
+
var n;
|
|
16
|
+
const d = M(null), b = (l) => e.isMultiple ? e.value.includes(l) : e.value === l, g = (l) => {
|
|
17
|
+
if (e.isMultiple) {
|
|
18
|
+
const u = e.value.includes(l) ? e.value.filter((r) => r !== l) : [...e.value, l];
|
|
19
|
+
e.onChange(u);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
e.onChange(e.value === l ? null : l);
|
|
23
|
+
}, x = (l) => {
|
|
24
|
+
var s, f;
|
|
25
|
+
if (e.isMultiple) return;
|
|
26
|
+
const u = l.key === "ArrowRight" || l.key === "ArrowDown" ? 1 : l.key === "ArrowLeft" || l.key === "ArrowUp" ? -1 : 0;
|
|
27
|
+
if (u === 0) return;
|
|
28
|
+
l.preventDefault();
|
|
29
|
+
const r = a.filter((i) => !i.isDisabled);
|
|
30
|
+
if (r.length === 0) return;
|
|
31
|
+
const w = r.findIndex((i) => i.value === e.value), t = r[(w + u + r.length) % r.length];
|
|
32
|
+
e.onChange(t.value), (f = (s = d.current) == null ? void 0 : s.querySelector(`[data-chip-value="${t.value}"]`)) == null || f.focus();
|
|
33
|
+
}, y = e.isMultiple ? null : e.value ?? ((n = a.find((l) => !l.isDisabled)) == null ? void 0 : n.value) ?? null;
|
|
34
|
+
return /* @__PURE__ */ c(
|
|
35
|
+
"div",
|
|
36
|
+
{
|
|
37
|
+
ref: d,
|
|
38
|
+
className: C(o.group, p && o["group--scrollable"], v),
|
|
39
|
+
role: e.isMultiple ? "group" : "radiogroup",
|
|
40
|
+
"aria-label": h,
|
|
41
|
+
onKeyDown: x,
|
|
42
|
+
children: a.map((l) => /* @__PURE__ */ c(
|
|
43
|
+
k,
|
|
44
|
+
{
|
|
45
|
+
size: m,
|
|
46
|
+
icon: l.icon,
|
|
47
|
+
count: l.count,
|
|
48
|
+
isSelected: b(l.value),
|
|
49
|
+
disabled: l.isDisabled,
|
|
50
|
+
role: e.isMultiple ? void 0 : "radio",
|
|
51
|
+
tabIndex: e.isMultiple || l.value === y ? 0 : -1,
|
|
52
|
+
"data-chip-value": l.value,
|
|
53
|
+
onClick: () => g(l.value),
|
|
54
|
+
children: l.label
|
|
55
|
+
},
|
|
56
|
+
l.value
|
|
57
|
+
))
|
|
58
|
+
}
|
|
59
|
+
);
|
|
60
|
+
}, q = /* @__PURE__ */ D(A);
|
|
61
|
+
export {
|
|
62
|
+
q as default
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/ChipGroup/index.tsx"],"sourcesContent":["'use client';\n\nimport { type KeyboardEvent, memo, type ReactNode, useRef } from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport Chip, { type ChipSize } from '../Chip';\n\nimport styles from './index.module.scss';\n\nexport type ChipOption<T extends string = string> = {\n value: T;\n label: string;\n icon?: ReactNode;\n count?: number;\n isDisabled?: boolean;\n};\n\ntype BaseProps<T extends string> = {\n options: ChipOption<T>[];\n /** Grubun erişilebilir adı (\"Sıralama\", \"Kalite\"). */\n label: string;\n size?: ChipSize;\n /** Taşan çipleri alta sarmak yerine yatay kaydırır (mobil filtre şeridi). */\n isScrollable?: boolean;\n className?: string;\n};\n\ntype SingleProps<T extends string> = BaseProps<T> & {\n isMultiple?: false;\n value: T | null;\n /** Seçili çipe tekrar basılırsa `null` gelir — seçim geri alınabilir. */\n onChange: (value: T | null) => void;\n};\n\ntype MultipleProps<T extends string> = BaseProps<T> & {\n isMultiple: true;\n value: T[];\n onChange: (value: T[]) => void;\n};\n\ntype Props<T extends string> = SingleProps<T> | MultipleProps<T>;\n\n/** Çip grubu — açılır liste yerine tek dokunuşla seçim. */\nconst ChipGroup = <T extends string>({\n options,\n label,\n size = 'md',\n isScrollable,\n className,\n ...selection\n}: Props<T>) => {\n const listRef = useRef<HTMLDivElement>(null);\n\n const isSelected = (value: T) =>\n selection.isMultiple ? selection.value.includes(value) : selection.value === value;\n\n const handleSelect = (value: T) => {\n if (selection.isMultiple) {\n const next = selection.value.includes(value)\n ? selection.value.filter(item => item !== value)\n : [...selection.value, value];\n selection.onChange(next);\n return;\n }\n\n // Seçili çipe tekrar basmak seçimi kaldırır: \"hepsi\" seçeneği olmayan filtrelerde kullanıcının\n // geri dönebileceği tek yol bu.\n selection.onChange(selection.value === value ? null : value);\n };\n\n /** Ok tuşlarıyla gezinme; başta/sonda döner (yalnızca tek seçimde). */\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (selection.isMultiple) return;\n\n const offset =\n event.key === 'ArrowRight' || event.key === 'ArrowDown'\n ? 1\n : event.key === 'ArrowLeft' || event.key === 'ArrowUp'\n ? -1\n : 0;\n if (offset === 0) return;\n\n event.preventDefault();\n\n const enabled = options.filter(option => !option.isDisabled);\n if (enabled.length === 0) return;\n\n const currentIndex = enabled.findIndex(option => option.value === selection.value);\n const next = enabled[(currentIndex + offset + enabled.length) % enabled.length];\n\n selection.onChange(next.value);\n listRef.current?.querySelector<HTMLButtonElement>(`[data-chip-value=\"${next.value}\"]`)?.focus();\n };\n\n // Roving tabindex: seçili çip tabbable; hiçbiri seçili değilse ilki.\n const tabbableValue = selection.isMultiple\n ? null\n : (selection.value ?? options.find(option => !option.isDisabled)?.value ?? null);\n\n return (\n <div\n ref={listRef}\n className={cx(styles.group, isScrollable && styles['group--scrollable'], className)}\n role={selection.isMultiple ? 'group' : 'radiogroup'}\n aria-label={label}\n onKeyDown={handleKeyDown}\n >\n {options.map(option => (\n <Chip\n key={option.value}\n size={size}\n icon={option.icon}\n count={option.count}\n isSelected={isSelected(option.value)}\n disabled={option.isDisabled}\n role={selection.isMultiple ? undefined : 'radio'}\n tabIndex={selection.isMultiple || option.value === tabbableValue ? 0 : -1}\n data-chip-value={option.value}\n onClick={() => handleSelect(option.value)}\n >\n {option.label}\n </Chip>\n ))}\n </div>\n );\n};\n\nexport default /*#__PURE__*/ memo(ChipGroup) as typeof ChipGroup;\n"],"names":["ChipGroup","options","label","size","isScrollable","className","selection","listRef","useRef","isSelected","value","handleSelect","next","item","handleKeyDown","event","offset","enabled","option","currentIndex","_b","_a","tabbableValue","jsx","cx","styles","Chip","index"],"mappings":";;;;;;AA0CA,MAAMA,IAAY,CAAmB;AAAA,EACnC,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,cAAAC;AAAA,EACA,WAAAC;AAAA,EACA,GAAGC;AACL,MAAgB;;AACd,QAAMC,IAAUC,EAAuB,IAAI,GAErCC,IAAa,CAACC,MAClBJ,EAAU,aAAaA,EAAU,MAAM,SAASI,CAAK,IAAIJ,EAAU,UAAUI,GAEzEC,IAAe,CAACD,MAAa;AACjC,QAAIJ,EAAU,YAAY;AACxB,YAAMM,IAAON,EAAU,MAAM,SAASI,CAAK,IACvCJ,EAAU,MAAM,OAAO,CAAAO,MAAQA,MAASH,CAAK,IAC7C,CAAC,GAAGJ,EAAU,OAAOI,CAAK;AAC9B,MAAAJ,EAAU,SAASM,CAAI;AACvB;AAAA,IACF;AAIA,IAAAN,EAAU,SAASA,EAAU,UAAUI,IAAQ,OAAOA,CAAK;AAAA,EAC7D,GAGMI,IAAgB,CAACC,MAAyC;;AAC9D,QAAIT,EAAU,WAAY;AAE1B,UAAMU,IACJD,EAAM,QAAQ,gBAAgBA,EAAM,QAAQ,cACxC,IACAA,EAAM,QAAQ,eAAeA,EAAM,QAAQ,YACzC,KACA;AACR,QAAIC,MAAW,EAAG;AAElB,IAAAD,EAAM,eAAA;AAEN,UAAME,IAAUhB,EAAQ,OAAO,CAAAiB,MAAU,CAACA,EAAO,UAAU;AAC3D,QAAID,EAAQ,WAAW,EAAG;AAE1B,UAAME,IAAeF,EAAQ,UAAU,OAAUC,EAAO,UAAUZ,EAAU,KAAK,GAC3EM,IAAOK,GAASE,IAAeH,IAASC,EAAQ,UAAUA,EAAQ,MAAM;AAE9E,IAAAX,EAAU,SAASM,EAAK,KAAK,IAC7BQ,KAAAC,IAAAd,EAAQ,YAAR,gBAAAc,EAAiB,cAAiC,qBAAqBT,EAAK,KAAK,UAAjF,QAAAQ,EAAwF;AAAA,EAC1F,GAGME,IAAgBhB,EAAU,aAC5B,OACCA,EAAU,WAASe,IAAApB,EAAQ,KAAK,CAAAiB,MAAU,CAACA,EAAO,UAAU,MAAzC,gBAAAG,EAA4C,UAAS;AAE7E,SACE,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAKhB;AAAA,MACL,WAAWiB,EAAGC,EAAO,OAAOrB,KAAgBqB,EAAO,mBAAmB,GAAGpB,CAAS;AAAA,MAClF,MAAMC,EAAU,aAAa,UAAU;AAAA,MACvC,cAAYJ;AAAA,MACZ,WAAWY;AAAA,MAEV,UAAAb,EAAQ,IAAI,CAAAiB,MACX,gBAAAK;AAAA,QAACG;AAAA,QAAA;AAAA,UAEC,MAAAvB;AAAA,UACA,MAAMe,EAAO;AAAA,UACb,OAAOA,EAAO;AAAA,UACd,YAAYT,EAAWS,EAAO,KAAK;AAAA,UACnC,UAAUA,EAAO;AAAA,UACjB,MAAMZ,EAAU,aAAa,SAAY;AAAA,UACzC,UAAUA,EAAU,cAAcY,EAAO,UAAUI,IAAgB,IAAI;AAAA,UACvE,mBAAiBJ,EAAO;AAAA,UACxB,SAAS,MAAMP,EAAaO,EAAO,KAAK;AAAA,UAEvC,UAAAA,EAAO;AAAA,QAAA;AAAA,QAXHA,EAAO;AAAA,MAAA,CAaf;AAAA,IAAA;AAAA,EAAA;AAGP,GAEAS,sBAAkC3B,CAAS;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer ui{.ui-group-0tnVf{display:flex;flex-wrap:wrap;gap:var(--hd-space-2)}.ui-group--scrollable-PMu6V{display:flex;gap:var(--hd-space-2);position:relative;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding-block:var(--hd-space-1) var(--hd-space-3);scrollbar-width:none;-ms-overflow-style:none}.ui-group--scrollable-PMu6V::-webkit-scrollbar{display:none}.ui-group--scrollable-PMu6V>*{scroll-snap-align:start;flex-shrink:0}.ui-group--scrollable-PMu6V{flex-wrap:nowrap;padding-block:2px}}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),N=require("react"),b=require("react-bootstrap-icons"),m=require("../../helpers/class-name.helper.cjs"),B=require("../../helpers/component.helper.cjs"),s=require("../../helpers/label.helper.cjs"),L=require("../../hooks/useCopyFeedback.cjs"),k=require("../../theme/context.cjs"),I=require("../Link/index.cjs"),a={default:{"badge":"ui-badge-b14ZG","badge--xs":"ui-badge--xs-PBD2E","badge__code":"ui-badge__code-RRDlH","badge--sm":"ui-badge--sm-Fr4vY","badge--md":"ui-badge--md-HGRL4","badge--lg":"ui-badge--lg-J4aiq","badge--interactive":"ui-badge--interactive-mxvxZ","badge__action":"ui-badge__action-OCHTM","badge__button":"ui-badge__button-CVr21","badge__button--done":"ui-badge__button--done-k6XeK","badge__srOnly":"ui-badge__srOnly-ow8L5"}},M=({code:o,isCopyable:_,copyLabel:g,copiedLabel:x,copiedAnnouncement:f,size:y="md",onClick:n,href:r,linkProps:h,label:i,className:j,testId:q})=>{var l,u,p;const{labels:e}=k.useUi(),{isCopied:d,copy:C,nodeRef:F}=L.useCopyFeedback(o),v=!!(n||r),c=t.jsx("span",{className:a.default.badge__code,ref:F,children:o});return t.jsxs("span",{className:m.cx(a.default.badge,a.default[`badge--${y}`],v&&a.default["badge--interactive"],j),"data-testid":q,children:[r?t.jsx(I.default,{...h,href:r,className:a.default.badge__action,"aria-label":i,children:c}):n?t.jsx("button",{type:"button",className:a.default.badge__action,onClick:n,"aria-label":i,children:c}):c,_&&t.jsx("button",{type:"button",className:m.cx(a.default.badge__button,d&&a.default["badge__button--done"]),onClick:C,"aria-label":d?x??s.resolveFormatter("CodeBadge.copiedLabel",(l=e==null?void 0:e.copyField)==null?void 0:l.copied,o):g??s.resolveFormatter("CodeBadge.copyLabel",(u=e==null?void 0:e.copyField)==null?void 0:u.copy,o),children:d?t.jsx(b.ClipboardCheckFill,{"aria-hidden":!0}):t.jsx(b.ClipboardFill,{"aria-hidden":!0})}),t.jsx("span",{"aria-live":"polite",className:a.default.badge__srOnly,children:d?s.resolveLabel("CodeBadge.copiedAnnouncement",f,(p=e==null?void 0:e.copyField)==null?void 0:p.announcement):""})]})},O=N.memo(B.named(M,"CodeBadge"));exports.default=O;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/components/CodeBadge/index.tsx"],"sourcesContent":["'use client';\n\nimport { type FC, memo } from 'react';\n\nimport { ClipboardCheckFill, ClipboardFill } from 'react-bootstrap-icons';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\nimport { resolveFormatter, resolveLabel } from '../../helpers/label.helper';\nimport { useCopyFeedback } from '../../hooks/useCopyFeedback';\nimport { useUi } from '../../theme/context';\nimport type { UiLinkExtraProps } from '../../types/link.type';\nimport UiLink from '../Link';\n\nimport styles from './index.module.scss';\n\nexport type CodeBadgeSize = 'xs' | 'sm' | 'md' | 'lg';\n\ntype Props = {\n /** Gösterilecek teknik kod (arıza kodu, parça numarası, şase). */\n code: string;\n /** Kopyalama düğmesi ekler. */\n isCopyable?: boolean;\n /** Kopyalama düğmesinin erişilebilir adı. */\n copyLabel?: string;\n /** Kopyalandıktan sonraki ad. */\n copiedLabel?: string;\n /** `aria-live` ile duyurulan onay cümlesi. */\n copiedAnnouncement?: string;\n size?: CodeBadgeSize;\n /** Kodu ETKİLEŞİMLİ yapar (kaynağı aç, ayrıntıya git): kod bir düğme olur. */\n onClick?: () => void;\n /** Kodu bir BAĞLANTI yapar; `onClick` ile birlikte verilmez. */\n href?: string;\n linkProps?: UiLinkExtraProps;\n /**\n * Etkileşimli kodun okunan adı. Kısa kimliklerde (\"A3\") kod tek başına ne açılacağını söylemez\n * (\"A3 kaynağını aç\"). Verilmezse kodun kendisi.\n */\n label?: string;\n className?: string;\n testId?: string;\n};\n\n/**\n * Teknik kod rozeti — monospace kod, MÜREKKEP zemin (iki temada aynı).\n * Etkileşimli kipte (`onClick` / `href`) kod bir düğme ya da bağlantıdır; kopyalama düğmesi onun\n * KARDEŞİ kalır (iç içe düğme geçersiz HTML).\n */\nconst CodeBadge: FC<Props> = ({\n code,\n isCopyable,\n copyLabel,\n copiedLabel,\n copiedAnnouncement,\n size = 'md',\n onClick,\n href,\n linkProps,\n label,\n className,\n testId,\n}) => {\n const { labels } = useUi();\n const { isCopied, copy, nodeRef } = useCopyFeedback(code);\n const isInteractive = Boolean(onClick || href);\n\n /* `user-select: all` (CSS): tek tiklama kodun TAMAMINI secer — yalnizca etkilesimsiz kipte. */\n const codeNode = (\n <span className={styles.badge__code} ref={nodeRef}>\n {code}\n </span>\n );\n\n return (\n <span\n className={cx(\n styles.badge,\n styles[`badge--${size}`],\n isInteractive && styles['badge--interactive'],\n className,\n )}\n data-testid={testId}\n >\n {href ? (\n <UiLink {...linkProps} href={href} className={styles.badge__action} aria-label={label}>\n {codeNode}\n </UiLink>\n ) : onClick ? (\n <button type=\"button\" className={styles.badge__action} onClick={onClick} aria-label={label}>\n {codeNode}\n </button>\n ) : (\n codeNode\n )}\n\n {isCopyable && (\n <button\n type=\"button\"\n className={cx(styles.badge__button, isCopied && styles['badge__button--done'])}\n onClick={copy}\n aria-label={\n isCopied\n ? (copiedLabel ??\n resolveFormatter('CodeBadge.copiedLabel', labels?.copyField?.copied, code))\n : (copyLabel ??\n resolveFormatter('CodeBadge.copyLabel', labels?.copyField?.copy, code))\n }\n >\n {isCopied ? <ClipboardCheckFill aria-hidden /> : <ClipboardFill aria-hidden />}\n </button>\n )}\n\n <span aria-live=\"polite\" className={styles.badge__srOnly}>\n {isCopied\n ? resolveLabel(\n 'CodeBadge.copiedAnnouncement',\n copiedAnnouncement,\n labels?.copyField?.announcement,\n )\n : ''}\n </span>\n </span>\n );\n};\n\nexport default /*#__PURE__*/ memo(/*#__PURE__*/ named(CodeBadge, 'CodeBadge')) as typeof CodeBadge;\n"],"names":["CodeBadge","code","isCopyable","copyLabel","copiedLabel","copiedAnnouncement","size","onClick","href","linkProps","label","className","testId","labels","useUi","isCopied","copy","nodeRef","useCopyFeedback","isInteractive","codeNode","styles","jsxs","cx","jsx","UiLink","resolveFormatter","_a","_b","ClipboardCheckFill","ClipboardFill","resolveLabel","_c","index","memo","named"],"mappings":"ufAgDMA,EAAuB,CAAC,CAC5B,KAAAC,EACA,WAAAC,EACA,UAAAC,EACA,YAAAC,EACA,mBAAAC,EACA,KAAAC,EAAO,KACP,QAAAC,EACA,KAAAC,EACA,UAAAC,EACA,MAAAC,EACA,UAAAC,EACA,OAAAC,CACF,IAAM,WACJ,KAAM,CAAE,OAAAC,CAAA,EAAWC,QAAA,EACb,CAAE,SAAAC,EAAU,KAAAC,EAAM,QAAAC,CAAA,EAAYC,EAAAA,gBAAgBjB,CAAI,EAClDkB,EAAgB,GAAQZ,GAAWC,GAGnCY,QACH,OAAA,CAAK,UAAWC,EAAAA,QAAO,YAAa,IAAKJ,EACvC,SAAAhB,CAAA,CACH,EAGF,OACEqB,EAAAA,KAAC,OAAA,CACC,UAAWC,EAAAA,GACTF,EAAAA,QAAO,MACPA,EAAAA,QAAO,UAAUf,CAAI,EAAE,EACvBa,GAAiBE,EAAAA,QAAO,oBAAoB,EAC5CV,CAAA,EAEF,cAAaC,EAEZ,SAAA,CAAAJ,EACCgB,EAAAA,IAACC,EAAAA,QAAA,CAAQ,GAAGhB,EAAW,KAAAD,EAAY,UAAWa,EAAAA,QAAO,cAAe,aAAYX,EAC7E,SAAAU,CAAA,CACH,EACEb,EACFiB,EAAAA,IAAC,SAAA,CAAO,KAAK,SAAS,UAAWH,EAAAA,QAAO,cAAe,QAAAd,EAAkB,aAAYG,EAClF,SAAAU,CAAA,CACH,EAEAA,EAGDlB,GACCsB,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,UAAWD,EAAAA,GAAGF,UAAO,cAAeN,GAAYM,EAAAA,QAAO,qBAAqB,CAAC,EAC7E,QAASL,EACT,aACED,EACKX,GACDsB,EAAAA,iBAAiB,yBAAyBC,EAAAd,GAAA,YAAAA,EAAQ,YAAR,YAAAc,EAAmB,OAAQ1B,CAAI,EACxEE,GACDuB,EAAAA,iBAAiB,uBAAuBE,EAAAf,GAAA,YAAAA,EAAQ,YAAR,YAAAe,EAAmB,KAAM3B,CAAI,EAG1E,SAAAc,QAAYc,EAAAA,mBAAA,CAAmB,cAAW,GAAC,EAAKL,EAAAA,IAACM,EAAAA,cAAA,CAAc,cAAW,EAAA,CAAC,CAAA,CAAA,QAI/E,OAAA,CAAK,YAAU,SAAS,UAAWT,EAAAA,QAAO,cACxC,SAAAN,EACGgB,EAAAA,aACE,+BACA1B,GACA2B,EAAAnB,GAAA,YAAAA,EAAQ,YAAR,YAAAmB,EAAmB,YAAA,EAErB,EAAA,CACN,CAAA,CAAA,CAAA,CAGN,EAEAC,EAA6BC,OAAmBC,EAAAA,MAAMnC,EAAW,WAAW,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { UiLinkExtraProps } from '../../types/link.type';
|
|
3
|
+
export type CodeBadgeSize = 'xs' | 'sm' | 'md' | 'lg';
|
|
4
|
+
type Props = {
|
|
5
|
+
/** Gösterilecek teknik kod (arıza kodu, parça numarası, şase). */
|
|
6
|
+
code: string;
|
|
7
|
+
/** Kopyalama düğmesi ekler. */
|
|
8
|
+
isCopyable?: boolean;
|
|
9
|
+
/** Kopyalama düğmesinin erişilebilir adı. */
|
|
10
|
+
copyLabel?: string;
|
|
11
|
+
/** Kopyalandıktan sonraki ad. */
|
|
12
|
+
copiedLabel?: string;
|
|
13
|
+
/** `aria-live` ile duyurulan onay cümlesi. */
|
|
14
|
+
copiedAnnouncement?: string;
|
|
15
|
+
size?: CodeBadgeSize;
|
|
16
|
+
/** Kodu ETKİLEŞİMLİ yapar (kaynağı aç, ayrıntıya git): kod bir düğme olur. */
|
|
17
|
+
onClick?: () => void;
|
|
18
|
+
/** Kodu bir BAĞLANTI yapar; `onClick` ile birlikte verilmez. */
|
|
19
|
+
href?: string;
|
|
20
|
+
linkProps?: UiLinkExtraProps;
|
|
21
|
+
/**
|
|
22
|
+
* Etkileşimli kodun okunan adı. Kısa kimliklerde ("A3") kod tek başına ne açılacağını söylemez
|
|
23
|
+
* ("A3 kaynağını aç"). Verilmezse kodun kendisi.
|
|
24
|
+
*/
|
|
25
|
+
label?: string;
|
|
26
|
+
className?: string;
|
|
27
|
+
testId?: string;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Teknik kod rozeti — monospace kod, MÜREKKEP zemin (iki temada aynı).
|
|
31
|
+
* Etkileşimli kipte (`onClick` / `href`) kod bir düğme ya da bağlantıdır; kopyalama düğmesi onun
|
|
32
|
+
* KARDEŞİ kalır (iç içe düğme geçersiz HTML).
|
|
33
|
+
*/
|
|
34
|
+
declare const CodeBadge: FC<Props>;
|
|
35
|
+
declare const _default: typeof CodeBadge;
|
|
36
|
+
export default _default;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs as x, jsx as a } from "react/jsx-runtime";
|
|
3
|
+
import { memo as L } from "react";
|
|
4
|
+
import { ClipboardCheckFill as j, ClipboardFill as k } from "react-bootstrap-icons";
|
|
5
|
+
import { cx as l } from "../../helpers/class-name.helper.js";
|
|
6
|
+
import { named as U } from "../../helpers/component.helper.js";
|
|
7
|
+
import { resolveFormatter as b, resolveLabel as A } from "../../helpers/label.helper.js";
|
|
8
|
+
import { useCopyFeedback as I } from "../../hooks/useCopyFeedback.js";
|
|
9
|
+
import { useUi as O } from "../../theme/context.js";
|
|
10
|
+
import R from "../Link/index.js";
|
|
11
|
+
const o = {"badge":"ui-badge-b14ZG","badge--xs":"ui-badge--xs-PBD2E","badge__code":"ui-badge__code-RRDlH","badge--sm":"ui-badge--sm-Fr4vY","badge--md":"ui-badge--md-HGRL4","badge--lg":"ui-badge--lg-J4aiq","badge--interactive":"ui-badge--interactive-mxvxZ","badge__action":"ui-badge__action-OCHTM","badge__button":"ui-badge__button-CVr21","badge__button--done":"ui-badge__button--done-k6XeK","badge__srOnly":"ui-badge__srOnly-ow8L5"};
|
|
12
|
+
const $ = ({
|
|
13
|
+
code: t,
|
|
14
|
+
isCopyable: u,
|
|
15
|
+
copyLabel: g,
|
|
16
|
+
copiedLabel: _,
|
|
17
|
+
copiedAnnouncement: f,
|
|
18
|
+
size: y = "md",
|
|
19
|
+
onClick: d,
|
|
20
|
+
href: r,
|
|
21
|
+
linkProps: C,
|
|
22
|
+
label: c,
|
|
23
|
+
className: h,
|
|
24
|
+
testId: F
|
|
25
|
+
}) => {
|
|
26
|
+
var m, s, p;
|
|
27
|
+
const { labels: e } = O(), { isCopied: i, copy: N, nodeRef: B } = I(t), v = !!(d || r), n = /* @__PURE__ */ a("span", { className: o.badge__code, ref: B, children: t });
|
|
28
|
+
return /* @__PURE__ */ x(
|
|
29
|
+
"span",
|
|
30
|
+
{
|
|
31
|
+
className: l(
|
|
32
|
+
o.badge,
|
|
33
|
+
o[`badge--${y}`],
|
|
34
|
+
v && o["badge--interactive"],
|
|
35
|
+
h
|
|
36
|
+
),
|
|
37
|
+
"data-testid": F,
|
|
38
|
+
children: [
|
|
39
|
+
r ? /* @__PURE__ */ a(R, { ...C, href: r, className: o.badge__action, "aria-label": c, children: n }) : d ? /* @__PURE__ */ a("button", { type: "button", className: o.badge__action, onClick: d, "aria-label": c, children: n }) : n,
|
|
40
|
+
u && /* @__PURE__ */ a(
|
|
41
|
+
"button",
|
|
42
|
+
{
|
|
43
|
+
type: "button",
|
|
44
|
+
className: l(o.badge__button, i && o["badge__button--done"]),
|
|
45
|
+
onClick: N,
|
|
46
|
+
"aria-label": i ? _ ?? b("CodeBadge.copiedLabel", (m = e == null ? void 0 : e.copyField) == null ? void 0 : m.copied, t) : g ?? b("CodeBadge.copyLabel", (s = e == null ? void 0 : e.copyField) == null ? void 0 : s.copy, t),
|
|
47
|
+
children: i ? /* @__PURE__ */ a(j, { "aria-hidden": !0 }) : /* @__PURE__ */ a(k, { "aria-hidden": !0 })
|
|
48
|
+
}
|
|
49
|
+
),
|
|
50
|
+
/* @__PURE__ */ a("span", { "aria-live": "polite", className: o.badge__srOnly, children: i ? A(
|
|
51
|
+
"CodeBadge.copiedAnnouncement",
|
|
52
|
+
f,
|
|
53
|
+
(p = e == null ? void 0 : e.copyField) == null ? void 0 : p.announcement
|
|
54
|
+
) : "" })
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
}, P = /* @__PURE__ */ L(/* @__PURE__ */ U($, "CodeBadge"));
|
|
59
|
+
export {
|
|
60
|
+
P as default
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/CodeBadge/index.tsx"],"sourcesContent":["'use client';\n\nimport { type FC, memo } from 'react';\n\nimport { ClipboardCheckFill, ClipboardFill } from 'react-bootstrap-icons';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\nimport { resolveFormatter, resolveLabel } from '../../helpers/label.helper';\nimport { useCopyFeedback } from '../../hooks/useCopyFeedback';\nimport { useUi } from '../../theme/context';\nimport type { UiLinkExtraProps } from '../../types/link.type';\nimport UiLink from '../Link';\n\nimport styles from './index.module.scss';\n\nexport type CodeBadgeSize = 'xs' | 'sm' | 'md' | 'lg';\n\ntype Props = {\n /** Gösterilecek teknik kod (arıza kodu, parça numarası, şase). */\n code: string;\n /** Kopyalama düğmesi ekler. */\n isCopyable?: boolean;\n /** Kopyalama düğmesinin erişilebilir adı. */\n copyLabel?: string;\n /** Kopyalandıktan sonraki ad. */\n copiedLabel?: string;\n /** `aria-live` ile duyurulan onay cümlesi. */\n copiedAnnouncement?: string;\n size?: CodeBadgeSize;\n /** Kodu ETKİLEŞİMLİ yapar (kaynağı aç, ayrıntıya git): kod bir düğme olur. */\n onClick?: () => void;\n /** Kodu bir BAĞLANTI yapar; `onClick` ile birlikte verilmez. */\n href?: string;\n linkProps?: UiLinkExtraProps;\n /**\n * Etkileşimli kodun okunan adı. Kısa kimliklerde (\"A3\") kod tek başına ne açılacağını söylemez\n * (\"A3 kaynağını aç\"). Verilmezse kodun kendisi.\n */\n label?: string;\n className?: string;\n testId?: string;\n};\n\n/**\n * Teknik kod rozeti — monospace kod, MÜREKKEP zemin (iki temada aynı).\n * Etkileşimli kipte (`onClick` / `href`) kod bir düğme ya da bağlantıdır; kopyalama düğmesi onun\n * KARDEŞİ kalır (iç içe düğme geçersiz HTML).\n */\nconst CodeBadge: FC<Props> = ({\n code,\n isCopyable,\n copyLabel,\n copiedLabel,\n copiedAnnouncement,\n size = 'md',\n onClick,\n href,\n linkProps,\n label,\n className,\n testId,\n}) => {\n const { labels } = useUi();\n const { isCopied, copy, nodeRef } = useCopyFeedback(code);\n const isInteractive = Boolean(onClick || href);\n\n /* `user-select: all` (CSS): tek tiklama kodun TAMAMINI secer — yalnizca etkilesimsiz kipte. */\n const codeNode = (\n <span className={styles.badge__code} ref={nodeRef}>\n {code}\n </span>\n );\n\n return (\n <span\n className={cx(\n styles.badge,\n styles[`badge--${size}`],\n isInteractive && styles['badge--interactive'],\n className,\n )}\n data-testid={testId}\n >\n {href ? (\n <UiLink {...linkProps} href={href} className={styles.badge__action} aria-label={label}>\n {codeNode}\n </UiLink>\n ) : onClick ? (\n <button type=\"button\" className={styles.badge__action} onClick={onClick} aria-label={label}>\n {codeNode}\n </button>\n ) : (\n codeNode\n )}\n\n {isCopyable && (\n <button\n type=\"button\"\n className={cx(styles.badge__button, isCopied && styles['badge__button--done'])}\n onClick={copy}\n aria-label={\n isCopied\n ? (copiedLabel ??\n resolveFormatter('CodeBadge.copiedLabel', labels?.copyField?.copied, code))\n : (copyLabel ??\n resolveFormatter('CodeBadge.copyLabel', labels?.copyField?.copy, code))\n }\n >\n {isCopied ? <ClipboardCheckFill aria-hidden /> : <ClipboardFill aria-hidden />}\n </button>\n )}\n\n <span aria-live=\"polite\" className={styles.badge__srOnly}>\n {isCopied\n ? resolveLabel(\n 'CodeBadge.copiedAnnouncement',\n copiedAnnouncement,\n labels?.copyField?.announcement,\n )\n : ''}\n </span>\n </span>\n );\n};\n\nexport default /*#__PURE__*/ memo(/*#__PURE__*/ named(CodeBadge, 'CodeBadge')) as typeof CodeBadge;\n"],"names":["CodeBadge","code","isCopyable","copyLabel","copiedLabel","copiedAnnouncement","size","onClick","href","linkProps","label","className","testId","labels","useUi","isCopied","copy","nodeRef","useCopyFeedback","isInteractive","codeNode","styles","jsxs","cx","jsx","UiLink","resolveFormatter","_a","_b","ClipboardCheckFill","ClipboardFill","resolveLabel","_c","index","memo","named"],"mappings":";;;;;;;;;;;AAgDA,MAAMA,IAAuB,CAAC;AAAA,EAC5B,MAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC;AACF,MAAM;;AACJ,QAAM,EAAE,QAAAC,EAAA,IAAWC,EAAA,GACb,EAAE,UAAAC,GAAU,MAAAC,GAAM,SAAAC,EAAA,IAAYC,EAAgBjB,CAAI,GAClDkB,IAAgB,GAAQZ,KAAWC,IAGnCY,sBACH,QAAA,EAAK,WAAWC,EAAO,aAAa,KAAKJ,GACvC,UAAAhB,EAAA,CACH;AAGF,SACE,gBAAAqB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACTF,EAAO;AAAA,QACPA,EAAO,UAAUf,CAAI,EAAE;AAAA,QACvBa,KAAiBE,EAAO,oBAAoB;AAAA,QAC5CV;AAAA,MAAA;AAAA,MAEF,eAAaC;AAAA,MAEZ,UAAA;AAAA,QAAAJ,IACC,gBAAAgB,EAACC,GAAA,EAAQ,GAAGhB,GAAW,MAAAD,GAAY,WAAWa,EAAO,eAAe,cAAYX,GAC7E,UAAAU,EAAA,CACH,IACEb,IACF,gBAAAiB,EAAC,UAAA,EAAO,MAAK,UAAS,WAAWH,EAAO,eAAe,SAAAd,GAAkB,cAAYG,GAClF,UAAAU,EAAA,CACH,IAEAA;AAAA,QAGDlB,KACC,gBAAAsB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAWD,EAAGF,EAAO,eAAeN,KAAYM,EAAO,qBAAqB,CAAC;AAAA,YAC7E,SAASL;AAAA,YACT,cACED,IACKX,KACDsB,EAAiB,0BAAyBC,IAAAd,KAAA,gBAAAA,EAAQ,cAAR,gBAAAc,EAAmB,QAAQ1B,CAAI,IACxEE,KACDuB,EAAiB,wBAAuBE,IAAAf,KAAA,gBAAAA,EAAQ,cAAR,gBAAAe,EAAmB,MAAM3B,CAAI;AAAA,YAG1E,UAAAc,sBAAYc,GAAA,EAAmB,eAAW,IAAC,IAAK,gBAAAL,EAACM,GAAA,EAAc,eAAW,GAAA,CAAC;AAAA,UAAA;AAAA,QAAA;AAAA,0BAI/E,QAAA,EAAK,aAAU,UAAS,WAAWT,EAAO,eACxC,UAAAN,IACGgB;AAAA,UACE;AAAA,UACA1B;AAAA,WACA2B,IAAAnB,KAAA,gBAAAA,EAAQ,cAAR,gBAAAmB,EAAmB;AAAA,QAAA,IAErB,GAAA,CACN;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN,GAEAC,IAA6B,gBAAAC,EAAmB,gBAAAC,EAAMnC,GAAW,WAAW,CAAC;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer ui{.ui-badge-b14ZG{display:inline-flex;align-items:center;gap:var(--hd-space-2);max-width:100%;min-width:0;background-color:var(--hd-slate-900);color:var(--hd-slate-50);border:1px solid var(--hd-slate-700);border-radius:var(--hd-radius-xs)}.ui-badge--xs-PBD2E{padding:1px var(--hd-space-1);border-radius:var(--hd-radius-xs)}.ui-badge--xs-PBD2E .ui-badge__code-RRDlH{font-family:var(--hd-font-mono);font-size:var(--hd-type-caption-size);font-variant-numeric:tabular-nums;letter-spacing:.02em}.ui-badge--sm-Fr4vY{padding:var(--hd-space-1) var(--hd-space-2)}.ui-badge--sm-Fr4vY .ui-badge__code-RRDlH{font-family:var(--hd-font-mono);font-size:var(--hd-type-small-size);letter-spacing:.02em;font-variant-numeric:tabular-nums}.ui-badge--md-HGRL4{padding:var(--hd-space-1) var(--hd-space-3)}.ui-badge--md-HGRL4 .ui-badge__code-RRDlH{font-family:var(--hd-font-mono);font-size:var(--hd-type-h4-size);letter-spacing:.02em;font-variant-numeric:tabular-nums}.ui-badge--lg-J4aiq{padding:var(--hd-space-2) var(--hd-space-4)}.ui-badge--lg-J4aiq .ui-badge__code-RRDlH{font-family:var(--hd-font-mono);font-size:var(--hd-type-h2-size);letter-spacing:.02em;font-variant-numeric:tabular-nums}.ui-badge--interactive-mxvxZ{transition:background-color var(--hd-duration-fast) var(--hd-ease-standard)}.ui-badge--interactive-mxvxZ:has(.ui-badge__action-OCHTM:hover){background-color:var(--hd-slate-800)}.ui-badge--interactive-mxvxZ .ui-badge__code-RRDlH{-webkit-user-select:auto;user-select:auto}@media (prefers-reduced-motion: reduce){.ui-badge--interactive-mxvxZ{transition:none}}.ui-badge__action-OCHTM{position:relative}.ui-badge__action-OCHTM:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:max(100%,44px);height:max(100%,44px)}.ui-badge__action-OCHTM{display:inline-flex;min-width:0;padding:0;border:0;background:none;color:inherit;font:inherit;text-decoration:none;cursor:pointer}.ui-badge__action-OCHTM:focus-visible{outline:var(--ui-ring-width, 2px) solid var(--hd-slate-50);outline-offset:var(--ui-ring-offset, 2px)}.ui-badge__code-RRDlH{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;-webkit-user-select:all;user-select:all;color:inherit;font-weight:var(--hd-font-weight-bold);letter-spacing:.04em}.ui-badge__button-CVr21{position:relative}.ui-badge__button-CVr21:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:max(100%,44px);height:max(100%,44px)}.ui-badge__button-CVr21{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;padding:0;border:none;border-radius:var(--hd-radius-xs);background:none;color:var(--hd-slate-300);font-size:16px;cursor:pointer;transition:color var(--hd-duration-fast) var(--hd-ease-standard)}.ui-badge__button-CVr21:hover{color:var(--hd-slate-50)}.ui-badge__button-CVr21:focus-visible{outline:var(--ui-ring-width, 2px) solid var(--hd-slate-50);outline-offset:var(--ui-ring-offset, 1px)}@media (prefers-reduced-motion: reduce){.ui-badge__button-CVr21{transition:none}}.ui-badge__button--done-k6XeK,.ui-badge__button--done-k6XeK:hover{color:var(--hd-slate-50)}.ui-badge__srOnly-ow8L5{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react/jsx-runtime"),s=require("react"),pe=require("react-dom"),R=require("react-bootstrap-icons"),_e=require("../../constants/breakpoint.constants.cjs"),L=require("../../helpers/class-name.helper.cjs"),M=require("../../helpers/label.helper.cjs"),te=require("../../helpers/text.helper.cjs"),ve=require("../../hooks/useAsyncSearch.cjs"),ge=require("../../hooks/useListboxNavigation.cjs"),ye=require("../../hooks/usePortalSurface.cjs"),je=require("../../hooks/usePositioning.cjs"),Ne=require("../../hooks/useVirtualList.cjs"),Le=require("../../theme/context.cjs"),qe=require("../BottomSheet/index.cjs"),Ee=require("../Spinner/index.cjs"),D=require("../../constants/combobox.constants.cjs"),t={default:{"combobox":"ui-combobox-NtZoV","combobox__trigger":"ui-combobox__trigger-2riRR","combobox__trigger--empty":"ui-combobox__trigger--empty-RxwCq","combobox__trigger--open":"ui-combobox__trigger--open-rw1ZS","combobox__trigger--invalid":"ui-combobox__trigger--invalid-iZgiN","combobox__trigger--clearable":"ui-combobox__trigger--clearable-shq9I","combobox__chevron":"ui-combobox__chevron-g-QzQ","combobox__leadingIcon":"ui-combobox__leadingIcon-it2xz","combobox__value":"ui-combobox__value-acDlr","combobox__clear":"ui-combobox__clear-EXOsc","combobox__chevron--open":"ui-combobox__chevron--open-9kj1j","combobox__panel":"ui-combobox__panel-srBxl","combobox__search":"ui-combobox__search-THjer","combobox__searchIcon":"ui-combobox__searchIcon-vr4Bg","combobox__searchInput":"ui-combobox__searchInput-JPp5h","combobox__list":"ui-combobox__list-p-eCs","combobox__list--sheet":"ui-combobox__list--sheet-r3MzB","combobox__option":"ui-combobox__option-CLWh-","combobox__option--active":"ui-combobox__option--active--75Vq","combobox__option--selected":"ui-combobox__option--selected-DVFGy","combobox__option--disabled":"ui-combobox__option--disabled-e6VjI","combobox__optionText":"ui-combobox__optionText-Zm0D6","combobox__optionLabel":"ui-combobox__optionLabel-WvT4W","combobox__optionDescription":"ui-combobox__optionDescription-8OEzi","combobox__check":"ui-combobox__check-MKlLz","combobox__empty":"ui-combobox__empty-mZwBq","combobox__srName":"ui-combobox__srName-9PNXF"}},Ie=({options:p,value:_,onChange:k,labels:u,isSearchHidden:A,onSearch:S,isLoading:H,isDisabled:v,isClearable:K,icon:U,id:oe,required:se,className:ae,testId:re,"aria-describedby":le,"aria-invalid":B})=>{const{labels:a}=Le.useUi(),g={get search(){var e;return M.resolveLabel("Combobox.searchPlaceholder",u.searchPlaceholder,(e=a==null?void 0:a.combobox)==null?void 0:e.searchPlaceholder)},get empty(){var e;return M.resolveLabel("Combobox.emptyMessage",u.emptyMessage,(e=a==null?void 0:a.combobox)==null?void 0:e.emptyMessage)},get loading(){var e;return M.resolveLabel("Combobox.loadingMessage",u.loadingMessage,(e=a==null?void 0:a.combobox)==null?void 0:e.loadingMessage)},get clear(){var e;return M.resolveLabel("Combobox.clearLabel",u.clearLabel,(e=a==null?void 0:a.combobox)==null?void 0:e.clearLabel)}},ne=s.useId(),d=oe??ne,O=`${d}-listbox`,V=s.useRef(null),q=s.useRef(null),E=s.useRef(null),z=s.useRef(null),[c,G]=s.useState(null),r=c!==null,[y,$]=s.useState(""),[ce,I]=s.useState(null),l=s.useMemo(()=>{if(S||y.trim()==="")return p;const e=y.trim();return p.filter(i=>te.matchesSearch(i.label,e)||(i.description?te.matchesSearch(i.description,e):!1))},[p,y,S]),f=p.find(e=>e.value===_)??null;s.useEffect(()=>{f?I(f.label):_===null&&I(null)},[f,_]);const j=(f==null?void 0:f.label)??ce;ve.default(y,r,S,D.SEARCH_DEBOUNCE_MS);const h=s.useCallback(()=>{G(null),$("")},[]),Q=s.useCallback(()=>{v||(G(window.matchMedia(_e.SHEET_MEDIA_QUERY).matches?"sheet":"popover"),$(""))},[v]);s.useEffect(()=>{if(c!=="popover")return;const e=i=>{var w,b;const n=i.target;(w=V.current)!=null&&w.contains(n)||(b=E.current)!=null&&b.contains(n)||h()};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[c,h]),s.useEffect(()=>{var e;c==="popover"&&((e=z.current)==null||e.focus({preventScroll:!0}))},[c]);const F=e=>{e.isDisabled||(I(e.label),k(e.value),h())},W=s.useRef(!1);s.useEffect(()=>{var e;W.current&&!r&&((e=q.current)==null||e.focus()),W.current=r},[r]);const P=je.default(q,E,{side:"bottom",align:"start",isOpen:r&&c==="popover"}),C=ye.default(c==="popover",q,E),{activeIndex:N,setActiveIndex:X,listRef:ie,handleKeyDown:Y}=ge.default({count:l.length,isOpen:r,initialIndex:Math.max(p.findIndex(e=>e.value===_),0),onSelect:e=>{const i=l[e];i&&F(i)},onClose:h}),de=l.some(e=>!!e.description),m=c==="popover"&&!de&&l.length>D.VIRTUAL_THRESHOLD,{scrollRef:ue,range:x,scrollToIndex:J}=Ne.default(l.length,{rowHeight:D.OPTION_HEIGHT,isEnabled:m});s.useEffect(()=>{m&&J(N)},[N,m,J]);const be=e=>{ie.current=e,ue.current=e},me=Y,xe=e=>{if(A){if(!r){["ArrowDown","ArrowUp","Enter"," "].includes(e.key)&&(e.preventDefault(),Q());return}Y(e)}},fe=()=>{k(null),I(null)},Z=A?null:o.jsxs("div",{className:t.default.combobox__search,children:[o.jsx(R.Search,{"aria-hidden":!0,className:t.default.combobox__searchIcon}),o.jsx("input",{ref:z,type:"text",className:t.default.combobox__searchInput,value:y,placeholder:g.search,autoComplete:"off","aria-autocomplete":"list","aria-controls":O,"aria-activedescendant":l[N]?`${d}-option-${N}`:void 0,"aria-label":g.search,onChange:e=>{$(e.target.value),X(0)},onKeyDown:me}),H&&o.jsx(Ee.default,{size:"sm",label:""})]}),ee=e=>{const i=l.slice(x.start,x.end);return o.jsxs("ul",{ref:be,id:O,role:"listbox",className:L.cx(t.default.combobox__list,e&&t.default["combobox__list--sheet"]),children:[m&&x.offset>0&&o.jsx("li",{"aria-hidden":!0,style:{height:x.offset}}),i.map((n,w)=>{const b=x.start+w,he=b===N,T=n.value===_;return o.jsxs("li",{id:`${d}-option-${b}`,role:"option","data-index":b,"aria-setsize":m?l.length:void 0,"aria-posinset":m?b+1:void 0,"aria-selected":T,"aria-disabled":n.isDisabled,className:L.cx(t.default.combobox__option,he&&t.default["combobox__option--active"],T&&t.default["combobox__option--selected"],n.isDisabled&&t.default["combobox__option--disabled"]),onMouseEnter:()=>X(b),onClick:()=>F(n),children:[o.jsxs("span",{className:t.default.combobox__optionText,children:[o.jsx("span",{className:t.default.combobox__optionLabel,children:n.label}),n.description&&o.jsx("span",{className:t.default.combobox__optionDescription,children:n.description})]}),T&&o.jsx(R.CheckLg,{"aria-hidden":!0,className:t.default.combobox__check})]},n.value)}),m&&x.end<l.length&&o.jsx("li",{"aria-hidden":!0,style:{height:(l.length-x.end)*D.OPTION_HEIGHT}}),l.length===0&&o.jsx("li",{className:t.default.combobox__empty,children:H?g.loading:g.empty})]})};return o.jsxs("div",{ref:V,className:L.cx(t.default.combobox,ae),"data-testid":re,children:[o.jsxs("button",{ref:q,id:d,type:"button",className:L.cx(t.default.combobox__trigger,!j&&t.default["combobox__trigger--empty"],r&&t.default["combobox__trigger--open"],B&&t.default["combobox__trigger--invalid"],K&&j&&!v&&t.default["combobox__trigger--clearable"]),disabled:v,role:"combobox","aria-haspopup":"listbox","aria-expanded":r,"aria-controls":O,"aria-labelledby":j?`${d}-name ${d}-value`:`${d}-name`,"aria-describedby":le,"aria-invalid":B||void 0,"aria-required":se||void 0,onClick:()=>r?h():Q(),onKeyDown:xe,children:[U&&o.jsx("span",{className:t.default.combobox__leadingIcon,"aria-hidden":!0,children:U}),o.jsx("span",{id:`${d}-name`,className:t.default.combobox__srName,children:u.placeholder}),o.jsx("span",{id:`${d}-value`,className:t.default.combobox__value,children:j??u.placeholder}),o.jsx(R.CaretDownFill,{"aria-hidden":!0,className:L.cx(t.default.combobox__chevron,r&&t.default["combobox__chevron--open"])})]}),K&&j&&!v&&o.jsx("button",{type:"button",className:t.default.combobox__clear,"aria-label":g.clear,onClick:fe,children:o.jsx(R.XLg,{"aria-hidden":!0})}),c==="popover"&&C.container&&pe.createPortal(o.jsxs("div",{ref:E,className:t.default.combobox__panel,...C.attributes,style:{...P.style,...C.style,width:P.anchorWidth||void 0,visibility:P.isPositioned?void 0:"hidden"},children:[Z,ee(!1)]}),C.container),c==="sheet"&&o.jsx(qe.default,{title:u.placeholder,closeLabel:u.closeLabel??(a==null?void 0:a.close),onClose:h,toolbar:Z??void 0,children:ee(!0)})]})},Ce=s.memo(Ie);exports.default=Ce;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/components/Combobox/index.tsx"],"sourcesContent":["'use client';\n\nimport {\n type KeyboardEvent,\n memo,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { createPortal } from 'react-dom';\nimport { CaretDownFill, CheckLg, Search, XLg } from 'react-bootstrap-icons';\n\nimport { SHEET_MEDIA_QUERY } from '../../constants/breakpoint.constants';\nimport { cx } from '../../helpers/class-name.helper';\nimport { resolveLabel } from '../../helpers/label.helper';\nimport { matchesSearch } from '../../helpers/text.helper';\nimport useAsyncSearch from '../../hooks/useAsyncSearch';\nimport useListboxNavigation from '../../hooks/useListboxNavigation';\nimport usePortalSurface from '../../hooks/usePortalSurface';\nimport usePositioning from '../../hooks/usePositioning';\nimport useVirtualList from '../../hooks/useVirtualList';\nimport { useUi } from '../../theme/context';\nimport BottomSheet from '../BottomSheet';\nimport Spinner from '../Spinner';\n\nimport {\n OPTION_HEIGHT,\n SEARCH_DEBOUNCE_MS,\n VIRTUAL_THRESHOLD,\n} from '../../constants/combobox.constants';\nimport { ComboboxOption, ComboboxProps } from '../../types/combobox.type';\n\nimport styles from './index.module.scss';\n\n/*\n * Tipler `types/`e tasindi ama BURADAN da disa aciliyor: cagiranlar (uygulamalar ve testler)\n * `@handijit/ui/components/Combobox` yolundan aliyordu…\n */\nexport type { ComboboxLabels, ComboboxOption, ComboboxProps } from '../../types/combobox.type';\n\n/** Aranabilir seçim kutusu. */\nconst Combobox = <T extends string>({\n options,\n value,\n onChange,\n labels,\n isSearchHidden,\n onSearch,\n isLoading,\n isDisabled,\n isClearable,\n icon,\n id,\n required,\n className,\n testId,\n 'aria-describedby': describedBy,\n 'aria-invalid': isInvalid,\n}: ComboboxProps<T>) => {\n const { labels: config } = useUi();\n\n /* Metinler TEMBEL cozulur: cizilmeyen bir ogenin metnini istemek yanlis alarm uretiyordu */\n const text = {\n get search() {\n return resolveLabel(\n 'Combobox.searchPlaceholder',\n labels.searchPlaceholder,\n config?.combobox?.searchPlaceholder,\n );\n },\n get empty() {\n return resolveLabel(\n 'Combobox.emptyMessage',\n labels.emptyMessage,\n config?.combobox?.emptyMessage,\n );\n },\n get loading() {\n return resolveLabel(\n 'Combobox.loadingMessage',\n labels.loadingMessage,\n config?.combobox?.loadingMessage,\n );\n },\n get clear() {\n return resolveLabel('Combobox.clearLabel', labels.clearLabel, config?.combobox?.clearLabel);\n },\n };\n\n const generatedId = useId();\n const baseId = id ?? generatedId;\n const listboxId = `${baseId}-listbox`;\n\n const rootRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const panelRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n\n /*\n * Panel NEREDE acilir: masaustunde tetikleyicinin altinda, dar ekranda ekranin dibinde bir alt\n * sayfada.\n */\n const [openMode, setOpenMode] = useState<'popover' | 'sheet' | null>(null);\n const isOpen = openMode !== null;\n const [query, setQuery] = useState('');\n\n // Sunucu araması sırasında seçili kayıt listeden düşebilir; etiketi hatırlarız ki tetikleyici yer\n // tutucuya dönmesin.\n const [cachedLabel, setCachedLabel] = useState<string | null>(null);\n\n const visibleOptions = useMemo(() => {\n // Sunucu araması: gelen liste zaten filtrelidir, tekrar filtrelenmez.\n if (onSearch || query.trim() === '') return options;\n\n const needle = query.trim();\n return options.filter(\n option =>\n matchesSearch(option.label, needle) ||\n (option.description ? matchesSearch(option.description, needle) : false),\n );\n }, [options, query, onSearch]);\n\n const selectedOption = options.find(option => option.value === value) ?? null;\n\n useEffect(() => {\n if (selectedOption) setCachedLabel(selectedOption.label);\n else if (value === null) setCachedLabel(null);\n }, [selectedOption, value]);\n\n const displayLabel = selectedOption?.label ?? cachedLabel;\n\n useAsyncSearch(query, isOpen, onSearch, SEARCH_DEBOUNCE_MS);\n\n const close = useCallback(() => {\n setOpenMode(null);\n setQuery('');\n }, []);\n\n const open = useCallback(() => {\n if (isDisabled) return;\n /* A sheet only on a narrow TOUCH screen; a desktop window gets the dropdown at any width. */\n setOpenMode(window.matchMedia(SHEET_MEDIA_QUERY).matches ? 'sheet' : 'popover');\n /*\n * Panel acilinca etkin secenek SECILI olan olur (kancanin `initialIndex`i); kullanici listeyi\n * bastan taramak zorunda kalmaz.\n */\n setQuery('');\n }, [isDisabled]);\n\n /*\n * Disari tiklamada kapanir. `mousedown` kullanilir: `click` beklerken kullanici surukleyerek\n * secim yaparsa panel kapanmiyordu.\n * ⚠ PANEL ARTIK KOKUN ICINDE DEGIL — portallandi. `rootRef` tek basina bakilsaydi panelin ICINE\n * yapilan `mousedown` \"disari\" sayilir ve panel…\n */\n useEffect(() => {\n if (openMode !== 'popover') return;\n\n const handlePointerDown = (event: globalThis.MouseEvent) => {\n const target = event.target as Node;\n if (rootRef.current?.contains(target) || panelRef.current?.contains(target)) return;\n close();\n };\n\n document.addEventListener('mousedown', handlePointerDown);\n return () => document.removeEventListener('mousedown', handlePointerDown);\n }, [openMode, close]);\n\n /* Odak arama kutusuna YALNIZCA masaustu panelinde verilir. */\n useEffect(() => {\n if (openMode === 'popover') inputRef.current?.focus({ preventScroll: true });\n }, [openMode]);\n\n const selectOption = (option: ComboboxOption<T>) => {\n if (option.isDisabled) return;\n setCachedLabel(option.label);\n onChange(option.value);\n close();\n };\n\n /* Kapaninca odak TETIKLEYICIYE doner. */\n const wasOpenRef = useRef(false);\n useEffect(() => {\n if (wasOpenRef.current && !isOpen) triggerRef.current?.focus();\n wasOpenRef.current = isOpen;\n }, [isOpen]);\n\n /* KLAVYE MODELI `useListboxNavigation`da — `Select`le AYNI kanca. */\n /* PANEL SABIT KONUMLU, MUTLAK DEGIL — gerekce SCSS'te (`.combobox__panel`). */\n const positioning = usePositioning(triggerRef, panelRef, {\n side: 'bottom',\n align: 'start',\n isOpen: isOpen && openMode === 'popover',\n });\n\n /*\n * Panel BODY'e (ya da icinde bulundugu acik `<dialog>`a) portallanir; gerekce\n * `hooks/usePortalSurface.ts`.\n */\n const portal = usePortalSurface(openMode === 'popover', triggerRef, panelRef);\n\n const { activeIndex, setActiveIndex, listRef, handleKeyDown } =\n useListboxNavigation<HTMLUListElement>({\n count: visibleOptions.length,\n isOpen,\n initialIndex: Math.max(\n options.findIndex(option => option.value === value),\n 0,\n ),\n onSelect: index => {\n const option = visibleOptions[index];\n if (option) selectOption(option);\n },\n /* Odagi geri vermek kapanisi izleyen etkinin isi (bkz. `wasOpenRef`). */\n onClose: close,\n });\n\n /* SANALLASTIRMA — ve UC kosulu birden. */\n const hasDescriptions = visibleOptions.some(option => Boolean(option.description));\n const isVirtual =\n openMode === 'popover' && !hasDescriptions && visibleOptions.length > VIRTUAL_THRESHOLD;\n\n const { scrollRef, range, scrollToIndex } = useVirtualList(visibleOptions.length, {\n rowHeight: OPTION_HEIGHT,\n isEnabled: isVirtual,\n });\n\n /* Etkin secenek CIZILMEMIS olabilir: `scrollIntoView` o satirda calismaz. */\n useEffect(() => {\n if (isVirtual) scrollToIndex(activeIndex);\n }, [activeIndex, isVirtual, scrollToIndex]);\n\n /*\n * Iki kanca da AYNI ` `e baglanir: biri etkin secenegi gorunur tutuyor, digeri kaydirmayi\n * olcuyor.\n */\n const attachList = (node: HTMLUListElement | null) => {\n listRef.current = node;\n scrollRef.current = node;\n };\n\n const handleInputKeyDown = handleKeyDown;\n\n /*\n * Olculen ariza: `handleKeyDown` YALNIZCA arama girdisine bagliydi\n * (`onKeyDown={handleInputKeyDown}`) ve `isSearchHidden` iken o girdi hic cizilmiyor.\n * ⚠ ARAMA KUTUSU GIZLIYKEN KLAVYE SOZLESMESI TETIKLEYICIYE GECER.\n */\n const handleTriggerKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n /* Arama kutusu VARSA sozlesme oradadir; tetikleyici yalnizca acar. */\n if (!isSearchHidden) return;\n\n if (!isOpen) {\n if (['ArrowDown', 'ArrowUp', 'Enter', ' '].includes(event.key)) {\n event.preventDefault();\n open();\n }\n return;\n }\n\n handleKeyDown(event);\n };\n\n const clearSelection = () => {\n onChange(null);\n setCachedLabel(null);\n };\n\n /* Arama ve liste IKI YERDE ayni: masaustu panelinde ve alt sayfada. */\n const search = isSearchHidden ? null : (\n <div className={styles.combobox__search}>\n <Search aria-hidden className={styles.combobox__searchIcon} />\n {/*\n * 6.0: arama kutusu bir METİN KUTUSU; `role=\"combobox\"` TETİKLEYİCİDEDİR. İki combobox\n * (tetikleyici + kutu) ekran okuyucuda iki ayrı denetim sayılıyordu. `aria-autocomplete`,\n * `aria-controls` ve `aria-activedescendant` textbox rolünde geçerli (ARIA 1.2).\n */}\n <input\n ref={inputRef}\n type=\"text\"\n className={styles.combobox__searchInput}\n value={query}\n placeholder={text.search}\n autoComplete=\"off\"\n aria-autocomplete=\"list\"\n aria-controls={listboxId}\n aria-activedescendant={\n visibleOptions[activeIndex] ? `${baseId}-option-${activeIndex}` : undefined\n }\n aria-label={text.search}\n onChange={event => {\n setQuery(event.target.value);\n setActiveIndex(0);\n }}\n onKeyDown={handleInputKeyDown}\n />\n {isLoading && <Spinner size=\"sm\" label=\"\" />}\n </div>\n );\n\n const renderList = (isSheet: boolean) => {\n /* Cizilen dilim. */\n const slice = visibleOptions.slice(range.start, range.end);\n\n return (\n <ul\n ref={attachList}\n id={listboxId}\n role=\"listbox\"\n className={cx(styles.combobox__list, isSheet && styles['combobox__list--sheet'])}\n >\n {/*\n Kaydirma cubugu GERCEK boyda olmali: cizilmeyen satirlarin yeri\n korunmazsa 1121 ogelik bir liste 16 satirlik bir cubuk gosterir ve\n kullanici listenin bittigini sanardi. Yukseklik ust ve alt bosluklara\n boluniyor — tek bir mutlak konumlu kutu kullanmak `<ul>`in cocuk\n sozlesmesini bozardi (`role=\"listbox\"` yalnizca `option` bekler).\n */}\n {isVirtual && range.offset > 0 && <li aria-hidden style={{ height: range.offset }} />}\n\n {slice.map((option, sliceIndex) => {\n const index = range.start + sliceIndex;\n const isActive = index === activeIndex;\n const isChosen = option.value === value;\n\n return (\n /* ⚠ `role=\"option\"` ` `NIN KENDISINDE. */\n <li\n key={option.value}\n id={`${baseId}-option-${index}`}\n role=\"option\"\n data-index={index}\n /* EKRAN OKUYUCU GERCEK SAYIYI DUYMALI. */\n aria-setsize={isVirtual ? visibleOptions.length : undefined}\n aria-posinset={isVirtual ? index + 1 : undefined}\n aria-selected={isChosen}\n aria-disabled={option.isDisabled}\n className={cx(\n styles.combobox__option,\n isActive && styles['combobox__option--active'],\n isChosen && styles['combobox__option--selected'],\n option.isDisabled && styles['combobox__option--disabled'],\n )}\n // Fare imleci seçeneğin üstündeyken etkin seçenek de oraya taşınır; iki ayrı vurgu\n // kullanıcıyı şaşırtıyordu.\n onMouseEnter={() => setActiveIndex(index)}\n onClick={() => selectOption(option)}\n >\n <span className={styles.combobox__optionText}>\n <span className={styles.combobox__optionLabel}>{option.label}</span>\n {option.description && (\n <span className={styles.combobox__optionDescription}>{option.description}</span>\n )}\n </span>\n\n {isChosen && <CheckLg aria-hidden className={styles.combobox__check} />}\n </li>\n );\n })}\n\n {isVirtual && range.end < visibleOptions.length && (\n <li aria-hidden style={{ height: (visibleOptions.length - range.end) * OPTION_HEIGHT }} />\n )}\n\n {visibleOptions.length === 0 && (\n <li className={styles.combobox__empty}>{isLoading ? text.loading : text.empty}</li>\n )}\n </ul>\n );\n };\n\n return (\n <div ref={rootRef} className={cx(styles.combobox, className)} data-testid={testId}>\n <button\n ref={triggerRef}\n id={baseId}\n type=\"button\"\n className={cx(\n styles.combobox__trigger,\n !displayLabel && styles['combobox__trigger--empty'],\n isOpen && styles['combobox__trigger--open'],\n isInvalid && styles['combobox__trigger--invalid'],\n isClearable && displayLabel && !isDisabled && styles['combobox__trigger--clearable'],\n )}\n disabled={isDisabled}\n /*\n * 6.0: tetikleyici `role=\"combobox\"` (`Select` ile aynı): kapalıyken de \"açılır seçim\"\n * olarak duyurulur, `aria-expanded` durumu, `aria-controls` listeyi gösterir (kapalıyken\n * hedef DOM'da yok — `aria-expanded=\"false\"` ile geçerli) ve `aria-invalid` bu rolde\n * TANIMLI olduğu için hata artık doğrudan yazılır. Düğme rolünde `aria-invalid` tanımsızdı\n * ve eksen taraması form hatasında ilk hatalı alana odaklanamıyordu (handijit.com D-12).\n */\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-controls={listboxId}\n /*\n * Yerine `aria-labelledby`: once kontrolun ADI (gorunmez span), sonra DEGERI.\n * ⚠ `aria-label` KULLANILMAZ — SECILI DEGERI MASKELIYORDU. `aria-label` elemanin ICERIGININ\n * yerine gecer\n */\n aria-labelledby={displayLabel ? `${baseId}-name ${baseId}-value` : `${baseId}-name`}\n aria-describedby={describedBy}\n aria-invalid={isInvalid || undefined}\n /* Tetikleyici bir `<button>`; yerel `required` yok, karsiligi bu. */\n aria-required={required || undefined}\n onClick={() => (isOpen ? close() : open())}\n onKeyDown={handleTriggerKeyDown}\n >\n {icon && (\n <span className={styles.combobox__leadingIcon} aria-hidden>\n {icon}\n </span>\n )}\n\n {/* Kontrolün adı — yalnızca erişilebilirlik ağacında. */}\n <span id={`${baseId}-name`} className={styles.combobox__srName}>\n {labels.placeholder}\n </span>\n\n <span id={`${baseId}-value`} className={styles.combobox__value}>\n {displayLabel ?? labels.placeholder}\n </span>\n\n {/* Dolu caret — gerekcesi `Select` ile ayni. */}\n <CaretDownFill\n aria-hidden\n className={cx(styles.combobox__chevron, isOpen && styles['combobox__chevron--open'])}\n />\n </button>\n\n {/*\n TEMİZLEME DÜĞMESİ TETİKLEYİCİNİN İÇİNDE DEĞİL, KARDEŞİ.\n\n Önce `<button>`ın içinde `role=\"button\" tabIndex={0}` taşıyan bir\n `<span>` olarak duruyordu; dosyadaki yorum \"DOM'da kardeş\" diyordu ama\n kod öyle değildi. Eksen taraması bunu `nested-interactive` olarak\n bildirdi ve sonucu somut: iç içe etkileşimli öğede ekran okuyucular\n yalnızca dıştaki düğmeyi duyurur, içteki çarpıya klavyeyle ulaşılsa bile\n adı okunmaz — yani \"seçimi temizle\" eylemi destek teknolojisi\n kullanıcısı için YOK. Kardeş olarak çizilip tetikleyicinin üzerine\n konumlandırılıyor; görsel yer aynı, ağaçtaki yeri doğru.\n */}\n {isClearable && displayLabel && !isDisabled && (\n <button\n type=\"button\"\n className={styles.combobox__clear}\n aria-label={text.clear}\n onClick={clearSelection}\n >\n <XLg aria-hidden />\n </button>\n )}\n\n {/* Masaüstü: tetikleyiciye yapışan panel — DOM'da kökün değil portalın içinde. */}\n {openMode === 'popover' &&\n portal.container &&\n createPortal(\n <div\n ref={panelRef}\n className={styles.combobox__panel}\n {...portal.attributes}\n style={{\n ...positioning.style,\n ...portal.style,\n /*\n * Panel tetikleyiciyle AYNI genislikte: sabit konum + portal onu kapsayicidan\n * kopardigi icin genislik artik miras alinmiyor.\n */\n width: positioning.anchorWidth || undefined,\n /* Ilk karede olcu yok; yanlis yerde bir kare parlamasin. */\n visibility: positioning.isPositioned ? undefined : 'hidden',\n }}\n >\n {search}\n {renderList(false)}\n </div>,\n portal.container,\n )}\n\n {/*\n Dar ekran: alt sayfa. Yapışkan panel telefonda klavye açılınca sıkışıyor\n ve uzun listenin alt ucu ekranın dışında kalıyordu; arama kutusu da\n tetikleyiciyle klavyenin arasına hapsoluyordu. Arama `toolbar`\n yuvasında: başlığın altında sabit kalır, liste altında kayar.\n */}\n {openMode === 'sheet' && (\n <BottomSheet\n title={labels.placeholder}\n closeLabel={labels.closeLabel ?? config?.close}\n onClose={close}\n toolbar={search ?? undefined}\n >\n {renderList(true)}\n </BottomSheet>\n )}\n </div>\n );\n};\n\nexport default /*#__PURE__*/ memo(Combobox) as typeof Combobox;\n"],"names":["Combobox","options","value","onChange","labels","isSearchHidden","onSearch","isLoading","isDisabled","isClearable","icon","id","required","className","testId","describedBy","isInvalid","config","useUi","text","resolveLabel","_a","generatedId","useId","baseId","listboxId","rootRef","useRef","triggerRef","panelRef","inputRef","openMode","setOpenMode","useState","isOpen","query","setQuery","cachedLabel","setCachedLabel","visibleOptions","useMemo","needle","option","matchesSearch","selectedOption","useEffect","displayLabel","useAsyncSearch","SEARCH_DEBOUNCE_MS","close","useCallback","open","SHEET_MEDIA_QUERY","handlePointerDown","event","target","_b","selectOption","wasOpenRef","positioning","usePositioning","portal","usePortalSurface","activeIndex","setActiveIndex","listRef","handleKeyDown","useListboxNavigation","index","hasDescriptions","isVirtual","VIRTUAL_THRESHOLD","scrollRef","range","scrollToIndex","useVirtualList","OPTION_HEIGHT","attachList","node","handleInputKeyDown","handleTriggerKeyDown","clearSelection","search","styles","jsx","Search","Spinner","renderList","isSheet","slice","jsxs","cx","sliceIndex","isActive","isChosen","CheckLg","CaretDownFill","XLg","createPortal","BottomSheet"],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ComboboxProps } from '../../types/combobox.type';
|
|
2
|
+
export type { ComboboxLabels, ComboboxOption, ComboboxProps } from '../../types/combobox.type';
|
|
3
|
+
/** Aranabilir seçim kutusu. */
|
|
4
|
+
declare const Combobox: <T extends string>({ options, value, onChange, labels, isSearchHidden, onSearch, isLoading, isDisabled, isClearable, icon, id, required, className, testId, "aria-describedby": describedBy, "aria-invalid": isInvalid, }: ComboboxProps<T>) => import("react").JSX.Element;
|
|
5
|
+
declare const _default: typeof Combobox;
|
|
6
|
+
export default _default;
|