@techzyapp/ui-library 1.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/dist/Accordion-CAxa1I-m.js +112 -0
- package/dist/Accordion-CAxa1I-m.js.map +1 -0
- package/dist/Accordion-Dy_dM79Y.cjs +2 -0
- package/dist/Accordion-Dy_dM79Y.cjs.map +1 -0
- package/dist/Alert-BQpA48PY.js +71 -0
- package/dist/Alert-BQpA48PY.js.map +1 -0
- package/dist/Alert-DKIjM-9x.cjs +2 -0
- package/dist/Alert-DKIjM-9x.cjs.map +1 -0
- package/dist/Avatar-BJVCdo-K.js +60 -0
- package/dist/Avatar-BJVCdo-K.js.map +1 -0
- package/dist/Avatar-_ufXh3AY.cjs +2 -0
- package/dist/Avatar-_ufXh3AY.cjs.map +1 -0
- package/dist/AvatarGroup-DdJf4aT7.js +33 -0
- package/dist/AvatarGroup-DdJf4aT7.js.map +1 -0
- package/dist/AvatarGroup-TW1pt4tj.cjs +2 -0
- package/dist/AvatarGroup-TW1pt4tj.cjs.map +1 -0
- package/dist/Badge-BQpr2Jee.cjs +2 -0
- package/dist/Badge-BQpr2Jee.cjs.map +1 -0
- package/dist/Badge-DSWigoGC.js +50 -0
- package/dist/Badge-DSWigoGC.js.map +1 -0
- package/dist/Breadcrumbs-Bx5UgwDy.js +35 -0
- package/dist/Breadcrumbs-Bx5UgwDy.js.map +1 -0
- package/dist/Breadcrumbs-CHONper7.cjs +2 -0
- package/dist/Breadcrumbs-CHONper7.cjs.map +1 -0
- package/dist/Button-D4bfVNNa.cjs +2 -0
- package/dist/Button-D4bfVNNa.cjs.map +1 -0
- package/dist/Button-DhEv0YFk.js +72 -0
- package/dist/Button-DhEv0YFk.js.map +1 -0
- package/dist/Calendar-Bh317SaV.js +267 -0
- package/dist/Calendar-Bh317SaV.js.map +1 -0
- package/dist/Calendar-C8uNezI-.cjs +2 -0
- package/dist/Calendar-C8uNezI-.cjs.map +1 -0
- package/dist/Card-CfyaerZZ.cjs +2 -0
- package/dist/Card-CfyaerZZ.cjs.map +1 -0
- package/dist/Card-DzClqJuu.js +118 -0
- package/dist/Card-DzClqJuu.js.map +1 -0
- package/dist/Checkbox-DXOzYIAz.cjs +2 -0
- package/dist/Checkbox-DXOzYIAz.cjs.map +1 -0
- package/dist/Checkbox-XKL_Q5qj.js +84 -0
- package/dist/Checkbox-XKL_Q5qj.js.map +1 -0
- package/dist/Chip-Cfo0v3Z8.js +92 -0
- package/dist/Chip-Cfo0v3Z8.js.map +1 -0
- package/dist/Chip-DSrdXLBU.cjs +2 -0
- package/dist/Chip-DSrdXLBU.cjs.map +1 -0
- package/dist/ChoiceCardGroup-6eFM1eL0.cjs +2 -0
- package/dist/ChoiceCardGroup-6eFM1eL0.cjs.map +1 -0
- package/dist/ChoiceCardGroup-CvFzZlgI.js +181 -0
- package/dist/ChoiceCardGroup-CvFzZlgI.js.map +1 -0
- package/dist/CodeBlock-DOk5wekc.cjs +2 -0
- package/dist/CodeBlock-DOk5wekc.cjs.map +1 -0
- package/dist/CodeBlock-n3KExtTO.js +104 -0
- package/dist/CodeBlock-n3KExtTO.js.map +1 -0
- package/dist/Col-D2TfZKiM.js +13 -0
- package/dist/Col-D2TfZKiM.js.map +1 -0
- package/dist/Col-R5mAy8T9.cjs +2 -0
- package/dist/Col-R5mAy8T9.cjs.map +1 -0
- package/dist/ColorPicker-2udt1ORM.js +119 -0
- package/dist/ColorPicker-2udt1ORM.js.map +1 -0
- package/dist/ColorPicker-BwmaXCOy.cjs +2 -0
- package/dist/ColorPicker-BwmaXCOy.cjs.map +1 -0
- package/dist/ColorPickerPanel-BM9OwDDE.js +336 -0
- package/dist/ColorPickerPanel-BM9OwDDE.js.map +1 -0
- package/dist/ColorPickerPanel-ByB1mLSi.cjs +2 -0
- package/dist/ColorPickerPanel-ByB1mLSi.cjs.map +1 -0
- package/dist/ConfigProvider-2c94kUOk.js +291 -0
- package/dist/ConfigProvider-2c94kUOk.js.map +1 -0
- package/dist/ConfigProvider-ByOFXVyP.cjs +2 -0
- package/dist/ConfigProvider-ByOFXVyP.cjs.map +1 -0
- package/dist/DatePicker-DF4Epkn8.cjs +2 -0
- package/dist/DatePicker-DF4Epkn8.cjs.map +1 -0
- package/dist/DatePicker-WM9TC6L_.js +191 -0
- package/dist/DatePicker-WM9TC6L_.js.map +1 -0
- package/dist/DatePicker.module-BZDftL4g.js +138 -0
- package/dist/DatePicker.module-BZDftL4g.js.map +1 -0
- package/dist/DatePicker.module-tE-tGNBd.cjs +2 -0
- package/dist/DatePicker.module-tE-tGNBd.cjs.map +1 -0
- package/dist/DateTimePicker-C557OjBU.cjs +2 -0
- package/dist/DateTimePicker-C557OjBU.cjs.map +1 -0
- package/dist/DateTimePicker-DBtcWK0F.js +245 -0
- package/dist/DateTimePicker-DBtcWK0F.js.map +1 -0
- package/dist/Divider-CzbhdCiD.cjs +2 -0
- package/dist/Divider-CzbhdCiD.cjs.map +1 -0
- package/dist/Divider-LtH3dLgw.js +36 -0
- package/dist/Divider-LtH3dLgw.js.map +1 -0
- package/dist/Dropdown-DKAXue5_.js +146 -0
- package/dist/Dropdown-DKAXue5_.js.map +1 -0
- package/dist/Dropdown-DygP50OB.cjs +2 -0
- package/dist/Dropdown-DygP50OB.cjs.map +1 -0
- package/dist/EmptyState-CCCpZ-ZA.cjs +2 -0
- package/dist/EmptyState-CCCpZ-ZA.cjs.map +1 -0
- package/dist/EmptyState-CetM49vk.js +38 -0
- package/dist/EmptyState-CetM49vk.js.map +1 -0
- package/dist/FileUploader-B4TJHyoi.cjs +2 -0
- package/dist/FileUploader-B4TJHyoi.cjs.map +1 -0
- package/dist/FileUploader-VtmmwUFE.js +684 -0
- package/dist/FileUploader-VtmmwUFE.js.map +1 -0
- package/dist/Flag-BWCX6oSR.js +24 -0
- package/dist/Flag-BWCX6oSR.js.map +1 -0
- package/dist/Flag-EPZOrH-U.cjs +2 -0
- package/dist/Flag-EPZOrH-U.cjs.map +1 -0
- package/dist/Flex-Bj3mMF5A.js +50 -0
- package/dist/Flex-Bj3mMF5A.js.map +1 -0
- package/dist/Flex-CqL3Ghda.cjs +2 -0
- package/dist/Flex-CqL3Ghda.cjs.map +1 -0
- package/dist/FloatingPanel-BG9Uag__.js +131 -0
- package/dist/FloatingPanel-BG9Uag__.js.map +1 -0
- package/dist/FloatingPanel-U6sGYiSK.cjs +2 -0
- package/dist/FloatingPanel-U6sGYiSK.cjs.map +1 -0
- package/dist/Form-Bz2xgkEm.cjs +2 -0
- package/dist/Form-Bz2xgkEm.cjs.map +1 -0
- package/dist/Form-kglaJYr5.js +9 -0
- package/dist/Form-kglaJYr5.js.map +1 -0
- package/dist/FullscreenToggle-DDKN5n8B.cjs +2 -0
- package/dist/FullscreenToggle-DDKN5n8B.cjs.map +1 -0
- package/dist/FullscreenToggle-oWzYqUPH.js +42 -0
- package/dist/FullscreenToggle-oWzYqUPH.js.map +1 -0
- package/dist/Grid-Bw95bKkJ.cjs +2 -0
- package/dist/Grid-Bw95bKkJ.cjs.map +1 -0
- package/dist/Grid-CY-syhTX.js +24 -0
- package/dist/Grid-CY-syhTX.js.map +1 -0
- package/dist/Icon-CXTl_QAP.cjs +2 -0
- package/dist/Icon-CXTl_QAP.cjs.map +1 -0
- package/dist/Icon-CophpkHo.js +1228 -0
- package/dist/Icon-CophpkHo.js.map +1 -0
- package/dist/IconButton-CBusrDa9.js +68 -0
- package/dist/IconButton-CBusrDa9.js.map +1 -0
- package/dist/IconButton-D6TenQZ_.cjs +2 -0
- package/dist/IconButton-D6TenQZ_.cjs.map +1 -0
- package/dist/List-BHgFI9Ll.js +26 -0
- package/dist/List-BHgFI9Ll.js.map +1 -0
- package/dist/List-CNz2M3-q.cjs +2 -0
- package/dist/List-CNz2M3-q.cjs.map +1 -0
- package/dist/ListItem-B4yqZR-Z.js +74 -0
- package/dist/ListItem-B4yqZR-Z.js.map +1 -0
- package/dist/ListItem-RH-D-Wey.cjs +2 -0
- package/dist/ListItem-RH-D-Wey.cjs.map +1 -0
- package/dist/Loader-C4JoXOyA.js +28 -0
- package/dist/Loader-C4JoXOyA.js.map +1 -0
- package/dist/Loader-D1MtlQOH.cjs +2 -0
- package/dist/Loader-D1MtlQOH.cjs.map +1 -0
- package/dist/Modal-B2YSCVVt.cjs +2 -0
- package/dist/Modal-B2YSCVVt.cjs.map +1 -0
- package/dist/Modal-BuaPDlKV.js +195 -0
- package/dist/Modal-BuaPDlKV.js.map +1 -0
- package/dist/MultiSelect-BGRT_B60.js +350 -0
- package/dist/MultiSelect-BGRT_B60.js.map +1 -0
- package/dist/MultiSelect-CSJKSWpA.cjs +2 -0
- package/dist/MultiSelect-CSJKSWpA.cjs.map +1 -0
- package/dist/MultilineTextField-CwNCJ9lZ.js +123 -0
- package/dist/MultilineTextField-CwNCJ9lZ.js.map +1 -0
- package/dist/MultilineTextField-Dz6Fg8RJ.cjs +2 -0
- package/dist/MultilineTextField-Dz6Fg8RJ.cjs.map +1 -0
- package/dist/NumberField-DBpO-Z_7.cjs +2 -0
- package/dist/NumberField-DBpO-Z_7.cjs.map +1 -0
- package/dist/NumberField-DBvhSQCw.js +183 -0
- package/dist/NumberField-DBvhSQCw.js.map +1 -0
- package/dist/OtpField-BUBYyorC.cjs +2 -0
- package/dist/OtpField-BUBYyorC.cjs.map +1 -0
- package/dist/OtpField-CTq-CUbF.js +171 -0
- package/dist/OtpField-CTq-CUbF.js.map +1 -0
- package/dist/PageLayout-DddzYw2B.js +12 -0
- package/dist/PageLayout-DddzYw2B.js.map +1 -0
- package/dist/PageLayout-Dfbjw6jD.cjs +2 -0
- package/dist/PageLayout-Dfbjw6jD.cjs.map +1 -0
- package/dist/Pagination-CN9V8M5C.js +139 -0
- package/dist/Pagination-CN9V8M5C.js.map +1 -0
- package/dist/Pagination-DRwTLPh8.cjs +2 -0
- package/dist/Pagination-DRwTLPh8.cjs.map +1 -0
- package/dist/Popover-CBI1icIM.cjs +2 -0
- package/dist/Popover-CBI1icIM.cjs.map +1 -0
- package/dist/Popover-CgIU4Rhg.js +65 -0
- package/dist/Popover-CgIU4Rhg.js.map +1 -0
- package/dist/RadioGroup-C8u7eNBS.cjs +2 -0
- package/dist/RadioGroup-C8u7eNBS.cjs.map +1 -0
- package/dist/RadioGroup-DbodUJW8.js +141 -0
- package/dist/RadioGroup-DbodUJW8.js.map +1 -0
- package/dist/RemoveDialog-Bvt6sH79.js +47 -0
- package/dist/RemoveDialog-Bvt6sH79.js.map +1 -0
- package/dist/RemoveDialog-ClyZKyUG.cjs +2 -0
- package/dist/RemoveDialog-ClyZKyUG.cjs.map +1 -0
- package/dist/RichTextEditor-BTx8Py3I.js +806 -0
- package/dist/RichTextEditor-BTx8Py3I.js.map +1 -0
- package/dist/RichTextEditor-CAYt1Zm1.cjs +2 -0
- package/dist/RichTextEditor-CAYt1Zm1.cjs.map +1 -0
- package/dist/RootLayout-Cp-9CVjP.cjs +2 -0
- package/dist/RootLayout-Cp-9CVjP.cjs.map +1 -0
- package/dist/RootLayout-DCpfuFWF.js +405 -0
- package/dist/RootLayout-DCpfuFWF.js.map +1 -0
- package/dist/Select-PbTyxB1Q.js +338 -0
- package/dist/Select-PbTyxB1Q.js.map +1 -0
- package/dist/Select-_6WogC0u.cjs +2 -0
- package/dist/Select-_6WogC0u.cjs.map +1 -0
- package/dist/Sidebar-AaIlRzgk.cjs +2 -0
- package/dist/Sidebar-AaIlRzgk.cjs.map +1 -0
- package/dist/Sidebar-DRCs2ygZ.js +422 -0
- package/dist/Sidebar-DRCs2ygZ.js.map +1 -0
- package/dist/Slider-dxYVXRev.cjs +2 -0
- package/dist/Slider-dxYVXRev.cjs.map +1 -0
- package/dist/Slider-oGXd5e9X.js +184 -0
- package/dist/Slider-oGXd5e9X.js.map +1 -0
- package/dist/SpeedDial-C4jxIXTr.cjs +2 -0
- package/dist/SpeedDial-C4jxIXTr.cjs.map +1 -0
- package/dist/SpeedDial-DgFj16BQ.js +165 -0
- package/dist/SpeedDial-DgFj16BQ.js.map +1 -0
- package/dist/Stepper-7pPEBRLI.cjs +2 -0
- package/dist/Stepper-7pPEBRLI.cjs.map +1 -0
- package/dist/Stepper-COKAyN1L.js +165 -0
- package/dist/Stepper-COKAyN1L.js.map +1 -0
- package/dist/SwatchPicker-D30aSrbY.js +129 -0
- package/dist/SwatchPicker-D30aSrbY.js.map +1 -0
- package/dist/SwatchPicker-DbAU9-ux.cjs +2 -0
- package/dist/SwatchPicker-DbAU9-ux.cjs.map +1 -0
- package/dist/Switch-DMPJ0fhB.js +85 -0
- package/dist/Switch-DMPJ0fhB.js.map +1 -0
- package/dist/Switch-DRkZ6kHJ.cjs +2 -0
- package/dist/Switch-DRkZ6kHJ.cjs.map +1 -0
- package/dist/Table-BeOumGng.cjs +2 -0
- package/dist/Table-BeOumGng.cjs.map +1 -0
- package/dist/Table-BjPLvMbf.js +1090 -0
- package/dist/Table-BjPLvMbf.js.map +1 -0
- package/dist/Tabs--DDM-zKe.js +190 -0
- package/dist/Tabs--DDM-zKe.js.map +1 -0
- package/dist/Tabs-BZcMnjdC.cjs +2 -0
- package/dist/Tabs-BZcMnjdC.cjs.map +1 -0
- package/dist/TagsField-BTJcZS9P.js +186 -0
- package/dist/TagsField-BTJcZS9P.js.map +1 -0
- package/dist/TagsField-kknWiJZZ.cjs +2 -0
- package/dist/TagsField-kknWiJZZ.cjs.map +1 -0
- package/dist/TextField-BPefnD5M.cjs +2 -0
- package/dist/TextField-BPefnD5M.cjs.map +1 -0
- package/dist/TextField-DMI1X09n.js +266 -0
- package/dist/TextField-DMI1X09n.js.map +1 -0
- package/dist/TextField.module-QePvGeJ3.js +27 -0
- package/dist/TextField.module-QePvGeJ3.js.map +1 -0
- package/dist/TextField.module-m-UllwzG.cjs +2 -0
- package/dist/TextField.module-m-UllwzG.cjs.map +1 -0
- package/dist/ThemeToggle-DTal3RX5.cjs +2 -0
- package/dist/ThemeToggle-DTal3RX5.cjs.map +1 -0
- package/dist/ThemeToggle-Deh9j8pm.js +28 -0
- package/dist/ThemeToggle-Deh9j8pm.js.map +1 -0
- package/dist/TimeColumns-BCNmu4b_.js +147 -0
- package/dist/TimeColumns-BCNmu4b_.js.map +1 -0
- package/dist/TimeColumns-Duh4DcYJ.cjs +2 -0
- package/dist/TimeColumns-Duh4DcYJ.cjs.map +1 -0
- package/dist/TimePicker-3JgvK2on.js +194 -0
- package/dist/TimePicker-3JgvK2on.js.map +1 -0
- package/dist/TimePicker-CfGrCH9T.cjs +2 -0
- package/dist/TimePicker-CfGrCH9T.cjs.map +1 -0
- package/dist/Timeline-CoxW0Ia_.cjs +2 -0
- package/dist/Timeline-CoxW0Ia_.cjs.map +1 -0
- package/dist/Timeline-WkV4k_we.js +71 -0
- package/dist/Timeline-WkV4k_we.js.map +1 -0
- package/dist/Toaster-Bk5GtPjX.cjs +2 -0
- package/dist/Toaster-Bk5GtPjX.cjs.map +1 -0
- package/dist/Toaster-D-eG1xv7.js +63 -0
- package/dist/Toaster-D-eG1xv7.js.map +1 -0
- package/dist/ToggleButtonGroup-BWd7MOcc.js +123 -0
- package/dist/ToggleButtonGroup-BWd7MOcc.js.map +1 -0
- package/dist/ToggleButtonGroup-DYRLwKKh.cjs +2 -0
- package/dist/ToggleButtonGroup-DYRLwKKh.cjs.map +1 -0
- package/dist/Tooltip-Ao7az09p.cjs +2 -0
- package/dist/Tooltip-Ao7az09p.cjs.map +1 -0
- package/dist/Tooltip-Cb_FKxT9.js +65 -0
- package/dist/Tooltip-Cb_FKxT9.js.map +1 -0
- package/dist/TranslatedFields-CI0F9bHw.js +82 -0
- package/dist/TranslatedFields-CI0F9bHw.js.map +1 -0
- package/dist/TranslatedFields-DT3bYse6.cjs +2 -0
- package/dist/TranslatedFields-DT3bYse6.cjs.map +1 -0
- package/dist/Typography-BFatE1_A.cjs +2 -0
- package/dist/Typography-BFatE1_A.cjs.map +1 -0
- package/dist/Typography-Cta6Rg4L.js +51 -0
- package/dist/Typography-Cta6Rg4L.js.map +1 -0
- package/dist/UserCard-BhqtX1vU.js +74 -0
- package/dist/UserCard-BhqtX1vU.js.map +1 -0
- package/dist/UserCard-OlLeyyS0.cjs +2 -0
- package/dist/UserCard-OlLeyyS0.cjs.map +1 -0
- package/dist/access-DPUHbE-S.cjs +2 -0
- package/dist/access-DPUHbE-S.cjs.map +1 -0
- package/dist/access-Db4knwyR.js +25 -0
- package/dist/access-Db4knwyR.js.map +1 -0
- package/dist/components/Accordion/Accordion.d.cts +43 -0
- package/dist/components/Accordion/Accordion.d.ts +43 -0
- package/dist/components/Accordion/AccordionItem.d.cts +20 -0
- package/dist/components/Accordion/AccordionItem.d.ts +20 -0
- package/dist/components/Accordion/accordionContext.d.cts +13 -0
- package/dist/components/Accordion/accordionContext.d.ts +13 -0
- package/dist/components/Accordion/index.cjs +2 -0
- package/dist/components/Accordion/index.cjs.map +1 -0
- package/dist/components/Accordion/index.d.cts +4 -0
- package/dist/components/Accordion/index.d.ts +4 -0
- package/dist/components/Accordion/index.js +7 -0
- package/dist/components/Accordion/index.js.map +1 -0
- package/dist/components/Alert/Alert.d.cts +30 -0
- package/dist/components/Alert/Alert.d.ts +30 -0
- package/dist/components/Alert/index.cjs +2 -0
- package/dist/components/Alert/index.cjs.map +1 -0
- package/dist/components/Alert/index.d.cts +2 -0
- package/dist/components/Alert/index.d.ts +2 -0
- package/dist/components/Alert/index.js +6 -0
- package/dist/components/Alert/index.js.map +1 -0
- package/dist/components/Avatar/Avatar.d.cts +28 -0
- package/dist/components/Avatar/Avatar.d.ts +28 -0
- package/dist/components/Avatar/AvatarGroup.d.cts +19 -0
- package/dist/components/Avatar/AvatarGroup.d.ts +19 -0
- package/dist/components/Avatar/index.cjs +2 -0
- package/dist/components/Avatar/index.cjs.map +1 -0
- package/dist/components/Avatar/index.d.cts +4 -0
- package/dist/components/Avatar/index.d.ts +4 -0
- package/dist/components/Avatar/index.js +8 -0
- package/dist/components/Avatar/index.js.map +1 -0
- package/dist/components/Badge/Badge.d.cts +26 -0
- package/dist/components/Badge/Badge.d.ts +26 -0
- package/dist/components/Badge/index.cjs +2 -0
- package/dist/components/Badge/index.cjs.map +1 -0
- package/dist/components/Badge/index.d.cts +2 -0
- package/dist/components/Badge/index.d.ts +2 -0
- package/dist/components/Badge/index.js +6 -0
- package/dist/components/Badge/index.js.map +1 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.cts +17 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +17 -0
- package/dist/components/Breadcrumbs/index.cjs +2 -0
- package/dist/components/Breadcrumbs/index.cjs.map +1 -0
- package/dist/components/Breadcrumbs/index.d.cts +2 -0
- package/dist/components/Breadcrumbs/index.d.ts +2 -0
- package/dist/components/Breadcrumbs/index.js +6 -0
- package/dist/components/Breadcrumbs/index.js.map +1 -0
- package/dist/components/Button/Button.d.cts +23 -0
- package/dist/components/Button/Button.d.ts +23 -0
- package/dist/components/Button/index.cjs +2 -0
- package/dist/components/Button/index.cjs.map +1 -0
- package/dist/components/Button/index.d.cts +2 -0
- package/dist/components/Button/index.d.ts +2 -0
- package/dist/components/Button/index.js +6 -0
- package/dist/components/Button/index.js.map +1 -0
- package/dist/components/Card/Card.d.cts +37 -0
- package/dist/components/Card/Card.d.ts +37 -0
- package/dist/components/Card/index.cjs +2 -0
- package/dist/components/Card/index.cjs.map +1 -0
- package/dist/components/Card/index.d.cts +2 -0
- package/dist/components/Card/index.d.ts +2 -0
- package/dist/components/Card/index.js +6 -0
- package/dist/components/Card/index.js.map +1 -0
- package/dist/components/Checkbox/Checkbox.d.cts +29 -0
- package/dist/components/Checkbox/Checkbox.d.ts +29 -0
- package/dist/components/Checkbox/index.cjs +2 -0
- package/dist/components/Checkbox/index.cjs.map +1 -0
- package/dist/components/Checkbox/index.d.cts +2 -0
- package/dist/components/Checkbox/index.d.ts +2 -0
- package/dist/components/Checkbox/index.js +6 -0
- package/dist/components/Checkbox/index.js.map +1 -0
- package/dist/components/Chip/Chip.d.cts +37 -0
- package/dist/components/Chip/Chip.d.ts +37 -0
- package/dist/components/Chip/index.cjs +2 -0
- package/dist/components/Chip/index.cjs.map +1 -0
- package/dist/components/Chip/index.d.cts +2 -0
- package/dist/components/Chip/index.d.ts +2 -0
- package/dist/components/Chip/index.js +6 -0
- package/dist/components/Chip/index.js.map +1 -0
- package/dist/components/ChoiceCard/ChoiceCard.d.cts +41 -0
- package/dist/components/ChoiceCard/ChoiceCard.d.ts +41 -0
- package/dist/components/ChoiceCard/ChoiceCardGroup.d.cts +72 -0
- package/dist/components/ChoiceCard/ChoiceCardGroup.d.ts +72 -0
- package/dist/components/ChoiceCard/choiceCardContext.d.cts +21 -0
- package/dist/components/ChoiceCard/choiceCardContext.d.ts +21 -0
- package/dist/components/ChoiceCard/index.cjs +2 -0
- package/dist/components/ChoiceCard/index.cjs.map +1 -0
- package/dist/components/ChoiceCard/index.d.cts +4 -0
- package/dist/components/ChoiceCard/index.d.ts +4 -0
- package/dist/components/ChoiceCard/index.js +7 -0
- package/dist/components/ChoiceCard/index.js.map +1 -0
- package/dist/components/CodeBlock/CodeBlock.d.cts +30 -0
- package/dist/components/CodeBlock/CodeBlock.d.ts +30 -0
- package/dist/components/CodeBlock/index.cjs +2 -0
- package/dist/components/CodeBlock/index.cjs.map +1 -0
- package/dist/components/CodeBlock/index.d.cts +2 -0
- package/dist/components/CodeBlock/index.d.ts +2 -0
- package/dist/components/CodeBlock/index.js +6 -0
- package/dist/components/CodeBlock/index.js.map +1 -0
- package/dist/components/ColorPicker/ColorPicker.d.cts +47 -0
- package/dist/components/ColorPicker/ColorPicker.d.ts +47 -0
- package/dist/components/ColorPicker/ColorPickerPanel.d.cts +20 -0
- package/dist/components/ColorPicker/ColorPickerPanel.d.ts +20 -0
- package/dist/components/ColorPicker/colorUtils.d.cts +44 -0
- package/dist/components/ColorPicker/colorUtils.d.ts +44 -0
- package/dist/components/ColorPicker/index.cjs +2 -0
- package/dist/components/ColorPicker/index.cjs.map +1 -0
- package/dist/components/ColorPicker/index.d.cts +2 -0
- package/dist/components/ColorPicker/index.d.ts +2 -0
- package/dist/components/ColorPicker/index.js +6 -0
- package/dist/components/ColorPicker/index.js.map +1 -0
- package/dist/components/DatePicker/Calendar.d.cts +29 -0
- package/dist/components/DatePicker/Calendar.d.ts +29 -0
- package/dist/components/DatePicker/DatePicker.d.cts +66 -0
- package/dist/components/DatePicker/DatePicker.d.ts +66 -0
- package/dist/components/DatePicker/dateUtils.d.cts +86 -0
- package/dist/components/DatePicker/dateUtils.d.ts +86 -0
- package/dist/components/DatePicker/index.cjs +2 -0
- package/dist/components/DatePicker/index.cjs.map +1 -0
- package/dist/components/DatePicker/index.d.cts +2 -0
- package/dist/components/DatePicker/index.d.ts +2 -0
- package/dist/components/DatePicker/index.js +6 -0
- package/dist/components/DatePicker/index.js.map +1 -0
- package/dist/components/DateTimePicker/DateTimePicker.d.cts +79 -0
- package/dist/components/DateTimePicker/DateTimePicker.d.ts +79 -0
- package/dist/components/DateTimePicker/TimeColumns.d.cts +22 -0
- package/dist/components/DateTimePicker/TimeColumns.d.ts +22 -0
- package/dist/components/DateTimePicker/index.cjs +2 -0
- package/dist/components/DateTimePicker/index.cjs.map +1 -0
- package/dist/components/DateTimePicker/index.d.cts +2 -0
- package/dist/components/DateTimePicker/index.d.ts +2 -0
- package/dist/components/DateTimePicker/index.js +6 -0
- package/dist/components/DateTimePicker/index.js.map +1 -0
- package/dist/components/Divider/Divider.d.cts +17 -0
- package/dist/components/Divider/Divider.d.ts +17 -0
- package/dist/components/Divider/index.cjs +2 -0
- package/dist/components/Divider/index.cjs.map +1 -0
- package/dist/components/Divider/index.d.cts +2 -0
- package/dist/components/Divider/index.d.ts +2 -0
- package/dist/components/Divider/index.js +6 -0
- package/dist/components/Divider/index.js.map +1 -0
- package/dist/components/Dropdown/Dropdown.d.cts +44 -0
- package/dist/components/Dropdown/Dropdown.d.ts +44 -0
- package/dist/components/Dropdown/index.cjs +2 -0
- package/dist/components/Dropdown/index.cjs.map +1 -0
- package/dist/components/Dropdown/index.d.cts +2 -0
- package/dist/components/Dropdown/index.d.ts +2 -0
- package/dist/components/Dropdown/index.js +6 -0
- package/dist/components/Dropdown/index.js.map +1 -0
- package/dist/components/EmptyState/EmptyState.d.cts +29 -0
- package/dist/components/EmptyState/EmptyState.d.ts +29 -0
- package/dist/components/EmptyState/index.cjs +2 -0
- package/dist/components/EmptyState/index.cjs.map +1 -0
- package/dist/components/EmptyState/index.d.cts +2 -0
- package/dist/components/EmptyState/index.d.ts +2 -0
- package/dist/components/EmptyState/index.js +6 -0
- package/dist/components/EmptyState/index.js.map +1 -0
- package/dist/components/FileUploader/FileUploader.d.cts +144 -0
- package/dist/components/FileUploader/FileUploader.d.ts +144 -0
- package/dist/components/FileUploader/FileUploaderEditDialog.d.cts +34 -0
- package/dist/components/FileUploader/FileUploaderEditDialog.d.ts +34 -0
- package/dist/components/FileUploader/FileUploaderPreview.d.cts +23 -0
- package/dist/components/FileUploader/FileUploaderPreview.d.ts +23 -0
- package/dist/components/FileUploader/index.cjs +2 -0
- package/dist/components/FileUploader/index.cjs.map +1 -0
- package/dist/components/FileUploader/index.d.cts +2 -0
- package/dist/components/FileUploader/index.d.ts +2 -0
- package/dist/components/FileUploader/index.js +6 -0
- package/dist/components/FileUploader/index.js.map +1 -0
- package/dist/components/Flag/Flag.d.cts +14 -0
- package/dist/components/Flag/Flag.d.ts +14 -0
- package/dist/components/Flag/index.cjs +2 -0
- package/dist/components/Flag/index.cjs.map +1 -0
- package/dist/components/Flag/index.d.cts +2 -0
- package/dist/components/Flag/index.d.ts +2 -0
- package/dist/components/Flag/index.js +6 -0
- package/dist/components/Flag/index.js.map +1 -0
- package/dist/components/Flex/Col.d.cts +8 -0
- package/dist/components/Flex/Col.d.ts +8 -0
- package/dist/components/Flex/Flex.d.cts +32 -0
- package/dist/components/Flex/Flex.d.ts +32 -0
- package/dist/components/Flex/Grid.d.cts +28 -0
- package/dist/components/Flex/Grid.d.ts +28 -0
- package/dist/components/Flex/Row.d.cts +8 -0
- package/dist/components/Flex/Row.d.ts +8 -0
- package/dist/components/Flex/index.cjs +2 -0
- package/dist/components/Flex/index.cjs.map +1 -0
- package/dist/components/Flex/index.d.cts +8 -0
- package/dist/components/Flex/index.d.ts +8 -0
- package/dist/components/Flex/index.js +11 -0
- package/dist/components/Flex/index.js.map +1 -0
- package/dist/components/FloatingPanel/FloatingPanel.d.cts +39 -0
- package/dist/components/FloatingPanel/FloatingPanel.d.ts +39 -0
- package/dist/components/FullscreenToggle/FullscreenToggle.d.cts +12 -0
- package/dist/components/FullscreenToggle/FullscreenToggle.d.ts +12 -0
- package/dist/components/FullscreenToggle/index.cjs +2 -0
- package/dist/components/FullscreenToggle/index.cjs.map +1 -0
- package/dist/components/FullscreenToggle/index.d.cts +2 -0
- package/dist/components/FullscreenToggle/index.d.ts +2 -0
- package/dist/components/FullscreenToggle/index.js +6 -0
- package/dist/components/FullscreenToggle/index.js.map +1 -0
- package/dist/components/Icon/Icon.d.cts +19 -0
- package/dist/components/Icon/Icon.d.ts +19 -0
- package/dist/components/Icon/index.cjs +2 -0
- package/dist/components/Icon/index.cjs.map +1 -0
- package/dist/components/Icon/index.d.cts +4 -0
- package/dist/components/Icon/index.d.ts +4 -0
- package/dist/components/Icon/index.js +9 -0
- package/dist/components/Icon/index.js.map +1 -0
- package/dist/components/IconButton/IconButton.d.cts +28 -0
- package/dist/components/IconButton/IconButton.d.ts +28 -0
- package/dist/components/IconButton/index.cjs +2 -0
- package/dist/components/IconButton/index.cjs.map +1 -0
- package/dist/components/IconButton/index.d.cts +2 -0
- package/dist/components/IconButton/index.d.ts +2 -0
- package/dist/components/IconButton/index.js +6 -0
- package/dist/components/IconButton/index.js.map +1 -0
- package/dist/components/List/List.d.cts +20 -0
- package/dist/components/List/List.d.ts +20 -0
- package/dist/components/List/ListItem.d.cts +33 -0
- package/dist/components/List/ListItem.d.ts +33 -0
- package/dist/components/List/index.cjs +2 -0
- package/dist/components/List/index.cjs.map +1 -0
- package/dist/components/List/index.d.cts +4 -0
- package/dist/components/List/index.d.ts +4 -0
- package/dist/components/List/index.js +8 -0
- package/dist/components/List/index.js.map +1 -0
- package/dist/components/List/listContext.d.cts +5 -0
- package/dist/components/List/listContext.d.ts +5 -0
- package/dist/components/Loader/Loader.d.cts +15 -0
- package/dist/components/Loader/Loader.d.ts +15 -0
- package/dist/components/Loader/index.cjs +2 -0
- package/dist/components/Loader/index.cjs.map +1 -0
- package/dist/components/Loader/index.d.cts +2 -0
- package/dist/components/Loader/index.d.ts +2 -0
- package/dist/components/Loader/index.js +6 -0
- package/dist/components/Loader/index.js.map +1 -0
- package/dist/components/Modal/Modal.d.cts +63 -0
- package/dist/components/Modal/Modal.d.ts +63 -0
- package/dist/components/Modal/index.cjs +2 -0
- package/dist/components/Modal/index.cjs.map +1 -0
- package/dist/components/Modal/index.d.cts +2 -0
- package/dist/components/Modal/index.d.ts +2 -0
- package/dist/components/Modal/index.js +6 -0
- package/dist/components/Modal/index.js.map +1 -0
- package/dist/components/MultiSelect/MultiSelect.d.cts +72 -0
- package/dist/components/MultiSelect/MultiSelect.d.ts +72 -0
- package/dist/components/MultiSelect/index.cjs +2 -0
- package/dist/components/MultiSelect/index.cjs.map +1 -0
- package/dist/components/MultiSelect/index.d.cts +2 -0
- package/dist/components/MultiSelect/index.d.ts +2 -0
- package/dist/components/MultiSelect/index.js +6 -0
- package/dist/components/MultiSelect/index.js.map +1 -0
- package/dist/components/MultilineTextField/MultilineTextField.d.cts +28 -0
- package/dist/components/MultilineTextField/MultilineTextField.d.ts +28 -0
- package/dist/components/MultilineTextField/index.cjs +2 -0
- package/dist/components/MultilineTextField/index.cjs.map +1 -0
- package/dist/components/MultilineTextField/index.d.cts +2 -0
- package/dist/components/MultilineTextField/index.d.ts +2 -0
- package/dist/components/MultilineTextField/index.js +6 -0
- package/dist/components/MultilineTextField/index.js.map +1 -0
- package/dist/components/NumberField/NumberField.d.cts +45 -0
- package/dist/components/NumberField/NumberField.d.ts +45 -0
- package/dist/components/NumberField/index.cjs +2 -0
- package/dist/components/NumberField/index.cjs.map +1 -0
- package/dist/components/NumberField/index.d.cts +2 -0
- package/dist/components/NumberField/index.d.ts +2 -0
- package/dist/components/NumberField/index.js +6 -0
- package/dist/components/NumberField/index.js.map +1 -0
- package/dist/components/OtpField/OtpField.d.cts +55 -0
- package/dist/components/OtpField/OtpField.d.ts +55 -0
- package/dist/components/OtpField/index.cjs +2 -0
- package/dist/components/OtpField/index.cjs.map +1 -0
- package/dist/components/OtpField/index.d.cts +2 -0
- package/dist/components/OtpField/index.d.ts +2 -0
- package/dist/components/OtpField/index.js +6 -0
- package/dist/components/OtpField/index.js.map +1 -0
- package/dist/components/Overlay/Overlay.d.cts +29 -0
- package/dist/components/Overlay/Overlay.d.ts +29 -0
- package/dist/components/PageLayout/PageLayout.d.cts +13 -0
- package/dist/components/PageLayout/PageLayout.d.ts +13 -0
- package/dist/components/PageLayout/index.cjs +2 -0
- package/dist/components/PageLayout/index.cjs.map +1 -0
- package/dist/components/PageLayout/index.d.cts +2 -0
- package/dist/components/PageLayout/index.d.ts +2 -0
- package/dist/components/PageLayout/index.js +6 -0
- package/dist/components/PageLayout/index.js.map +1 -0
- package/dist/components/Pagination/Pagination.d.cts +44 -0
- package/dist/components/Pagination/Pagination.d.ts +44 -0
- package/dist/components/Pagination/index.cjs +2 -0
- package/dist/components/Pagination/index.cjs.map +1 -0
- package/dist/components/Pagination/index.d.cts +2 -0
- package/dist/components/Pagination/index.d.ts +2 -0
- package/dist/components/Pagination/index.js +6 -0
- package/dist/components/Pagination/index.js.map +1 -0
- package/dist/components/Pagination/paginationRange.d.cts +21 -0
- package/dist/components/Pagination/paginationRange.d.ts +21 -0
- package/dist/components/Popover/Popover.d.cts +43 -0
- package/dist/components/Popover/Popover.d.ts +43 -0
- package/dist/components/Popover/index.cjs +2 -0
- package/dist/components/Popover/index.cjs.map +1 -0
- package/dist/components/Popover/index.d.cts +2 -0
- package/dist/components/Popover/index.d.ts +2 -0
- package/dist/components/Popover/index.js +6 -0
- package/dist/components/Popover/index.js.map +1 -0
- package/dist/components/Radio/Radio.d.cts +27 -0
- package/dist/components/Radio/Radio.d.ts +27 -0
- package/dist/components/Radio/RadioGroup.d.cts +47 -0
- package/dist/components/Radio/RadioGroup.d.ts +47 -0
- package/dist/components/Radio/index.cjs +2 -0
- package/dist/components/Radio/index.cjs.map +1 -0
- package/dist/components/Radio/index.d.cts +4 -0
- package/dist/components/Radio/index.d.ts +4 -0
- package/dist/components/Radio/index.js +7 -0
- package/dist/components/Radio/index.js.map +1 -0
- package/dist/components/Radio/radioContext.d.cts +18 -0
- package/dist/components/Radio/radioContext.d.ts +18 -0
- package/dist/components/RemoveDialog/RemoveDialog.d.cts +35 -0
- package/dist/components/RemoveDialog/RemoveDialog.d.ts +35 -0
- package/dist/components/RemoveDialog/index.cjs +2 -0
- package/dist/components/RemoveDialog/index.cjs.map +1 -0
- package/dist/components/RemoveDialog/index.d.cts +2 -0
- package/dist/components/RemoveDialog/index.d.ts +2 -0
- package/dist/components/RemoveDialog/index.js +6 -0
- package/dist/components/RemoveDialog/index.js.map +1 -0
- package/dist/components/RichTextEditor/RichTextEditor.d.cts +48 -0
- package/dist/components/RichTextEditor/RichTextEditor.d.ts +48 -0
- package/dist/components/RichTextEditor/Toolbar.d.cts +10 -0
- package/dist/components/RichTextEditor/Toolbar.d.ts +10 -0
- package/dist/components/RichTextEditor/index.cjs +2 -0
- package/dist/components/RichTextEditor/index.cjs.map +1 -0
- package/dist/components/RichTextEditor/index.d.cts +2 -0
- package/dist/components/RichTextEditor/index.d.ts +2 -0
- package/dist/components/RichTextEditor/index.js +6 -0
- package/dist/components/RichTextEditor/index.js.map +1 -0
- package/dist/components/RichTextEditor/nodes/ImageNode.d.cts +33 -0
- package/dist/components/RichTextEditor/nodes/ImageNode.d.ts +33 -0
- package/dist/components/RichTextEditor/nodes/VideoNode.d.cts +36 -0
- package/dist/components/RichTextEditor/nodes/VideoNode.d.ts +36 -0
- package/dist/components/RichTextEditor/urlSafety.d.cts +16 -0
- package/dist/components/RichTextEditor/urlSafety.d.ts +16 -0
- package/dist/components/RootLayout/RootLayout.d.cts +46 -0
- package/dist/components/RootLayout/RootLayout.d.ts +46 -0
- package/dist/components/RootLayout/SettingsDrawer.d.cts +23 -0
- package/dist/components/RootLayout/SettingsDrawer.d.ts +23 -0
- package/dist/components/RootLayout/index.cjs +2 -0
- package/dist/components/RootLayout/index.cjs.map +1 -0
- package/dist/components/RootLayout/index.d.cts +2 -0
- package/dist/components/RootLayout/index.d.ts +2 -0
- package/dist/components/RootLayout/index.js +6 -0
- package/dist/components/RootLayout/index.js.map +1 -0
- package/dist/components/Select/Select.d.cts +85 -0
- package/dist/components/Select/Select.d.ts +85 -0
- package/dist/components/Select/index.cjs +2 -0
- package/dist/components/Select/index.cjs.map +1 -0
- package/dist/components/Select/index.d.cts +2 -0
- package/dist/components/Select/index.d.ts +2 -0
- package/dist/components/Select/index.js +6 -0
- package/dist/components/Select/index.js.map +1 -0
- package/dist/components/Sidebar/Sidebar.d.cts +90 -0
- package/dist/components/Sidebar/Sidebar.d.ts +90 -0
- package/dist/components/Sidebar/index.cjs +2 -0
- package/dist/components/Sidebar/index.cjs.map +1 -0
- package/dist/components/Sidebar/index.d.cts +1 -0
- package/dist/components/Sidebar/index.d.ts +1 -0
- package/dist/components/Sidebar/index.js +7 -0
- package/dist/components/Sidebar/index.js.map +1 -0
- package/dist/components/Slider/Slider.d.cts +58 -0
- package/dist/components/Slider/Slider.d.ts +58 -0
- package/dist/components/Slider/index.cjs +2 -0
- package/dist/components/Slider/index.cjs.map +1 -0
- package/dist/components/Slider/index.d.cts +2 -0
- package/dist/components/Slider/index.d.ts +2 -0
- package/dist/components/Slider/index.js +6 -0
- package/dist/components/Slider/index.js.map +1 -0
- package/dist/components/SpeedDial/SpeedDial.d.cts +56 -0
- package/dist/components/SpeedDial/SpeedDial.d.ts +56 -0
- package/dist/components/SpeedDial/SpeedDialAction.d.cts +18 -0
- package/dist/components/SpeedDial/SpeedDialAction.d.ts +18 -0
- package/dist/components/SpeedDial/index.cjs +2 -0
- package/dist/components/SpeedDial/index.cjs.map +1 -0
- package/dist/components/SpeedDial/index.d.cts +4 -0
- package/dist/components/SpeedDial/index.d.ts +4 -0
- package/dist/components/SpeedDial/index.js +7 -0
- package/dist/components/SpeedDial/index.js.map +1 -0
- package/dist/components/SpeedDial/speedDialContext.d.cts +19 -0
- package/dist/components/SpeedDial/speedDialContext.d.ts +19 -0
- package/dist/components/Stepper/Stepper.d.cts +94 -0
- package/dist/components/Stepper/Stepper.d.ts +94 -0
- package/dist/components/Stepper/index.cjs +2 -0
- package/dist/components/Stepper/index.cjs.map +1 -0
- package/dist/components/Stepper/index.d.cts +2 -0
- package/dist/components/Stepper/index.d.ts +2 -0
- package/dist/components/Stepper/index.js +6 -0
- package/dist/components/Stepper/index.js.map +1 -0
- package/dist/components/SwatchPicker/SwatchPicker.d.cts +43 -0
- package/dist/components/SwatchPicker/SwatchPicker.d.ts +43 -0
- package/dist/components/SwatchPicker/index.cjs +2 -0
- package/dist/components/SwatchPicker/index.cjs.map +1 -0
- package/dist/components/SwatchPicker/index.d.cts +2 -0
- package/dist/components/SwatchPicker/index.d.ts +2 -0
- package/dist/components/SwatchPicker/index.js +6 -0
- package/dist/components/SwatchPicker/index.js.map +1 -0
- package/dist/components/Switch/Switch.d.cts +29 -0
- package/dist/components/Switch/Switch.d.ts +29 -0
- package/dist/components/Switch/index.cjs +2 -0
- package/dist/components/Switch/index.cjs.map +1 -0
- package/dist/components/Switch/index.d.cts +2 -0
- package/dist/components/Switch/index.d.ts +2 -0
- package/dist/components/Switch/index.js +6 -0
- package/dist/components/Switch/index.js.map +1 -0
- package/dist/components/Table/Table.d.cts +248 -0
- package/dist/components/Table/Table.d.ts +248 -0
- package/dist/components/Table/TableFilters.d.cts +16 -0
- package/dist/components/Table/TableFilters.d.ts +16 -0
- package/dist/components/Table/index.cjs +2 -0
- package/dist/components/Table/index.cjs.map +1 -0
- package/dist/components/Table/index.d.cts +3 -0
- package/dist/components/Table/index.d.ts +3 -0
- package/dist/components/Table/index.js +6 -0
- package/dist/components/Table/index.js.map +1 -0
- package/dist/components/Table/tableFilter.d.cts +65 -0
- package/dist/components/Table/tableFilter.d.ts +65 -0
- package/dist/components/Tabs/Tabs.d.cts +80 -0
- package/dist/components/Tabs/Tabs.d.ts +80 -0
- package/dist/components/Tabs/index.cjs +2 -0
- package/dist/components/Tabs/index.cjs.map +1 -0
- package/dist/components/Tabs/index.d.cts +2 -0
- package/dist/components/Tabs/index.d.ts +2 -0
- package/dist/components/Tabs/index.js +6 -0
- package/dist/components/Tabs/index.js.map +1 -0
- package/dist/components/TagsField/TagsField.d.cts +47 -0
- package/dist/components/TagsField/TagsField.d.ts +47 -0
- package/dist/components/TagsField/index.cjs +2 -0
- package/dist/components/TagsField/index.cjs.map +1 -0
- package/dist/components/TagsField/index.d.cts +2 -0
- package/dist/components/TagsField/index.d.ts +2 -0
- package/dist/components/TagsField/index.js +6 -0
- package/dist/components/TagsField/index.js.map +1 -0
- package/dist/components/TextField/TextField.d.cts +62 -0
- package/dist/components/TextField/TextField.d.ts +62 -0
- package/dist/components/TextField/index.cjs +2 -0
- package/dist/components/TextField/index.cjs.map +1 -0
- package/dist/components/TextField/index.d.cts +2 -0
- package/dist/components/TextField/index.d.ts +2 -0
- package/dist/components/TextField/index.js +6 -0
- package/dist/components/TextField/index.js.map +1 -0
- package/dist/components/ThemeToggle/ThemeToggle.d.cts +9 -0
- package/dist/components/ThemeToggle/ThemeToggle.d.ts +9 -0
- package/dist/components/ThemeToggle/index.cjs +2 -0
- package/dist/components/ThemeToggle/index.cjs.map +1 -0
- package/dist/components/ThemeToggle/index.d.cts +2 -0
- package/dist/components/ThemeToggle/index.d.ts +2 -0
- package/dist/components/ThemeToggle/index.js +6 -0
- package/dist/components/ThemeToggle/index.js.map +1 -0
- package/dist/components/TimePicker/TimePicker.d.cts +68 -0
- package/dist/components/TimePicker/TimePicker.d.ts +68 -0
- package/dist/components/TimePicker/index.cjs +2 -0
- package/dist/components/TimePicker/index.cjs.map +1 -0
- package/dist/components/TimePicker/index.d.cts +2 -0
- package/dist/components/TimePicker/index.d.ts +2 -0
- package/dist/components/TimePicker/index.js +6 -0
- package/dist/components/TimePicker/index.js.map +1 -0
- package/dist/components/Timeline/Timeline.d.cts +37 -0
- package/dist/components/Timeline/Timeline.d.ts +37 -0
- package/dist/components/Timeline/TimelineItem.d.cts +26 -0
- package/dist/components/Timeline/TimelineItem.d.ts +26 -0
- package/dist/components/Timeline/index.cjs +2 -0
- package/dist/components/Timeline/index.cjs.map +1 -0
- package/dist/components/Timeline/index.d.cts +4 -0
- package/dist/components/Timeline/index.d.ts +4 -0
- package/dist/components/Timeline/index.js +7 -0
- package/dist/components/Timeline/index.js.map +1 -0
- package/dist/components/Timeline/timelineContext.d.cts +10 -0
- package/dist/components/Timeline/timelineContext.d.ts +10 -0
- package/dist/components/Toast/ToastItem.d.cts +12 -0
- package/dist/components/Toast/ToastItem.d.ts +12 -0
- package/dist/components/Toast/Toaster.d.cts +18 -0
- package/dist/components/Toast/Toaster.d.ts +18 -0
- package/dist/components/Toast/index.cjs +2 -0
- package/dist/components/Toast/index.cjs.map +1 -0
- package/dist/components/Toast/index.d.cts +4 -0
- package/dist/components/Toast/index.d.ts +4 -0
- package/dist/components/Toast/index.js +8 -0
- package/dist/components/Toast/index.js.map +1 -0
- package/dist/components/Toast/toastStore.d.cts +45 -0
- package/dist/components/Toast/toastStore.d.ts +45 -0
- package/dist/components/ToggleButton/ToggleButton.d.cts +26 -0
- package/dist/components/ToggleButton/ToggleButton.d.ts +26 -0
- package/dist/components/ToggleButton/ToggleButtonGroup.d.cts +52 -0
- package/dist/components/ToggleButton/ToggleButtonGroup.d.ts +52 -0
- package/dist/components/ToggleButton/index.cjs +2 -0
- package/dist/components/ToggleButton/index.cjs.map +1 -0
- package/dist/components/ToggleButton/index.d.cts +4 -0
- package/dist/components/ToggleButton/index.d.ts +4 -0
- package/dist/components/ToggleButton/index.js +7 -0
- package/dist/components/ToggleButton/index.js.map +1 -0
- package/dist/components/ToggleButton/toggleButtonGroupContext.d.cts +15 -0
- package/dist/components/ToggleButton/toggleButtonGroupContext.d.ts +15 -0
- package/dist/components/Tooltip/Tooltip.d.cts +21 -0
- package/dist/components/Tooltip/Tooltip.d.ts +21 -0
- package/dist/components/Tooltip/index.cjs +2 -0
- package/dist/components/Tooltip/index.cjs.map +1 -0
- package/dist/components/Tooltip/index.d.cts +2 -0
- package/dist/components/Tooltip/index.d.ts +2 -0
- package/dist/components/Tooltip/index.js +6 -0
- package/dist/components/Tooltip/index.js.map +1 -0
- package/dist/components/TranslatedFields/TranslatedFields.d.cts +56 -0
- package/dist/components/TranslatedFields/TranslatedFields.d.ts +56 -0
- package/dist/components/TranslatedFields/index.cjs +2 -0
- package/dist/components/TranslatedFields/index.cjs.map +1 -0
- package/dist/components/TranslatedFields/index.d.cts +2 -0
- package/dist/components/TranslatedFields/index.d.ts +2 -0
- package/dist/components/TranslatedFields/index.js +6 -0
- package/dist/components/TranslatedFields/index.js.map +1 -0
- package/dist/components/Typography/Typography.d.cts +30 -0
- package/dist/components/Typography/Typography.d.ts +30 -0
- package/dist/components/Typography/index.cjs +2 -0
- package/dist/components/Typography/index.cjs.map +1 -0
- package/dist/components/Typography/index.d.cts +2 -0
- package/dist/components/Typography/index.d.ts +2 -0
- package/dist/components/Typography/index.js +6 -0
- package/dist/components/Typography/index.js.map +1 -0
- package/dist/components/UserCard/UserCard.d.cts +33 -0
- package/dist/components/UserCard/UserCard.d.ts +33 -0
- package/dist/components/UserCard/index.cjs +2 -0
- package/dist/components/UserCard/index.cjs.map +1 -0
- package/dist/components/UserCard/index.d.cts +2 -0
- package/dist/components/UserCard/index.d.ts +2 -0
- package/dist/components/UserCard/index.js +6 -0
- package/dist/components/UserCard/index.js.map +1 -0
- package/dist/components/index.d.cts +57 -0
- package/dist/components/index.d.ts +57 -0
- package/dist/entries/components.cjs +2 -0
- package/dist/entries/components.cjs.map +1 -0
- package/dist/entries/components.d.cts +3 -0
- package/dist/entries/components.d.ts +3 -0
- package/dist/entries/components.js +140 -0
- package/dist/entries/components.js.map +1 -0
- package/dist/entries/helpers.cjs +2 -0
- package/dist/entries/helpers.cjs.map +1 -0
- package/dist/entries/helpers.d.cts +4 -0
- package/dist/entries/helpers.d.ts +4 -0
- package/dist/entries/helpers.js +17 -0
- package/dist/entries/helpers.js.map +1 -0
- package/dist/entries/hooks.cjs +2 -0
- package/dist/entries/hooks.cjs.map +1 -0
- package/dist/entries/hooks.d.cts +7 -0
- package/dist/entries/hooks.d.ts +7 -0
- package/dist/entries/hooks.js +12 -0
- package/dist/entries/hooks.js.map +1 -0
- package/dist/entries/i18n.cjs +2 -0
- package/dist/entries/i18n.cjs.map +1 -0
- package/dist/entries/i18n.d.cts +3 -0
- package/dist/entries/i18n.d.ts +3 -0
- package/dist/entries/i18n.js +11 -0
- package/dist/entries/i18n.js.map +1 -0
- package/dist/entries/icons.cjs +2 -0
- package/dist/entries/icons.cjs.map +1 -0
- package/dist/entries/icons.d.cts +2 -0
- package/dist/entries/icons.d.ts +2 -0
- package/dist/entries/icons.js +9 -0
- package/dist/entries/icons.js.map +1 -0
- package/dist/entries/theme.cjs +2 -0
- package/dist/entries/theme.cjs.map +1 -0
- package/dist/entries/theme.d.cts +2 -0
- package/dist/entries/theme.d.ts +2 -0
- package/dist/entries/theme.js +18 -0
- package/dist/entries/theme.js.map +1 -0
- package/dist/form/Form.d.cts +14 -0
- package/dist/form/Form.d.ts +14 -0
- package/dist/form/formContext.d.cts +8 -0
- package/dist/form/formContext.d.ts +8 -0
- package/dist/form/index.d.cts +5 -0
- package/dist/form/index.d.ts +5 -0
- package/dist/form/useForm.d.cts +81 -0
- package/dist/form/useForm.d.ts +81 -0
- package/dist/formContext-B7ln1Miy.js +10 -0
- package/dist/formContext-B7ln1Miy.js.map +1 -0
- package/dist/formContext-bTWrqdEV.cjs +2 -0
- package/dist/formContext-bTWrqdEV.cjs.map +1 -0
- package/dist/helpers/access.d.cts +11 -0
- package/dist/helpers/access.d.ts +11 -0
- package/dist/helpers/table.d.cts +41 -0
- package/dist/helpers/table.d.ts +41 -0
- package/dist/helpers/translations.d.cts +63 -0
- package/dist/helpers/translations.d.ts +63 -0
- package/dist/hooks/index.d.cts +4 -0
- package/dist/hooks/index.d.ts +4 -0
- package/dist/hooks/useDisclosure.d.cts +7 -0
- package/dist/hooks/useDisclosure.d.ts +7 -0
- package/dist/hooks/useFloatingPanel.d.cts +45 -0
- package/dist/hooks/useFloatingPanel.d.ts +45 -0
- package/dist/hooks/useLockBodyScroll.d.cts +7 -0
- package/dist/hooks/useLockBodyScroll.d.ts +7 -0
- package/dist/hooks/useMediaQuery.d.cts +13 -0
- package/dist/hooks/useMediaQuery.d.ts +13 -0
- package/dist/i18n/locales/de.d.cts +5 -0
- package/dist/i18n/locales/de.d.ts +5 -0
- package/dist/i18n/locales/en.d.cts +9 -0
- package/dist/i18n/locales/en.d.ts +9 -0
- package/dist/i18n/locales/es.d.cts +5 -0
- package/dist/i18n/locales/es.d.ts +5 -0
- package/dist/i18n/locales/fr.d.cts +5 -0
- package/dist/i18n/locales/fr.d.ts +5 -0
- package/dist/i18n/locales/it.d.cts +5 -0
- package/dist/i18n/locales/it.d.ts +5 -0
- package/dist/i18n/locales/ka.d.cts +8 -0
- package/dist/i18n/locales/ka.d.ts +8 -0
- package/dist/i18n/locales/ru.d.cts +5 -0
- package/dist/i18n/locales/ru.d.ts +5 -0
- package/dist/i18n/messages.d.cts +241 -0
- package/dist/i18n/messages.d.ts +241 -0
- package/dist/icons/icons.d.cts +2 -0
- package/dist/icons/icons.d.ts +2 -0
- package/dist/icons/names.d.cts +3 -0
- package/dist/icons/names.d.ts +3 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.css +203 -0
- package/dist/index.d.cts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +185 -0
- package/dist/index.js.map +1 -0
- package/dist/messages-C-zecFBE.js +1363 -0
- package/dist/messages-C-zecFBE.js.map +1 -0
- package/dist/messages-Cy-qK5xU.cjs +36 -0
- package/dist/messages-Cy-qK5xU.cjs.map +1 -0
- package/dist/names-C2Yj1p3u.cjs +2 -0
- package/dist/names-C2Yj1p3u.cjs.map +1 -0
- package/dist/names-D8ABK2Wk.js +1205 -0
- package/dist/names-D8ABK2Wk.js.map +1 -0
- package/dist/reset.css +78 -0
- package/dist/table-CZRQGNdk.cjs +2 -0
- package/dist/table-CZRQGNdk.cjs.map +1 -0
- package/dist/table-DF3zTrC3.js +49 -0
- package/dist/table-DF3zTrC3.js.map +1 -0
- package/dist/theme/ConfigProvider.d.cts +362 -0
- package/dist/theme/ConfigProvider.d.ts +362 -0
- package/dist/theme/applyTheme.d.cts +28 -0
- package/dist/theme/applyTheme.d.ts +28 -0
- package/dist/theme/index.d.cts +5 -0
- package/dist/theme/index.d.ts +5 -0
- package/dist/toastStore-B4Tk2Xk7.cjs +2 -0
- package/dist/toastStore-B4Tk2Xk7.cjs.map +1 -0
- package/dist/toastStore-Cx_JOKwS.js +32 -0
- package/dist/toastStore-Cx_JOKwS.js.map +1 -0
- package/dist/translations-CXEeeUDL.cjs +2 -0
- package/dist/translations-CXEeeUDL.cjs.map +1 -0
- package/dist/translations-D15tFHM1.js +74 -0
- package/dist/translations-D15tFHM1.js.map +1 -0
- package/dist/useForm-B_5wDIER.js +126 -0
- package/dist/useForm-B_5wDIER.js.map +1 -0
- package/dist/useForm-C7erBHt0.cjs +2 -0
- package/dist/useForm-C7erBHt0.cjs.map +1 -0
- package/dist/useLockBodyScroll-CIXHZo-Q.cjs +2 -0
- package/dist/useLockBodyScroll-CIXHZo-Q.cjs.map +1 -0
- package/dist/useLockBodyScroll-DwBILLPK.js +35 -0
- package/dist/useLockBodyScroll-DwBILLPK.js.map +1 -0
- package/dist/useMediaQuery-BCsNfMA1.cjs +2 -0
- package/dist/useMediaQuery-BCsNfMA1.cjs.map +1 -0
- package/dist/useMediaQuery-_1EcFoC5.js +17 -0
- package/dist/useMediaQuery-_1EcFoC5.js.map +1 -0
- package/package.json +244 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { jsx as R } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as V, useState as z, useRef as m, useEffect as j } from "react";
|
|
3
|
+
import { u as D } from "./formContext-B7ln1Miy.js";
|
|
4
|
+
import { b as w } from "./translations-D15tFHM1.js";
|
|
5
|
+
import { T as J } from "./Tabs--DDM-zKe.js";
|
|
6
|
+
import { h as M, n as P } from "./ConfigProvider-2c94kUOk.js";
|
|
7
|
+
const Q = "_fields_aawaf_4", U = {
|
|
8
|
+
fields: Q
|
|
9
|
+
}, se = V(
|
|
10
|
+
function({
|
|
11
|
+
children: A,
|
|
12
|
+
locales: F,
|
|
13
|
+
namespace: K,
|
|
14
|
+
value: b,
|
|
15
|
+
defaultValue: N,
|
|
16
|
+
onChange: f,
|
|
17
|
+
icon: O = "Global",
|
|
18
|
+
variant: W,
|
|
19
|
+
size: k,
|
|
20
|
+
"aria-label": x = "Translations",
|
|
21
|
+
className: _,
|
|
22
|
+
style: q
|
|
23
|
+
}, a) {
|
|
24
|
+
var S;
|
|
25
|
+
const E = M(), c = F ?? E, I = P(), p = K ?? I, t = D(), y = b !== void 0, [L, B] = z(N), i = (y ? b : L) ?? ((S = c[0]) == null ? void 0 : S.code) ?? "", h = (e) => {
|
|
26
|
+
y || B(e), f == null || f(e);
|
|
27
|
+
}, l = (e) => w(e, "", p), C = (e) => !!t && Object.keys(t.errors).some(
|
|
28
|
+
(s) => s.startsWith(l(e)) && (t.isSubmitted || t.touched[s] === !0)
|
|
29
|
+
), T = m(null), G = (e) => {
|
|
30
|
+
T.current = e, typeof a == "function" ? a(e) : a && (a.current = e);
|
|
31
|
+
}, v = m(0), u = m(null);
|
|
32
|
+
if (j(() => {
|
|
33
|
+
const e = (t == null ? void 0 : t.submitCount) ?? 0;
|
|
34
|
+
if (!t || e === v.current) return;
|
|
35
|
+
v.current = e;
|
|
36
|
+
const s = Object.keys(t.errors);
|
|
37
|
+
if (s.length === 0) return;
|
|
38
|
+
const r = (n) => c.some((d) => n.startsWith(l(d.code)));
|
|
39
|
+
if (!s.every(r) || s.some((n) => n.startsWith(l(i)))) return;
|
|
40
|
+
const o = c.find((n) => s.some((d) => d.startsWith(l(n.code))));
|
|
41
|
+
o && o.code !== i && (u.current = o.code, h(o.code));
|
|
42
|
+
}, [t == null ? void 0 : t.submitCount]), j(() => {
|
|
43
|
+
var o;
|
|
44
|
+
if (u.current == null || u.current !== i) return;
|
|
45
|
+
u.current = null;
|
|
46
|
+
const e = T.current;
|
|
47
|
+
if (!e || !t) return;
|
|
48
|
+
const s = new Set(Object.keys(t.errors)), r = Array.from(e.querySelectorAll("[name]")).find(
|
|
49
|
+
(n) => s.has(n.getAttribute("name") ?? "")
|
|
50
|
+
);
|
|
51
|
+
(o = r == null ? void 0 : r.scrollIntoView) == null || o.call(r, { behavior: "smooth", block: "center" }), r == null || r.focus({ preventScroll: !0 });
|
|
52
|
+
}, [i]), c.length === 0) return null;
|
|
53
|
+
const H = c.map((e) => ({
|
|
54
|
+
value: e.code,
|
|
55
|
+
label: e.label ?? e.code,
|
|
56
|
+
icon: O,
|
|
57
|
+
// an invalid locale shows the Tabs error dot (a small red dot — no full-tab tint)
|
|
58
|
+
error: C(e.code),
|
|
59
|
+
// keyed by locale so switching tabs remounts the fields (no value/state bleed between locales)
|
|
60
|
+
content: /* @__PURE__ */ R("div", { className: U.fields, children: A((s) => w(e.code, s, p), e.code) }, e.code)
|
|
61
|
+
}));
|
|
62
|
+
return /* @__PURE__ */ R(
|
|
63
|
+
J,
|
|
64
|
+
{
|
|
65
|
+
ref: G,
|
|
66
|
+
className: _,
|
|
67
|
+
style: q,
|
|
68
|
+
items: H,
|
|
69
|
+
value: i,
|
|
70
|
+
onChange: h,
|
|
71
|
+
variant: W,
|
|
72
|
+
size: k,
|
|
73
|
+
queryKey: null,
|
|
74
|
+
"aria-label": x
|
|
75
|
+
}
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
);
|
|
79
|
+
export {
|
|
80
|
+
se as T
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=TranslatedFields-CI0F9bHw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TranslatedFields-CI0F9bHw.js","sources":["../src/components/TranslatedFields/TranslatedFields.tsx"],"sourcesContent":["import { forwardRef, useEffect, useRef, useState, type CSSProperties, type ReactNode } from 'react'\nimport { useFormContext } from '../../form/formContext'\nimport { useLocales, useTranslationsNamespace, type LocaleConfig } from '../../theme'\nimport { buildTranslationName } from '../../helpers/translations'\nimport type { IconName } from '../../icons/names'\nimport { Tabs, type TabsSize, type TabsVariant } from '../Tabs'\nimport styles from './TranslatedFields.module.css'\n\n/** Builds a field's namespaced form name for the active locale (`(field) => name`). */\nexport type TranslatedFieldName = (field: string) => string\n\nexport interface TranslatedFieldsProps {\n /**\n * Render the fields for one locale. `name(field)` returns the namespaced form name to put on each\n * control (e.g. `translations[en-US].title`); `locale` is the active code. The same render runs per\n * locale, so the fields are identical bar their names.\n */\n children: (name: TranslatedFieldName, locale: string) => ReactNode\n /**\n * Locales (one tab each). Defaults to the app's configured locales\n * (`<ConfigProvider config={{ locales }}>`).\n */\n locales?: LocaleConfig[]\n /**\n * Top-level namespace for the field names (`<namespace>[<locale>].<field>`) and the nested object.\n * Falls back to `<ConfigProvider config={{ keys: { translationsNamespace } }}>`, then `'translations'`.\n * Pass to override per-instance (e.g. `'languages'`).\n */\n namespace?: string\n /** Controlled active locale code. */\n value?: string\n /** Initial active locale code (uncontrolled). Defaults to the first locale. */\n defaultValue?: string\n /** Fires with the next active locale code. */\n onChange?: (locale: string) => void\n /** Icon shown on each locale tab. Defaults to `'Global'`. */\n icon?: IconName\n /** Tab strip variant. Defaults to `Tabs`' default (`underline`). */\n variant?: TabsVariant\n /** Tab + field density. Defaults to `Tabs`' default (`md`). */\n size?: TabsSize\n /** Accessible label for the tablist. Defaults to `'Translations'`. */\n 'aria-label'?: string\n className?: string\n style?: CSSProperties\n}\n\n/**\n * A tabbed group of **per-locale** form fields — one tab per content locale, each rendering the same\n * fields with locale-namespaced `name`s (`translations[<locale>].<field>` by default), so a `<Form>`\n * submits e.g. `translations[en-US].title` / `translations[ka-GE].title`. You supply the fields once\n * via a render function that receives a `name(field)` builder for the active locale; bring any field\n * component (`TextField`, `MultilineTextField`, a rich-text editor, …). Locales come from\n * `<ConfigProvider config={{ locales }}>` (override with the `locales` prop). The top-level word is the\n * `namespace` (default `'translations'`, e.g. `'languages'`). While inside a `<Form>`, an incomplete\n * locale's tab shows a **dot**, and on submit the strip auto-advances to the first locale with errors\n * and focuses its field. Build the schema / defaults with `buildTranslations`; the form values stay\n * **flat** (`translations[en-US].title` — the `FormData` shape) — convert to/from the **nested** JSON\n * shape (`{ translations: { 'en-US': { title } } }`) with `nestTranslations` / `flattenTranslations`.\n * Requires the `Tabs` component.\n */\nexport const TranslatedFields = forwardRef<HTMLDivElement, TranslatedFieldsProps>(\n function TranslatedFields(\n {\n children,\n locales: localesProp,\n namespace: namespaceProp,\n value,\n defaultValue,\n onChange,\n icon = 'Global',\n variant,\n size,\n 'aria-label': ariaLabel = 'Translations',\n className,\n style,\n },\n ref,\n ) {\n const configLocales = useLocales()\n const locales = localesProp ?? configLocales\n // namespace: the `namespace` prop wins, else the ConfigProvider's (which falls back to the default)\n const configNamespace = useTranslationsNamespace()\n const namespace = namespaceProp ?? configNamespace\n const form = useFormContext()\n\n // active locale — controlled (`value`) or internal; falls back to the first locale\n const isControlled = value !== undefined\n const [internal, setInternal] = useState<string | undefined>(defaultValue)\n const active = (isControlled ? value : internal) ?? locales[0]?.code ?? ''\n const setActive = (next: string) => {\n if (!isControlled) setInternal(next)\n onChange?.(next)\n }\n\n // the namespaced-name prefix for a locale (e.g. `translations[en-US].`)\n const prefixOf = (code: string) => buildTranslationName(code, '', namespace)\n // a locale's tab is flagged when any of its fields is invalid AND the error is shown (submitted/touched)\n const localeHasError = (code: string): boolean =>\n !!form &&\n Object.keys(form.errors).some(\n (key) => key.startsWith(prefixOf(code)) && (form.isSubmitted || form.touched[key] === true),\n )\n\n // merge the forwarded ref with an internal one (to query the mounted fields for scroll/focus)\n const rootRef = useRef<HTMLDivElement | null>(null)\n const setRootRef = (node: HTMLDivElement | null) => {\n rootRef.current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) (ref as { current: HTMLDivElement | null }).current = node\n }\n\n // on each submit, if the active tab is complete but another locale has the only remaining errors,\n // switch to it and focus its first invalid field (the form's own scroll can't reach an unmounted tab)\n const lastSubmit = useRef(0)\n const pendingFocus = useRef<string | null>(null)\n useEffect(() => {\n const count = form?.submitCount ?? 0\n if (!form || count === lastSubmit.current) return\n lastSubmit.current = count\n const errorKeys = Object.keys(form.errors)\n if (errorKeys.length === 0) return\n const isTranslationKey = (k: string) => locales.some((l) => k.startsWith(prefixOf(l.code)))\n // a non-translation field is still invalid → the form's scroll-to-error handles it (above the tabs)\n if (!errorKeys.every(isTranslationKey)) return\n // active locale already shows its (mounted) errors → nothing to switch to\n if (errorKeys.some((k) => k.startsWith(prefixOf(active)))) return\n const firstBad = locales.find((l) => errorKeys.some((k) => k.startsWith(prefixOf(l.code))))\n if (firstBad && firstBad.code !== active) {\n pendingFocus.current = firstBad.code\n setActive(firstBad.code)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [form?.submitCount])\n\n // once the auto-switched tab has mounted, focus its first invalid field\n useEffect(() => {\n if (pendingFocus.current == null || pendingFocus.current !== active) return\n pendingFocus.current = null\n const root = rootRef.current\n if (!root || !form) return\n const errorKeys = new Set(Object.keys(form.errors))\n const target = Array.from(root.querySelectorAll<HTMLElement>('[name]')).find((el) =>\n errorKeys.has(el.getAttribute('name') ?? ''),\n )\n target?.scrollIntoView?.({ behavior: 'smooth', block: 'center' })\n target?.focus({ preventScroll: true })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [active])\n\n if (locales.length === 0) return null\n\n const items = locales.map((loc) => ({\n value: loc.code,\n label: loc.label ?? loc.code,\n icon,\n // an invalid locale shows the Tabs error dot (a small red dot — no full-tab tint)\n error: localeHasError(loc.code),\n // keyed by locale so switching tabs remounts the fields (no value/state bleed between locales)\n content: (\n <div key={loc.code} className={styles.fields}>\n {children((field) => buildTranslationName(loc.code, field, namespace), loc.code)}\n </div>\n ),\n }))\n\n return (\n <Tabs\n ref={setRootRef}\n className={className}\n style={style}\n items={items}\n value={active}\n onChange={setActive}\n variant={variant}\n size={size}\n // locale tabs are internal UI — never sync them to the page URL\n queryKey={null}\n aria-label={ariaLabel}\n />\n )\n },\n)\n"],"names":["TranslatedFields","forwardRef","children","localesProp","namespaceProp","value","defaultValue","onChange","icon","variant","size","ariaLabel","className","style","ref","configLocales","useLocales","locales","configNamespace","useTranslationsNamespace","namespace","form","useFormContext","isControlled","internal","setInternal","useState","active","_a","setActive","next","prefixOf","code","buildTranslationName","localeHasError","key","rootRef","useRef","setRootRef","node","lastSubmit","pendingFocus","useEffect","count","errorKeys","isTranslationKey","k","l","firstBad","root","target","el","items","loc","jsx","styles","field","Tabs"],"mappings":";;;;;;;;GA6DaA,KAAmBC;AAAA,EAC9B,SACE;AAAA,IACE,UAAAC;AAAA,IACA,SAASC;AAAA,IACT,WAAWC;AAAA,IACX,OAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,SAAAC;AAAA,IACA,MAAAC;AAAA,IACA,cAAcC,IAAY;AAAA,IAC1B,WAAAC;AAAA,IACA,OAAAC;AAAA,EAAA,GAEFC,GACA;;AACA,UAAMC,IAAgBC,EAAA,GAChBC,IAAUd,KAAeY,GAEzBG,IAAkBC,EAAA,GAClBC,IAAYhB,KAAiBc,GAC7BG,IAAOC,EAAA,GAGPC,IAAelB,MAAU,QACzB,CAACmB,GAAUC,CAAW,IAAIC,EAA6BpB,CAAY,GACnEqB,KAAUJ,IAAelB,IAAQmB,QAAaI,IAAAX,EAAQ,CAAC,MAAT,gBAAAW,EAAY,SAAQ,IAClEC,IAAY,CAACC,MAAiB;AAClC,MAAKP,KAAcE,EAAYK,CAAI,GACnCvB,KAAA,QAAAA,EAAWuB;AAAA,IACb,GAGMC,IAAW,CAACC,MAAiBC,EAAqBD,GAAM,IAAIZ,CAAS,GAErEc,IAAiB,CAACF,MACtB,CAAC,CAACX,KACF,OAAO,KAAKA,EAAK,MAAM,EAAE;AAAA,MACvB,CAACc,MAAQA,EAAI,WAAWJ,EAASC,CAAI,CAAC,MAAMX,EAAK,eAAeA,EAAK,QAAQc,CAAG,MAAM;AAAA,IAAA,GAIpFC,IAAUC,EAA8B,IAAI,GAC5CC,IAAa,CAACC,MAAgC;AAClD,MAAAH,EAAQ,UAAUG,GACd,OAAOzB,KAAQ,aAAYA,EAAIyB,CAAI,IAC9BzB,MAAMA,EAA2C,UAAUyB;AAAA,IACtE,GAIMC,IAAaH,EAAO,CAAC,GACrBI,IAAeJ,EAAsB,IAAI;AAmC/C,QAlCAK,EAAU,MAAM;AACd,YAAMC,KAAQtB,KAAA,gBAAAA,EAAM,gBAAe;AACnC,UAAI,CAACA,KAAQsB,MAAUH,EAAW,QAAS;AAC3C,MAAAA,EAAW,UAAUG;AACrB,YAAMC,IAAY,OAAO,KAAKvB,EAAK,MAAM;AACzC,UAAIuB,EAAU,WAAW,EAAG;AAC5B,YAAMC,IAAmB,CAACC,MAAc7B,EAAQ,KAAK,CAAC8B,MAAMD,EAAE,WAAWf,EAASgB,EAAE,IAAI,CAAC,CAAC;AAI1F,UAFI,CAACH,EAAU,MAAMC,CAAgB,KAEjCD,EAAU,KAAK,CAACE,MAAMA,EAAE,WAAWf,EAASJ,CAAM,CAAC,CAAC,EAAG;AAC3D,YAAMqB,IAAW/B,EAAQ,KAAK,CAAC8B,MAAMH,EAAU,KAAK,CAACE,MAAMA,EAAE,WAAWf,EAASgB,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1F,MAAIC,KAAYA,EAAS,SAASrB,MAChCc,EAAa,UAAUO,EAAS,MAChCnB,EAAUmB,EAAS,IAAI;AAAA,IAG3B,GAAG,CAAC3B,KAAA,gBAAAA,EAAM,WAAW,CAAC,GAGtBqB,EAAU,MAAM;;AACd,UAAID,EAAa,WAAW,QAAQA,EAAa,YAAYd,EAAQ;AACrE,MAAAc,EAAa,UAAU;AACvB,YAAMQ,IAAOb,EAAQ;AACrB,UAAI,CAACa,KAAQ,CAAC5B,EAAM;AACpB,YAAMuB,IAAY,IAAI,IAAI,OAAO,KAAKvB,EAAK,MAAM,CAAC,GAC5C6B,IAAS,MAAM,KAAKD,EAAK,iBAA8B,QAAQ,CAAC,EAAE;AAAA,QAAK,CAACE,MAC5EP,EAAU,IAAIO,EAAG,aAAa,MAAM,KAAK,EAAE;AAAA,MAAA;AAE7C,OAAAvB,IAAAsB,KAAA,gBAAAA,EAAQ,mBAAR,QAAAtB,EAAA,KAAAsB,GAAyB,EAAE,UAAU,UAAU,OAAO,aACtDA,KAAA,QAAAA,EAAQ,MAAM,EAAE,eAAe,GAAA;AAAA,IAEjC,GAAG,CAACvB,CAAM,CAAC,GAEPV,EAAQ,WAAW,EAAG,QAAO;AAEjC,UAAMmC,IAAQnC,EAAQ,IAAI,CAACoC,OAAS;AAAA,MAClC,OAAOA,EAAI;AAAA,MACX,OAAOA,EAAI,SAASA,EAAI;AAAA,MACxB,MAAA7C;AAAA;AAAA,MAEA,OAAO0B,EAAemB,EAAI,IAAI;AAAA;AAAA,MAE9B,SACE,gBAAAC,EAAC,OAAA,EAAmB,WAAWC,EAAO,QACnC,YAAS,CAACC,MAAUvB,EAAqBoB,EAAI,MAAMG,GAAOpC,CAAS,GAAGiC,EAAI,IAAI,KADvEA,EAAI,IAEd;AAAA,IAAA,EAEF;AAEF,WACE,gBAAAC;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,KAAKnB;AAAA,QACL,WAAA1B;AAAA,QACA,OAAAC;AAAA,QACA,OAAAuC;AAAA,QACA,OAAOzB;AAAA,QACP,UAAUE;AAAA,QACV,SAAApB;AAAA,QACA,MAAAC;AAAA,QAEA,UAAU;AAAA,QACV,cAAYC;AAAA,MAAA;AAAA,IAAA;AAAA,EAGlB;AACF;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const R=require("react/jsx-runtime"),c=require("react"),P=require("./formContext-bTWrqdEV.cjs"),j=require("./translations-CXEeeUDL.cjs"),V=require("./Tabs-BZcMnjdC.cjs"),S=require("./ConfigProvider-ByOFXVyP.cjs"),z="_fields_aawaf_4",D={fields:z},J=c.forwardRef(function({children:x,locales:F,namespace:N,value:b,defaultValue:w,onChange:d,icon:A="Global",variant:K,size:O,"aria-label":W="Translations",className:k,style:C},a){var q;const E=S.useLocales(),i=F??E,_=S.useTranslationsNamespace(),y=N??_,t=P.useFormContext(),T=b!==void 0,[I,L]=c.useState(w),l=(T?b:I)??((q=i[0])==null?void 0:q.code)??"",p=e=>{T||L(e),d==null||d(e)},u=e=>j.buildTranslationName(e,"",y),B=e=>!!t&&Object.keys(t.errors).some(s=>s.startsWith(u(e))&&(t.isSubmitted||t.touched[s]===!0)),v=c.useRef(null),G=e=>{v.current=e,typeof a=="function"?a(e):a&&(a.current=e)},h=c.useRef(0),f=c.useRef(null);if(c.useEffect(()=>{const e=(t==null?void 0:t.submitCount)??0;if(!t||e===h.current)return;h.current=e;const s=Object.keys(t.errors);if(s.length===0)return;const r=o=>i.some(m=>o.startsWith(u(m.code)));if(!s.every(r)||s.some(o=>o.startsWith(u(l))))return;const n=i.find(o=>s.some(m=>m.startsWith(u(o.code))));n&&n.code!==l&&(f.current=n.code,p(n.code))},[t==null?void 0:t.submitCount]),c.useEffect(()=>{var n;if(f.current==null||f.current!==l)return;f.current=null;const e=v.current;if(!e||!t)return;const s=new Set(Object.keys(t.errors)),r=Array.from(e.querySelectorAll("[name]")).find(o=>s.has(o.getAttribute("name")??""));(n=r==null?void 0:r.scrollIntoView)==null||n.call(r,{behavior:"smooth",block:"center"}),r==null||r.focus({preventScroll:!0})},[l]),i.length===0)return null;const H=i.map(e=>({value:e.code,label:e.label??e.code,icon:A,error:B(e.code),content:R.jsx("div",{className:D.fields,children:x(s=>j.buildTranslationName(e.code,s,y),e.code)},e.code)}));return R.jsx(V.Tabs,{ref:G,className:k,style:C,items:H,value:l,onChange:p,variant:K,size:O,queryKey:null,"aria-label":W})});exports.TranslatedFields=J;
|
|
2
|
+
//# sourceMappingURL=TranslatedFields-DT3bYse6.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TranslatedFields-DT3bYse6.cjs","sources":["../src/components/TranslatedFields/TranslatedFields.tsx"],"sourcesContent":["import { forwardRef, useEffect, useRef, useState, type CSSProperties, type ReactNode } from 'react'\nimport { useFormContext } from '../../form/formContext'\nimport { useLocales, useTranslationsNamespace, type LocaleConfig } from '../../theme'\nimport { buildTranslationName } from '../../helpers/translations'\nimport type { IconName } from '../../icons/names'\nimport { Tabs, type TabsSize, type TabsVariant } from '../Tabs'\nimport styles from './TranslatedFields.module.css'\n\n/** Builds a field's namespaced form name for the active locale (`(field) => name`). */\nexport type TranslatedFieldName = (field: string) => string\n\nexport interface TranslatedFieldsProps {\n /**\n * Render the fields for one locale. `name(field)` returns the namespaced form name to put on each\n * control (e.g. `translations[en-US].title`); `locale` is the active code. The same render runs per\n * locale, so the fields are identical bar their names.\n */\n children: (name: TranslatedFieldName, locale: string) => ReactNode\n /**\n * Locales (one tab each). Defaults to the app's configured locales\n * (`<ConfigProvider config={{ locales }}>`).\n */\n locales?: LocaleConfig[]\n /**\n * Top-level namespace for the field names (`<namespace>[<locale>].<field>`) and the nested object.\n * Falls back to `<ConfigProvider config={{ keys: { translationsNamespace } }}>`, then `'translations'`.\n * Pass to override per-instance (e.g. `'languages'`).\n */\n namespace?: string\n /** Controlled active locale code. */\n value?: string\n /** Initial active locale code (uncontrolled). Defaults to the first locale. */\n defaultValue?: string\n /** Fires with the next active locale code. */\n onChange?: (locale: string) => void\n /** Icon shown on each locale tab. Defaults to `'Global'`. */\n icon?: IconName\n /** Tab strip variant. Defaults to `Tabs`' default (`underline`). */\n variant?: TabsVariant\n /** Tab + field density. Defaults to `Tabs`' default (`md`). */\n size?: TabsSize\n /** Accessible label for the tablist. Defaults to `'Translations'`. */\n 'aria-label'?: string\n className?: string\n style?: CSSProperties\n}\n\n/**\n * A tabbed group of **per-locale** form fields — one tab per content locale, each rendering the same\n * fields with locale-namespaced `name`s (`translations[<locale>].<field>` by default), so a `<Form>`\n * submits e.g. `translations[en-US].title` / `translations[ka-GE].title`. You supply the fields once\n * via a render function that receives a `name(field)` builder for the active locale; bring any field\n * component (`TextField`, `MultilineTextField`, a rich-text editor, …). Locales come from\n * `<ConfigProvider config={{ locales }}>` (override with the `locales` prop). The top-level word is the\n * `namespace` (default `'translations'`, e.g. `'languages'`). While inside a `<Form>`, an incomplete\n * locale's tab shows a **dot**, and on submit the strip auto-advances to the first locale with errors\n * and focuses its field. Build the schema / defaults with `buildTranslations`; the form values stay\n * **flat** (`translations[en-US].title` — the `FormData` shape) — convert to/from the **nested** JSON\n * shape (`{ translations: { 'en-US': { title } } }`) with `nestTranslations` / `flattenTranslations`.\n * Requires the `Tabs` component.\n */\nexport const TranslatedFields = forwardRef<HTMLDivElement, TranslatedFieldsProps>(\n function TranslatedFields(\n {\n children,\n locales: localesProp,\n namespace: namespaceProp,\n value,\n defaultValue,\n onChange,\n icon = 'Global',\n variant,\n size,\n 'aria-label': ariaLabel = 'Translations',\n className,\n style,\n },\n ref,\n ) {\n const configLocales = useLocales()\n const locales = localesProp ?? configLocales\n // namespace: the `namespace` prop wins, else the ConfigProvider's (which falls back to the default)\n const configNamespace = useTranslationsNamespace()\n const namespace = namespaceProp ?? configNamespace\n const form = useFormContext()\n\n // active locale — controlled (`value`) or internal; falls back to the first locale\n const isControlled = value !== undefined\n const [internal, setInternal] = useState<string | undefined>(defaultValue)\n const active = (isControlled ? value : internal) ?? locales[0]?.code ?? ''\n const setActive = (next: string) => {\n if (!isControlled) setInternal(next)\n onChange?.(next)\n }\n\n // the namespaced-name prefix for a locale (e.g. `translations[en-US].`)\n const prefixOf = (code: string) => buildTranslationName(code, '', namespace)\n // a locale's tab is flagged when any of its fields is invalid AND the error is shown (submitted/touched)\n const localeHasError = (code: string): boolean =>\n !!form &&\n Object.keys(form.errors).some(\n (key) => key.startsWith(prefixOf(code)) && (form.isSubmitted || form.touched[key] === true),\n )\n\n // merge the forwarded ref with an internal one (to query the mounted fields for scroll/focus)\n const rootRef = useRef<HTMLDivElement | null>(null)\n const setRootRef = (node: HTMLDivElement | null) => {\n rootRef.current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) (ref as { current: HTMLDivElement | null }).current = node\n }\n\n // on each submit, if the active tab is complete but another locale has the only remaining errors,\n // switch to it and focus its first invalid field (the form's own scroll can't reach an unmounted tab)\n const lastSubmit = useRef(0)\n const pendingFocus = useRef<string | null>(null)\n useEffect(() => {\n const count = form?.submitCount ?? 0\n if (!form || count === lastSubmit.current) return\n lastSubmit.current = count\n const errorKeys = Object.keys(form.errors)\n if (errorKeys.length === 0) return\n const isTranslationKey = (k: string) => locales.some((l) => k.startsWith(prefixOf(l.code)))\n // a non-translation field is still invalid → the form's scroll-to-error handles it (above the tabs)\n if (!errorKeys.every(isTranslationKey)) return\n // active locale already shows its (mounted) errors → nothing to switch to\n if (errorKeys.some((k) => k.startsWith(prefixOf(active)))) return\n const firstBad = locales.find((l) => errorKeys.some((k) => k.startsWith(prefixOf(l.code))))\n if (firstBad && firstBad.code !== active) {\n pendingFocus.current = firstBad.code\n setActive(firstBad.code)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [form?.submitCount])\n\n // once the auto-switched tab has mounted, focus its first invalid field\n useEffect(() => {\n if (pendingFocus.current == null || pendingFocus.current !== active) return\n pendingFocus.current = null\n const root = rootRef.current\n if (!root || !form) return\n const errorKeys = new Set(Object.keys(form.errors))\n const target = Array.from(root.querySelectorAll<HTMLElement>('[name]')).find((el) =>\n errorKeys.has(el.getAttribute('name') ?? ''),\n )\n target?.scrollIntoView?.({ behavior: 'smooth', block: 'center' })\n target?.focus({ preventScroll: true })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [active])\n\n if (locales.length === 0) return null\n\n const items = locales.map((loc) => ({\n value: loc.code,\n label: loc.label ?? loc.code,\n icon,\n // an invalid locale shows the Tabs error dot (a small red dot — no full-tab tint)\n error: localeHasError(loc.code),\n // keyed by locale so switching tabs remounts the fields (no value/state bleed between locales)\n content: (\n <div key={loc.code} className={styles.fields}>\n {children((field) => buildTranslationName(loc.code, field, namespace), loc.code)}\n </div>\n ),\n }))\n\n return (\n <Tabs\n ref={setRootRef}\n className={className}\n style={style}\n items={items}\n value={active}\n onChange={setActive}\n variant={variant}\n size={size}\n // locale tabs are internal UI — never sync them to the page URL\n queryKey={null}\n aria-label={ariaLabel}\n />\n )\n },\n)\n"],"names":["TranslatedFields","forwardRef","children","localesProp","namespaceProp","value","defaultValue","onChange","icon","variant","size","ariaLabel","className","style","ref","configLocales","useLocales","locales","configNamespace","useTranslationsNamespace","namespace","form","useFormContext","isControlled","internal","setInternal","useState","active","_a","setActive","next","prefixOf","code","buildTranslationName","localeHasError","key","rootRef","useRef","setRootRef","node","lastSubmit","pendingFocus","useEffect","count","errorKeys","isTranslationKey","k","l","firstBad","root","target","el","items","loc","jsx","styles","field","Tabs"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const l=require("react/jsx-runtime"),m=require("react"),i=require("clsx"),d="_typography_utbym_2",f="_h1_utbym_10",g="_h2_utbym_15",x="_h3_utbym_20",v="_h4_utbym_25",S="_subtitle_utbym_30",q="_body_utbym_34",z="_bodySmall_utbym_38",C="_caption_utbym_42",T="_uppercase_utbym_46",j="_truncate_utbym_53",o={typography:d,h1:f,h2:g,h3:x,h4:v,subtitle:S,body:q,bodySmall:z,caption:C,uppercase:T,truncate:j},R={h1:"h1",h2:"h2",h3:"h3",h4:"h4",subtitle:"h6",body:"p",bodySmall:"p",caption:"span",uppercase:"span"};function w(t){if(t)return t==="text"?"var(--tz-color-text)":t==="muted"?"var(--tz-color-primary-shade600)":`var(--tz-color-${t})`}const A=m.forwardRef(function({variant:e="body",as:n,color:c,align:r,truncate:y=!1,className:u,style:a,children:_,...p},h){const b=n??R[e],s=w(c);return l.jsx(b,{ref:h,className:i.clsx(o.typography,o[e],y&&o.truncate,u),style:{...s&&{color:s},...r&&{textAlign:r},...a},...p,children:_})});exports.Typography=A;
|
|
2
|
+
//# sourceMappingURL=Typography-BFatE1_A.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Typography-BFatE1_A.cjs","sources":["../src/components/Typography/Typography.tsx"],"sourcesContent":["import {\n forwardRef,\n type CSSProperties,\n type ElementType,\n type HTMLAttributes,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport styles from './Typography.module.css'\n\nexport type TypographyVariant =\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'subtitle'\n | 'body'\n | 'bodySmall'\n | 'caption'\n | 'uppercase'\n\nexport type TypographyAlign = 'left' | 'center' | 'right' | 'justify'\n\n/**\n * Text color: a theme palette token, the semantic `text` role, or `muted` (a soft primary shade for\n * secondary text). Omit to inherit the surrounding color.\n */\nexport type TypographyColor = ThemeColor | 'text' | 'muted'\n\n/** Default HTML element rendered for each variant. Override with the `as` prop. */\nconst variantElement: Record<TypographyVariant, ElementType> = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n subtitle: 'h6',\n body: 'p',\n bodySmall: 'p',\n caption: 'span',\n uppercase: 'span',\n}\n\nfunction resolveColor(color?: TypographyColor): string | undefined {\n if (!color) return undefined\n if (color === 'text') return 'var(--tz-color-text)'\n if (color === 'muted') return 'var(--tz-color-primary-shade600)'\n return `var(--tz-color-${color})`\n}\n\nexport interface TypographyProps extends Omit<HTMLAttributes<HTMLElement>, 'color'> {\n /** Type scale + default element. `h1`–`h4` headings · `subtitle` · `body` (default) · `bodySmall` · `caption` · `uppercase`. */\n variant?: TypographyVariant\n /** Render a different HTML element (or component) than the variant's default — keeps the styling, changes the tag. */\n as?: ElementType\n /** Text color. Omit to inherit the surrounding color. */\n color?: TypographyColor\n /** Horizontal text alignment. */\n align?: TypographyAlign\n /** Clamp to a single line, hiding overflow with an ellipsis. */\n truncate?: boolean\n children?: ReactNode\n}\n\n/**\n * Text primitive for the design system. Each `variant` maps to a sensible HTML\n * element and a font size from the `--tz-font-size-*` scale; override the tag\n * with `as` when the semantics differ from the look. Default browser margins are\n * removed. Without a `color` it inherits the surrounding text color, mirroring\n * `Icon` and `Loader`.\n */\nexport const Typography = forwardRef<HTMLElement, TypographyProps>(function Typography(\n { variant = 'body', as, color, align, truncate = false, className, style, children, ...props },\n ref,\n) {\n const Component = (as ?? variantElement[variant]) as ElementType\n const resolvedColor = resolveColor(color)\n\n return (\n <Component\n ref={ref}\n className={clsx(styles.typography, styles[variant], truncate && styles.truncate, className)}\n style={\n {\n ...(resolvedColor && { color: resolvedColor }),\n ...(align && { textAlign: align }),\n ...style,\n } as CSSProperties\n }\n {...props}\n >\n {children}\n </Component>\n )\n})\n"],"names":["variantElement","resolveColor","color","Typography","forwardRef","variant","as","align","truncate","className","style","children","props","ref","Component","resolvedColor","jsx","clsx","styles"],"mappings":"8ZA+BMA,EAAyD,CAC7D,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,SAAU,KACV,KAAM,IACN,UAAW,IACX,QAAS,OACT,UAAW,MACb,EAEA,SAASC,EAAaC,EAA6C,CACjE,GAAKA,EACL,OAAIA,IAAU,OAAe,uBACzBA,IAAU,QAAgB,mCACvB,kBAAkBA,CAAK,GAChC,CAuBO,MAAMC,EAAaC,EAAAA,WAAyC,SACjE,CAAE,QAAAC,EAAU,OAAQ,GAAAC,EAAI,MAAAJ,EAAO,MAAAK,EAAO,SAAAC,EAAW,GAAO,UAAAC,EAAW,MAAAC,EAAO,SAAAC,EAAU,GAAGC,CAAA,EACvFC,EACA,CACA,MAAMC,EAAaR,GAAMN,EAAeK,CAAO,EACzCU,EAAgBd,EAAaC,CAAK,EAExC,OACEc,EAAAA,IAACF,EAAA,CACC,IAAAD,EACA,UAAWI,EAAAA,KAAKC,EAAO,WAAYA,EAAOb,CAAO,EAAGG,GAAYU,EAAO,SAAUT,CAAS,EAC1F,MACE,CACE,GAAIM,GAAiB,CAAE,MAAOA,CAAA,EAC9B,GAAIR,GAAS,CAAE,UAAWA,CAAA,EAC1B,GAAGG,CAAA,EAGN,GAAGE,EAEH,SAAAD,CAAA,CAAA,CAGP,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { jsx as b } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as l } from "react";
|
|
3
|
+
import { clsx as i } from "clsx";
|
|
4
|
+
const d = "_typography_utbym_2", f = "_h1_utbym_10", g = "_h2_utbym_15", v = "_h3_utbym_20", x = "_h4_utbym_25", S = "_subtitle_utbym_30", z = "_body_utbym_34", C = "_bodySmall_utbym_38", T = "_caption_utbym_42", j = "_uppercase_utbym_46", w = "_truncate_utbym_53", o = {
|
|
5
|
+
typography: d,
|
|
6
|
+
h1: f,
|
|
7
|
+
h2: g,
|
|
8
|
+
h3: v,
|
|
9
|
+
h4: x,
|
|
10
|
+
subtitle: S,
|
|
11
|
+
body: z,
|
|
12
|
+
bodySmall: C,
|
|
13
|
+
caption: T,
|
|
14
|
+
uppercase: j,
|
|
15
|
+
truncate: w
|
|
16
|
+
}, A = {
|
|
17
|
+
h1: "h1",
|
|
18
|
+
h2: "h2",
|
|
19
|
+
h3: "h3",
|
|
20
|
+
h4: "h4",
|
|
21
|
+
subtitle: "h6",
|
|
22
|
+
body: "p",
|
|
23
|
+
bodySmall: "p",
|
|
24
|
+
caption: "span",
|
|
25
|
+
uppercase: "span"
|
|
26
|
+
};
|
|
27
|
+
function E(t) {
|
|
28
|
+
if (t)
|
|
29
|
+
return t === "text" ? "var(--tz-color-text)" : t === "muted" ? "var(--tz-color-primary-shade600)" : `var(--tz-color-${t})`;
|
|
30
|
+
}
|
|
31
|
+
const k = l(function({ variant: r = "body", as: s, color: y, align: e, truncate: p = !1, className: a, style: c, children: _, ...u }, h) {
|
|
32
|
+
const m = s ?? A[r], n = E(y);
|
|
33
|
+
return /* @__PURE__ */ b(
|
|
34
|
+
m,
|
|
35
|
+
{
|
|
36
|
+
ref: h,
|
|
37
|
+
className: i(o.typography, o[r], p && o.truncate, a),
|
|
38
|
+
style: {
|
|
39
|
+
...n && { color: n },
|
|
40
|
+
...e && { textAlign: e },
|
|
41
|
+
...c
|
|
42
|
+
},
|
|
43
|
+
...u,
|
|
44
|
+
children: _
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
});
|
|
48
|
+
export {
|
|
49
|
+
k as T
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=Typography-Cta6Rg4L.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Typography-Cta6Rg4L.js","sources":["../src/components/Typography/Typography.tsx"],"sourcesContent":["import {\n forwardRef,\n type CSSProperties,\n type ElementType,\n type HTMLAttributes,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport styles from './Typography.module.css'\n\nexport type TypographyVariant =\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'subtitle'\n | 'body'\n | 'bodySmall'\n | 'caption'\n | 'uppercase'\n\nexport type TypographyAlign = 'left' | 'center' | 'right' | 'justify'\n\n/**\n * Text color: a theme palette token, the semantic `text` role, or `muted` (a soft primary shade for\n * secondary text). Omit to inherit the surrounding color.\n */\nexport type TypographyColor = ThemeColor | 'text' | 'muted'\n\n/** Default HTML element rendered for each variant. Override with the `as` prop. */\nconst variantElement: Record<TypographyVariant, ElementType> = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n subtitle: 'h6',\n body: 'p',\n bodySmall: 'p',\n caption: 'span',\n uppercase: 'span',\n}\n\nfunction resolveColor(color?: TypographyColor): string | undefined {\n if (!color) return undefined\n if (color === 'text') return 'var(--tz-color-text)'\n if (color === 'muted') return 'var(--tz-color-primary-shade600)'\n return `var(--tz-color-${color})`\n}\n\nexport interface TypographyProps extends Omit<HTMLAttributes<HTMLElement>, 'color'> {\n /** Type scale + default element. `h1`–`h4` headings · `subtitle` · `body` (default) · `bodySmall` · `caption` · `uppercase`. */\n variant?: TypographyVariant\n /** Render a different HTML element (or component) than the variant's default — keeps the styling, changes the tag. */\n as?: ElementType\n /** Text color. Omit to inherit the surrounding color. */\n color?: TypographyColor\n /** Horizontal text alignment. */\n align?: TypographyAlign\n /** Clamp to a single line, hiding overflow with an ellipsis. */\n truncate?: boolean\n children?: ReactNode\n}\n\n/**\n * Text primitive for the design system. Each `variant` maps to a sensible HTML\n * element and a font size from the `--tz-font-size-*` scale; override the tag\n * with `as` when the semantics differ from the look. Default browser margins are\n * removed. Without a `color` it inherits the surrounding text color, mirroring\n * `Icon` and `Loader`.\n */\nexport const Typography = forwardRef<HTMLElement, TypographyProps>(function Typography(\n { variant = 'body', as, color, align, truncate = false, className, style, children, ...props },\n ref,\n) {\n const Component = (as ?? variantElement[variant]) as ElementType\n const resolvedColor = resolveColor(color)\n\n return (\n <Component\n ref={ref}\n className={clsx(styles.typography, styles[variant], truncate && styles.truncate, className)}\n style={\n {\n ...(resolvedColor && { color: resolvedColor }),\n ...(align && { textAlign: align }),\n ...style,\n } as CSSProperties\n }\n {...props}\n >\n {children}\n </Component>\n )\n})\n"],"names":["variantElement","resolveColor","color","Typography","forwardRef","variant","as","align","truncate","className","style","children","props","ref","Component","resolvedColor","jsx","clsx","styles"],"mappings":";;;;;;;;;;;;;;;GA+BMA,IAAyD;AAAA,EAC7D,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AAAA,EACT,WAAW;AACb;AAEA,SAASC,EAAaC,GAA6C;AACjE,MAAKA;AACL,WAAIA,MAAU,SAAe,yBACzBA,MAAU,UAAgB,qCACvB,kBAAkBA,CAAK;AAChC;AAuBO,MAAMC,IAAaC,EAAyC,SACjE,EAAE,SAAAC,IAAU,QAAQ,IAAAC,GAAI,OAAAJ,GAAO,OAAAK,GAAO,UAAAC,IAAW,IAAO,WAAAC,GAAW,OAAAC,GAAO,UAAAC,GAAU,GAAGC,EAAA,GACvFC,GACA;AACA,QAAMC,IAAaR,KAAMN,EAAeK,CAAO,GACzCU,IAAgBd,EAAaC,CAAK;AAExC,SACE,gBAAAc;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWI,EAAKC,EAAO,YAAYA,EAAOb,CAAO,GAAGG,KAAYU,EAAO,UAAUT,CAAS;AAAA,MAC1F,OACE;AAAA,QACE,GAAIM,KAAiB,EAAE,OAAOA,EAAA;AAAA,QAC9B,GAAIR,KAAS,EAAE,WAAWA,EAAA;AAAA,QAC1B,GAAGG;AAAA,MAAA;AAAA,MAGN,GAAGE;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { jsxs as c, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as x } from "react";
|
|
3
|
+
import { clsx as j } from "clsx";
|
|
4
|
+
import { A as C } from "./Avatar-BJVCdo-K.js";
|
|
5
|
+
import { B as U } from "./Button-DhEv0YFk.js";
|
|
6
|
+
import { I } from "./Icon-CophpkHo.js";
|
|
7
|
+
import { T as a } from "./Typography-Cta6Rg4L.js";
|
|
8
|
+
import { a as N } from "./ConfigProvider-2c94kUOk.js";
|
|
9
|
+
const S = "_card_ntjc1_3", T = "_identity_ntjc1_16", b = "_text_ntjc1_20", A = "_sm_ntjc1_33", B = "_lg_ntjc1_37", n = {
|
|
10
|
+
card: S,
|
|
11
|
+
identity: T,
|
|
12
|
+
text: b,
|
|
13
|
+
sm: A,
|
|
14
|
+
lg: B
|
|
15
|
+
}, F = x(function({
|
|
16
|
+
name: t,
|
|
17
|
+
email: s,
|
|
18
|
+
avatar: l,
|
|
19
|
+
icon: e = "User",
|
|
20
|
+
color: d = "primary",
|
|
21
|
+
size: o = "md",
|
|
22
|
+
onLogout: i,
|
|
23
|
+
logoutLabel: m,
|
|
24
|
+
children: u,
|
|
25
|
+
className: _,
|
|
26
|
+
style: f,
|
|
27
|
+
...p
|
|
28
|
+
}, v) {
|
|
29
|
+
const y = N(), g = o === "lg" ? "lg" : o === "sm" ? "sm" : "md", h = o === "lg" ? "md" : "sm";
|
|
30
|
+
return /* @__PURE__ */ c(
|
|
31
|
+
"div",
|
|
32
|
+
{
|
|
33
|
+
ref: v,
|
|
34
|
+
className: j(n.card, n[o], _),
|
|
35
|
+
style: f,
|
|
36
|
+
...p,
|
|
37
|
+
children: [
|
|
38
|
+
/* @__PURE__ */ c("div", { className: n.identity, children: [
|
|
39
|
+
/* @__PURE__ */ r(
|
|
40
|
+
C,
|
|
41
|
+
{
|
|
42
|
+
size: g,
|
|
43
|
+
name: t,
|
|
44
|
+
src: l,
|
|
45
|
+
icon: t ? void 0 : e,
|
|
46
|
+
color: d
|
|
47
|
+
}
|
|
48
|
+
),
|
|
49
|
+
(t != null || s != null) && /* @__PURE__ */ c("div", { className: n.text, children: [
|
|
50
|
+
t != null && /* @__PURE__ */ r(a, { variant: "bodySmall", truncate: !0, children: t }),
|
|
51
|
+
s != null && /* @__PURE__ */ r(a, { variant: "caption", color: "muted", truncate: !0, children: s })
|
|
52
|
+
] })
|
|
53
|
+
] }),
|
|
54
|
+
u,
|
|
55
|
+
i ? /* @__PURE__ */ r(
|
|
56
|
+
U,
|
|
57
|
+
{
|
|
58
|
+
variant: "filled",
|
|
59
|
+
color: "error",
|
|
60
|
+
size: h,
|
|
61
|
+
fullWidth: !0,
|
|
62
|
+
startIcon: /* @__PURE__ */ r(I, { name: "Logout2" }),
|
|
63
|
+
onClick: i,
|
|
64
|
+
children: m ?? y("userCard.signOut")
|
|
65
|
+
}
|
|
66
|
+
) : null
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
);
|
|
70
|
+
});
|
|
71
|
+
export {
|
|
72
|
+
F as U
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=UserCard-BhqtX1vU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserCard-BhqtX1vU.js","sources":["../src/components/UserCard/UserCard.tsx"],"sourcesContent":["import { forwardRef, type CSSProperties, type HTMLAttributes, type ReactNode } from 'react'\nimport { clsx } from 'clsx'\nimport { useT, type ThemeColor } from '../../theme'\nimport type { IconName } from '../../icons/names'\nimport { Avatar } from '../Avatar'\nimport { Button } from '../Button'\nimport { Icon } from '../Icon'\nimport { Typography } from '../Typography'\nimport styles from './UserCard.module.css'\n\nexport type UserCardSize = 'sm' | 'md' | 'lg'\n\nexport interface UserCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'color'> {\n /** Display name — the primary line, and the source of the avatar initials. */\n name?: string\n /** Secondary line under the name (usually the email). */\n email?: ReactNode\n /** Avatar image URL (falls back to the initials from `name`, else the `icon`). */\n avatar?: string\n /** Fallback avatar icon when there's no image or name. Defaults to `'User'`. */\n icon?: IconName\n /** Theme palette token tinting the avatar. Defaults to `'primary'`. */\n color?: ThemeColor\n /** Preset size (avatar + fonts + button). Defaults to `'md'`. */\n size?: UserCardSize\n /** When provided, a **Sign out** button is shown that calls this. */\n onLogout?: () => void\n /** Sign-out button label. Defaults to `'Sign out'`. */\n logoutLabel?: ReactNode\n /** Extra content between the identity row and the sign-out button (e.g. a link or menu). */\n children?: ReactNode\n}\n\n/**\n * A compact account card — an `Avatar` + name/email and an optional **Sign out** button. Drop it into\n * the `RootLayout` `sidebarFooter` (or anywhere) for a consistent signed-in-user block across apps,\n * instead of hand-rolling the markup each time. Shows the image (`avatar`) → initials (from `name`) →\n * `icon` (default `User`) in priority order; renders the sign-out `Button` (filled `error`) only when\n * `onLogout` is given. `size` (`sm`/`md`/`lg`) scales the avatar + type; `color` (default `primary`)\n * tints the avatar. Own CSS module (token-only).\n */\nexport const UserCard = forwardRef<HTMLDivElement, UserCardProps>(function UserCard(\n {\n name,\n email,\n avatar,\n icon = 'User',\n color = 'primary',\n size = 'md',\n onLogout,\n logoutLabel,\n children,\n className,\n style,\n ...props\n },\n ref,\n) {\n const t = useT()\n // the identity row + the sign-out button share the same visual size step\n const avatarSize = size === 'lg' ? 'lg' : size === 'sm' ? 'sm' : 'md'\n const buttonSize = size === 'lg' ? 'md' : 'sm'\n\n return (\n <div\n ref={ref}\n className={clsx(styles.card, styles[size], className)}\n style={style as CSSProperties}\n {...props}\n >\n <div className={styles.identity}>\n {/* Avatar priority is image → icon → initials, so pass `icon` only as the last resort (no\n name), otherwise a name would still show the icon instead of its initials */}\n <Avatar\n size={avatarSize}\n name={name}\n src={avatar}\n icon={name ? undefined : icon}\n color={color}\n />\n {(name != null || email != null) && (\n <div className={styles.text}>\n {name != null && (\n <Typography variant=\"bodySmall\" truncate>\n {name}\n </Typography>\n )}\n {email != null && (\n <Typography variant=\"caption\" color=\"muted\" truncate>\n {email}\n </Typography>\n )}\n </div>\n )}\n </div>\n\n {children}\n\n {onLogout ? (\n <Button\n variant=\"filled\"\n color=\"error\"\n size={buttonSize}\n fullWidth\n startIcon={<Icon name=\"Logout2\" />}\n onClick={onLogout}\n >\n {logoutLabel ?? t('userCard.signOut')}\n </Button>\n ) : null}\n </div>\n )\n})\n"],"names":["UserCard","forwardRef","name","email","avatar","icon","color","size","onLogout","logoutLabel","children","className","style","props","ref","t","useT","avatarSize","buttonSize","jsxs","clsx","styles","jsx","Avatar","Typography","Button","Icon"],"mappings":";;;;;;;;;;;;;;GAyCaA,IAAWC,EAA0C,SAChE;AAAA,EACE,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,MAAAC,IAAO;AAAA,EACP,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,QAAMC,IAAIC,EAAA,GAEJC,IAAaV,MAAS,OAAO,OAAOA,MAAS,OAAO,OAAO,MAC3DW,IAAaX,MAAS,OAAO,OAAO;AAE1C,SACE,gBAAAY;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAL;AAAA,MACA,WAAWM,EAAKC,EAAO,MAAMA,EAAOd,CAAI,GAAGI,CAAS;AAAA,MACpD,OAAAC;AAAA,MACC,GAAGC;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAM,EAAC,OAAA,EAAI,WAAWE,EAAO,UAGrB,UAAA;AAAA,UAAA,gBAAAC;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,MAAMN;AAAA,cACN,MAAAf;AAAA,cACA,KAAKE;AAAA,cACL,MAAMF,IAAO,SAAYG;AAAA,cACzB,OAAAC;AAAA,YAAA;AAAA,UAAA;AAAA,WAEAJ,KAAQ,QAAQC,KAAS,2BACxB,OAAA,EAAI,WAAWkB,EAAO,MACpB,UAAA;AAAA,YAAAnB,KAAQ,QACP,gBAAAoB,EAACE,GAAA,EAAW,SAAQ,aAAY,UAAQ,IACrC,UAAAtB,EAAA,CACH;AAAA,YAEDC,KAAS,QACR,gBAAAmB,EAACE,GAAA,EAAW,SAAQ,WAAU,OAAM,SAAQ,UAAQ,IACjD,UAAArB,EAAA,CACH;AAAA,UAAA,EAAA,CAEJ;AAAA,QAAA,GAEJ;AAAA,QAECO;AAAA,QAEAF,IACC,gBAAAc;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,OAAM;AAAA,YACN,MAAMP;AAAA,YACN,WAAS;AAAA,YACT,WAAW,gBAAAI,EAACI,GAAA,EAAK,MAAK,UAAA,CAAU;AAAA,YAChC,SAASlB;AAAA,YAER,UAAAC,KAAeM,EAAE,kBAAkB;AAAA,UAAA;AAAA,QAAA,IAEpC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGV,CAAC;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const t=require("react/jsx-runtime"),h=require("react"),p=require("clsx"),q=require("./Avatar-_ufXh3AY.cjs"),f=require("./Button-D4bfVNNa.cjs"),C=require("./Icon-CXTl_QAP.cjs"),i=require("./Typography-BFatE1_A.cjs"),T=require("./ConfigProvider-ByOFXVyP.cjs"),U="_card_ntjc1_3",I="_identity_ntjc1_16",N="_text_ntjc1_20",S="_sm_ntjc1_33",b="_lg_ntjc1_37",n={card:U,identity:I,text:N,sm:S,lg:b},A=h.forwardRef(function({name:r,email:c,avatar:o,icon:l="User",color:a="primary",size:s="md",onLogout:e,logoutLabel:d,children:u,className:x,style:_,...j},y){const g=T.useT(),m=s==="lg"?"lg":s==="sm"?"sm":"md",v=s==="lg"?"md":"sm";return t.jsxs("div",{ref:y,className:p.clsx(n.card,n[s],x),style:_,...j,children:[t.jsxs("div",{className:n.identity,children:[t.jsx(q.Avatar,{size:m,name:r,src:o,icon:r?void 0:l,color:a}),(r!=null||c!=null)&&t.jsxs("div",{className:n.text,children:[r!=null&&t.jsx(i.Typography,{variant:"bodySmall",truncate:!0,children:r}),c!=null&&t.jsx(i.Typography,{variant:"caption",color:"muted",truncate:!0,children:c})]})]}),u,e?t.jsx(f.Button,{variant:"filled",color:"error",size:v,fullWidth:!0,startIcon:t.jsx(C.Icon,{name:"Logout2"}),onClick:e,children:d??g("userCard.signOut")}):null]})});exports.UserCard=A;
|
|
2
|
+
//# sourceMappingURL=UserCard-OlLeyyS0.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserCard-OlLeyyS0.cjs","sources":["../src/components/UserCard/UserCard.tsx"],"sourcesContent":["import { forwardRef, type CSSProperties, type HTMLAttributes, type ReactNode } from 'react'\nimport { clsx } from 'clsx'\nimport { useT, type ThemeColor } from '../../theme'\nimport type { IconName } from '../../icons/names'\nimport { Avatar } from '../Avatar'\nimport { Button } from '../Button'\nimport { Icon } from '../Icon'\nimport { Typography } from '../Typography'\nimport styles from './UserCard.module.css'\n\nexport type UserCardSize = 'sm' | 'md' | 'lg'\n\nexport interface UserCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'color'> {\n /** Display name — the primary line, and the source of the avatar initials. */\n name?: string\n /** Secondary line under the name (usually the email). */\n email?: ReactNode\n /** Avatar image URL (falls back to the initials from `name`, else the `icon`). */\n avatar?: string\n /** Fallback avatar icon when there's no image or name. Defaults to `'User'`. */\n icon?: IconName\n /** Theme palette token tinting the avatar. Defaults to `'primary'`. */\n color?: ThemeColor\n /** Preset size (avatar + fonts + button). Defaults to `'md'`. */\n size?: UserCardSize\n /** When provided, a **Sign out** button is shown that calls this. */\n onLogout?: () => void\n /** Sign-out button label. Defaults to `'Sign out'`. */\n logoutLabel?: ReactNode\n /** Extra content between the identity row and the sign-out button (e.g. a link or menu). */\n children?: ReactNode\n}\n\n/**\n * A compact account card — an `Avatar` + name/email and an optional **Sign out** button. Drop it into\n * the `RootLayout` `sidebarFooter` (or anywhere) for a consistent signed-in-user block across apps,\n * instead of hand-rolling the markup each time. Shows the image (`avatar`) → initials (from `name`) →\n * `icon` (default `User`) in priority order; renders the sign-out `Button` (filled `error`) only when\n * `onLogout` is given. `size` (`sm`/`md`/`lg`) scales the avatar + type; `color` (default `primary`)\n * tints the avatar. Own CSS module (token-only).\n */\nexport const UserCard = forwardRef<HTMLDivElement, UserCardProps>(function UserCard(\n {\n name,\n email,\n avatar,\n icon = 'User',\n color = 'primary',\n size = 'md',\n onLogout,\n logoutLabel,\n children,\n className,\n style,\n ...props\n },\n ref,\n) {\n const t = useT()\n // the identity row + the sign-out button share the same visual size step\n const avatarSize = size === 'lg' ? 'lg' : size === 'sm' ? 'sm' : 'md'\n const buttonSize = size === 'lg' ? 'md' : 'sm'\n\n return (\n <div\n ref={ref}\n className={clsx(styles.card, styles[size], className)}\n style={style as CSSProperties}\n {...props}\n >\n <div className={styles.identity}>\n {/* Avatar priority is image → icon → initials, so pass `icon` only as the last resort (no\n name), otherwise a name would still show the icon instead of its initials */}\n <Avatar\n size={avatarSize}\n name={name}\n src={avatar}\n icon={name ? undefined : icon}\n color={color}\n />\n {(name != null || email != null) && (\n <div className={styles.text}>\n {name != null && (\n <Typography variant=\"bodySmall\" truncate>\n {name}\n </Typography>\n )}\n {email != null && (\n <Typography variant=\"caption\" color=\"muted\" truncate>\n {email}\n </Typography>\n )}\n </div>\n )}\n </div>\n\n {children}\n\n {onLogout ? (\n <Button\n variant=\"filled\"\n color=\"error\"\n size={buttonSize}\n fullWidth\n startIcon={<Icon name=\"Logout2\" />}\n onClick={onLogout}\n >\n {logoutLabel ?? t('userCard.signOut')}\n </Button>\n ) : null}\n </div>\n )\n})\n"],"names":["UserCard","forwardRef","name","email","avatar","icon","color","size","onLogout","logoutLabel","children","className","style","props","ref","t","useT","avatarSize","buttonSize","jsxs","clsx","styles","jsx","Avatar","Typography","Button","Icon"],"mappings":"qZAyCaA,EAAWC,EAAAA,WAA0C,SAChE,CACE,KAAAC,EACA,MAAAC,EACA,OAAAC,EACA,KAAAC,EAAO,OACP,MAAAC,EAAQ,UACR,KAAAC,EAAO,KACP,SAAAC,EACA,YAAAC,EACA,SAAAC,EACA,UAAAC,EACA,MAAAC,EACA,GAAGC,CACL,EACAC,EACA,CACA,MAAMC,EAAIC,EAAAA,KAAA,EAEJC,EAAaV,IAAS,KAAO,KAAOA,IAAS,KAAO,KAAO,KAC3DW,EAAaX,IAAS,KAAO,KAAO,KAE1C,OACEY,EAAAA,KAAC,MAAA,CACC,IAAAL,EACA,UAAWM,EAAAA,KAAKC,EAAO,KAAMA,EAAOd,CAAI,EAAGI,CAAS,EACpD,MAAAC,EACC,GAAGC,EAEJ,SAAA,CAAAM,EAAAA,KAAC,MAAA,CAAI,UAAWE,EAAO,SAGrB,SAAA,CAAAC,EAAAA,IAACC,EAAAA,OAAA,CACC,KAAMN,EACN,KAAAf,EACA,IAAKE,EACL,KAAMF,EAAO,OAAYG,EACzB,MAAAC,CAAA,CAAA,GAEAJ,GAAQ,MAAQC,GAAS,cACxB,MAAA,CAAI,UAAWkB,EAAO,KACpB,SAAA,CAAAnB,GAAQ,MACPoB,MAACE,EAAAA,WAAA,CAAW,QAAQ,YAAY,SAAQ,GACrC,SAAAtB,CAAA,CACH,EAEDC,GAAS,MACRmB,EAAAA,IAACE,EAAAA,WAAA,CAAW,QAAQ,UAAU,MAAM,QAAQ,SAAQ,GACjD,SAAArB,CAAA,CACH,CAAA,CAAA,CAEJ,CAAA,EAEJ,EAECO,EAEAF,EACCc,EAAAA,IAACG,EAAAA,OAAA,CACC,QAAQ,SACR,MAAM,QACN,KAAMP,EACN,UAAS,GACT,UAAWI,EAAAA,IAACI,EAAAA,KAAA,CAAK,KAAK,SAAA,CAAU,EAChC,QAASlB,EAER,SAAAC,GAAeM,EAAE,kBAAkB,CAAA,CAAA,EAEpC,IAAA,CAAA,CAAA,CAGV,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const r=require("react");let n=[];const c=new Set;function u(e){n=e??[],c.forEach(s=>s())}function t(){return n}function i(e){return!e||e.length===0?!0:e.some(s=>n.includes(s))}const o=e=>(c.add(e),()=>{c.delete(e)});function y(){return r.useSyncExternalStore(o,t,t)}exports.getAccessKeys=t;exports.hasAccess=i;exports.setAccessKeys=u;exports.useAccessKeys=y;
|
|
2
|
+
//# sourceMappingURL=access-DPUHbE-S.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access-DPUHbE-S.cjs","sources":["../src/helpers/access.ts"],"sourcesContent":["import { useSyncExternalStore } from 'react'\n\n// Module singleton — readable BOTH from React components (via `useAccessKeys`) and from\n// TanStack `beforeLoad` guards (via `hasAccess`), which run outside React.\nlet keys: string[] = []\nconst listeners = new Set<() => void>()\n\n/** Set the current user's accessKeys (call after login / getUser; pass `[]` on logout). */\nexport function setAccessKeys(next: string[]) {\n keys = next ?? []\n listeners.forEach((l) => l())\n}\n\n/** The current user's accessKeys (non-reactive read; safe outside React). */\nexport function getAccessKeys() {\n return keys\n}\n\n/**\n * OR semantics: a route with no `roles` (omitted/empty) is public; otherwise the user needs at\n * least one matching key. Works outside React — used by route `beforeLoad` guards.\n */\nexport function hasAccess(roles?: string[]) {\n if (!roles || roles.length === 0) return true\n return roles.some((r) => keys.includes(r))\n}\n\n// hoisted so its identity is stable across renders — an inline arrow would make\n// useSyncExternalStore unsubscribe+resubscribe on every render of every consumer\nconst subscribe = (cb: () => void) => {\n listeners.add(cb)\n return () => {\n listeners.delete(cb)\n }\n}\n\n/** Reactive read for components — re-renders the subscriber when the keys change (login/logout). */\nexport function useAccessKeys() {\n return useSyncExternalStore(subscribe, getAccessKeys, getAccessKeys)\n}\n"],"names":["keys","listeners","setAccessKeys","next","l","getAccessKeys","hasAccess","roles","r","subscribe","cb","useAccessKeys","useSyncExternalStore"],"mappings":"sCAIA,IAAIA,EAAiB,CAAA,EACrB,MAAMC,MAAgB,IAGf,SAASC,EAAcC,EAAgB,CAC5CH,EAAOG,GAAQ,CAAA,EACfF,EAAU,QAASG,GAAMA,EAAA,CAAG,CAC9B,CAGO,SAASC,GAAgB,CAC9B,OAAOL,CACT,CAMO,SAASM,EAAUC,EAAkB,CAC1C,MAAI,CAACA,GAASA,EAAM,SAAW,EAAU,GAClCA,EAAM,KAAMC,GAAMR,EAAK,SAASQ,CAAC,CAAC,CAC3C,CAIA,MAAMC,EAAaC,IACjBT,EAAU,IAAIS,CAAE,EACT,IAAM,CACXT,EAAU,OAAOS,CAAE,CACrB,GAIK,SAASC,GAAgB,CAC9B,OAAOC,uBAAqBH,EAAWJ,EAAeA,CAAa,CACrE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { useSyncExternalStore as r } from "react";
|
|
2
|
+
let n = [];
|
|
3
|
+
const t = /* @__PURE__ */ new Set();
|
|
4
|
+
function i(e) {
|
|
5
|
+
n = e ?? [], t.forEach((s) => s());
|
|
6
|
+
}
|
|
7
|
+
function c() {
|
|
8
|
+
return n;
|
|
9
|
+
}
|
|
10
|
+
function a(e) {
|
|
11
|
+
return !e || e.length === 0 ? !0 : e.some((s) => n.includes(s));
|
|
12
|
+
}
|
|
13
|
+
const u = (e) => (t.add(e), () => {
|
|
14
|
+
t.delete(e);
|
|
15
|
+
});
|
|
16
|
+
function f() {
|
|
17
|
+
return r(u, c, c);
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
c as g,
|
|
21
|
+
a as h,
|
|
22
|
+
i as s,
|
|
23
|
+
f as u
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=access-Db4knwyR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access-Db4knwyR.js","sources":["../src/helpers/access.ts"],"sourcesContent":["import { useSyncExternalStore } from 'react'\n\n// Module singleton — readable BOTH from React components (via `useAccessKeys`) and from\n// TanStack `beforeLoad` guards (via `hasAccess`), which run outside React.\nlet keys: string[] = []\nconst listeners = new Set<() => void>()\n\n/** Set the current user's accessKeys (call after login / getUser; pass `[]` on logout). */\nexport function setAccessKeys(next: string[]) {\n keys = next ?? []\n listeners.forEach((l) => l())\n}\n\n/** The current user's accessKeys (non-reactive read; safe outside React). */\nexport function getAccessKeys() {\n return keys\n}\n\n/**\n * OR semantics: a route with no `roles` (omitted/empty) is public; otherwise the user needs at\n * least one matching key. Works outside React — used by route `beforeLoad` guards.\n */\nexport function hasAccess(roles?: string[]) {\n if (!roles || roles.length === 0) return true\n return roles.some((r) => keys.includes(r))\n}\n\n// hoisted so its identity is stable across renders — an inline arrow would make\n// useSyncExternalStore unsubscribe+resubscribe on every render of every consumer\nconst subscribe = (cb: () => void) => {\n listeners.add(cb)\n return () => {\n listeners.delete(cb)\n }\n}\n\n/** Reactive read for components — re-renders the subscriber when the keys change (login/logout). */\nexport function useAccessKeys() {\n return useSyncExternalStore(subscribe, getAccessKeys, getAccessKeys)\n}\n"],"names":["keys","listeners","setAccessKeys","next","l","getAccessKeys","hasAccess","roles","r","subscribe","cb","useAccessKeys","useSyncExternalStore"],"mappings":";AAIA,IAAIA,IAAiB,CAAA;AACrB,MAAMC,wBAAgB,IAAA;AAGf,SAASC,EAAcC,GAAgB;AAC5C,EAAAH,IAAOG,KAAQ,CAAA,GACfF,EAAU,QAAQ,CAACG,MAAMA,EAAA,CAAG;AAC9B;AAGO,SAASC,IAAgB;AAC9B,SAAOL;AACT;AAMO,SAASM,EAAUC,GAAkB;AAC1C,SAAI,CAACA,KAASA,EAAM,WAAW,IAAU,KAClCA,EAAM,KAAK,CAACC,MAAMR,EAAK,SAASQ,CAAC,CAAC;AAC3C;AAIA,MAAMC,IAAY,CAACC,OACjBT,EAAU,IAAIS,CAAE,GACT,MAAM;AACX,EAAAT,EAAU,OAAOS,CAAE;AACrB;AAIK,SAASC,IAAgB;AAC9B,SAAOC,EAAqBH,GAAWJ,GAAeA,CAAa;AACrE;"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
import type { IconName } from '../../icons/names';
|
|
3
|
+
export type AccordionSize = 'sm' | 'md' | 'lg';
|
|
4
|
+
/** A data-driven panel for the `items` prop. */
|
|
5
|
+
export interface AccordionItemData {
|
|
6
|
+
value: string;
|
|
7
|
+
label: ReactNode;
|
|
8
|
+
/** Leading header icon — a known `IconName` or any node. */
|
|
9
|
+
icon?: IconName | ReactNode;
|
|
10
|
+
/** Collapsible body content. */
|
|
11
|
+
content: ReactNode;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface AccordionProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {
|
|
15
|
+
/**
|
|
16
|
+
* Single-open (`value` is a `string | null` — opening one closes the others) vs multi-open (`value`
|
|
17
|
+
* is a `string[]`). Defaults to `false` (multiple).
|
|
18
|
+
*/
|
|
19
|
+
exclusive?: boolean;
|
|
20
|
+
/** Controlled open value — a `string | null` when `exclusive`, else a `string[]`. */
|
|
21
|
+
value?: string | string[] | null;
|
|
22
|
+
/** Initial open value for uncontrolled use (same shape as `value`). */
|
|
23
|
+
defaultValue?: string | string[] | null;
|
|
24
|
+
/** Fires with the next open value (matches the `exclusive` shape). */
|
|
25
|
+
onChange?: (value: string | string[] | null) => void;
|
|
26
|
+
/** Data-driven panels — an alternative to passing `<AccordionItem>` children. */
|
|
27
|
+
items?: AccordionItemData[];
|
|
28
|
+
/** Preset size for every panel header. Defaults to `md`. */
|
|
29
|
+
size?: AccordionSize;
|
|
30
|
+
/** Disables every panel in the accordion. */
|
|
31
|
+
disabled?: boolean;
|
|
32
|
+
/** `<AccordionItem>` children (used when `items` is not given). */
|
|
33
|
+
children?: ReactNode;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* A set of collapsible panels (settings sections, FAQs, grouped forms). **`exclusive`** picks
|
|
37
|
+
* single-open (`value` is a `string | null`) vs multi-open (`value` is a `string[]`); both are
|
|
38
|
+
* controlled (`value` + `onChange`) or uncontrolled (`defaultValue`). Supply panels via the
|
|
39
|
+
* data-driven `items` prop or as `<AccordionItem>` children — the group shares the open state, `size`,
|
|
40
|
+
* and `disabled` via context, and each body folds with the shared `grid-template-rows` animation
|
|
41
|
+
* (like `Card`'s `collapsible`). Token-only styling.
|
|
42
|
+
*/
|
|
43
|
+
export declare const Accordion: import("react").ForwardRefExoticComponent<AccordionProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
import type { IconName } from '../../icons/names';
|
|
3
|
+
export type AccordionSize = 'sm' | 'md' | 'lg';
|
|
4
|
+
/** A data-driven panel for the `items` prop. */
|
|
5
|
+
export interface AccordionItemData {
|
|
6
|
+
value: string;
|
|
7
|
+
label: ReactNode;
|
|
8
|
+
/** Leading header icon — a known `IconName` or any node. */
|
|
9
|
+
icon?: IconName | ReactNode;
|
|
10
|
+
/** Collapsible body content. */
|
|
11
|
+
content: ReactNode;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface AccordionProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {
|
|
15
|
+
/**
|
|
16
|
+
* Single-open (`value` is a `string | null` — opening one closes the others) vs multi-open (`value`
|
|
17
|
+
* is a `string[]`). Defaults to `false` (multiple).
|
|
18
|
+
*/
|
|
19
|
+
exclusive?: boolean;
|
|
20
|
+
/** Controlled open value — a `string | null` when `exclusive`, else a `string[]`. */
|
|
21
|
+
value?: string | string[] | null;
|
|
22
|
+
/** Initial open value for uncontrolled use (same shape as `value`). */
|
|
23
|
+
defaultValue?: string | string[] | null;
|
|
24
|
+
/** Fires with the next open value (matches the `exclusive` shape). */
|
|
25
|
+
onChange?: (value: string | string[] | null) => void;
|
|
26
|
+
/** Data-driven panels — an alternative to passing `<AccordionItem>` children. */
|
|
27
|
+
items?: AccordionItemData[];
|
|
28
|
+
/** Preset size for every panel header. Defaults to `md`. */
|
|
29
|
+
size?: AccordionSize;
|
|
30
|
+
/** Disables every panel in the accordion. */
|
|
31
|
+
disabled?: boolean;
|
|
32
|
+
/** `<AccordionItem>` children (used when `items` is not given). */
|
|
33
|
+
children?: ReactNode;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* A set of collapsible panels (settings sections, FAQs, grouped forms). **`exclusive`** picks
|
|
37
|
+
* single-open (`value` is a `string | null`) vs multi-open (`value` is a `string[]`); both are
|
|
38
|
+
* controlled (`value` + `onChange`) or uncontrolled (`defaultValue`). Supply panels via the
|
|
39
|
+
* data-driven `items` prop or as `<AccordionItem>` children — the group shares the open state, `size`,
|
|
40
|
+
* and `disabled` via context, and each body folds with the shared `grid-template-rows` animation
|
|
41
|
+
* (like `Card`'s `collapsible`). Token-only styling.
|
|
42
|
+
*/
|
|
43
|
+
export declare const Accordion: import("react").ForwardRefExoticComponent<AccordionProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
import { type IconName } from '../../icons/names';
|
|
3
|
+
export interface AccordionItemProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
4
|
+
/** This item's identity within the `Accordion` (matched against the open value/values). */
|
|
5
|
+
value: string;
|
|
6
|
+
/** Header label. */
|
|
7
|
+
label: ReactNode;
|
|
8
|
+
/** Leading header icon — a known `IconName` or any node. */
|
|
9
|
+
icon?: IconName | ReactNode;
|
|
10
|
+
/** Disable this item (the group's `disabled` also applies). */
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
/** Collapsible body content. */
|
|
13
|
+
children?: ReactNode;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* One collapsible panel inside an `<Accordion>` — a header (`label` + optional `icon` + a chevron that
|
|
17
|
+
* rotates) that toggles a smoothly-folding body (`grid-template-rows` animation). Reads the open state,
|
|
18
|
+
* size, and disabled flag from the surrounding `Accordion` via context.
|
|
19
|
+
*/
|
|
20
|
+
export declare const AccordionItem: import("react").ForwardRefExoticComponent<AccordionItemProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
import { type IconName } from '../../icons/names';
|
|
3
|
+
export interface AccordionItemProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
4
|
+
/** This item's identity within the `Accordion` (matched against the open value/values). */
|
|
5
|
+
value: string;
|
|
6
|
+
/** Header label. */
|
|
7
|
+
label: ReactNode;
|
|
8
|
+
/** Leading header icon — a known `IconName` or any node. */
|
|
9
|
+
icon?: IconName | ReactNode;
|
|
10
|
+
/** Disable this item (the group's `disabled` also applies). */
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
/** Collapsible body content. */
|
|
13
|
+
children?: ReactNode;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* One collapsible panel inside an `<Accordion>` — a header (`label` + optional `icon` + a chevron that
|
|
17
|
+
* rotates) that toggles a smoothly-folding body (`grid-template-rows` animation). Reads the open state,
|
|
18
|
+
* size, and disabled flag from the surrounding `Accordion` via context.
|
|
19
|
+
*/
|
|
20
|
+
export declare const AccordionItem: import("react").ForwardRefExoticComponent<AccordionItemProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AccordionSize } from './Accordion';
|
|
2
|
+
/** Shared state an `<Accordion>` hands down to its `<AccordionItem>`s via context. */
|
|
3
|
+
export interface AccordionContextValue {
|
|
4
|
+
/** Whether a given item value is currently open. */
|
|
5
|
+
isOpen: (value: string) => boolean;
|
|
6
|
+
/** Toggle an item open/closed — called by a header on click. */
|
|
7
|
+
toggle: (value: string) => void;
|
|
8
|
+
size: AccordionSize;
|
|
9
|
+
disabled: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare const AccordionContext: import("react").Context<AccordionContextValue | null>;
|
|
12
|
+
/** Read the surrounding `<Accordion>`. Throws if an `<AccordionItem>` is used outside one. */
|
|
13
|
+
export declare function useAccordionContext(): AccordionContextValue;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AccordionSize } from './Accordion';
|
|
2
|
+
/** Shared state an `<Accordion>` hands down to its `<AccordionItem>`s via context. */
|
|
3
|
+
export interface AccordionContextValue {
|
|
4
|
+
/** Whether a given item value is currently open. */
|
|
5
|
+
isOpen: (value: string) => boolean;
|
|
6
|
+
/** Toggle an item open/closed — called by a header on click. */
|
|
7
|
+
toggle: (value: string) => void;
|
|
8
|
+
size: AccordionSize;
|
|
9
|
+
disabled: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare const AccordionContext: import("react").Context<AccordionContextValue | null>;
|
|
12
|
+
/** Read the surrounding `<Accordion>`. Throws if an `<AccordionItem>` is used outside one. */
|
|
13
|
+
export declare function useAccordionContext(): AccordionContextValue;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("../../Accordion-Dy_dM79Y.cjs");exports.Accordion=o.Accordion;exports.AccordionItem=o.AccordionItem;exports.default=o.Accordion;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
import { type IconName } from '../../icons/names';
|
|
3
|
+
import { type ThemeColor } from '../../theme';
|
|
4
|
+
export type AlertVariant = 'contained' | 'filled' | 'outlined' | 'text';
|
|
5
|
+
export interface AlertProps extends Omit<HTMLAttributes<HTMLDivElement>, 'color' | 'title'> {
|
|
6
|
+
/** Tint style. Defaults to `filled` (the soft tint). */
|
|
7
|
+
variant?: AlertVariant;
|
|
8
|
+
/** Brand / semantic palette token that tints the alert. Defaults to `info`. */
|
|
9
|
+
color?: ThemeColor;
|
|
10
|
+
/**
|
|
11
|
+
* Leading icon — a known `IconName`, any node, or `false` to hide it. Defaults to the semantic icon
|
|
12
|
+
* for `color` (success → `TickCircle`, error → `CloseCircle`, warning → `Warning`, info → `InfoCircle`).
|
|
13
|
+
*/
|
|
14
|
+
icon?: IconName | ReactNode | false;
|
|
15
|
+
/** Trailing action (e.g. an `UNDO` button), placed before the close button. */
|
|
16
|
+
action?: ReactNode;
|
|
17
|
+
/** When provided, a trailing × close button appears that calls this. */
|
|
18
|
+
onClose?: () => void;
|
|
19
|
+
/** Accessible label for the close button. Defaults to `"Close"`. */
|
|
20
|
+
closeLabel?: string;
|
|
21
|
+
/** Alert message. */
|
|
22
|
+
children?: ReactNode;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* A message banner — the library's inline feedback surface (info, success, warning, error). Tinted by
|
|
26
|
+
* `color` via the shared `--tz-btn-rgb` pattern across the 4 standard `variant`s; a semantic leading
|
|
27
|
+
* `icon` is auto-picked per color (override with `icon`, or `icon={false}` to drop it). An optional
|
|
28
|
+
* `action` slot (e.g. an `UNDO` button) and an `onClose` × button trail the message. `role="alert"`.
|
|
29
|
+
*/
|
|
30
|
+
export declare const Alert: import("react").ForwardRefExoticComponent<AlertProps & import("react").RefAttributes<HTMLDivElement>>;
|