@intlayer/design-system 7.5.10 → 7.5.12
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/esm/components/Accordion/Accordion.mjs +1 -1
- package/dist/esm/components/Avatar/index.mjs +1 -1
- package/dist/esm/components/Breadcrumb/index.mjs +1 -1
- package/dist/esm/components/Browser/Browser.mjs +1 -1
- package/dist/esm/components/Carousel/index.mjs +1 -1
- package/dist/esm/components/CollapsibleTable/CollapsibleTable.mjs +1 -1
- package/dist/esm/components/Container/index.mjs +7 -2
- package/dist/esm/components/Container/index.mjs.map +1 -1
- package/dist/esm/components/ContentEditor/ContentEditor.mjs +1 -1
- package/dist/esm/components/ContentEditor/ContentEditorInput.mjs +1 -1
- package/dist/esm/components/ContentEditor/ContentEditorTextArea.mjs +2 -2
- package/dist/esm/components/CopyButton/index.mjs +1 -1
- package/dist/esm/components/CopyToClipboard/index.mjs +1 -1
- package/dist/esm/components/DictionaryEditor/DictionaryEditor.mjs +1 -1
- package/dist/esm/components/DictionaryEditor/NodeWrapper/FileWrapper.mjs +1 -1
- package/dist/esm/components/DictionaryEditor/NodeWrapper/StringWrapper.mjs +1 -1
- package/dist/esm/components/DictionaryEditor/NodeWrapper/index.mjs +1 -1
- package/dist/esm/components/DictionaryFieldEditor/ContentEditor.mjs +1 -1
- package/dist/esm/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs +3 -3
- package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs +1 -1
- package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs +4 -4
- package/dist/esm/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs +2 -2
- package/dist/esm/components/DictionaryFieldEditor/JSONEditor.mjs +1 -1
- package/dist/esm/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs +2 -2
- package/dist/esm/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs +4 -4
- package/dist/esm/components/DictionaryFieldEditor/StructureEditor.mjs +1 -1
- package/dist/esm/components/DictionaryFieldEditor/StructureView/StructureView.mjs +1 -1
- package/dist/esm/components/EditableField/EditableFieldLayout.mjs +1 -1
- package/dist/esm/components/Footer/index.mjs +1 -1
- package/dist/esm/components/Footer/index.mjs.map +1 -1
- package/dist/esm/components/Form/FormItem.mjs +3 -2
- package/dist/esm/components/Form/FormItem.mjs.map +1 -1
- package/dist/esm/components/Form/elements/OTPElement.mjs +1 -1
- package/dist/esm/components/Form/layout/FormLabelLayout.mjs +1 -0
- package/dist/esm/components/Form/layout/FormLabelLayout.mjs.map +1 -1
- package/dist/esm/components/HideShow/index.mjs +1 -1
- package/dist/esm/components/IDE/FileTree.mjs +1 -1
- package/dist/esm/components/Input/InputPassword.mjs +1 -1
- package/dist/esm/components/Input/OTPInput.mjs +1 -1
- package/dist/esm/components/KeyboardScreenAdapter/index.mjs +1 -1
- package/dist/esm/components/KeyboardShortcut/KeyboardShortcut.mjs +1 -1
- package/dist/esm/components/LanguageBackground/index.mjs +2 -1
- package/dist/esm/components/LanguageBackground/index.mjs.map +1 -1
- package/dist/esm/components/Link/Link.mjs +1 -1
- package/dist/esm/components/Link/Link.mjs.map +1 -1
- package/dist/esm/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs +2 -2
- package/dist/esm/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs +1 -1
- package/dist/esm/components/Modal/Modal.mjs +23 -23
- package/dist/esm/components/Modal/Modal.mjs.map +1 -1
- package/dist/esm/components/Navbar/MobileNavbar.mjs +2 -2
- package/dist/esm/components/Pagination/Pagination.mjs +2 -2
- package/dist/esm/components/RightDrawer/RightDrawer.mjs +3 -3
- package/dist/esm/components/Select/Multiselect.mjs +1 -1
- package/dist/esm/components/SwitchSelector/index.mjs +1 -1
- package/dist/esm/components/Tab/Tab.mjs +1 -1
- package/dist/esm/components/TabSelector/TabSelector.mjs +1 -1
- package/dist/esm/components/Table/Table.mjs +1 -1
- package/dist/esm/components/TextArea/AutocompleteTextArea.mjs +1 -1
- package/dist/esm/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.mjs +1 -1
- package/dist/esm/components/ThemeSwitcherDropDown/MobileThemeSwitcher.mjs +1 -1
- package/dist/esm/components/Toaster/Toast.mjs +2 -2
- package/dist/esm/components/index.mjs +3 -3
- package/dist/esm/dist/esm/components/Container/index.mjs +133 -0
- package/dist/esm/dist/esm/components/Container/index.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/Flag.mjs +330 -0
- package/dist/esm/dist/esm/components/Flags/Flag.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ae.mjs +37 -0
- package/dist/esm/dist/esm/components/Flags/ae.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/af.mjs +97 -0
- package/dist/esm/dist/esm/components/Flags/af.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/al.mjs +38 -0
- package/dist/esm/dist/esm/components/Flags/al.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/am.mjs +34 -0
- package/dist/esm/dist/esm/components/Flags/am.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ar.mjs +161 -0
- package/dist/esm/dist/esm/components/Flags/ar.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/at.mjs +31 -0
- package/dist/esm/dist/esm/components/Flags/at.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/au.mjs +43 -0
- package/dist/esm/dist/esm/components/Flags/au.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/az.mjs +47 -0
- package/dist/esm/dist/esm/components/Flags/az.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ba.mjs +41 -0
- package/dist/esm/dist/esm/components/Flags/ba.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/bd.mjs +33 -0
- package/dist/esm/dist/esm/components/Flags/bd.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/be.mjs +37 -0
- package/dist/esm/dist/esm/components/Flags/be.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/bg.mjs +34 -0
- package/dist/esm/dist/esm/components/Flags/bg.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/bh.mjs +31 -0
- package/dist/esm/dist/esm/components/Flags/bh.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/bn.mjs +43 -0
- package/dist/esm/dist/esm/components/Flags/bn.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/bo.mjs +3031 -0
- package/dist/esm/dist/esm/components/Flags/bo.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/br.mjs +107 -0
- package/dist/esm/dist/esm/components/Flags/br.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/bw.mjs +34 -0
- package/dist/esm/dist/esm/components/Flags/bw.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/by.mjs +46 -0
- package/dist/esm/dist/esm/components/Flags/by.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/bz.mjs +339 -0
- package/dist/esm/dist/esm/components/Flags/bz.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ca.mjs +31 -0
- package/dist/esm/dist/esm/components/Flags/ca.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ch.mjs +31 -0
- package/dist/esm/dist/esm/components/Flags/ch.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/cl.mjs +44 -0
- package/dist/esm/dist/esm/components/Flags/cl.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/cn.mjs +58 -0
- package/dist/esm/dist/esm/components/Flags/cn.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/co.mjs +37 -0
- package/dist/esm/dist/esm/components/Flags/co.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/cr.mjs +37 -0
- package/dist/esm/dist/esm/components/Flags/cr.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/cu.mjs +44 -0
- package/dist/esm/dist/esm/components/Flags/cu.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/cv.mjs +44 -0
- package/dist/esm/dist/esm/components/Flags/cv.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/cz.mjs +34 -0
- package/dist/esm/dist/esm/components/Flags/cz.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/de.mjs +34 -0
- package/dist/esm/dist/esm/components/Flags/de.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/dj.mjs +44 -0
- package/dist/esm/dist/esm/components/Flags/dj.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/dk.mjs +34 -0
- package/dist/esm/dist/esm/components/Flags/dk.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/do.mjs +212 -0
- package/dist/esm/dist/esm/components/Flags/do.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/dz.mjs +34 -0
- package/dist/esm/dist/esm/components/Flags/dz.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ec.mjs +623 -0
- package/dist/esm/dist/esm/components/Flags/ec.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ee.mjs +34 -0
- package/dist/esm/dist/esm/components/Flags/ee.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/eg.mjs +113 -0
- package/dist/esm/dist/esm/components/Flags/eg.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/es-ct.mjs +33 -0
- package/dist/esm/dist/esm/components/Flags/es-ct.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/es-ga.mjs +793 -0
- package/dist/esm/dist/esm/components/Flags/es-ga.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/es-pv.mjs +34 -0
- package/dist/esm/dist/esm/components/Flags/es-pv.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/es.mjs +2227 -0
- package/dist/esm/dist/esm/components/Flags/es.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/et.mjs +51 -0
- package/dist/esm/dist/esm/components/Flags/et.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/fi.mjs +34 -0
- package/dist/esm/dist/esm/components/Flags/fi.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/fo.mjs +42 -0
- package/dist/esm/dist/esm/components/Flags/fo.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/fr.mjs +34 -0
- package/dist/esm/dist/esm/components/Flags/fr.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/gb-wls.mjs +44 -0
- package/dist/esm/dist/esm/components/Flags/gb-wls.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/gb.mjs +40 -0
- package/dist/esm/dist/esm/components/Flags/gb.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ge.mjs +38 -0
- package/dist/esm/dist/esm/components/Flags/ge.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/gh.mjs +37 -0
- package/dist/esm/dist/esm/components/Flags/gh.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/gr.mjs +67 -0
- package/dist/esm/dist/esm/components/Flags/gr.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/gt.mjs +462 -0
- package/dist/esm/dist/esm/components/Flags/gt.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/gw.mjs +68 -0
- package/dist/esm/dist/esm/components/Flags/gw.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/hk.mjs +45 -0
- package/dist/esm/dist/esm/components/Flags/hk.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/hn.mjs +84 -0
- package/dist/esm/dist/esm/components/Flags/hn.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/hr.mjs +95 -0
- package/dist/esm/dist/esm/components/Flags/hr.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/hu.mjs +34 -0
- package/dist/esm/dist/esm/components/Flags/hu.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/id.mjs +31 -0
- package/dist/esm/dist/esm/components/Flags/id.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ie.mjs +37 -0
- package/dist/esm/dist/esm/components/Flags/ie.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/il.mjs +47 -0
- package/dist/esm/dist/esm/components/Flags/il.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/in.mjs +75 -0
- package/dist/esm/dist/esm/components/Flags/in.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/iq.mjs +41 -0
- package/dist/esm/dist/esm/components/Flags/iq.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ir.mjs +113 -0
- package/dist/esm/dist/esm/components/Flags/ir.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/is.mjs +41 -0
- package/dist/esm/dist/esm/components/Flags/is.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/it.mjs +37 -0
- package/dist/esm/dist/esm/components/Flags/it.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/jm.mjs +37 -0
- package/dist/esm/dist/esm/components/Flags/jm.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/jo.mjs +49 -0
- package/dist/esm/dist/esm/components/Flags/jo.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/jp.mjs +42 -0
- package/dist/esm/dist/esm/components/Flags/jp.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ke.mjs +92 -0
- package/dist/esm/dist/esm/components/Flags/ke.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/kg.mjs +50 -0
- package/dist/esm/dist/esm/components/Flags/kg.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/kh.mjs +77 -0
- package/dist/esm/dist/esm/components/Flags/kh.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/km.mjs +53 -0
- package/dist/esm/dist/esm/components/Flags/km.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/kr.mjs +65 -0
- package/dist/esm/dist/esm/components/Flags/kr.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/kw.mjs +45 -0
- package/dist/esm/dist/esm/components/Flags/kw.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/kz.mjs +95 -0
- package/dist/esm/dist/esm/components/Flags/kz.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/la.mjs +40 -0
- package/dist/esm/dist/esm/components/Flags/la.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/lb.mjs +51 -0
- package/dist/esm/dist/esm/components/Flags/lb.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/li.mjs +137 -0
- package/dist/esm/dist/esm/components/Flags/li.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/lk.mjs +74 -0
- package/dist/esm/dist/esm/components/Flags/lk.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/lt.mjs +47 -0
- package/dist/esm/dist/esm/components/Flags/lt.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/lu.mjs +34 -0
- package/dist/esm/dist/esm/components/Flags/lu.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/lv.mjs +31 -0
- package/dist/esm/dist/esm/components/Flags/lv.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ly.mjs +40 -0
- package/dist/esm/dist/esm/components/Flags/ly.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ma.mjs +33 -0
- package/dist/esm/dist/esm/components/Flags/ma.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/mc.mjs +34 -0
- package/dist/esm/dist/esm/components/Flags/mc.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/md.mjs +318 -0
- package/dist/esm/dist/esm/components/Flags/md.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/mk.mjs +38 -0
- package/dist/esm/dist/esm/components/Flags/mk.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/mm.mjs +59 -0
- package/dist/esm/dist/esm/components/Flags/mm.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/mn.mjs +60 -0
- package/dist/esm/dist/esm/components/Flags/mn.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/mo.mjs +43 -0
- package/dist/esm/dist/esm/components/Flags/mo.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/mr.mjs +38 -0
- package/dist/esm/dist/esm/components/Flags/mr.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/mt.mjs +154 -0
- package/dist/esm/dist/esm/components/Flags/mt.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/mv.mjs +41 -0
- package/dist/esm/dist/esm/components/Flags/mv.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/mx.mjs +1366 -0
- package/dist/esm/dist/esm/components/Flags/mx.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/my.mjs +79 -0
- package/dist/esm/dist/esm/components/Flags/my.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/mz.mjs +93 -0
- package/dist/esm/dist/esm/components/Flags/mz.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ng.mjs +34 -0
- package/dist/esm/dist/esm/components/Flags/ng.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ni.mjs +452 -0
- package/dist/esm/dist/esm/components/Flags/ni.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/nl.mjs +34 -0
- package/dist/esm/dist/esm/components/Flags/nl.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/no.mjs +40 -0
- package/dist/esm/dist/esm/components/Flags/no.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/np.mjs +39 -0
- package/dist/esm/dist/esm/components/Flags/np.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/nz.mjs +105 -0
- package/dist/esm/dist/esm/components/Flags/nz.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/om.mjs +540 -0
- package/dist/esm/dist/esm/components/Flags/om.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/pa.mjs +47 -0
- package/dist/esm/dist/esm/components/Flags/pa.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/pe.mjs +31 -0
- package/dist/esm/dist/esm/components/Flags/pe.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ph.mjs +37 -0
- package/dist/esm/dist/esm/components/Flags/ph.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/pk.mjs +39 -0
- package/dist/esm/dist/esm/components/Flags/pk.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/pl.mjs +31 -0
- package/dist/esm/dist/esm/components/Flags/pl.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/pr.mjs +44 -0
- package/dist/esm/dist/esm/components/Flags/pr.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ps.mjs +46 -0
- package/dist/esm/dist/esm/components/Flags/ps.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/pt.mjs +153 -0
- package/dist/esm/dist/esm/components/Flags/pt.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/py.mjs +62 -0
- package/dist/esm/dist/esm/components/Flags/py.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/qa.mjs +31 -0
- package/dist/esm/dist/esm/components/Flags/qa.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ro.mjs +37 -0
- package/dist/esm/dist/esm/components/Flags/ro.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/rs.mjs +821 -0
- package/dist/esm/dist/esm/components/Flags/rs.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ru.mjs +34 -0
- package/dist/esm/dist/esm/components/Flags/ru.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/sa.mjs +80 -0
- package/dist/esm/dist/esm/components/Flags/sa.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/sd.mjs +45 -0
- package/dist/esm/dist/esm/components/Flags/sd.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/se.mjs +31 -0
- package/dist/esm/dist/esm/components/Flags/se.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/sg.mjs +43 -0
- package/dist/esm/dist/esm/components/Flags/sg.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/si.mjs +60 -0
- package/dist/esm/dist/esm/components/Flags/si.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/sk.mjs +46 -0
- package/dist/esm/dist/esm/components/Flags/sk.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/so.mjs +38 -0
- package/dist/esm/dist/esm/components/Flags/so.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/st.mjs +74 -0
- package/dist/esm/dist/esm/components/Flags/st.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/sv.mjs +1736 -0
- package/dist/esm/dist/esm/components/Flags/sv.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/sy.mjs +37 -0
- package/dist/esm/dist/esm/components/Flags/sy.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/td.mjs +34 -0
- package/dist/esm/dist/esm/components/Flags/td.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/th.mjs +34 -0
- package/dist/esm/dist/esm/components/Flags/th.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/tl.mjs +44 -0
- package/dist/esm/dist/esm/components/Flags/tl.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/tn.mjs +31 -0
- package/dist/esm/dist/esm/components/Flags/tn.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/tr.mjs +37 -0
- package/dist/esm/dist/esm/components/Flags/tr.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/tt.mjs +36 -0
- package/dist/esm/dist/esm/components/Flags/tt.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/tw.mjs +41 -0
- package/dist/esm/dist/esm/components/Flags/tw.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/tz.mjs +45 -0
- package/dist/esm/dist/esm/components/Flags/tz.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ua.mjs +34 -0
- package/dist/esm/dist/esm/components/Flags/ua.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ug.mjs +146 -0
- package/dist/esm/dist/esm/components/Flags/ug.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/us.mjs +46 -0
- package/dist/esm/dist/esm/components/Flags/us.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/uy.mjs +64 -0
- package/dist/esm/dist/esm/components/Flags/uy.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/uz.mjs +110 -0
- package/dist/esm/dist/esm/components/Flags/uz.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ve.mjs +85 -0
- package/dist/esm/dist/esm/components/Flags/ve.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/vn.mjs +38 -0
- package/dist/esm/dist/esm/components/Flags/vn.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/xx.mjs +36 -0
- package/dist/esm/dist/esm/components/Flags/xx.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/ye.mjs +37 -0
- package/dist/esm/dist/esm/components/Flags/ye.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/za.mjs +52 -0
- package/dist/esm/dist/esm/components/Flags/za.mjs.map +1 -0
- package/dist/esm/dist/esm/components/Flags/zw.mjs +71 -0
- package/dist/esm/dist/esm/components/Flags/zw.mjs.map +1 -0
- package/dist/esm/dist/esm/utils/cn.mjs +9 -0
- package/dist/esm/dist/esm/utils/cn.mjs.map +1 -0
- package/dist/esm/hooks/index.mjs +7 -7
- package/dist/esm/hooks/reactQuery.mjs +102 -1
- package/dist/esm/hooks/reactQuery.mjs.map +1 -1
- package/dist/esm/providers/ReactQueryProvider.mjs +5 -4
- package/dist/esm/providers/ReactQueryProvider.mjs.map +1 -1
- package/dist/types/components/Badge/index.d.ts +2 -2
- package/dist/types/components/Breadcrumb/breadcrumb.content.d.ts +3 -3
- package/dist/types/components/Breadcrumb/index.d.ts +2 -2
- package/dist/types/components/Browser/Browser.d.ts +2 -2
- package/dist/types/components/Browser/Browser.d.ts.map +1 -1
- package/dist/types/components/Browser/browser.content.d.ts +17 -17
- package/dist/types/components/Browser/browser.content.d.ts.map +1 -1
- package/dist/types/components/Button/Button.d.ts +7 -7
- package/dist/types/components/Carousel/index.content.d.ts +8 -8
- package/dist/types/components/CollapsibleTable/CollapsibleTable.d.ts +3 -3
- package/dist/types/components/CollapsibleTable/CollapsibleTable.d.ts.map +1 -1
- package/dist/types/components/Command/index.d.ts +17 -17
- package/dist/types/components/Container/index.d.ts +5 -5
- package/dist/types/components/Container/index.d.ts.map +1 -1
- package/dist/types/components/CopyButton/CopyButton.content.d.ts +3 -3
- package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.d.ts +25 -25
- package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.content.d.ts +9 -9
- package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts +33 -33
- package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.d.ts +25 -25
- package/dist/types/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.d.ts +25 -25
- package/dist/types/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts +33 -33
- package/dist/types/components/DictionaryFieldEditor/StructureView/structureView.content.d.ts +9 -9
- package/dist/types/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.d.ts +7 -7
- package/dist/types/components/DictionaryFieldEditor/dictionaryFieldEditor.content.d.ts +5 -5
- package/dist/types/components/DictionaryFieldEditor/nodeTypeSelector.content.d.ts +31 -31
- package/dist/types/components/DictionaryFieldEditor/nodeTypeSelector.content.d.ts.map +1 -1
- package/dist/types/components/EditableField/EditableFieldInput.d.ts.map +1 -1
- package/dist/types/components/ExpandCollapse/expandCollapse.content.d.ts +4 -4
- package/dist/types/components/Form/FormBase.d.ts +2 -2
- package/dist/types/components/Form/FormBase.d.ts.map +1 -1
- package/dist/types/components/Form/FormField.d.ts +2 -2
- package/dist/types/components/Form/FormField.d.ts.map +1 -1
- package/dist/types/components/Form/FormItem.d.ts +2 -2
- package/dist/types/components/Form/FormItem.d.ts.map +1 -1
- package/dist/types/components/Form/elements/EditableFieldTextAreaElement.d.ts +2 -2
- package/dist/types/components/Form/elements/FormElement.d.ts +2 -2
- package/dist/types/components/Form/elements/MultiselectElement.d.ts +2 -2
- package/dist/types/components/Form/elements/OTPElement.d.ts +2 -2
- package/dist/types/components/Form/elements/SelectElement.d.ts +2 -2
- package/dist/types/components/Form/elements/SwitchSelectorElement.d.ts +2 -2
- package/dist/types/components/IDE/CodeContext.d.ts +2 -2
- package/dist/types/components/IDE/CodeContext.d.ts.map +1 -1
- package/dist/types/components/IDE/FileTree.d.ts.map +1 -1
- package/dist/types/components/IDE/code.content.d.ts +5 -5
- package/dist/types/components/IDE/code.content.d.ts.map +1 -1
- package/dist/types/components/IDE/copyCode.content.d.ts +5 -5
- package/dist/types/components/IDE/selectors.content.d.ts +13 -13
- package/dist/types/components/Input/Checkbox.d.ts +2 -2
- package/dist/types/components/Input/Checkbox.d.ts.map +1 -1
- package/dist/types/components/Input/Input.d.ts +1 -1
- package/dist/types/components/Input/Input.d.ts.map +1 -1
- package/dist/types/components/Input/OTPInput.d.ts +2 -2
- package/dist/types/components/Input/SearchInput.d.ts +2 -2
- package/dist/types/components/Link/Link.d.ts +5 -5
- package/dist/types/components/Link/Link.d.ts.map +1 -1
- package/dist/types/components/Loader/index.content.d.ts +3 -3
- package/dist/types/components/Loader/spinner.d.ts +2 -2
- package/dist/types/components/LocaleSwitcherContentDropDown/localeSwitcher.content.d.ts +17 -17
- package/dist/types/components/LocaleSwitcherContentDropDown/localeSwitcher.content.d.ts.map +1 -1
- package/dist/types/components/LocaleSwitcherDropDown/localeSwitcher.content.d.ts +13 -13
- package/dist/types/components/MaxWidthSmoother/index.d.ts +2 -2
- package/dist/types/components/MaxWidthSmoother/index.d.ts.map +1 -1
- package/dist/types/components/Modal/Modal.d.ts +4 -16
- package/dist/types/components/Modal/Modal.d.ts.map +1 -1
- package/dist/types/components/Navbar/Burger.d.ts +2 -2
- package/dist/types/components/Navbar/DesktopNavbar.d.ts +2 -2
- package/dist/types/components/Navbar/MobileNavbar.d.ts +2 -2
- package/dist/types/components/Navbar/index.d.ts +2 -2
- package/dist/types/components/Pagination/Pagination.d.ts +4 -4
- package/dist/types/components/Pagination/Pagination.d.ts.map +1 -1
- package/dist/types/components/Pagination/pagination.content.d.ts +11 -11
- package/dist/types/components/RightDrawer/rightDrawer.content.d.ts +5 -5
- package/dist/types/components/RightDrawer/rightDrawer.content.d.ts.map +1 -1
- package/dist/types/components/RightDrawer/useRightDrawerStore.d.ts +2 -2
- package/dist/types/components/Select/Select.d.ts +3 -3
- package/dist/types/components/SocialNetworks/index.d.ts +2 -2
- package/dist/types/components/SwitchSelector/index.d.ts +4 -4
- package/dist/types/components/SwitchSelector/index.d.ts.map +1 -1
- package/dist/types/components/Tab/Tab.d.ts +4 -4
- package/dist/types/components/Tab/TabContext.d.ts +2 -2
- package/dist/types/components/TabSelector/TabSelector.d.ts +3 -3
- package/dist/types/components/TabSelector/TabSelector.d.ts.map +1 -1
- package/dist/types/components/Table/table.content.d.ts +3 -3
- package/dist/types/components/Tag/index.d.ts +5 -5
- package/dist/types/components/Terminal/terminal.content.d.ts +5 -5
- package/dist/types/components/Toaster/Toast.d.ts +2 -2
- package/dist/types/components/Toaster/Toaster.d.ts +2 -2
- package/dist/types/hooks/index.d.ts +2 -2
- package/dist/types/hooks/reactQuery.d.ts +19 -1
- package/dist/types/hooks/reactQuery.d.ts.map +1 -1
- package/dist/types/hooks/useItemSelector.d.ts.map +1 -1
- package/dist/types/hooks/useScrollBlockage/useScrollBlockageStore.d.ts +2 -2
- package/dist/types/providers/ReactQueryProvider.d.ts.map +1 -1
- package/package.json +14 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["LocalCard: FC<{ locale: string }>","LocalCardList: FC<{ localeList: string[]; className?: string }>","emptyArrayOfLocale: string[][]","arrayOfLocale: string[][]","LanguageSection: FC<HTMLAttributes<HTMLElement>>","LanguageBackground: FC<PropsWithChildren>"],"sources":["../../../../src/components/LanguageBackground/index.tsx"],"sourcesContent":["'use client';\n\nimport { Container, Flag } from '@intlayer/design-system';\nimport { cn } from '@utils/cn';\nimport { getHTMLTextDir, getLocaleName, type Locale, Locales } from 'intlayer';\nimport {\n type FC,\n type HTMLAttributes,\n type PropsWithChildren,\n useEffect,\n useState,\n} from 'react';\n\nconst shuffleArray = (array: string[], limit?: number) => {\n const shuffled = [...array];\n\n for (let i = shuffled.length - 1; i > 0; i--) {\n const randomIndex = Math.floor(Math.random() * (i + 1));\n\n [shuffled[i], shuffled[randomIndex]] = [shuffled[randomIndex], shuffled[i]];\n }\n\n return limit ? shuffled.slice(0, limit) : shuffled;\n};\n\nconst LocalCard: FC<{ locale: string }> = ({ locale, ...props }) => (\n <div\n className=\"group z-10 mx-8 inline-flex shrink-0 transition-transform duration-300 hover:scale-105\"\n {...props}\n >\n <Container\n roundedSize=\"xl\"\n className=\"flex flex-row items-center gap-5 p-3\"\n >\n <Flag\n locale={locale as Locale}\n className=\"max-h-5 max-w-5 rounded-sm grayscale-80 transition duration-300 group-hover:grayscale-0\"\n width={640}\n height={480}\n loading=\"lazy\"\n />\n <span\n dir={getHTMLTextDir(locale as Locale)}\n lang={locale as Locale}\n className=\"flex text-nowrap\"\n >\n {getLocaleName(locale as Locale)}\n </span>\n </Container>\n </div>\n);\n\nconst LocalCardList: FC<{ localeList: string[]; className?: string }> = ({\n localeList,\n className,\n ...props\n}) => (\n <div className=\"relative flex w-full overflow-hidden\" {...props}>\n <div\n className={cn('inline-flex shrink-0 will-change-transform', className)}\n >\n {/* First set of cards */}\n {localeList.map((locale, index) => (\n <LocalCard key={`${locale}-first-${index}`} locale={locale} />\n ))}\n {/* Duplicate set for seamless loop */}\n {localeList.map((locale, index) => (\n <LocalCard key={`${locale}-second-${index}`} locale={locale} />\n ))}\n </div>\n </div>\n);\n\nconst NUM_OF_LOCALES = 15;\n\nconst emptyArrayOfLocale: string[][] = new Array(4).fill(0).map(() => []);\nconst arrayOfLocale: string[][] = new Array(4)\n .fill(0)\n .map(() => shuffleArray(Object.values(Locales.ALL_LOCALES), NUM_OF_LOCALES));\n\nexport const LanguageSection: FC<HTMLAttributes<HTMLElement>> = ({\n className,\n ...props\n}) => {\n const [localeList, setLocaleList] = useState(emptyArrayOfLocale);\n const [firstPart, secondPart, thirdPart, fourthPart] = localeList;\n\n useEffect(() => {\n setLocaleList(arrayOfLocale);\n }, []);\n\n return (\n <section\n className={cn(\n 'mask-[linear-gradient(to_right,transparent_0,black_128px,black_calc(100%-128px),transparent_100%)] my-10 w-full overflow-hidden',\n className\n )}\n {...props}\n >\n <div className=\"relative flex w-full flex-col gap-5 py-3\">\n <LocalCardList localeList={firstPart} className=\"horizontal-loop-1\" />\n <LocalCardList localeList={secondPart} className=\"horizontal-loop-2\" />\n <LocalCardList localeList={thirdPart} className=\"horizontal-loop-1\" />\n <LocalCardList localeList={fourthPart} className=\"horizontal-loop-2\" />\n </div>\n </section>\n );\n};\n\nexport const LanguageBackground: FC<PropsWithChildren> = ({ children }) => (\n <>\n <div className=\"absolute top-0 left-0 z-0 flex size-full items-center justify-center\">\n <LanguageSection className=\"mt-[30%]\" />\n </div>\n {children}\n </>\n);\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["LocalCard: FC<{ locale: string }>","LocalCardList: FC<{ localeList: string[]; className?: string }>","emptyArrayOfLocale: string[][]","arrayOfLocale: string[][]","LanguageSection: FC<HTMLAttributes<HTMLElement>>","LanguageBackground: FC<PropsWithChildren>"],"sources":["../../../../src/components/LanguageBackground/index.tsx"],"sourcesContent":["'use client';\n\nimport { Container, Flag } from '@intlayer/design-system';\nimport { cn } from '@utils/cn';\nimport { getHTMLTextDir, getLocaleName, type Locale, Locales } from 'intlayer';\nimport {\n type FC,\n type HTMLAttributes,\n type PropsWithChildren,\n useEffect,\n useState,\n} from 'react';\n\nconst shuffleArray = (array: string[], limit?: number) => {\n const shuffled = [...array];\n\n for (let i = shuffled.length - 1; i > 0; i--) {\n const randomIndex = Math.floor(Math.random() * (i + 1));\n\n [shuffled[i], shuffled[randomIndex]] = [shuffled[randomIndex], shuffled[i]];\n }\n\n return limit ? shuffled.slice(0, limit) : shuffled;\n};\n\nconst LocalCard: FC<{ locale: string }> = ({ locale, ...props }) => (\n <div\n className=\"group z-10 mx-8 inline-flex shrink-0 transition-transform duration-300 hover:scale-105\"\n {...props}\n >\n <Container\n roundedSize=\"xl\"\n className=\"flex flex-row items-center gap-5 p-3\"\n >\n <Flag\n locale={locale as Locale}\n className=\"max-h-5 max-w-5 rounded-sm grayscale-80 transition duration-300 group-hover:grayscale-0\"\n width={640}\n height={480}\n loading=\"lazy\"\n />\n <span\n dir={getHTMLTextDir(locale as Locale)}\n lang={locale as Locale}\n className=\"flex text-nowrap\"\n >\n {getLocaleName(locale as Locale)}\n </span>\n </Container>\n </div>\n);\n\nconst LocalCardList: FC<{ localeList: string[]; className?: string }> = ({\n localeList,\n className,\n ...props\n}) => (\n <div className=\"relative flex w-full overflow-hidden\" {...props}>\n <div\n className={cn('inline-flex shrink-0 will-change-transform', className)}\n >\n {/* First set of cards */}\n {localeList.map((locale, index) => (\n <LocalCard key={`${locale}-first-${index}`} locale={locale} />\n ))}\n {/* Duplicate set for seamless loop */}\n {localeList.map((locale, index) => (\n <LocalCard key={`${locale}-second-${index}`} locale={locale} />\n ))}\n </div>\n </div>\n);\n\nconst NUM_OF_LOCALES = 15;\n\nconst emptyArrayOfLocale: string[][] = new Array(4).fill(0).map(() => []);\nconst arrayOfLocale: string[][] = new Array(4)\n .fill(0)\n .map(() => shuffleArray(Object.values(Locales.ALL_LOCALES), NUM_OF_LOCALES));\n\nexport const LanguageSection: FC<HTMLAttributes<HTMLElement>> = ({\n className,\n ...props\n}) => {\n const [localeList, setLocaleList] = useState(emptyArrayOfLocale);\n const [firstPart, secondPart, thirdPart, fourthPart] = localeList;\n\n useEffect(() => {\n setLocaleList(arrayOfLocale);\n }, []);\n\n return (\n <section\n className={cn(\n 'mask-[linear-gradient(to_right,transparent_0,black_128px,black_calc(100%-128px),transparent_100%)] my-10 w-full overflow-hidden',\n className\n )}\n {...props}\n >\n <div className=\"relative flex w-full flex-col gap-5 py-3\">\n <LocalCardList localeList={firstPart} className=\"horizontal-loop-1\" />\n <LocalCardList localeList={secondPart} className=\"horizontal-loop-2\" />\n <LocalCardList localeList={thirdPart} className=\"horizontal-loop-1\" />\n <LocalCardList localeList={fourthPart} className=\"horizontal-loop-2\" />\n </div>\n </section>\n );\n};\n\nexport const LanguageBackground: FC<PropsWithChildren> = ({ children }) => (\n <>\n <div className=\"absolute top-0 left-0 z-0 flex size-full items-center justify-center\">\n <LanguageSection className=\"mt-[30%]\" />\n </div>\n {children}\n </>\n);\n"],"mappings":";;;;;;;;;;AAaA,MAAM,gBAAgB,OAAiB,UAAmB;CACxD,MAAM,WAAW,CAAC,GAAG,MAAM;AAE3B,MAAK,IAAI,IAAI,SAAS,SAAS,GAAG,IAAI,GAAG,KAAK;EAC5C,MAAM,cAAc,KAAK,MAAM,KAAK,QAAQ,IAAI,IAAI,GAAG;AAEvD,GAAC,SAAS,IAAI,SAAS,gBAAgB,CAAC,SAAS,cAAc,SAAS,GAAG;;AAG7E,QAAO,QAAQ,SAAS,MAAM,GAAG,MAAM,GAAG;;AAG5C,MAAMA,aAAqC,EAAE,QAAQ,GAAG,YACtD,oBAAC;CACC,WAAU;CACV,GAAI;WAEJ,qBAAC;EACC,aAAY;EACZ,WAAU;aAEV,oBAAC;GACS;GACR,WAAU;GACV,OAAO;GACP,QAAQ;GACR,SAAQ;IACR,EACF,oBAAC;GACC,KAAK,eAAe,OAAiB;GACrC,MAAM;GACN,WAAU;aAET,cAAc,OAAiB;IAC3B;GACG;EACR;AAGR,MAAMC,iBAAmE,EACvE,YACA,WACA,GAAG,YAEH,oBAAC;CAAI,WAAU;CAAuC,GAAI;WACxD,qBAAC;EACC,WAAW,GAAG,8CAA8C,UAAU;aAGrE,WAAW,KAAK,QAAQ,UACvB,oBAAC,aAAmD,UAApC,GAAG,OAAO,SAAS,QAA2B,CAC9D,EAED,WAAW,KAAK,QAAQ,UACvB,oBAAC,aAAoD,UAArC,GAAG,OAAO,UAAU,QAA2B,CAC/D;GACE;EACF;AAGR,MAAM,iBAAiB;AAEvB,MAAMC,qBAAiC,IAAI,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,CAAC;AACzE,MAAMC,gBAA4B,IAAI,MAAM,EAAE,CAC3C,KAAK,EAAE,CACP,UAAU,aAAa,OAAO,OAAO,QAAQ,YAAY,EAAE,eAAe,CAAC;AAE9E,MAAaC,mBAAoD,EAC/D,WACA,GAAG,YACC;CACJ,MAAM,CAAC,YAAY,iBAAiB,SAAS,mBAAmB;CAChE,MAAM,CAAC,WAAW,YAAY,WAAW,cAAc;AAEvD,iBAAgB;AACd,gBAAc,cAAc;IAC3B,EAAE,CAAC;AAEN,QACE,oBAAC;EACC,WAAW,GACT,mIACA,UACD;EACD,GAAI;YAEJ,qBAAC;GAAI,WAAU;;IACb,oBAAC;KAAc,YAAY;KAAW,WAAU;MAAsB;IACtE,oBAAC;KAAc,YAAY;KAAY,WAAU;MAAsB;IACvE,oBAAC;KAAc,YAAY;KAAW,WAAU;MAAsB;IACtE,oBAAC;KAAc,YAAY;KAAY,WAAU;MAAsB;;IACnE;GACE;;AAId,MAAaC,sBAA6C,EAAE,eAC1D,8CACE,oBAAC;CAAI,WAAU;WACb,oBAAC,mBAAgB,WAAU,aAAa;EACpC,EACL,YACA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { cn } from "../../utils/cn.mjs";
|
|
2
|
-
import { ExternalLink, MoveRight } from "lucide-react";
|
|
3
2
|
import { isValidElement } from "react";
|
|
4
3
|
import { cva } from "class-variance-authority";
|
|
4
|
+
import { ExternalLink, MoveRight } from "lucide-react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { getLocalizedUrl } from "@intlayer/core";
|
|
7
7
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.mjs","names":["Link: FC<LinkProps>"],"sources":["../../../../src/components/Link/Link.tsx"],"sourcesContent":["import { getLocalizedUrl } from '@intlayer/core';\nimport type { LocalesValues } from '@intlayer/types';\nimport { cn } from '@utils/cn';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { ExternalLink, MoveRight } from 'lucide-react';\nimport {\n type AnchorHTMLAttributes,\n type DetailedHTMLProps,\n type FC,\n isValidElement,\n type ReactNode,\n} from 'react';\n\n/**\n * Visual style variants for Link component\n */\nexport enum LinkVariant {\n DEFAULT = 'default',\n INVISIBLE_LINK = 'invisible-link',\n BUTTON = 'button',\n BUTTON_OUTLINED = 'button-outlined',\n HOVERABLE = 'hoverable',\n}\n\n/**\n * Color theme variants for Link component\n */\nexport enum LinkColor {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n DESTRUCTIVE = 'destructive',\n NEUTRAL = 'neutral',\n LIGHT = 'light',\n DARK = 'dark',\n TEXT = 'text',\n TEXT_INVERSE = 'text-inverse',\n ERROR = 'error',\n SUCCESS = 'success',\n CUSTOM = 'custom',\n}\n\nexport enum LinkRoundedSize {\n NONE = 'none',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n TWO_XL = '2xl',\n THREE_XL = '3xl',\n FULL = 'full',\n}\n\nexport enum LinkSize {\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n CUSTOM = 'custom',\n}\n\nexport enum LinkUnderlined {\n DEFAULT = 'default',\n TRUE = 'true',\n FALSE = 'false',\n}\n\nexport const linkVariants = cva(\n 'gap-3 transition-all duration-300 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n [`${LinkVariant.DEFAULT}`]:\n 'h-auto justify-start border-inherit bg-current/0 px-1 underline-offset-4 hover:bg-current/0 hover:underline',\n [`${LinkVariant.INVISIBLE_LINK}`]:\n 'h-auto justify-start border-inherit bg-current/0 px-1 underline-offset-4 hover:bg-current/0',\n\n [`${LinkVariant.BUTTON}`]:\n 'relative flex cursor-pointer flex-row items-center justify-center gap-2 rounded-full bg-current text-center font-medium text-text ring-0 *:text-text-opposite hover:bg-current/90 hover:ring-5 aria-selected:ring-5',\n\n [`${LinkVariant.BUTTON_OUTLINED}`]:\n 'relative flex cursor-pointer flex-row items-center justify-center gap-2 rounded-full border-[1.3px] border-current text-center font-medium text-text ring-0 *:text-text hover:bg-current/20 hover:ring-5 aria-selected:ring-5',\n\n [`${LinkVariant.HOVERABLE}`]:\n 'block rounded-lg border-none bg-current/0 hover:bg-current/10 aria-[current]:bg-current/5',\n },\n roundedSize: {\n [`${LinkRoundedSize.NONE}`]: 'rounded-none',\n [`${LinkRoundedSize.SM}`]:\n 'rounded-lg [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-xl',\n [`${LinkRoundedSize.MD}`]:\n 'rounded-xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-2xl',\n [`${LinkRoundedSize.LG}`]:\n 'rounded-2xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-3xl',\n [`${LinkRoundedSize.XL}`]:\n 'rounded-3xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-4xl',\n [`${LinkRoundedSize.TWO_XL}`]:\n 'rounded-4xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-[2.5rem]',\n [`${LinkRoundedSize.THREE_XL}`]:\n 'rounded-[2.5rem] [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-[3rem]',\n [`${LinkRoundedSize.FULL}`]: 'rounded-full',\n },\n color: {\n [`${LinkColor.PRIMARY}`]: 'text-primary',\n [`${LinkColor.SECONDARY}`]: 'text-secondary',\n [`${LinkColor.DESTRUCTIVE}`]: 'text-destructive',\n [`${LinkColor.NEUTRAL}`]: 'text-neutral',\n [`${LinkColor.LIGHT}`]: 'text-white',\n [`${LinkColor.DARK}`]: 'text-neutral-800',\n [`${LinkColor.TEXT}`]: 'text-text',\n [`${LinkColor.TEXT_INVERSE}`]: 'text-text-opposite',\n [`${LinkColor.ERROR}`]: 'text-error',\n [`${LinkColor.SUCCESS}`]: 'text-success',\n [`${LinkColor.CUSTOM}`]: '',\n },\n size: {\n [`${LinkSize.SM}`]: 'text-sm',\n [`${LinkSize.MD}`]: 'text-base',\n [`${LinkSize.LG}`]: 'text-lg',\n [`${LinkSize.XL}`]: 'text-xl',\n [`${LinkSize.CUSTOM}`]: '',\n },\n underlined: {\n [LinkUnderlined.DEFAULT]: '',\n [LinkUnderlined.TRUE]: 'underline',\n [LinkUnderlined.FALSE]: 'no-underline',\n },\n },\n // Compound variants handle height and padding\n compoundVariants: [\n // ---------------------------------------------------------\n // FIX START: Correctly Handle Contrast for TEXT_INVERSE\n // ---------------------------------------------------------\n {\n // Filled Button + Inverse Color (e.g., White Button):\n // 1. We DO NOT override parent text color (it must remain 'text-opposite' so bg-current is white).\n // 2. We ONLY override children to be 'text-text' (Dark) so they show up on white.\n variant: LinkVariant.BUTTON,\n color: LinkColor.TEXT_INVERSE,\n class: '*:text-text',\n },\n {\n // Outlined Button + Inverse Color (e.g., White Border):\n // 1. Parent is 'text-opposite' (Border is white).\n // 2. Children must also be 'text-opposite' (White text) to show on dark background.\n variant: LinkVariant.BUTTON_OUTLINED,\n color: LinkColor.TEXT_INVERSE,\n class: 'text-text-opposite *:text-text-opposite',\n },\n // ---------------------------------------------------------\n // FIX END\n // ---------------------------------------------------------\n\n // Min height and padding for button variants\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.SM,\n class: 'min-h-7 px-3 max-md:py-1',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.MD,\n class: 'min-h-8 px-6 max-md:py-2',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.LG,\n class: 'min-h-10 px-8 max-md:py-3',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.XL,\n class: 'min-h-11 px-10 max-md:py-4',\n },\n // Ring color variants\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.PRIMARY,\n class: 'ring-primary/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.SECONDARY,\n class: 'ring-secondary/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.DESTRUCTIVE,\n class: 'ring-destructive/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.NEUTRAL,\n class: 'ring-neutral/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.LIGHT,\n class: 'ring-white/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.DARK,\n class: 'ring-neutral-800/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.TEXT,\n class: 'ring-text/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.TEXT_INVERSE,\n class: 'ring-text-opposite/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.ERROR,\n class: 'ring-error/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.SUCCESS,\n class: 'ring-success/20',\n },\n ],\n\n defaultVariants: {\n variant: LinkVariant.DEFAULT,\n color: LinkColor.PRIMARY,\n roundedSize: LinkRoundedSize.MD,\n underlined: LinkUnderlined.DEFAULT,\n size: LinkSize.MD,\n },\n }\n);\n\nexport type LinkProps = DetailedHTMLProps<\n AnchorHTMLAttributes<HTMLAnchorElement>,\n HTMLAnchorElement\n> &\n VariantProps<typeof linkVariants> & {\n label: string;\n isExternalLink?: boolean;\n isPageSection?: boolean;\n isActive?: boolean;\n locale?: LocalesValues;\n };\n\nexport const checkIsExternalLink = ({\n href,\n isExternalLink: isExternalLinkProp,\n}: LinkProps): boolean => {\n const isValidHref = typeof href === 'string' && href.trim() !== '';\n const isExternalLink =\n isExternalLinkProp === true ||\n (typeof isExternalLinkProp === 'undefined' &&\n isValidHref &&\n /^https?:\\/\\//.test(href));\n\n return isExternalLink;\n};\n\nexport const isTextChildren = (children: ReactNode): boolean => {\n if (typeof children === 'string' || typeof children === 'number') {\n return true;\n }\n if (Array.isArray(children)) {\n return children.every(isTextChildren);\n }\n if (isValidElement(children)) {\n return isTextChildren(\n (children.props as { children?: ReactNode }).children\n );\n }\n return false;\n};\n\nexport const Link: FC<LinkProps> = (props) => {\n const {\n variant = LinkVariant.DEFAULT,\n color = LinkColor.PRIMARY,\n roundedSize,\n children,\n label,\n className,\n isActive,\n underlined,\n locale,\n size,\n isExternalLink: isExternalLinkProp,\n isPageSection: isPageSectionProp,\n href: hrefProp,\n ...otherProps\n } = props;\n\n const isExternalLink = isExternalLinkProp ?? checkIsExternalLink(props);\n const isPageSection = isPageSectionProp ?? hrefProp?.startsWith('#') ?? false;\n\n const isChildrenString = isTextChildren(children);\n const isButton =\n variant === LinkVariant.BUTTON || variant === LinkVariant.BUTTON_OUTLINED;\n\n const rel = isExternalLink ? 'noopener noreferrer nofollow' : undefined;\n\n const target = isExternalLink ? '_blank' : '_self';\n\n const href =\n locale && hrefProp && !isExternalLink && !isPageSection\n ? getLocalizedUrl(hrefProp, locale)\n : hrefProp;\n\n return (\n <a\n href={href}\n aria-label={label}\n rel={rel}\n target={target}\n aria-current={isActive ? 'page' : undefined}\n className={cn(\n linkVariants({\n variant,\n color,\n roundedSize,\n underlined,\n size,\n className,\n })\n )}\n {...otherProps}\n >\n {isButton && isChildrenString ? <span>{children}</span> : children}\n\n {isExternalLink && isChildrenString && (\n <ExternalLink className=\"ml-2 inline-block size-4\" />\n )}\n {isPageSection && <MoveRight className=\"ml-2 inline-block size-4\" />}\n </a>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Link.mjs","names":["Link: FC<LinkProps>"],"sources":["../../../../src/components/Link/Link.tsx"],"sourcesContent":["import { getLocalizedUrl } from '@intlayer/core';\nimport type { LocalesValues } from '@intlayer/types';\nimport { cn } from '@utils/cn';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { ExternalLink, MoveRight } from 'lucide-react';\nimport {\n type AnchorHTMLAttributes,\n type DetailedHTMLProps,\n type FC,\n isValidElement,\n type ReactNode,\n} from 'react';\n\n/**\n * Visual style variants for Link component\n */\nexport enum LinkVariant {\n DEFAULT = 'default',\n INVISIBLE_LINK = 'invisible-link',\n BUTTON = 'button',\n BUTTON_OUTLINED = 'button-outlined',\n HOVERABLE = 'hoverable',\n}\n\n/**\n * Color theme variants for Link component\n */\nexport enum LinkColor {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n DESTRUCTIVE = 'destructive',\n NEUTRAL = 'neutral',\n LIGHT = 'light',\n DARK = 'dark',\n TEXT = 'text',\n TEXT_INVERSE = 'text-inverse',\n ERROR = 'error',\n SUCCESS = 'success',\n CUSTOM = 'custom',\n}\n\nexport enum LinkRoundedSize {\n NONE = 'none',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n TWO_XL = '2xl',\n THREE_XL = '3xl',\n FULL = 'full',\n}\n\nexport enum LinkSize {\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n CUSTOM = 'custom',\n}\n\nexport enum LinkUnderlined {\n DEFAULT = 'default',\n TRUE = 'true',\n FALSE = 'false',\n}\n\nexport const linkVariants = cva(\n 'gap-3 transition-all duration-300 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n [`${LinkVariant.DEFAULT}`]:\n 'h-auto justify-start border-inherit bg-current/0 px-1 underline-offset-4 hover:bg-current/0 hover:underline',\n [`${LinkVariant.INVISIBLE_LINK}`]:\n 'h-auto justify-start border-inherit bg-current/0 px-1 underline-offset-4 hover:bg-current/0',\n\n [`${LinkVariant.BUTTON}`]:\n 'relative flex cursor-pointer flex-row items-center justify-center gap-2 rounded-full bg-current text-center font-medium text-text ring-0 *:text-text-opposite hover:bg-current/90 hover:ring-5 aria-selected:ring-5',\n\n [`${LinkVariant.BUTTON_OUTLINED}`]:\n 'relative flex cursor-pointer flex-row items-center justify-center gap-2 rounded-full border-[1.3px] border-current text-center font-medium text-text ring-0 *:text-text hover:bg-current/20 hover:ring-5 aria-selected:ring-5',\n\n [`${LinkVariant.HOVERABLE}`]:\n 'block rounded-lg border-none bg-current/0 hover:bg-current/10 aria-[current]:bg-current/5',\n },\n roundedSize: {\n [`${LinkRoundedSize.NONE}`]: 'rounded-none',\n [`${LinkRoundedSize.SM}`]:\n 'rounded-lg [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-xl',\n [`${LinkRoundedSize.MD}`]:\n 'rounded-xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-2xl',\n [`${LinkRoundedSize.LG}`]:\n 'rounded-2xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-3xl',\n [`${LinkRoundedSize.XL}`]:\n 'rounded-3xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-4xl',\n [`${LinkRoundedSize.TWO_XL}`]:\n 'rounded-4xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-[2.5rem]',\n [`${LinkRoundedSize.THREE_XL}`]:\n 'rounded-[2.5rem] [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-[3rem]',\n [`${LinkRoundedSize.FULL}`]: 'rounded-full',\n },\n color: {\n [`${LinkColor.PRIMARY}`]: 'text-primary',\n [`${LinkColor.SECONDARY}`]: 'text-secondary',\n [`${LinkColor.DESTRUCTIVE}`]: 'text-destructive',\n [`${LinkColor.NEUTRAL}`]: 'text-neutral',\n [`${LinkColor.LIGHT}`]: 'text-white',\n [`${LinkColor.DARK}`]: 'text-neutral-800',\n [`${LinkColor.TEXT}`]: 'text-text',\n [`${LinkColor.TEXT_INVERSE}`]: 'text-text-opposite',\n [`${LinkColor.ERROR}`]: 'text-error',\n [`${LinkColor.SUCCESS}`]: 'text-success',\n [`${LinkColor.CUSTOM}`]: '',\n },\n size: {\n [`${LinkSize.SM}`]: 'text-sm',\n [`${LinkSize.MD}`]: 'text-base',\n [`${LinkSize.LG}`]: 'text-lg',\n [`${LinkSize.XL}`]: 'text-xl',\n [`${LinkSize.CUSTOM}`]: '',\n },\n underlined: {\n [LinkUnderlined.DEFAULT]: '',\n [LinkUnderlined.TRUE]: 'underline',\n [LinkUnderlined.FALSE]: 'no-underline',\n },\n },\n // Compound variants handle height and padding\n compoundVariants: [\n // ---------------------------------------------------------\n // FIX START: Correctly Handle Contrast for TEXT_INVERSE\n // ---------------------------------------------------------\n {\n // Filled Button + Inverse Color (e.g., White Button):\n // We DO NOT override parent text color (it must remain 'text-opposite' so bg-current is white).\n // We ONLY override children to be 'text-text' (Dark) so they show up on white.\n variant: LinkVariant.BUTTON,\n color: LinkColor.TEXT_INVERSE,\n class: '*:text-text',\n },\n {\n // Outlined Button + Inverse Color (e.g., White Border):\n // Parent is 'text-opposite' (Border is white).\n // Children must also be 'text-opposite' (White text) to show on dark background.\n variant: LinkVariant.BUTTON_OUTLINED,\n color: LinkColor.TEXT_INVERSE,\n class: 'text-text-opposite *:text-text-opposite',\n },\n\n // Min height and padding for button variants\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.SM,\n class: 'min-h-7 px-3 max-md:py-1',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.MD,\n class: 'min-h-8 px-6 max-md:py-2',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.LG,\n class: 'min-h-10 px-8 max-md:py-3',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.XL,\n class: 'min-h-11 px-10 max-md:py-4',\n },\n // Ring color variants\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.PRIMARY,\n class: 'ring-primary/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.SECONDARY,\n class: 'ring-secondary/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.DESTRUCTIVE,\n class: 'ring-destructive/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.NEUTRAL,\n class: 'ring-neutral/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.LIGHT,\n class: 'ring-white/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.DARK,\n class: 'ring-neutral-800/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.TEXT,\n class: 'ring-text/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.TEXT_INVERSE,\n class: 'ring-text-opposite/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.ERROR,\n class: 'ring-error/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.SUCCESS,\n class: 'ring-success/20',\n },\n ],\n\n defaultVariants: {\n variant: LinkVariant.DEFAULT,\n color: LinkColor.PRIMARY,\n roundedSize: LinkRoundedSize.MD,\n underlined: LinkUnderlined.DEFAULT,\n size: LinkSize.MD,\n },\n }\n);\n\nexport type LinkProps = DetailedHTMLProps<\n AnchorHTMLAttributes<HTMLAnchorElement>,\n HTMLAnchorElement\n> &\n VariantProps<typeof linkVariants> & {\n label: string;\n isExternalLink?: boolean;\n isPageSection?: boolean;\n isActive?: boolean;\n locale?: LocalesValues;\n };\n\nexport const checkIsExternalLink = ({\n href,\n isExternalLink: isExternalLinkProp,\n}: LinkProps): boolean => {\n const isValidHref = typeof href === 'string' && href.trim() !== '';\n const isExternalLink =\n isExternalLinkProp === true ||\n (typeof isExternalLinkProp === 'undefined' &&\n isValidHref &&\n /^https?:\\/\\//.test(href));\n\n return isExternalLink;\n};\n\nexport const isTextChildren = (children: ReactNode): boolean => {\n if (typeof children === 'string' || typeof children === 'number') {\n return true;\n }\n if (Array.isArray(children)) {\n return children.every(isTextChildren);\n }\n if (isValidElement(children)) {\n return isTextChildren(\n (children.props as { children?: ReactNode }).children\n );\n }\n return false;\n};\n\nexport const Link: FC<LinkProps> = (props) => {\n const {\n variant = LinkVariant.DEFAULT,\n color = LinkColor.PRIMARY,\n roundedSize,\n children,\n label,\n className,\n isActive,\n underlined,\n locale,\n size,\n isExternalLink: isExternalLinkProp,\n isPageSection: isPageSectionProp,\n href: hrefProp,\n ...otherProps\n } = props;\n\n const isExternalLink = isExternalLinkProp ?? checkIsExternalLink(props);\n const isPageSection = isPageSectionProp ?? hrefProp?.startsWith('#') ?? false;\n\n const isChildrenString = isTextChildren(children);\n const isButton =\n variant === LinkVariant.BUTTON || variant === LinkVariant.BUTTON_OUTLINED;\n\n const rel = isExternalLink ? 'noopener noreferrer nofollow' : undefined;\n\n const target = isExternalLink ? '_blank' : '_self';\n\n const href =\n locale && hrefProp && !isExternalLink && !isPageSection\n ? getLocalizedUrl(hrefProp, locale)\n : hrefProp;\n\n return (\n <a\n href={href}\n aria-label={label}\n rel={rel}\n target={target}\n aria-current={isActive ? 'page' : undefined}\n className={cn(\n linkVariants({\n variant,\n color,\n roundedSize,\n underlined,\n size,\n className,\n })\n )}\n {...otherProps}\n >\n {isButton && isChildrenString ? <span>{children}</span> : children}\n\n {isExternalLink && isChildrenString && (\n <ExternalLink className=\"ml-2 inline-block size-4\" />\n )}\n {isPageSection && <MoveRight className=\"ml-2 inline-block size-4\" />}\n </a>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
+
import { usePersistedStore } from "../../hooks/usePersistedStore.mjs";
|
|
3
4
|
import { Container } from "../Container/index.mjs";
|
|
4
5
|
import { Button, ButtonColor, ButtonSize, ButtonTextAlign, ButtonVariant } from "../Button/Button.mjs";
|
|
5
6
|
import { Input } from "../Input/Input.mjs";
|
|
6
|
-
import { usePersistedStore } from "../../hooks/usePersistedStore.mjs";
|
|
7
7
|
import { DropDown } from "../DropDown/index.mjs";
|
|
8
8
|
import { SwitchSelector, SwitchSelectorColor, SwitchSelectorSize } from "../SwitchSelector/index.mjs";
|
|
9
9
|
import { useLocaleSwitcherContent } from "./LocaleSwitcherContentContext.mjs";
|
|
10
|
-
import { Check, Globe, MoveVertical } from "lucide-react";
|
|
11
10
|
import { useMemo, useRef, useState } from "react";
|
|
11
|
+
import { Check, Globe, MoveVertical } from "lucide-react";
|
|
12
12
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
13
13
|
import { getHTMLTextDir, getLocaleName } from "@intlayer/core";
|
|
14
14
|
import { useIntlayer, useLocale } from "react-intlayer";
|
|
@@ -4,8 +4,8 @@ import { Container } from "../Container/index.mjs";
|
|
|
4
4
|
import { Button, ButtonColor, ButtonTextAlign, ButtonVariant } from "../Button/Button.mjs";
|
|
5
5
|
import { Input } from "../Input/Input.mjs";
|
|
6
6
|
import { DropDown } from "../DropDown/index.mjs";
|
|
7
|
-
import { MoveVertical } from "lucide-react";
|
|
8
7
|
import { useCallback, useMemo, useRef, useState } from "react";
|
|
8
|
+
import { MoveVertical } from "lucide-react";
|
|
9
9
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
10
|
import { getHTMLTextDir, getLocaleName } from "@intlayer/core";
|
|
11
11
|
import { useIntlayer } from "react-intlayer";
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
+
import { useGetElementOrWindow } from "../../hooks/useGetElementOrWindow.mjs";
|
|
4
|
+
import { useScrollBlockage } from "../../hooks/useScrollBlockage/index.mjs";
|
|
3
5
|
import { cn } from "../../utils/cn.mjs";
|
|
4
6
|
import { Container } from "../Container/index.mjs";
|
|
5
7
|
import { Button, ButtonColor, ButtonSize, ButtonVariant } from "../Button/Button.mjs";
|
|
6
8
|
import { H3 } from "../Headers/index.mjs";
|
|
7
|
-
import { useGetElementOrWindow } from "../../hooks/useGetElementOrWindow.mjs";
|
|
8
|
-
import { useScrollBlockage } from "../../hooks/useScrollBlockage/index.mjs";
|
|
9
|
-
import { X } from "lucide-react";
|
|
10
9
|
import { useEffect } from "react";
|
|
11
10
|
import { cva } from "class-variance-authority";
|
|
11
|
+
import { X } from "lucide-react";
|
|
12
12
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
13
13
|
import { motion } from "framer-motion";
|
|
14
14
|
import { createPortal } from "react-dom";
|
|
@@ -18,23 +18,14 @@ import { createPortal } from "react-dom";
|
|
|
18
18
|
* Enumeration of available modal sizes
|
|
19
19
|
*/
|
|
20
20
|
let ModalSize = /* @__PURE__ */ function(ModalSize$1) {
|
|
21
|
-
/** Small modal: max height 30vh, max width xl */
|
|
22
21
|
ModalSize$1["SM"] = "sm";
|
|
23
|
-
/** Medium modal: max height 50vh, max width xl */
|
|
24
22
|
ModalSize$1["MD"] = "md";
|
|
25
|
-
/** Large modal: max height 70vh, max width 2xl */
|
|
26
23
|
ModalSize$1["LG"] = "lg";
|
|
27
|
-
/** Extra large modal: max height 95vh, max width 6xl */
|
|
28
24
|
ModalSize$1["XL"] = "xl";
|
|
29
|
-
/** Unset size: max height 95vh, full width responsive */
|
|
30
25
|
ModalSize$1["UNSET"] = "unset";
|
|
31
26
|
return ModalSize$1;
|
|
32
27
|
}({});
|
|
33
|
-
|
|
34
|
-
* Class name variants for different modal sizes using class-variance-authority
|
|
35
|
-
* Defines responsive sizing and scrollable content for modal containers
|
|
36
|
-
*/
|
|
37
|
-
const modalVariants = cva("flex cursor-default flex-col p-3 shadow-sm", {
|
|
28
|
+
const modalVariants = cva("flex cursor-default flex-col overflow-hidden shadow-sm", {
|
|
38
29
|
variants: { size: {
|
|
39
30
|
sm: "h-auto max-h-[30vh] w-[95vw] max-w-xl",
|
|
40
31
|
md: "h-auto max-h-[50vh] w-[95vw] max-w-xl",
|
|
@@ -44,10 +35,14 @@ const modalVariants = cva("flex cursor-default flex-col p-3 shadow-sm", {
|
|
|
44
35
|
} },
|
|
45
36
|
defaultVariants: { size: "unset" }
|
|
46
37
|
});
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
38
|
+
const contentPaddingVariants = {
|
|
39
|
+
none: "p-0",
|
|
40
|
+
sm: "px-2 py-4",
|
|
41
|
+
md: "px-4 py-6",
|
|
42
|
+
lg: "px-6 py-8",
|
|
43
|
+
xl: "px-8 py-10",
|
|
44
|
+
"2xl": "px-10 py-12"
|
|
45
|
+
};
|
|
51
46
|
const MotionModal = motion.create(Container);
|
|
52
47
|
/**
|
|
53
48
|
* Modal Component
|
|
@@ -116,7 +111,7 @@ const MotionModal = motion.create(Container);
|
|
|
116
111
|
* @param props - Modal component props
|
|
117
112
|
* @returns JSX element rendered via createPortal
|
|
118
113
|
*/
|
|
119
|
-
const Modal = ({ children, isOpen, container, disableScroll = true, onClose, hasCloseButton = false, title, size = ModalSize.MD, className, ...props }) => {
|
|
114
|
+
const Modal = ({ children, isOpen, container, disableScroll = true, onClose, hasCloseButton = false, title, size = ModalSize.MD, className, isScrollable = false, padding = "none", ...props }) => {
|
|
120
115
|
const containerElement = useGetElementOrWindow(container);
|
|
121
116
|
useScrollBlockage({
|
|
122
117
|
key: "modal",
|
|
@@ -133,8 +128,9 @@ const Modal = ({ children, isOpen, container, disableScroll = true, onClose, has
|
|
|
133
128
|
}, [isOpen, onClose]);
|
|
134
129
|
if (!containerElement) return /* @__PURE__ */ jsx(Fragment$1, {});
|
|
135
130
|
const hasTitle = typeof title === "string";
|
|
131
|
+
const contentPaddingClass = contentPaddingVariants[padding || "none"];
|
|
136
132
|
return createPortal(/* @__PURE__ */ jsx(motion.div, {
|
|
137
|
-
className: "invisible fixed top-0 left-0 z-50 flex size-full cursor-pointer items-center justify-center overflow-
|
|
133
|
+
className: "invisible fixed top-0 left-0 z-50 flex size-full cursor-pointer items-center justify-center overflow-hidden bg-background/40 backdrop-blur",
|
|
138
134
|
animate: isOpen ? "visible" : "invisible",
|
|
139
135
|
variants: {
|
|
140
136
|
visible: {
|
|
@@ -171,11 +167,12 @@ const Modal = ({ children, isOpen, container, disableScroll = true, onClose, has
|
|
|
171
167
|
role: "dialog",
|
|
172
168
|
"aria-modal": true,
|
|
173
169
|
roundedSize: "4xl",
|
|
170
|
+
padding: "none",
|
|
174
171
|
...props,
|
|
175
172
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
176
|
-
className: cn("
|
|
173
|
+
className: cn("relative flex-none px-4 pt-4", hasCloseButton && hasTitle ? `flex items-start` : hasCloseButton ? `flex justify-end` : hasTitle ? `items-center` : `hidden`),
|
|
177
174
|
children: [hasTitle && /* @__PURE__ */ jsx(H3, {
|
|
178
|
-
className: "
|
|
175
|
+
className: "mb-2 ml-1 flex items-center justify-center font-bold text-lg",
|
|
179
176
|
children: title
|
|
180
177
|
}), hasCloseButton && /* @__PURE__ */ jsx(Button, {
|
|
181
178
|
variant: ButtonVariant.HOVERABLE,
|
|
@@ -190,8 +187,11 @@ const Modal = ({ children, isOpen, container, disableScroll = true, onClose, has
|
|
|
190
187
|
size: ButtonSize.ICON_MD
|
|
191
188
|
})]
|
|
192
189
|
}), /* @__PURE__ */ jsx("div", {
|
|
193
|
-
className: "flex w-full flex-1 flex-col",
|
|
194
|
-
children
|
|
190
|
+
className: cn("flex min-h-0 w-full flex-1 flex-col", isScrollable === true && "overflow-auto", isScrollable === "y" && "overflow-y-auto overflow-x-hidden", isScrollable === "x" && "overflow-x-auto overflow-y-hidden", !isScrollable && "overflow-visible"),
|
|
191
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
192
|
+
className: cn("h-full w-full", contentPaddingClass),
|
|
193
|
+
children
|
|
194
|
+
})
|
|
195
195
|
})]
|
|
196
196
|
})
|
|
197
197
|
}), containerElement);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.mjs","names":["m","Modal: FC<ModalProps>"],"sources":["../../../../src/components/Modal/Modal.tsx"],"sourcesContent":["'use client';\n\nimport { useGetElementOrWindow, useScrollBlockage } from '@hooks/index';\nimport { cn } from '@utils/cn';\nimport { cva } from 'class-variance-authority';\nimport { motion as m } from 'framer-motion';\nimport { X } from 'lucide-react';\nimport { type FC, type ReactNode, useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { Button, ButtonColor, ButtonSize, ButtonVariant } from '../Button';\nimport { Container, type ContainerProps } from '../Container';\nimport { H3 } from '../Headers';\n\n/**\n * Enumeration of available modal sizes\n */\nexport enum ModalSize {\n
|
|
1
|
+
{"version":3,"file":"Modal.mjs","names":["m","Modal: FC<ModalProps>"],"sources":["../../../../src/components/Modal/Modal.tsx"],"sourcesContent":["'use client';\n\nimport { useGetElementOrWindow, useScrollBlockage } from '@hooks/index';\nimport { cn } from '@utils/cn';\nimport { cva } from 'class-variance-authority';\nimport { motion as m } from 'framer-motion';\nimport { X } from 'lucide-react';\nimport { type FC, type ReactNode, useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { Button, ButtonColor, ButtonSize, ButtonVariant } from '../Button';\nimport { Container, type ContainerProps } from '../Container';\nimport { H3 } from '../Headers';\n\n/**\n * Enumeration of available modal sizes\n */\nexport enum ModalSize {\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n UNSET = 'unset',\n}\n\ntype ModalProps = {\n children: ReactNode;\n isOpen: boolean;\n onClose?: () => void;\n container?: HTMLElement;\n disableScroll?: boolean;\n hasCloseButton?: boolean;\n title?: string;\n size?: ModalSize | `${ModalSize}`;\n /**\n * Defines if the modal content area is scrollable.\n */\n isScrollable?: boolean | 'x' | 'y';\n} & Pick<\n ContainerProps,\n | 'className'\n | 'transparency'\n | 'border'\n | 'background'\n | 'roundedSize'\n | 'borderColor'\n | 'padding'\n | 'separator'\n | 'gap'\n>;\n\nconst modalVariants = cva(\n 'flex cursor-default flex-col overflow-hidden shadow-sm',\n {\n variants: {\n size: {\n sm: 'h-auto max-h-[30vh] w-[95vw] max-w-xl',\n md: 'h-auto max-h-[50vh] w-[95vw] max-w-xl',\n lg: 'h-auto max-h-[70vh] w-[95vw] max-w-2xl',\n xl: 'h-auto max-h-[95vh] w-[95vw] max-w-6xl',\n unset: 'h-auto max-h-[95vh] w-[95vw]',\n },\n },\n defaultVariants: {\n size: 'unset',\n },\n }\n);\n\n// Mapped from Container/index.tsx to apply internally\nconst contentPaddingVariants = {\n none: 'p-0',\n sm: 'px-2 py-4',\n md: 'px-4 py-6',\n lg: 'px-6 py-8',\n xl: 'px-8 py-10',\n '2xl': 'px-10 py-12',\n};\n\nconst MotionModal = m.create(Container);\n\n/**\n * Modal Component\n *\n * A highly customizable modal dialog component with portal rendering, Framer Motion animations,\n * and comprehensive accessibility features. Supports multiple size variants and scroll management.\n *\n * Features:\n * - Portal rendering to any container element (defaults to document.body)\n * - Smooth animations with Framer Motion\n * - Size variants: SM, MD, LG, XL, UNSET with responsive sizing\n * - Optional title and close button\n * - Background scroll prevention\n * - Click-outside-to-close functionality\n * - Full accessibility support with ARIA attributes\n * - Keyboard navigation support (ESC to close)\n * - Extensible styling with Container props\n *\n * @example\n * Basic usage:\n * ```jsx\n * <Modal isOpen={isModalOpen} onClose={() => setIsModalOpen(false)}>\n * <p>Modal content goes here</p>\n * </Modal>\n * ```\n *\n * @example\n * With title and close button:\n * ```jsx\n * <Modal\n * isOpen={isOpen}\n * onClose={onClose}\n * title=\"Confirm Action\"\n * hasCloseButton\n * size={ModalSize.LG}\n * >\n * <div>\n * <p>Are you sure you want to continue?</p>\n * <Button onClick={onConfirm}>Confirm</Button>\n * </div>\n * </Modal>\n * ```\n *\n * @example\n * Custom container and styling:\n * ```jsx\n * <Modal\n * isOpen={isOpen}\n * onClose={onClose}\n * container={customContainer}\n * background=\"card\"\n * padding=\"lg\"\n * border=\"default\"\n * >\n * Content with custom styling\n * </Modal>\n * ```\n *\n * Accessibility Notes:\n * - Modal receives focus when opened\n * - Background content is hidden from screen readers when modal is open\n * - ESC key closes modal (handled by browser for role=\"dialog\")\n * - Click outside modal closes it\n * - Close button has descriptive label for screen readers\n *\n * @param props - Modal component props\n * @returns JSX element rendered via createPortal\n */\nexport const Modal: FC<ModalProps> = ({\n children,\n isOpen,\n container,\n disableScroll = true,\n onClose,\n hasCloseButton = false,\n title,\n size = ModalSize.MD,\n className,\n isScrollable = false,\n padding = 'none', // Extract padding here\n ...props\n}) => {\n const containerElement = useGetElementOrWindow(container);\n\n useScrollBlockage({ key: 'modal', disableScroll: isOpen && disableScroll });\n\n useEffect(() => {\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && isOpen && onClose) {\n onClose();\n }\n };\n document.addEventListener('keydown', handleEscape);\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [isOpen, onClose]);\n\n if (!containerElement) return <></>;\n\n const hasTitle = typeof title === 'string';\n\n // Determine the class for the inner content based on the padding prop\n const contentPaddingClass =\n contentPaddingVariants[\n (padding as keyof typeof contentPaddingVariants) || 'none'\n ];\n\n return createPortal(\n <m.div\n className=\"invisible fixed top-0 left-0 z-50 flex size-full cursor-pointer items-center justify-center overflow-hidden bg-background/40 backdrop-blur\"\n animate={isOpen ? 'visible' : 'invisible'}\n variants={{\n visible: {\n opacity: 1,\n visibility: 'visible',\n transition: { duration: 0.1, when: 'beforeChildren' },\n },\n invisible: {\n opacity: 0,\n visibility: 'hidden',\n transition: { duration: 0.1, when: 'afterChildren' },\n },\n }}\n onClick={(e) => {\n e.stopPropagation();\n onClose?.();\n }}\n aria-hidden={!isOpen}\n >\n <MotionModal\n onClick={(e) => e.stopPropagation()}\n initial={{ scale: isOpen ? 0.5 : 1 }}\n animate={{ scale: isOpen ? 1 : 0.5 }}\n transition={{ duration: 0.3 }}\n className={modalVariants({ size, className })}\n role=\"dialog\"\n aria-modal\n roundedSize=\"4xl\"\n // Force the outer container to have no padding so scrollbars hit the edge\n padding=\"none\"\n {...props}\n >\n {/* HEADER SECTION */}\n <div\n className={cn(\n 'relative flex-none px-4 pt-4',\n hasCloseButton && hasTitle\n ? `flex items-start`\n : hasCloseButton\n ? `flex justify-end`\n : hasTitle\n ? `items-center`\n : `hidden`\n )}\n >\n {hasTitle && (\n <H3 className=\"mb-2 ml-1 flex items-center justify-center font-bold text-lg\">\n {title}\n </H3>\n )}\n {hasCloseButton && (\n <Button\n variant={ButtonVariant.HOVERABLE}\n color={ButtonColor.TEXT}\n label=\"Close modal\"\n className=\"ml-auto\"\n onClick={(e) => {\n e.stopPropagation();\n onClose?.();\n }}\n Icon={X}\n size={ButtonSize.ICON_MD}\n />\n )}\n </div>\n\n {/* SCROLLABLE WRAPPER - Full width, no padding */}\n <div\n className={cn(\n 'flex min-h-0 w-full flex-1 flex-col',\n // Scrollbars will now appear at the very edge of this div (the modal edge)\n isScrollable === true && 'overflow-auto',\n isScrollable === 'y' && 'overflow-y-auto overflow-x-hidden',\n isScrollable === 'x' && 'overflow-x-auto overflow-y-hidden',\n !isScrollable && 'overflow-visible'\n )}\n >\n {/* CONTENT PADDING WRAPPER */}\n {/* We apply the padding class here, effectively putting content inside the scroll area */}\n <div className={cn('h-full w-full', contentPaddingClass)}>\n {children}\n </div>\n </div>\n </MotionModal>\n </m.div>,\n containerElement\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAgBA,IAAY,kDAAL;AACL;AACA;AACA;AACA;AACA;;;AA6BF,MAAM,gBAAgB,IACpB,0DACA;CACE,UAAU,EACR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,OAAO;EACR,EACF;CACD,iBAAiB,EACf,MAAM,SACP;CACF,CACF;AAGD,MAAM,yBAAyB;CAC7B,MAAM;CACN,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACR;AAED,MAAM,cAAcA,OAAE,OAAO,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqEvC,MAAaC,SAAyB,EACpC,UACA,QACA,WACA,gBAAgB,MAChB,SACA,iBAAiB,OACjB,OACA,OAAO,UAAU,IACjB,WACA,eAAe,OACf,UAAU,QACV,GAAG,YACC;CACJ,MAAM,mBAAmB,sBAAsB,UAAU;AAEzD,mBAAkB;EAAE,KAAK;EAAS,eAAe,UAAU;EAAe,CAAC;AAE3E,iBAAgB;EACd,MAAM,gBAAgB,UAAyB;AAC7C,OAAI,MAAM,QAAQ,YAAY,UAAU,QACtC,UAAS;;AAGb,WAAS,iBAAiB,WAAW,aAAa;AAClD,eAAa;AACX,YAAS,oBAAoB,WAAW,aAAa;;IAEtD,CAAC,QAAQ,QAAQ,CAAC;AAErB,KAAI,CAAC,iBAAkB,QAAO,mCAAK;CAEnC,MAAM,WAAW,OAAO,UAAU;CAGlC,MAAM,sBACJ,uBACG,WAAmD;AAGxD,QAAO,aACL,oBAACD,OAAE;EACD,WAAU;EACV,SAAS,SAAS,YAAY;EAC9B,UAAU;GACR,SAAS;IACP,SAAS;IACT,YAAY;IACZ,YAAY;KAAE,UAAU;KAAK,MAAM;KAAkB;IACtD;GACD,WAAW;IACT,SAAS;IACT,YAAY;IACZ,YAAY;KAAE,UAAU;KAAK,MAAM;KAAiB;IACrD;GACF;EACD,UAAU,MAAM;AACd,KAAE,iBAAiB;AACnB,cAAW;;EAEb,eAAa,CAAC;YAEd,qBAAC;GACC,UAAU,MAAM,EAAE,iBAAiB;GACnC,SAAS,EAAE,OAAO,SAAS,KAAM,GAAG;GACpC,SAAS,EAAE,OAAO,SAAS,IAAI,IAAK;GACpC,YAAY,EAAE,UAAU,IAAK;GAC7B,WAAW,cAAc;IAAE;IAAM;IAAW,CAAC;GAC7C,MAAK;GACL;GACA,aAAY;GAEZ,SAAQ;GACR,GAAI;cAGJ,qBAAC;IACC,WAAW,GACT,gCACA,kBAAkB,WACd,qBACA,iBACE,qBACA,WACE,iBACA,SACT;eAEA,YACC,oBAAC;KAAG,WAAU;eACX;MACE,EAEN,kBACC,oBAAC;KACC,SAAS,cAAc;KACvB,OAAO,YAAY;KACnB,OAAM;KACN,WAAU;KACV,UAAU,MAAM;AACd,QAAE,iBAAiB;AACnB,iBAAW;;KAEb,MAAM;KACN,MAAM,WAAW;MACjB;KAEA,EAGN,oBAAC;IACC,WAAW,GACT,uCAEA,iBAAiB,QAAQ,iBACzB,iBAAiB,OAAO,qCACxB,iBAAiB,OAAO,qCACxB,CAAC,gBAAgB,mBAClB;cAID,oBAAC;KAAI,WAAW,GAAG,iBAAiB,oBAAoB;KACrD;MACG;KACF;IACM;GACR,EACR,iBACD"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { cn } from "../../utils/cn.mjs";
|
|
4
|
-
import { MaxHeightSmoother } from "../MaxHeightSmoother/index.mjs";
|
|
5
3
|
import { useScrollBlockage } from "../../hooks/useScrollBlockage/index.mjs";
|
|
6
4
|
import { useScrollDetection } from "../../hooks/useScrollDetection.mjs";
|
|
5
|
+
import { cn } from "../../utils/cn.mjs";
|
|
6
|
+
import { MaxHeightSmoother } from "../MaxHeightSmoother/index.mjs";
|
|
7
7
|
import { Burger } from "./Burger.mjs";
|
|
8
8
|
import { useRef, useState } from "react";
|
|
9
9
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
+
import { useItemSelector } from "../../hooks/useItemSelector.mjs";
|
|
3
4
|
import { cn } from "../../utils/cn.mjs";
|
|
4
5
|
import { Button, ButtonColor, ButtonSize, ButtonVariant } from "../Button/Button.mjs";
|
|
5
|
-
import { useItemSelector } from "../../hooks/useItemSelector.mjs";
|
|
6
|
-
import { ChevronLeft, ChevronRight, MoreHorizontal } from "lucide-react";
|
|
7
6
|
import { useEffect, useRef } from "react";
|
|
8
7
|
import { cva } from "class-variance-authority";
|
|
8
|
+
import { ChevronLeft, ChevronRight, MoreHorizontal } from "lucide-react";
|
|
9
9
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
10
|
|
|
11
11
|
//#region src/components/Pagination/Pagination.tsx
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
+
import { useDevice } from "../../hooks/useDevice.mjs";
|
|
4
|
+
import { useScrollBlockage } from "../../hooks/useScrollBlockage/index.mjs";
|
|
3
5
|
import { Container } from "../Container/index.mjs";
|
|
4
6
|
import { Button, ButtonColor, ButtonSize, ButtonVariant } from "../Button/Button.mjs";
|
|
5
|
-
import { useDevice } from "../../hooks/useDevice.mjs";
|
|
6
7
|
import { KeyboardShortcut } from "../KeyboardShortcut/KeyboardShortcut.mjs";
|
|
7
8
|
import { Popover } from "../Popover/dynamic.mjs";
|
|
8
|
-
import { useScrollBlockage } from "../../hooks/useScrollBlockage/index.mjs";
|
|
9
9
|
import { MaxWidthSmoother } from "../MaxWidthSmoother/index.mjs";
|
|
10
10
|
import { isElementAtTopAndNotCovered } from "./isElementAtTopAndNotCovered.mjs";
|
|
11
11
|
import { useRightDrawerStore } from "./useRightDrawerStore.mjs";
|
|
12
|
-
import { ChevronLeft, X } from "lucide-react";
|
|
13
12
|
import { useEffect, useRef } from "react";
|
|
13
|
+
import { ChevronLeft, X } from "lucide-react";
|
|
14
14
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
15
15
|
import { useIntlayer } from "react-intlayer";
|
|
16
16
|
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
import { cn } from "../../utils/cn.mjs";
|
|
4
4
|
import { Badge, BadgeColor } from "../Badge/index.mjs";
|
|
5
5
|
import { Command, CommandRoot } from "../Command/index.mjs";
|
|
6
|
-
import { Check, X } from "lucide-react";
|
|
7
6
|
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
7
|
+
import { Check, X } from "lucide-react";
|
|
8
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
|
|
10
10
|
//#region src/components/Select/Multiselect.tsx
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { cn } from "../../utils/cn.mjs";
|
|
4
3
|
import { useItemSelector } from "../../hooks/useItemSelector.mjs";
|
|
4
|
+
import { cn } from "../../utils/cn.mjs";
|
|
5
5
|
import { createElement, useEffect, useRef, useState } from "react";
|
|
6
6
|
import { cva } from "class-variance-authority";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { cn } from "../../utils/cn.mjs";
|
|
4
3
|
import { useHorizontalSwipe } from "../../hooks/useHorizontalSwipe.mjs";
|
|
4
|
+
import { cn } from "../../utils/cn.mjs";
|
|
5
5
|
import { TabSelector, TabSelectorColor } from "../TabSelector/TabSelector.mjs";
|
|
6
6
|
import { useTabContext } from "./TabContext.mjs";
|
|
7
7
|
import { Children, createContext, isValidElement, useState } from "react";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { cn } from "../../utils/cn.mjs";
|
|
4
3
|
import { useItemSelector } from "../../hooks/useItemSelector.mjs";
|
|
4
|
+
import { cn } from "../../utils/cn.mjs";
|
|
5
5
|
import { cloneElement, useEffect, useRef } from "react";
|
|
6
6
|
import { cva } from "class-variance-authority";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -4,8 +4,8 @@ import { cn } from "../../utils/cn.mjs";
|
|
|
4
4
|
import { Button } from "../Button/Button.mjs";
|
|
5
5
|
import { ExpandCollapse } from "../ExpandCollapse/ExpandCollapse.mjs";
|
|
6
6
|
import { Modal, ModalSize } from "../Modal/Modal.mjs";
|
|
7
|
-
import { MoveDiagonal } from "lucide-react";
|
|
8
7
|
import { useState } from "react";
|
|
8
|
+
import { MoveDiagonal } from "lucide-react";
|
|
9
9
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
10
10
|
|
|
11
11
|
//#region src/components/Table/Table.tsx
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
import { useAutocomplete } from "../../hooks/reactQuery.mjs";
|
|
4
4
|
import { AutoSizedTextArea } from "./AutoSizeTextArea.mjs";
|
|
5
|
+
import { useConfiguration } from "@intlayer/editor-react";
|
|
5
6
|
import { useEffect, useRef, useState } from "react";
|
|
6
7
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
-
import { useConfiguration } from "@intlayer/editor-react";
|
|
8
8
|
|
|
9
9
|
//#region src/components/TextArea/AutocompleteTextArea.tsx
|
|
10
10
|
/**
|
|
@@ -4,8 +4,8 @@ import { Container } from "../Container/index.mjs";
|
|
|
4
4
|
import { Button, ButtonVariant } from "../Button/Button.mjs";
|
|
5
5
|
import { DropDown } from "../DropDown/index.mjs";
|
|
6
6
|
import { Modes } from "./types.mjs";
|
|
7
|
-
import { CircleDashed, Moon, Sun } from "lucide-react";
|
|
8
7
|
import { useState } from "react";
|
|
8
|
+
import { CircleDashed, Moon, Sun } from "lucide-react";
|
|
9
9
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
10
|
|
|
11
11
|
//#region src/components/ThemeSwitcherDropDown/DesktopThemeSwitcher.tsx
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
import { cn } from "../../utils/cn.mjs";
|
|
4
4
|
import { Modes } from "./types.mjs";
|
|
5
|
-
import { CircleDashed, Moon, Sun } from "lucide-react";
|
|
6
5
|
import { useState } from "react";
|
|
6
|
+
import { CircleDashed, Moon, Sun } from "lucide-react";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
|
|
9
9
|
//#region src/components/ThemeSwitcherDropDown/MobileThemeSwitcher.tsx
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { cn } from "../../utils/cn.mjs";
|
|
4
|
-
import
|
|
4
|
+
import * as ToastPrimitives from "@radix-ui/react-toast";
|
|
5
5
|
import { cva } from "class-variance-authority";
|
|
6
|
+
import { X } from "lucide-react";
|
|
6
7
|
import { jsx } from "react/jsx-runtime";
|
|
7
|
-
import * as ToastPrimitives from "@radix-ui/react-toast";
|
|
8
8
|
|
|
9
9
|
//#region src/components/Toaster/Toast.tsx
|
|
10
10
|
const ToastProvider = ToastPrimitives;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport } from "./Toaster/Toast.mjs";
|
|
2
|
+
import { reducer, toast, useToast } from "./Toaster/useToast.mjs";
|
|
3
|
+
import { Toaster } from "./Toaster/Toaster.mjs";
|
|
1
4
|
import { Container, ContainerBackground, ContainerBorderColor, ContainerGap, ContainerPadding, ContainerRoundedSize, ContainerSeparator, ContainerTransparency, containerVariants } from "./Container/index.mjs";
|
|
2
5
|
import { Loader } from "./Loader/index.mjs";
|
|
3
6
|
import { Button, ButtonColor, ButtonSize, ButtonTextAlign, ButtonVariant, buttonVariants } from "./Button/Button.mjs";
|
|
@@ -97,8 +100,5 @@ import { Terminal } from "./Terminal/Terminal.mjs";
|
|
|
97
100
|
import { Modes } from "./ThemeSwitcherDropDown/types.mjs";
|
|
98
101
|
import { DesktopThemeSwitcher } from "./ThemeSwitcherDropDown/DesktopThemeSwitcher.mjs";
|
|
99
102
|
import { MobileThemeSwitcher } from "./ThemeSwitcherDropDown/MobileThemeSwitcher.mjs";
|
|
100
|
-
import { Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport } from "./Toaster/Toast.mjs";
|
|
101
|
-
import { reducer, toast, useToast } from "./Toaster/useToast.mjs";
|
|
102
|
-
import { Toaster } from "./Toaster/Toaster.mjs";
|
|
103
103
|
|
|
104
104
|
export { Accordion, AutoCompleteTextarea, AutoSizedTextArea, Avatar, Badge, BadgeColor, BadgeSize, BadgeVariant, Breadcrumb, Browser, Button, ButtonColor, ButtonSize, ButtonTextAlign, ButtonVariant, Carousel, Checkbox, CheckboxColor, CheckboxSize, ClickOutsideDiv, Code, CodeBlock, CodeDefault, CollapsibleTable, Command, CommandRoot, Container, ContainerBackground, ContainerBorderColor, ContainerGap, ContainerPadding, ContainerRoundedSize, ContainerSeparator, ContainerTransparency, ContentEditor, ContentSelector, CopyButton, CopyToClipboard, DesktopThemeSwitcher, Detail, DictionaryCreationForm, DictionaryEditor, DictionaryFieldEditor, DiscordLogo, DotPattern, DropDown, DropDownAlign, DropDownYAlign, EditableFieldInput, EditableFieldTextArea, ExpandCollapse, FacebookLogo, FileList, Flag, flags_exports as Flags, Footer, Form, GridPattern, H1, H2, H3, H4, H5, H6, HeightResizer, HideShow, IDE, InformationTag, Input, InputIndicator, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, InputPassword, InputSize, InputVariant, InstagramLogo, KeyList, KeyPathBreadcrumb, KeyboardScreenAdapter, KeyboardShortcut, Label, LanguageBackground, LanguageSection, Link, LinkColor, LinkRoundedSize, LinkSize, LinkUnderlined, LinkVariant, LinkedInLogo, Loader, LocaleSwitcher, LocaleSwitcherContent, LocaleSwitcherContentProvider, Logo, LogoTextOnly, LogoWithText, LogoWithTextBelow, MarkdownRenderer, MaxHeightSmoother, MaxWidthSmoother, MobileThemeSwitcher, Modal, ModalSize, Modes, MultiSelect, Navbar, NumberItemsSelector, OTPInput, OTPInputContext, Pagination, PaginationSize, PaginationVariant, Popover, PopoverStatic, PopoverXAlign, PopoverYAlign, PressableSpan, ProductHuntLogo, RightDrawer, SaveForm, SearchInput, Select, SelectContent, SelectContentPosition, SelectLabel, SelectSeparator, ShowingResultsNumberItems, SocialNetworks, Spotlight, SwitchSelector, SwitchSelectorColor, SwitchSelectorSize, Tab, TabSelector, TabSelectorColor, Table, Tag, TagBackground, TagBorder, TagColor, TagRoundedSize, TagSize, Terminal, TextArea, TextEditor, TextEditorContainer, TiktokLogo, Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, Toaster, VersionSwitcher, VersionSwitcherProvider, WithResizer, XLogo, YoutubeLogo, badgeVariants, buttonVariants, checkIsExternalLink, checkboxVariants, containerVariants, getCapitals, inputSlotVariants, inputVariants, isTextChildren, linkVariants, paginationVariants, reducer, toast, traceKeys, useCopyToClipboard, useDebounce, useForm, useFormField, useLocaleSwitcherContent, usePasswordManagerBadge, usePrevious, useRightDrawerStore, useToast, useVersionSwitcher };
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { cn } from "../../utils/cn.mjs";
|
|
2
|
+
import { cva } from "class-variance-authority";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
|
|
5
|
+
//#region dist/esm/components/Container/index.mjs
|
|
6
|
+
/**
|
|
7
|
+
* Container component variants using class-variance-authority
|
|
8
|
+
* Provides flexible styling options for background, padding, borders, and layout
|
|
9
|
+
*/
|
|
10
|
+
const containerVariants = cva("flex flex-col text-text backdrop-blur", {
|
|
11
|
+
variants: {
|
|
12
|
+
roundedSize: {
|
|
13
|
+
none: "rounded-none",
|
|
14
|
+
sm: "rounded-sm [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-md",
|
|
15
|
+
md: "rounded-md [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-lg",
|
|
16
|
+
lg: "rounded-lg [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-xl",
|
|
17
|
+
xl: "rounded-xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-2xl",
|
|
18
|
+
"2xl": "rounded-2xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-3xl",
|
|
19
|
+
"3xl": "rounded-3xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-4xl",
|
|
20
|
+
"4xl": "rounded-4xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-[2.5rem]",
|
|
21
|
+
full: "rounded-full [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-full"
|
|
22
|
+
},
|
|
23
|
+
transparency: {
|
|
24
|
+
none: "bg-card",
|
|
25
|
+
sm: "bg-card/90",
|
|
26
|
+
md: "bg-card/70",
|
|
27
|
+
lg: "bg-card/40",
|
|
28
|
+
xl: "bg-card/20",
|
|
29
|
+
full: ""
|
|
30
|
+
},
|
|
31
|
+
padding: {
|
|
32
|
+
none: "p-0",
|
|
33
|
+
sm: "px-2 py-4",
|
|
34
|
+
md: "px-4 py-6",
|
|
35
|
+
lg: "px-6 py-8",
|
|
36
|
+
xl: "px-8 py-10",
|
|
37
|
+
"2xl": "px-10 py-12"
|
|
38
|
+
},
|
|
39
|
+
separator: {
|
|
40
|
+
without: "",
|
|
41
|
+
x: "divide-x divide-dashed divide-text/20",
|
|
42
|
+
y: "divide-y divide-dashed divide-text/20",
|
|
43
|
+
both: "divide-x divide-y divide-dashed divide-text/20"
|
|
44
|
+
},
|
|
45
|
+
border: {
|
|
46
|
+
none: "",
|
|
47
|
+
with: "border-[1.3px]"
|
|
48
|
+
},
|
|
49
|
+
borderColor: {
|
|
50
|
+
primary: "border-primary",
|
|
51
|
+
secondary: "border-secondary",
|
|
52
|
+
neutral: "border-neutral",
|
|
53
|
+
card: "border-card",
|
|
54
|
+
text: "border-text",
|
|
55
|
+
error: "border-error",
|
|
56
|
+
warning: "border-warning",
|
|
57
|
+
success: "border-success"
|
|
58
|
+
},
|
|
59
|
+
background: {
|
|
60
|
+
none: "",
|
|
61
|
+
hoverable: "bg-opacity-5! backdrop-blur-0 hover:bg-opacity-10! hover:backdrop-blur focus:bg-opacity-10! focus:backdrop-blur aria-selected:bg-opacity-15! aria-selected:backdrop-blur",
|
|
62
|
+
with: ""
|
|
63
|
+
},
|
|
64
|
+
gap: {
|
|
65
|
+
none: "gap-0",
|
|
66
|
+
sm: "gap-1",
|
|
67
|
+
md: "gap-3",
|
|
68
|
+
lg: "gap-5",
|
|
69
|
+
xl: "gap-8",
|
|
70
|
+
"2xl": "gap-10"
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
defaultVariants: {
|
|
74
|
+
roundedSize: "lg",
|
|
75
|
+
border: "none",
|
|
76
|
+
borderColor: "text",
|
|
77
|
+
transparency: "md",
|
|
78
|
+
padding: "none",
|
|
79
|
+
separator: "without",
|
|
80
|
+
gap: "none"
|
|
81
|
+
},
|
|
82
|
+
compoundVariants: [{
|
|
83
|
+
background: "none",
|
|
84
|
+
class: "bg-transparent"
|
|
85
|
+
}]
|
|
86
|
+
});
|
|
87
|
+
/**
|
|
88
|
+
* Container Component
|
|
89
|
+
*
|
|
90
|
+
* A flexible container component for organizing content with customizable styling options.
|
|
91
|
+
* Supports various visual states, layouts, and accessibility features.
|
|
92
|
+
*
|
|
93
|
+
* ## Features
|
|
94
|
+
* - **Flexible Layout**: Supports different padding, gap, and separator options
|
|
95
|
+
* - **Visual Variants**: Multiple background transparency levels and border styles
|
|
96
|
+
* - **Responsive Design**: Configurable rounded corners and spacing
|
|
97
|
+
* - **Semantic HTML**: Proper div element with extensible attributes
|
|
98
|
+
*
|
|
99
|
+
* ## Accessibility
|
|
100
|
+
* - Inherits all standard div accessibility features
|
|
101
|
+
* - Supports ARIA attributes through spread props
|
|
102
|
+
* - Maintains proper semantic structure for screen readers
|
|
103
|
+
*
|
|
104
|
+
* @param children - The content to display inside the container
|
|
105
|
+
* @param roundedSize - Border radius size (default: 'md')
|
|
106
|
+
* @param transparency - Background transparency level (default: 'md')
|
|
107
|
+
* @param padding - Internal padding size (default: 'none')
|
|
108
|
+
* @param separator - Divider lines between children (default: 'without')
|
|
109
|
+
* @param border - Whether to show border (default: false)
|
|
110
|
+
* @param borderColor - Color of the border (default: 'text')
|
|
111
|
+
* @param background - Background interaction behavior (default: 'none')
|
|
112
|
+
* @param gap - Space between child elements (default: 'none')
|
|
113
|
+
* @param className - Additional CSS classes
|
|
114
|
+
* @param props - Additional HTML div attributes including ARIA attributes
|
|
115
|
+
*/
|
|
116
|
+
const Container = ({ children, roundedSize, padding, transparency, separator, className, border, borderColor, background, gap, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
117
|
+
className: cn(containerVariants({
|
|
118
|
+
roundedSize,
|
|
119
|
+
transparency,
|
|
120
|
+
padding,
|
|
121
|
+
separator,
|
|
122
|
+
border: typeof border === "boolean" ? border ? "with" : "none" : void 0,
|
|
123
|
+
background,
|
|
124
|
+
borderColor,
|
|
125
|
+
gap
|
|
126
|
+
}), className),
|
|
127
|
+
...props,
|
|
128
|
+
children
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
//#endregion
|
|
132
|
+
export { Container };
|
|
133
|
+
//# sourceMappingURL=index.mjs.map
|