@iziui/react 0.0.64-rc → 0.0.65-rc

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.
Files changed (161) hide show
  1. package/dist/.types/lab/Form/Form.stories.d.ts.map +1 -1
  2. package/dist/chunks/{Alert-MsPKPqJS.cjs → Alert-C1vwma3Y.cjs} +2 -2
  3. package/dist/chunks/{Alert-MsPKPqJS.cjs.map → Alert-C1vwma3Y.cjs.map} +1 -1
  4. package/dist/chunks/{Alert-DGWFTr3e.js → Alert-Cn-EvcSp.js} +2 -2
  5. package/dist/chunks/{Alert-DGWFTr3e.js.map → Alert-Cn-EvcSp.js.map} +1 -1
  6. package/dist/chunks/{Box-DV6szmfA.js → Box-DD-rZ2rr.js} +2 -2
  7. package/dist/chunks/{Box-DV6szmfA.js.map → Box-DD-rZ2rr.js.map} +1 -1
  8. package/dist/chunks/{Box-DX4Re8mw.cjs → Box-ut8xLHQT.cjs} +2 -2
  9. package/dist/chunks/{Box-DX4Re8mw.cjs.map → Box-ut8xLHQT.cjs.map} +1 -1
  10. package/dist/chunks/{ButtonIcon-BP2upur5.js → ButtonIcon-CsX4oYeI.js} +2 -2
  11. package/dist/chunks/{ButtonIcon-BP2upur5.js.map → ButtonIcon-CsX4oYeI.js.map} +1 -1
  12. package/dist/chunks/{ButtonIcon-Bk1sFlaj.cjs → ButtonIcon-Cz8zJH-E.cjs} +2 -2
  13. package/dist/chunks/{ButtonIcon-Bk1sFlaj.cjs.map → ButtonIcon-Cz8zJH-E.cjs.map} +1 -1
  14. package/dist/chunks/{Card-CVrUgBCJ.cjs → Card-B8XSgLaD.cjs} +2 -2
  15. package/dist/chunks/{Card-CVrUgBCJ.cjs.map → Card-B8XSgLaD.cjs.map} +1 -1
  16. package/dist/chunks/{Card-BjoXz5bX.js → Card-DOsl4_nu.js} +2 -2
  17. package/dist/chunks/{Card-BjoXz5bX.js.map → Card-DOsl4_nu.js.map} +1 -1
  18. package/dist/chunks/{CardContent-5JyK0TcD.cjs → CardContent-BivcVoIc.cjs} +2 -2
  19. package/dist/chunks/{CardContent-5JyK0TcD.cjs.map → CardContent-BivcVoIc.cjs.map} +1 -1
  20. package/dist/chunks/{CardContent-srKirxQF.js → CardContent-C8ypE7yH.js} +2 -2
  21. package/dist/chunks/{CardContent-srKirxQF.js.map → CardContent-C8ypE7yH.js.map} +1 -1
  22. package/dist/chunks/{Drawer-C3RaAzs0.cjs → Drawer-0wOdungj.cjs} +2 -2
  23. package/dist/chunks/{Drawer-C3RaAzs0.cjs.map → Drawer-0wOdungj.cjs.map} +1 -1
  24. package/dist/chunks/{Drawer-ijxxjWs1.js → Drawer-D1lAWrdi.js} +2 -2
  25. package/dist/chunks/{Drawer-ijxxjWs1.js.map → Drawer-D1lAWrdi.js.map} +1 -1
  26. package/dist/chunks/{Icon-BfSirxGe.js → Icon-CCIgEwA9.js} +2 -2
  27. package/dist/chunks/{Icon-BfSirxGe.js.map → Icon-CCIgEwA9.js.map} +1 -1
  28. package/dist/chunks/{Icon-C_2Qoqhh.cjs → Icon-COl2Nhp9.cjs} +2 -2
  29. package/dist/chunks/{Icon-C_2Qoqhh.cjs.map → Icon-COl2Nhp9.cjs.map} +1 -1
  30. package/dist/chunks/{MenuButton-ybz5rxD_.cjs → MenuButton-AyzSxRY0.cjs} +2 -2
  31. package/dist/chunks/{MenuButton-ybz5rxD_.cjs.map → MenuButton-AyzSxRY0.cjs.map} +1 -1
  32. package/dist/chunks/{MenuButton-DG-M7g1U.js → MenuButton-DLf22r80.js} +2 -2
  33. package/dist/chunks/{MenuButton-DG-M7g1U.js.map → MenuButton-DLf22r80.js.map} +1 -1
  34. package/dist/chunks/{Stack-BXkZSPdw.js → Stack-DK5pfu2w.js} +2 -2
  35. package/dist/chunks/{Stack-BXkZSPdw.js.map → Stack-DK5pfu2w.js.map} +1 -1
  36. package/dist/chunks/{Stack-Bpv8iA8b.cjs → Stack-beBM7a60.cjs} +2 -2
  37. package/dist/chunks/{Stack-Bpv8iA8b.cjs.map → Stack-beBM7a60.cjs.map} +1 -1
  38. package/dist/chunks/{Typography-CPUKMAJT.cjs → Typography-DitZ-9b5.cjs} +2 -2
  39. package/dist/chunks/{Typography-CPUKMAJT.cjs.map → Typography-DitZ-9b5.cjs.map} +1 -1
  40. package/dist/chunks/{Typography-BDFesZK7.js → Typography-v-XX3oAk.js} +2 -2
  41. package/dist/chunks/{Typography-BDFesZK7.js.map → Typography-v-XX3oAk.js.map} +1 -1
  42. package/dist/chunks/{createComponent-ixuQW53A.cjs → createComponent-CTufIEiN.cjs} +2 -2
  43. package/dist/chunks/{createComponent-ixuQW53A.cjs.map → createComponent-CTufIEiN.cjs.map} +1 -1
  44. package/dist/chunks/{createComponent-C6TL60ri.js → createComponent-WNQRXK89.js} +2 -2
  45. package/dist/chunks/{createComponent-C6TL60ri.js.map → createComponent-WNQRXK89.js.map} +1 -1
  46. package/dist/chunks/generateSupportColors-BN5t8dA-.js +2 -0
  47. package/dist/chunks/generateSupportColors-BN5t8dA-.js.map +1 -0
  48. package/dist/chunks/generateSupportColors-CTMoGhDf.cjs +2 -0
  49. package/dist/chunks/generateSupportColors-CTMoGhDf.cjs.map +1 -0
  50. package/dist/chunks/{useMenu-CA-D2bkv.js → useMenu-BNL22pOQ.js} +2 -2
  51. package/dist/chunks/{useMenu-CA-D2bkv.js.map → useMenu-BNL22pOQ.js.map} +1 -1
  52. package/dist/chunks/{useMenu-eNouSUEO.cjs → useMenu-C0u9aTiR.cjs} +2 -2
  53. package/dist/chunks/{useMenu-eNouSUEO.cjs.map → useMenu-C0u9aTiR.cjs.map} +1 -1
  54. package/dist/chunks/useTheme-DoESyi5h.cjs +2 -0
  55. package/dist/chunks/useTheme-DoESyi5h.cjs.map +1 -0
  56. package/dist/chunks/useTheme-njpgklWP.js +2 -0
  57. package/dist/chunks/useTheme-njpgklWP.js.map +1 -0
  58. package/dist/components/Alert/index.cjs +1 -1
  59. package/dist/components/Alert/index.js +1 -1
  60. package/dist/components/Avatar/index.cjs +1 -1
  61. package/dist/components/Avatar/index.cjs.map +1 -1
  62. package/dist/components/Avatar/index.js +1 -1
  63. package/dist/components/Avatar/index.js.map +1 -1
  64. package/dist/components/Box/index.cjs +1 -1
  65. package/dist/components/Box/index.js +1 -1
  66. package/dist/components/Button/index.cjs +1 -1
  67. package/dist/components/Button/index.cjs.map +1 -1
  68. package/dist/components/Button/index.js +1 -1
  69. package/dist/components/Button/index.js.map +1 -1
  70. package/dist/components/ButtonIcon/index.cjs +1 -1
  71. package/dist/components/ButtonIcon/index.js +1 -1
  72. package/dist/components/Card/index.cjs +1 -1
  73. package/dist/components/Card/index.js +1 -1
  74. package/dist/components/Checkbox/index.cjs +1 -1
  75. package/dist/components/Checkbox/index.cjs.map +1 -1
  76. package/dist/components/Checkbox/index.js +1 -1
  77. package/dist/components/Checkbox/index.js.map +1 -1
  78. package/dist/components/CheckboxGroup/index.cjs +1 -1
  79. package/dist/components/CheckboxGroup/index.cjs.map +1 -1
  80. package/dist/components/CheckboxGroup/index.js +1 -1
  81. package/dist/components/CheckboxGroup/index.js.map +1 -1
  82. package/dist/components/Chip/index.cjs +1 -1
  83. package/dist/components/Chip/index.cjs.map +1 -1
  84. package/dist/components/Chip/index.js +1 -1
  85. package/dist/components/Chip/index.js.map +1 -1
  86. package/dist/components/ColorPicker/index.cjs +1 -1
  87. package/dist/components/ColorPicker/index.cjs.map +1 -1
  88. package/dist/components/ColorPicker/index.js +1 -1
  89. package/dist/components/ColorPicker/index.js.map +1 -1
  90. package/dist/components/Container/index.cjs +1 -1
  91. package/dist/components/Container/index.cjs.map +1 -1
  92. package/dist/components/Container/index.js +1 -1
  93. package/dist/components/Container/index.js.map +1 -1
  94. package/dist/components/Divider/index.cjs +1 -1
  95. package/dist/components/Divider/index.cjs.map +1 -1
  96. package/dist/components/Divider/index.js +1 -1
  97. package/dist/components/Divider/index.js.map +1 -1
  98. package/dist/components/Drawer/index.cjs +1 -1
  99. package/dist/components/Drawer/index.js +1 -1
  100. package/dist/components/Icon/index.cjs +1 -1
  101. package/dist/components/Icon/index.js +1 -1
  102. package/dist/components/Input/index.cjs +1 -1
  103. package/dist/components/Input/index.cjs.map +1 -1
  104. package/dist/components/Input/index.js +1 -1
  105. package/dist/components/Input/index.js.map +1 -1
  106. package/dist/components/InputFile/index.cjs +1 -1
  107. package/dist/components/InputFile/index.cjs.map +1 -1
  108. package/dist/components/InputFile/index.js +1 -1
  109. package/dist/components/InputFile/index.js.map +1 -1
  110. package/dist/components/Loading/index.cjs +1 -1
  111. package/dist/components/Loading/index.cjs.map +1 -1
  112. package/dist/components/Loading/index.js +1 -1
  113. package/dist/components/Loading/index.js.map +1 -1
  114. package/dist/components/Menu/index.cjs +1 -1
  115. package/dist/components/Menu/index.js +1 -1
  116. package/dist/components/Modal/index.cjs +1 -1
  117. package/dist/components/Modal/index.cjs.map +1 -1
  118. package/dist/components/Modal/index.js +1 -1
  119. package/dist/components/Modal/index.js.map +1 -1
  120. package/dist/components/Select/index.cjs +1 -1
  121. package/dist/components/Select/index.cjs.map +1 -1
  122. package/dist/components/Select/index.js +1 -1
  123. package/dist/components/Select/index.js.map +1 -1
  124. package/dist/components/Skeleton/index.cjs +1 -1
  125. package/dist/components/Skeleton/index.cjs.map +1 -1
  126. package/dist/components/Skeleton/index.js +1 -1
  127. package/dist/components/Skeleton/index.js.map +1 -1
  128. package/dist/components/Stack/index.cjs +1 -1
  129. package/dist/components/Stack/index.js +1 -1
  130. package/dist/components/Switchs/index.cjs +1 -1
  131. package/dist/components/Switchs/index.cjs.map +1 -1
  132. package/dist/components/Switchs/index.js +1 -1
  133. package/dist/components/Switchs/index.js.map +1 -1
  134. package/dist/components/Table/index.cjs +1 -1
  135. package/dist/components/Table/index.cjs.map +1 -1
  136. package/dist/components/Table/index.js +1 -1
  137. package/dist/components/Table/index.js.map +1 -1
  138. package/dist/components/Toast/index.cjs +1 -1
  139. package/dist/components/Toast/index.cjs.map +1 -1
  140. package/dist/components/Toast/index.js +1 -1
  141. package/dist/components/Toast/index.js.map +1 -1
  142. package/dist/components/Tooltip/index.cjs +1 -1
  143. package/dist/components/Tooltip/index.cjs.map +1 -1
  144. package/dist/components/Tooltip/index.js +1 -1
  145. package/dist/components/Tooltip/index.js.map +1 -1
  146. package/dist/components/Typography/index.cjs +1 -1
  147. package/dist/components/Typography/index.js +1 -1
  148. package/dist/core/index.cjs +2 -0
  149. package/dist/core/index.cjs.map +1 -0
  150. package/dist/core/index.d.ts +1 -0
  151. package/dist/core/index.js +2 -0
  152. package/dist/core/index.js.map +1 -0
  153. package/dist/index.cjs +1 -1
  154. package/dist/index.js +1 -1
  155. package/dist/theme/index.cjs +1 -1
  156. package/dist/theme/index.js +1 -1
  157. package/package.json +6 -1
  158. package/dist/chunks/useTheme-BkUhhydo.js +0 -2
  159. package/dist/chunks/useTheme-BkUhhydo.js.map +0 -1
  160. package/dist/chunks/useTheme-DwBpyW-5.cjs +0 -2
  161. package/dist/chunks/useTheme-DwBpyW-5.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/feedback/Toast/Toast.tsx","../../../src/feedback/Toast/ToastProvider.tsx","../../../src/feedback/Toast/useToast.ts"],"sourcesContent":["import { useEffect, useRef, type HTMLAttributes } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\nimport { Colors } from '@iziui/core/theme';\n\nimport createComponent from '@/core/createComponent';\nimport { useTheme } from '@/theme';\n\nimport Alert from '../Alert';\n\nimport '@iziui/styles/components/Toast.scss';\n\ntype Icon = React.JSX.Element;\ntype Message = React.JSX.Element | string;\n\nexport type PickedToast = Pick<ToastProps,\n | 'id'\n | 'icon'\n | 'color'\n | 'message'\n | 'delay'\n | 'visible'\n>\n\nexport interface ToastProps extends HTMLAttributes<HTMLDivElement> {\n id?: string;\n icon?: Icon;\n color: Colors;\n message: Message;\n delay?: number;\n visible?: boolean;\n onRemove: (id: string) => void;\n};\n\nfunction Toast({ id, color, message, icon, delay, onRemove, ...props }: ToastProps) {\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const { theme: { mode } } = useTheme();\n\n const className = joinClass(\n `${prefix}-toast`,\n props.className\n );\n\n useEffect(() => {\n startTimer();\n return clearTimer;\n }, []);\n\n const handleRemove = () => {\n if (!id) { return; }\n onRemove(id);\n };\n\n const startTimer = () => {\n timeoutRef.current = setTimeout(() => { handleRemove(); }, delay);\n };\n\n const clearTimer = () => {\n if (!timeoutRef.current) { return; }\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n };\n\n return (\n <Alert\n className={className}\n icon={icon}\n sx={{\n backgroundColor: ({ text }) => text.primary,\n color: (palette) => palette[color][mode]\n }}\n onClose={handleRemove}\n onMouseEnter={clearTimer}\n onMouseLeave={startTimer}\n >\n {message}\n </Alert>\n );\n}\n\nexport default createComponent(Toast);\n","import { createContext, type PropsWithChildren, useMemo, useState } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { uuid } from '@iziui/toolkit/uuid';\n\nimport Zoom from '@/animations/Zoom';\n\nimport Toast, { type PickedToast } from './Toast';\n\nimport '@iziui/styles/components/Toast.scss';\n\nexport interface ToastContextConfig {\n toasts: Array<PickedToast>;\n add: (toast: PickedToast) => void;\n}\n\nexport const ToastContext = createContext<ToastContextConfig>({\n toasts: [],\n add: () => { }\n});\n\nexport default function ToastProvider({ children }: PropsWithChildren) {\n const [toasts, setToasts] = useState<Array<PickedToast>>([]);\n\n const context: ToastContextConfig = useMemo(() => ({\n toasts,\n add: (toast) => { addToast(toast); },\n }), [toasts]);\n\n const addToast = (toast: PickedToast) => {\n setToasts(prev => [...prev, { id: uuid(), visible: true, ...toast }]);\n };\n\n const remove = (id: string) => {\n setToasts(prev => prev.map(a => {\n if (a.id === id) { a.visible = false; }\n return a;\n }));\n setTimeout(() => { setToasts(prev => prev.filter(a => a.id !== id)); }, 500);\n };\n\n return (\n <ToastContext.Provider value={context}>\n <div className={`${prefix}-toast-container`}>\n {\n toasts.map(({ ...toast }) => {\n return (\n <div key={toast.id} style={{ marginBottom: 15 }}>\n <Zoom enter={Boolean(toast.visible)}>\n <Toast {...toast} onRemove={remove} />\n </Zoom>\n </div>\n );\n })\n }\n </div>\n {children}\n </ToastContext.Provider>\n );\n}","import { useContext } from 'react';\n\nimport { ToastContext } from './ToastProvider';\n\nexport default function useToast() {\n const { add } = useContext(ToastContext);\n\n return { addToast: add };\n}"],"names":["Toast","id","color","message","icon","delay","onRemove","props","timeoutRef","useRef","mode","useTheme","className","joinClass","prefix","useEffect","startTimer","clearTimer","handleRemove","jsx","Alert","text","palette","createComponent","ToastContext","createContext","ToastProvider","children","toasts","setToasts","useState","context","useMemo","toast","addToast","prev","uuid","remove","a","jsxs","Zoom","useToast","add","useContext"],"mappings":"2uBAoCA,SAASA,EAAM,CAAE,GAAAC,EAAI,MAAAC,EAAO,QAAAC,EAAS,KAAAC,EAAM,MAAAC,EAAO,SAAAC,EAAU,GAAGC,GAAqB,CAClF,MAAMC,EAAaC,EAAAA,OAA6C,IAAI,EAE9D,CAAE,MAAO,CAAE,KAAAC,CAAA,CAAK,EAAMC,EAAAA,SAAA,EAEtBC,EAAYC,EAAAA,UAChB,GAAGC,EAAAA,MAAM,SACTP,EAAM,SAAA,EAGRQ,EAAAA,UAAU,KACRC,EAAA,EACOC,GACN,CAAA,CAAE,EAEL,MAAMC,EAAe,IAAM,CACpBjB,GACLK,EAASL,CAAE,CACb,EAEMe,EAAa,IAAM,CACvBR,EAAW,QAAU,WAAW,IAAM,CAAEU,EAAA,CAAgB,EAAGb,CAAK,CAClE,EAEMY,EAAa,IAAM,CAClBT,EAAW,UAChB,aAAaA,EAAW,OAAO,EAC/BA,EAAW,QAAU,KACvB,EAEA,OACEW,EAAAA,IAACC,EAAAA,MAAA,CACC,UAAAR,EACA,KAAAR,EACA,GAAI,CACF,gBAAiB,CAAC,CAAE,KAAAiB,CAAA,IAAWA,EAAK,QACpC,MAAQC,GAAYA,EAAQpB,CAAK,EAAEQ,CAAI,CAAA,EAEzC,QAASQ,EACT,aAAcD,EACd,aAAcD,EAEb,SAAAb,CAAA,CAAA,CAGP,CAEA,MAAAH,EAAeuB,EAAAA,gBAAgBvB,CAAK,EClEvBwB,EAAeC,EAAAA,cAAkC,CAC5D,OAAQ,CAAA,EACR,IAAK,IAAM,CAAE,CACf,CAAC,EAED,SAAwBC,EAAc,CAAE,SAAAC,GAA+B,CACrE,KAAM,CAACC,EAAQC,CAAS,EAAIC,EAAAA,SAA6B,CAAA,CAAE,EAErDC,EAA8BC,EAAAA,QAAQ,KAAO,CACjD,OAAAJ,EACA,IAAMK,GAAU,CAAEC,EAASD,CAAK,CAAG,CAAA,GACjC,CAACL,CAAM,CAAC,EAENM,EAAYD,GAAuB,CACvCJ,EAAUM,GAAQ,CAAC,GAAGA,EAAM,CAAE,GAAIC,EAAAA,KAAA,EAAQ,QAAS,GAAM,GAAGH,CAAA,CAAO,CAAC,CACtE,EAEMI,EAAUpC,GAAe,CAC7B4B,EAAUM,GAAQA,EAAK,IAAIG,IACrBA,EAAE,KAAOrC,IAAMqC,EAAE,QAAU,IACxBA,EACR,CAAC,EACF,WAAW,IAAM,CAAET,KAAkBM,EAAK,UAAYG,EAAE,KAAOrC,CAAE,CAAC,CAAG,EAAG,GAAG,CAC7E,EAEA,OACEsC,EAAAA,KAACf,EAAa,SAAb,CAAsB,MAAOO,EAC5B,SAAA,CAAAZ,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGL,EAAAA,MAAM,mBAErB,SAAAc,EAAO,IAAI,CAAC,CAAE,GAAGK,CAAA,IAEbd,EAAAA,IAAC,OAAmB,MAAO,CAAE,aAAc,IACzC,SAAAA,EAAAA,IAACqB,EAAAA,KAAA,CAAK,MAAO,EAAQP,EAAM,QACzB,SAAAd,EAAAA,IAACnB,EAAA,CAAO,GAAGiC,EAAO,SAAUI,CAAA,CAAQ,CAAA,CACtC,GAHQJ,EAAM,EAIhB,CAEH,CAAA,CAEL,EACCN,CAAA,EACH,CAEJ,CCxDA,SAAwBc,GAAW,CACjC,KAAM,CAAE,IAAAC,CAAA,EAAQC,EAAAA,WAAWnB,CAAY,EAEvC,MAAO,CAAE,SAAUkB,CAAA,CACrB"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/feedback/Toast/Toast.tsx","../../../src/feedback/Toast/ToastProvider.tsx","../../../src/feedback/Toast/useToast.ts"],"sourcesContent":["import { useEffect, useRef, type HTMLAttributes } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\nimport { Colors } from '@iziui/core/theme';\n\nimport createComponent from '@/core/createComponent';\nimport { useTheme } from '@/theme';\n\nimport Alert from '../Alert';\n\nimport '@iziui/styles/components/Toast.scss';\n\ntype Icon = React.JSX.Element;\ntype Message = React.JSX.Element | string;\n\nexport type PickedToast = Pick<ToastProps,\n | 'id'\n | 'icon'\n | 'color'\n | 'message'\n | 'delay'\n | 'visible'\n>\n\nexport interface ToastProps extends HTMLAttributes<HTMLDivElement> {\n id?: string;\n icon?: Icon;\n color: Colors;\n message: Message;\n delay?: number;\n visible?: boolean;\n onRemove: (id: string) => void;\n};\n\nfunction Toast({ id, color, message, icon, delay, onRemove, ...props }: ToastProps) {\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const { theme: { mode } } = useTheme();\n\n const className = joinClass(\n `${prefix}-toast`,\n props.className\n );\n\n useEffect(() => {\n startTimer();\n return clearTimer;\n }, []);\n\n const handleRemove = () => {\n if (!id) { return; }\n onRemove(id);\n };\n\n const startTimer = () => {\n timeoutRef.current = setTimeout(() => { handleRemove(); }, delay);\n };\n\n const clearTimer = () => {\n if (!timeoutRef.current) { return; }\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n };\n\n return (\n <Alert\n className={className}\n icon={icon}\n sx={{\n backgroundColor: ({ text }) => text.primary,\n color: (palette) => palette[color][mode]\n }}\n onClose={handleRemove}\n onMouseEnter={clearTimer}\n onMouseLeave={startTimer}\n >\n {message}\n </Alert>\n );\n}\n\nexport default createComponent(Toast);\n","import { createContext, type PropsWithChildren, useMemo, useState } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { uuid } from '@iziui/toolkit/uuid';\n\nimport Zoom from '@/animations/Zoom';\n\nimport Toast, { type PickedToast } from './Toast';\n\nimport '@iziui/styles/components/Toast.scss';\n\nexport interface ToastContextConfig {\n toasts: Array<PickedToast>;\n add: (toast: PickedToast) => void;\n}\n\nexport const ToastContext = createContext<ToastContextConfig>({\n toasts: [],\n add: () => { }\n});\n\nexport default function ToastProvider({ children }: PropsWithChildren) {\n const [toasts, setToasts] = useState<Array<PickedToast>>([]);\n\n const context: ToastContextConfig = useMemo(() => ({\n toasts,\n add: (toast) => { addToast(toast); },\n }), [toasts]);\n\n const addToast = (toast: PickedToast) => {\n setToasts(prev => [...prev, { id: uuid(), visible: true, ...toast }]);\n };\n\n const remove = (id: string) => {\n setToasts(prev => prev.map(a => {\n if (a.id === id) { a.visible = false; }\n return a;\n }));\n setTimeout(() => { setToasts(prev => prev.filter(a => a.id !== id)); }, 500);\n };\n\n return (\n <ToastContext.Provider value={context}>\n <div className={`${prefix}-toast-container`}>\n {\n toasts.map(({ ...toast }) => {\n return (\n <div key={toast.id} style={{ marginBottom: 15 }}>\n <Zoom enter={Boolean(toast.visible)}>\n <Toast {...toast} onRemove={remove} />\n </Zoom>\n </div>\n );\n })\n }\n </div>\n {children}\n </ToastContext.Provider>\n );\n}","import { useContext } from 'react';\n\nimport { ToastContext } from './ToastProvider';\n\nexport default function useToast() {\n const { add } = useContext(ToastContext);\n\n return { addToast: add };\n}"],"names":["Toast","id","color","message","icon","delay","onRemove","props","timeoutRef","useRef","mode","useTheme","className","joinClass","prefix","useEffect","startTimer","clearTimer","handleRemove","jsx","Alert","text","palette","createComponent","ToastContext","createContext","ToastProvider","children","toasts","setToasts","useState","context","useMemo","toast","addToast","prev","uuid","remove","a","jsxs","Zoom","useToast","add","useContext"],"mappings":"syBAoCA,SAASA,EAAM,CAAE,GAAAC,EAAI,MAAAC,EAAO,QAAAC,EAAS,KAAAC,EAAM,MAAAC,EAAO,SAAAC,EAAU,GAAGC,GAAqB,CAClF,MAAMC,EAAaC,EAAAA,OAA6C,IAAI,EAE9D,CAAE,MAAO,CAAE,KAAAC,CAAA,CAAK,EAAMC,EAAAA,SAAA,EAEtBC,EAAYC,EAAAA,UAChB,GAAGC,EAAAA,MAAM,SACTP,EAAM,SAAA,EAGRQ,EAAAA,UAAU,KACRC,EAAA,EACOC,GACN,CAAA,CAAE,EAEL,MAAMC,EAAe,IAAM,CACpBjB,GACLK,EAASL,CAAE,CACb,EAEMe,EAAa,IAAM,CACvBR,EAAW,QAAU,WAAW,IAAM,CAAEU,EAAA,CAAgB,EAAGb,CAAK,CAClE,EAEMY,EAAa,IAAM,CAClBT,EAAW,UAChB,aAAaA,EAAW,OAAO,EAC/BA,EAAW,QAAU,KACvB,EAEA,OACEW,EAAAA,IAACC,EAAAA,MAAA,CACC,UAAAR,EACA,KAAAR,EACA,GAAI,CACF,gBAAiB,CAAC,CAAE,KAAAiB,CAAA,IAAWA,EAAK,QACpC,MAAQC,GAAYA,EAAQpB,CAAK,EAAEQ,CAAI,CAAA,EAEzC,QAASQ,EACT,aAAcD,EACd,aAAcD,EAEb,SAAAb,CAAA,CAAA,CAGP,CAEA,MAAAH,EAAeuB,EAAAA,gBAAgBvB,CAAK,EClEvBwB,EAAeC,EAAAA,cAAkC,CAC5D,OAAQ,CAAA,EACR,IAAK,IAAM,CAAE,CACf,CAAC,EAED,SAAwBC,EAAc,CAAE,SAAAC,GAA+B,CACrE,KAAM,CAACC,EAAQC,CAAS,EAAIC,EAAAA,SAA6B,CAAA,CAAE,EAErDC,EAA8BC,EAAAA,QAAQ,KAAO,CACjD,OAAAJ,EACA,IAAMK,GAAU,CAAEC,EAASD,CAAK,CAAG,CAAA,GACjC,CAACL,CAAM,CAAC,EAENM,EAAYD,GAAuB,CACvCJ,EAAUM,GAAQ,CAAC,GAAGA,EAAM,CAAE,GAAIC,EAAAA,KAAA,EAAQ,QAAS,GAAM,GAAGH,CAAA,CAAO,CAAC,CACtE,EAEMI,EAAUpC,GAAe,CAC7B4B,EAAUM,GAAQA,EAAK,IAAIG,IACrBA,EAAE,KAAOrC,IAAMqC,EAAE,QAAU,IACxBA,EACR,CAAC,EACF,WAAW,IAAM,CAAET,KAAkBM,EAAK,UAAYG,EAAE,KAAOrC,CAAE,CAAC,CAAG,EAAG,GAAG,CAC7E,EAEA,OACEsC,EAAAA,KAACf,EAAa,SAAb,CAAsB,MAAOO,EAC5B,SAAA,CAAAZ,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGL,EAAAA,MAAM,mBAErB,SAAAc,EAAO,IAAI,CAAC,CAAE,GAAGK,CAAA,IAEbd,EAAAA,IAAC,OAAmB,MAAO,CAAE,aAAc,IACzC,SAAAA,EAAAA,IAACqB,EAAAA,KAAA,CAAK,MAAO,EAAQP,EAAM,QACzB,SAAAd,EAAAA,IAACnB,EAAA,CAAO,GAAGiC,EAAO,SAAUI,CAAA,CAAQ,CAAA,CACtC,GAHQJ,EAAM,EAIhB,CAEH,CAAA,CAEL,EACCN,CAAA,EACH,CAEJ,CCxDA,SAAwBc,GAAW,CACjC,KAAM,CAAE,IAAAC,CAAA,EAAQC,EAAAA,WAAWnB,CAAY,EAEvC,MAAO,CAAE,SAAUkB,CAAA,CACrB"}
@@ -1,2 +1,2 @@
1
- import{jsx as i,jsxs as x}from"react/jsx-runtime";import{useRef as h,useEffect as C,useState as b,useMemo as j,createContext as R,useContext as M}from"react";import{p}from"../../chunks/index-CZ41y9Hn.js";import{j as N}from"../../chunks/joinClass-anSpaauN.js";import{c as $}from"../../chunks/createComponent-C6TL60ri.js";import{u as g}from"../../chunks/useTheme-BkUhhydo.js";import{A as y}from"../../chunks/Alert-DGWFTr3e.js";import{u as A}from"../../chunks/uuid-dGvr9vBZ.js";import{Z as B}from"../../chunks/Zoom-DqgU4Wfv.js";import"../../chunks/Stack-BXkZSPdw.js";import"../../chunks/Typography-BDFesZK7.js";import"../../chunks/convertPathToColor-D2SdAqGh.js";import"../../chunks/ButtonIcon-BP2upur5.js";import"../../chunks/Ripple-Bq9bxg4k.js";import"../../chunks/Icon-BfSirxGe.js";function E({id:r,color:s,message:n,icon:m,delay:a,onRemove:c,...t}){const o=h(null),{theme:{mode:e}}=g(),v=N(`${p}-toast`,t.className);C(()=>(d(),f),[]);const l=()=>{r&&c(r)},d=()=>{o.current=setTimeout(()=>{l()},a)},f=()=>{o.current&&(clearTimeout(o.current),o.current=null)};return i(y,{className:v,icon:m,sx:{backgroundColor:({text:u})=>u.primary,color:u=>u[s][e]},onClose:l,onMouseEnter:f,onMouseLeave:d,children:n})}const P=$(E),T=R({toasts:[],add:()=>{}});function Q({children:r}){const[s,n]=b([]),m=j(()=>({toasts:s,add:t=>{a(t)}}),[s]),a=t=>{n(o=>[...o,{id:A(),visible:!0,...t}])},c=t=>{n(o=>o.map(e=>(e.id===t&&(e.visible=!1),e))),setTimeout(()=>{n(o=>o.filter(e=>e.id!==t))},500)};return x(T.Provider,{value:m,children:[i("div",{className:`${p}-toast-container`,children:s.map(({...t})=>i("div",{style:{marginBottom:15},children:i(B,{enter:!!t.visible,children:i(P,{...t,onRemove:c})})},t.id))}),r]})}function U(){const{add:r}=M(T);return{addToast:r}}export{P as Toast,Q as ToastProvider,U as useToast};
1
+ import{jsx as i,jsxs as x}from"react/jsx-runtime";import{useRef as h,useEffect as C,useState as b,useMemo as j,createContext as R,useContext as M}from"react";import{p as f}from"../../chunks/index-CZ41y9Hn.js";import{j as N}from"../../chunks/joinClass-anSpaauN.js";import{c as $}from"../../chunks/createComponent-WNQRXK89.js";import{u as g}from"../../chunks/useTheme-njpgklWP.js";import{A as y}from"../../chunks/Alert-Cn-EvcSp.js";import{u as A}from"../../chunks/uuid-dGvr9vBZ.js";import{Z as B}from"../../chunks/Zoom-DqgU4Wfv.js";import"../../chunks/generateSupportColors-BN5t8dA-.js";import"../../chunks/Stack-DK5pfu2w.js";import"../../chunks/Typography-v-XX3oAk.js";import"../../chunks/convertPathToColor-D2SdAqGh.js";import"../../chunks/ButtonIcon-CsX4oYeI.js";import"../../chunks/Ripple-Bq9bxg4k.js";import"../../chunks/Icon-CCIgEwA9.js";function E({id:r,color:s,message:n,icon:m,delay:a,onRemove:c,...t}){const o=h(null),{theme:{mode:e}}=g(),v=N(`${f}-toast`,t.className);C(()=>(d(),p),[]);const l=()=>{r&&c(r)},d=()=>{o.current=setTimeout(()=>{l()},a)},p=()=>{o.current&&(clearTimeout(o.current),o.current=null)};return i(y,{className:v,icon:m,sx:{backgroundColor:({text:u})=>u.primary,color:u=>u[s][e]},onClose:l,onMouseEnter:p,onMouseLeave:d,children:n})}const P=$(E),T=R({toasts:[],add:()=>{}});function U({children:r}){const[s,n]=b([]),m=j(()=>({toasts:s,add:t=>{a(t)}}),[s]),a=t=>{n(o=>[...o,{id:A(),visible:!0,...t}])},c=t=>{n(o=>o.map(e=>(e.id===t&&(e.visible=!1),e))),setTimeout(()=>{n(o=>o.filter(e=>e.id!==t))},500)};return x(T.Provider,{value:m,children:[i("div",{className:`${f}-toast-container`,children:s.map(({...t})=>i("div",{style:{marginBottom:15},children:i(B,{enter:!!t.visible,children:i(P,{...t,onRemove:c})})},t.id))}),r]})}function V(){const{add:r}=M(T);return{addToast:r}}export{P as Toast,U as ToastProvider,V as useToast};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/feedback/Toast/Toast.tsx","../../../src/feedback/Toast/ToastProvider.tsx","../../../src/feedback/Toast/useToast.ts"],"sourcesContent":["import { useEffect, useRef, type HTMLAttributes } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\nimport { Colors } from '@iziui/core/theme';\n\nimport createComponent from '@/core/createComponent';\nimport { useTheme } from '@/theme';\n\nimport Alert from '../Alert';\n\nimport '@iziui/styles/components/Toast.scss';\n\ntype Icon = React.JSX.Element;\ntype Message = React.JSX.Element | string;\n\nexport type PickedToast = Pick<ToastProps,\n | 'id'\n | 'icon'\n | 'color'\n | 'message'\n | 'delay'\n | 'visible'\n>\n\nexport interface ToastProps extends HTMLAttributes<HTMLDivElement> {\n id?: string;\n icon?: Icon;\n color: Colors;\n message: Message;\n delay?: number;\n visible?: boolean;\n onRemove: (id: string) => void;\n};\n\nfunction Toast({ id, color, message, icon, delay, onRemove, ...props }: ToastProps) {\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const { theme: { mode } } = useTheme();\n\n const className = joinClass(\n `${prefix}-toast`,\n props.className\n );\n\n useEffect(() => {\n startTimer();\n return clearTimer;\n }, []);\n\n const handleRemove = () => {\n if (!id) { return; }\n onRemove(id);\n };\n\n const startTimer = () => {\n timeoutRef.current = setTimeout(() => { handleRemove(); }, delay);\n };\n\n const clearTimer = () => {\n if (!timeoutRef.current) { return; }\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n };\n\n return (\n <Alert\n className={className}\n icon={icon}\n sx={{\n backgroundColor: ({ text }) => text.primary,\n color: (palette) => palette[color][mode]\n }}\n onClose={handleRemove}\n onMouseEnter={clearTimer}\n onMouseLeave={startTimer}\n >\n {message}\n </Alert>\n );\n}\n\nexport default createComponent(Toast);\n","import { createContext, type PropsWithChildren, useMemo, useState } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { uuid } from '@iziui/toolkit/uuid';\n\nimport Zoom from '@/animations/Zoom';\n\nimport Toast, { type PickedToast } from './Toast';\n\nimport '@iziui/styles/components/Toast.scss';\n\nexport interface ToastContextConfig {\n toasts: Array<PickedToast>;\n add: (toast: PickedToast) => void;\n}\n\nexport const ToastContext = createContext<ToastContextConfig>({\n toasts: [],\n add: () => { }\n});\n\nexport default function ToastProvider({ children }: PropsWithChildren) {\n const [toasts, setToasts] = useState<Array<PickedToast>>([]);\n\n const context: ToastContextConfig = useMemo(() => ({\n toasts,\n add: (toast) => { addToast(toast); },\n }), [toasts]);\n\n const addToast = (toast: PickedToast) => {\n setToasts(prev => [...prev, { id: uuid(), visible: true, ...toast }]);\n };\n\n const remove = (id: string) => {\n setToasts(prev => prev.map(a => {\n if (a.id === id) { a.visible = false; }\n return a;\n }));\n setTimeout(() => { setToasts(prev => prev.filter(a => a.id !== id)); }, 500);\n };\n\n return (\n <ToastContext.Provider value={context}>\n <div className={`${prefix}-toast-container`}>\n {\n toasts.map(({ ...toast }) => {\n return (\n <div key={toast.id} style={{ marginBottom: 15 }}>\n <Zoom enter={Boolean(toast.visible)}>\n <Toast {...toast} onRemove={remove} />\n </Zoom>\n </div>\n );\n })\n }\n </div>\n {children}\n </ToastContext.Provider>\n );\n}","import { useContext } from 'react';\n\nimport { ToastContext } from './ToastProvider';\n\nexport default function useToast() {\n const { add } = useContext(ToastContext);\n\n return { addToast: add };\n}"],"names":["Toast","id","color","message","icon","delay","onRemove","props","timeoutRef","useRef","mode","useTheme","className","joinClass","prefix","useEffect","startTimer","clearTimer","handleRemove","jsx","Alert","text","palette","Toast$1","createComponent","ToastContext","createContext","ToastProvider","children","toasts","setToasts","useState","context","useMemo","toast","addToast","prev","uuid","remove","a","jsxs","Zoom","useToast","add","useContext"],"mappings":"8wBAoCA,SAASA,EAAM,CAAE,GAAAC,EAAI,MAAAC,EAAO,QAAAC,EAAS,KAAAC,EAAM,MAAAC,EAAO,SAAAC,EAAU,GAAGC,GAAqB,CAClF,MAAMC,EAAaC,EAA6C,IAAI,EAE9D,CAAE,MAAO,CAAE,KAAAC,CAAA,CAAK,EAAMC,EAAA,EAEtBC,EAAYC,EAChB,GAAGC,CAAM,SACTP,EAAM,SAAA,EAGRQ,EAAU,KACRC,EAAA,EACOC,GACN,CAAA,CAAE,EAEL,MAAMC,EAAe,IAAM,CACpBjB,GACLK,EAASL,CAAE,CACb,EAEMe,EAAa,IAAM,CACvBR,EAAW,QAAU,WAAW,IAAM,CAAEU,EAAA,CAAgB,EAAGb,CAAK,CAClE,EAEMY,EAAa,IAAM,CAClBT,EAAW,UAChB,aAAaA,EAAW,OAAO,EAC/BA,EAAW,QAAU,KACvB,EAEA,OACEW,EAACC,EAAA,CACC,UAAAR,EACA,KAAAR,EACA,GAAI,CACF,gBAAiB,CAAC,CAAE,KAAAiB,CAAA,IAAWA,EAAK,QACpC,MAAQC,GAAYA,EAAQpB,CAAK,EAAEQ,CAAI,CAAA,EAEzC,QAASQ,EACT,aAAcD,EACd,aAAcD,EAEb,SAAAb,CAAA,CAAA,CAGP,CAEA,MAAAoB,EAAeC,EAAgBxB,CAAK,EClEvByB,EAAeC,EAAkC,CAC5D,OAAQ,CAAA,EACR,IAAK,IAAM,CAAE,CACf,CAAC,EAED,SAAwBC,EAAc,CAAE,SAAAC,GAA+B,CACrE,KAAM,CAACC,EAAQC,CAAS,EAAIC,EAA6B,CAAA,CAAE,EAErDC,EAA8BC,EAAQ,KAAO,CACjD,OAAAJ,EACA,IAAMK,GAAU,CAAEC,EAASD,CAAK,CAAG,CAAA,GACjC,CAACL,CAAM,CAAC,EAENM,EAAYD,GAAuB,CACvCJ,EAAUM,GAAQ,CAAC,GAAGA,EAAM,CAAE,GAAIC,EAAA,EAAQ,QAAS,GAAM,GAAGH,CAAA,CAAO,CAAC,CACtE,EAEMI,EAAUrC,GAAe,CAC7B6B,EAAUM,GAAQA,EAAK,IAAIG,IACrBA,EAAE,KAAOtC,IAAMsC,EAAE,QAAU,IACxBA,EACR,CAAC,EACF,WAAW,IAAM,CAAET,KAAkBM,EAAK,UAAYG,EAAE,KAAOtC,CAAE,CAAC,CAAG,EAAG,GAAG,CAC7E,EAEA,OACEuC,EAACf,EAAa,SAAb,CAAsB,MAAOO,EAC5B,SAAA,CAAAb,EAAC,MAAA,CAAI,UAAW,GAAGL,CAAM,mBAErB,SAAAe,EAAO,IAAI,CAAC,CAAE,GAAGK,CAAA,IAEbf,EAAC,OAAmB,MAAO,CAAE,aAAc,IACzC,SAAAA,EAACsB,EAAA,CAAK,MAAO,EAAQP,EAAM,QACzB,SAAAf,EAACnB,EAAA,CAAO,GAAGkC,EAAO,SAAUI,CAAA,CAAQ,CAAA,CACtC,GAHQJ,EAAM,EAIhB,CAEH,CAAA,CAEL,EACCN,CAAA,EACH,CAEJ,CCxDA,SAAwBc,GAAW,CACjC,KAAM,CAAE,IAAAC,CAAA,EAAQC,EAAWnB,CAAY,EAEvC,MAAO,CAAE,SAAUkB,CAAA,CACrB"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/feedback/Toast/Toast.tsx","../../../src/feedback/Toast/ToastProvider.tsx","../../../src/feedback/Toast/useToast.ts"],"sourcesContent":["import { useEffect, useRef, type HTMLAttributes } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\nimport { Colors } from '@iziui/core/theme';\n\nimport createComponent from '@/core/createComponent';\nimport { useTheme } from '@/theme';\n\nimport Alert from '../Alert';\n\nimport '@iziui/styles/components/Toast.scss';\n\ntype Icon = React.JSX.Element;\ntype Message = React.JSX.Element | string;\n\nexport type PickedToast = Pick<ToastProps,\n | 'id'\n | 'icon'\n | 'color'\n | 'message'\n | 'delay'\n | 'visible'\n>\n\nexport interface ToastProps extends HTMLAttributes<HTMLDivElement> {\n id?: string;\n icon?: Icon;\n color: Colors;\n message: Message;\n delay?: number;\n visible?: boolean;\n onRemove: (id: string) => void;\n};\n\nfunction Toast({ id, color, message, icon, delay, onRemove, ...props }: ToastProps) {\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const { theme: { mode } } = useTheme();\n\n const className = joinClass(\n `${prefix}-toast`,\n props.className\n );\n\n useEffect(() => {\n startTimer();\n return clearTimer;\n }, []);\n\n const handleRemove = () => {\n if (!id) { return; }\n onRemove(id);\n };\n\n const startTimer = () => {\n timeoutRef.current = setTimeout(() => { handleRemove(); }, delay);\n };\n\n const clearTimer = () => {\n if (!timeoutRef.current) { return; }\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n };\n\n return (\n <Alert\n className={className}\n icon={icon}\n sx={{\n backgroundColor: ({ text }) => text.primary,\n color: (palette) => palette[color][mode]\n }}\n onClose={handleRemove}\n onMouseEnter={clearTimer}\n onMouseLeave={startTimer}\n >\n {message}\n </Alert>\n );\n}\n\nexport default createComponent(Toast);\n","import { createContext, type PropsWithChildren, useMemo, useState } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { uuid } from '@iziui/toolkit/uuid';\n\nimport Zoom from '@/animations/Zoom';\n\nimport Toast, { type PickedToast } from './Toast';\n\nimport '@iziui/styles/components/Toast.scss';\n\nexport interface ToastContextConfig {\n toasts: Array<PickedToast>;\n add: (toast: PickedToast) => void;\n}\n\nexport const ToastContext = createContext<ToastContextConfig>({\n toasts: [],\n add: () => { }\n});\n\nexport default function ToastProvider({ children }: PropsWithChildren) {\n const [toasts, setToasts] = useState<Array<PickedToast>>([]);\n\n const context: ToastContextConfig = useMemo(() => ({\n toasts,\n add: (toast) => { addToast(toast); },\n }), [toasts]);\n\n const addToast = (toast: PickedToast) => {\n setToasts(prev => [...prev, { id: uuid(), visible: true, ...toast }]);\n };\n\n const remove = (id: string) => {\n setToasts(prev => prev.map(a => {\n if (a.id === id) { a.visible = false; }\n return a;\n }));\n setTimeout(() => { setToasts(prev => prev.filter(a => a.id !== id)); }, 500);\n };\n\n return (\n <ToastContext.Provider value={context}>\n <div className={`${prefix}-toast-container`}>\n {\n toasts.map(({ ...toast }) => {\n return (\n <div key={toast.id} style={{ marginBottom: 15 }}>\n <Zoom enter={Boolean(toast.visible)}>\n <Toast {...toast} onRemove={remove} />\n </Zoom>\n </div>\n );\n })\n }\n </div>\n {children}\n </ToastContext.Provider>\n );\n}","import { useContext } from 'react';\n\nimport { ToastContext } from './ToastProvider';\n\nexport default function useToast() {\n const { add } = useContext(ToastContext);\n\n return { addToast: add };\n}"],"names":["Toast","id","color","message","icon","delay","onRemove","props","timeoutRef","useRef","mode","useTheme","className","joinClass","prefix","useEffect","startTimer","clearTimer","handleRemove","jsx","Alert","text","palette","Toast$1","createComponent","ToastContext","createContext","ToastProvider","children","toasts","setToasts","useState","context","useMemo","toast","addToast","prev","uuid","remove","a","jsxs","Zoom","useToast","add","useContext"],"mappings":"00BAoCA,SAASA,EAAM,CAAE,GAAAC,EAAI,MAAAC,EAAO,QAAAC,EAAS,KAAAC,EAAM,MAAAC,EAAO,SAAAC,EAAU,GAAGC,GAAqB,CAClF,MAAMC,EAAaC,EAA6C,IAAI,EAE9D,CAAE,MAAO,CAAE,KAAAC,CAAA,CAAK,EAAMC,EAAA,EAEtBC,EAAYC,EAChB,GAAGC,CAAM,SACTP,EAAM,SAAA,EAGRQ,EAAU,KACRC,EAAA,EACOC,GACN,CAAA,CAAE,EAEL,MAAMC,EAAe,IAAM,CACpBjB,GACLK,EAASL,CAAE,CACb,EAEMe,EAAa,IAAM,CACvBR,EAAW,QAAU,WAAW,IAAM,CAAEU,EAAA,CAAgB,EAAGb,CAAK,CAClE,EAEMY,EAAa,IAAM,CAClBT,EAAW,UAChB,aAAaA,EAAW,OAAO,EAC/BA,EAAW,QAAU,KACvB,EAEA,OACEW,EAACC,EAAA,CACC,UAAAR,EACA,KAAAR,EACA,GAAI,CACF,gBAAiB,CAAC,CAAE,KAAAiB,CAAA,IAAWA,EAAK,QACpC,MAAQC,GAAYA,EAAQpB,CAAK,EAAEQ,CAAI,CAAA,EAEzC,QAASQ,EACT,aAAcD,EACd,aAAcD,EAEb,SAAAb,CAAA,CAAA,CAGP,CAEA,MAAAoB,EAAeC,EAAgBxB,CAAK,EClEvByB,EAAeC,EAAkC,CAC5D,OAAQ,CAAA,EACR,IAAK,IAAM,CAAE,CACf,CAAC,EAED,SAAwBC,EAAc,CAAE,SAAAC,GAA+B,CACrE,KAAM,CAACC,EAAQC,CAAS,EAAIC,EAA6B,CAAA,CAAE,EAErDC,EAA8BC,EAAQ,KAAO,CACjD,OAAAJ,EACA,IAAMK,GAAU,CAAEC,EAASD,CAAK,CAAG,CAAA,GACjC,CAACL,CAAM,CAAC,EAENM,EAAYD,GAAuB,CACvCJ,EAAUM,GAAQ,CAAC,GAAGA,EAAM,CAAE,GAAIC,EAAA,EAAQ,QAAS,GAAM,GAAGH,CAAA,CAAO,CAAC,CACtE,EAEMI,EAAUrC,GAAe,CAC7B6B,EAAUM,GAAQA,EAAK,IAAIG,IACrBA,EAAE,KAAOtC,IAAMsC,EAAE,QAAU,IACxBA,EACR,CAAC,EACF,WAAW,IAAM,CAAET,KAAkBM,EAAK,UAAYG,EAAE,KAAOtC,CAAE,CAAC,CAAG,EAAG,GAAG,CAC7E,EAEA,OACEuC,EAACf,EAAa,SAAb,CAAsB,MAAOO,EAC5B,SAAA,CAAAb,EAAC,MAAA,CAAI,UAAW,GAAGL,CAAM,mBAErB,SAAAe,EAAO,IAAI,CAAC,CAAE,GAAGK,CAAA,IAEbf,EAAC,OAAmB,MAAO,CAAE,aAAc,IACzC,SAAAA,EAACsB,EAAA,CAAK,MAAO,EAAQP,EAAM,QACzB,SAAAf,EAACnB,EAAA,CAAO,GAAGkC,EAAO,SAAUI,CAAA,CAAQ,CAAA,CACtC,GAHQJ,EAAM,EAIhB,CAEH,CAAA,CAEL,EACCN,CAAA,EACH,CAEJ,CCxDA,SAAwBc,GAAW,CACjC,KAAM,CAAE,IAAAC,CAAA,EAAQC,EAAWnB,CAAY,EAEvC,MAAO,CAAE,SAAUkB,CAAA,CACrB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const v=require("react/jsx-runtime"),t=require("react"),q=require("../../chunks/index-DYxwT4uW.cjs"),S=require("../../chunks/joinClass-Jk3EszKD.cjs"),M=require("../../chunks/createComponent-ixuQW53A.cjs"),A=require("../../chunks/useTheme-DwBpyW-5.cjs");function H({children:x,label:b,width:g="max-content",direction:l="bottom",...d}){const{theme:{spacing:n}}=A.useTheme(),[r,h]=t.useState(!1),[j,i]=t.useState(!1),[y,T]=t.useState(null),c=t.useRef(null),a=t.useRef(null),e=t.useRef(null);t.useLayoutEffect(()=>{if(!r||!c.current||!a.current)return;const{offsetHeight:o,offsetWidth:f}=c.current,{offsetHeight:m,offsetWidth:p}=a.current;let s,u;l==="top"?(s=-(m+n),u=-(p-f)/2):l==="bottom"?(s=o+n,u=-(p-f)/2):l==="right"?(s=(o-m)/2,u=f+n):(s=(o-m)/2,u=-(p+n)),T({top:s,left:u})},[r,l,n]),t.useEffect(()=>{if(!r)return;const o=requestAnimationFrame(()=>i(!0));return()=>cancelAnimationFrame(o)},[r]),t.useEffect(()=>()=>{e.current&&clearTimeout(e.current)},[]);const R=()=>{if(e.current){clearTimeout(e.current),e.current=null,i(!0);return}h(!0)},C=()=>{e.current&&(clearTimeout(e.current),e.current=null),i(!1),e.current=setTimeout(()=>{h(!1),T(null),e.current=null},300)},E=S.joinClass(`${q.prefix}-tooltip`,j&&`${q.prefix}-tooltip--visible`);return v.jsxs("div",{ref:c,...d,style:{position:"relative",...d.style},onMouseEnter:R,onMouseLeave:C,children:[x,v.jsx("span",{ref:a,className:E,style:{...y,width:g,display:r?"block":"none"},children:b})]})}const L=M.createComponent(H);exports.default=L;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const q=require("react/jsx-runtime"),t=require("react"),v=require("../../chunks/index-DYxwT4uW.cjs"),S=require("../../chunks/joinClass-Jk3EszKD.cjs"),M=require("../../chunks/createComponent-CTufIEiN.cjs"),A=require("../../chunks/useTheme-DoESyi5h.cjs");require("../../chunks/generateSupportColors-CTMoGhDf.cjs");function H({children:x,label:b,width:g="max-content",direction:l="bottom",...d}){const{theme:{spacing:n}}=A.useTheme(),[r,h]=t.useState(!1),[j,i]=t.useState(!1),[y,T]=t.useState(null),c=t.useRef(null),a=t.useRef(null),e=t.useRef(null);t.useLayoutEffect(()=>{if(!r||!c.current||!a.current)return;const{offsetHeight:o,offsetWidth:f}=c.current,{offsetHeight:m,offsetWidth:p}=a.current;let s,u;l==="top"?(s=-(m+n),u=-(p-f)/2):l==="bottom"?(s=o+n,u=-(p-f)/2):l==="right"?(s=(o-m)/2,u=f+n):(s=(o-m)/2,u=-(p+n)),T({top:s,left:u})},[r,l,n]),t.useEffect(()=>{if(!r)return;const o=requestAnimationFrame(()=>i(!0));return()=>cancelAnimationFrame(o)},[r]),t.useEffect(()=>()=>{e.current&&clearTimeout(e.current)},[]);const R=()=>{if(e.current){clearTimeout(e.current),e.current=null,i(!0);return}h(!0)},C=()=>{e.current&&(clearTimeout(e.current),e.current=null),i(!1),e.current=setTimeout(()=>{h(!1),T(null),e.current=null},300)},E=S.joinClass(`${v.prefix}-tooltip`,j&&`${v.prefix}-tooltip--visible`);return q.jsxs("div",{ref:c,...d,style:{position:"relative",...d.style},onMouseEnter:R,onMouseLeave:C,children:[x,q.jsx("span",{ref:a,className:E,style:{...y,width:g,display:r?"block":"none"},children:b})]})}const L=M.createComponent(H);exports.default=L;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/display/Tooltip/Tooltip.tsx"],"sourcesContent":["import {\n useRef,\n useState,\n useEffect,\n useLayoutEffect,\n type CSSProperties,\n type HTMLAttributes,\n} from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\n\nimport createComponent from '@/core/createComponent';\nimport { useTheme } from '@/theme';\n\nimport '@iziui/styles/components/Tooltip.scss';\n\ntype TooltipCoordinate = { top: number; left: number; };\ntype Direction = 'top' | 'right' | 'bottom' | 'left';\n\nexport interface TooltipProps extends HTMLAttributes<HTMLElement> {\n direction?: Direction;\n width?: CSSProperties['width'];\n children: React.JSX.Element;\n label: string | React.JSX.Element;\n}\n\nfunction Tooltip({\n children,\n label,\n width = 'max-content',\n direction = 'bottom',\n ...props\n}: TooltipProps) {\n const { theme: { spacing } } = useTheme();\n const [open, setOpen] = useState(false);\n const [animate, setAnimate] = useState(false);\n const [coordinate, setCoordinate] = useState<TooltipCoordinate | null>(null);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const tooltipRef = useRef<HTMLSpanElement>(null);\n const leaveTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Measure and position synchronously before the browser paints — no setTimeout hack needed.\n useLayoutEffect(() => {\n if (!open || !containerRef.current || !tooltipRef.current) return;\n\n const { offsetHeight, offsetWidth } = containerRef.current;\n const { offsetHeight: tooltipH, offsetWidth: tooltipW } = tooltipRef.current;\n\n let top: number;\n let left: number;\n\n if (direction === 'top') {\n top = -(tooltipH + spacing);\n left = -(tooltipW - offsetWidth) / 2;\n } else if (direction === 'bottom') {\n top = offsetHeight + spacing;\n left = -(tooltipW - offsetWidth) / 2;\n } else if (direction === 'right') {\n top = (offsetHeight - tooltipH) / 2;\n left = offsetWidth + spacing;\n } else {\n top = (offsetHeight - tooltipH) / 2;\n left = -(tooltipW + spacing);\n }\n\n setCoordinate({ top, left });\n }, [open, direction, spacing]);\n\n // Trigger the CSS transition one frame after position is committed.\n useEffect(() => {\n if (!open) return;\n const frame = requestAnimationFrame(() => setAnimate(true));\n return () => cancelAnimationFrame(frame);\n }, [open]);\n\n useEffect(() => () => {\n if (!leaveTimer.current) { return; }\n\n clearTimeout(leaveTimer.current);\n }, []);\n\n const handleEnter = () => {\n if (leaveTimer.current) {\n clearTimeout(leaveTimer.current);\n\n leaveTimer.current = null;\n setAnimate(true);\n\n return;\n }\n setOpen(true);\n };\n\n const handleLeave = () => {\n if (leaveTimer.current) {\n clearTimeout(leaveTimer.current);\n leaveTimer.current = null;\n }\n\n setAnimate(false);\n\n leaveTimer.current = setTimeout(() => {\n setOpen(false);\n setCoordinate(null);\n leaveTimer.current = null;\n }, 300);\n };\n\n const className = joinClass(\n `${prefix}-tooltip`,\n animate && `${prefix}-tooltip--visible`,\n );\n\n return (\n <div\n ref={containerRef}\n {...props}\n style={{ position: 'relative', ...props.style }}\n onMouseEnter={handleEnter}\n onMouseLeave={handleLeave}\n >\n {children}\n <span\n ref={tooltipRef}\n className={className}\n style={{\n ...coordinate,\n width,\n display: open ? 'block' : 'none',\n }}\n >\n {label}\n </span>\n </div>\n );\n}\n\nexport default createComponent(Tooltip);\n"],"names":["Tooltip","children","label","width","direction","props","spacing","useTheme","open","setOpen","useState","animate","setAnimate","coordinate","setCoordinate","containerRef","useRef","tooltipRef","leaveTimer","useLayoutEffect","offsetHeight","offsetWidth","tooltipH","tooltipW","top","left","useEffect","frame","handleEnter","handleLeave","className","joinClass","prefix","jsxs","jsx","Tooltip_default","createComponent"],"mappings":"yWA4BA,SAASA,EAAQ,CACf,SAAAC,EACA,MAAAC,EACA,MAAAC,EAAQ,cACR,UAAAC,EAAY,SACZ,GAAGC,CACL,EAAiB,CACf,KAAM,CAAE,MAAO,CAAE,QAAAC,CAAA,CAAQ,EAAMC,EAAAA,SAAA,EACzB,CAACC,EAAMC,CAAO,EAAIC,EAAAA,SAAS,EAAK,EAChC,CAACC,EAASC,CAAU,EAAIF,EAAAA,SAAS,EAAK,EACtC,CAACG,EAAYC,CAAa,EAAIJ,EAAAA,SAAmC,IAAI,EAErEK,EAAeC,EAAAA,OAAuB,IAAI,EAC1CC,EAAaD,EAAAA,OAAwB,IAAI,EACzCE,EAAaF,EAAAA,OAA6C,IAAI,EAGpEG,EAAAA,gBAAgB,IAAM,CACpB,GAAI,CAACX,GAAQ,CAACO,EAAa,SAAW,CAACE,EAAW,QAAS,OAE3D,KAAM,CAAE,aAAAG,EAAc,YAAAC,CAAA,EAAgBN,EAAa,QAC7C,CAAE,aAAcO,EAAU,YAAaC,CAAA,EAAaN,EAAW,QAErE,IAAIO,EACAC,EAEArB,IAAc,OAChBoB,EAAM,EAAEF,EAAWhB,GACnBmB,EAAO,EAAEF,EAAWF,GAAe,GAC1BjB,IAAc,UACvBoB,EAAMJ,EAAed,EACrBmB,EAAO,EAAEF,EAAWF,GAAe,GAC1BjB,IAAc,SACvBoB,GAAOJ,EAAeE,GAAY,EAClCG,EAAOJ,EAAcf,IAErBkB,GAAOJ,EAAeE,GAAY,EAClCG,EAAO,EAAEF,EAAWjB,IAGtBQ,EAAc,CAAE,IAAAU,EAAK,KAAAC,EAAM,CAC7B,EAAG,CAACjB,EAAMJ,EAAWE,CAAO,CAAC,EAG7BoB,EAAAA,UAAU,IAAM,CACd,GAAI,CAAClB,EAAM,OACX,MAAMmB,EAAQ,sBAAsB,IAAMf,EAAW,EAAI,CAAC,EAC1D,MAAO,IAAM,qBAAqBe,CAAK,CACzC,EAAG,CAACnB,CAAI,CAAC,EAETkB,EAAAA,UAAU,IAAM,IAAM,CACfR,EAAW,SAEhB,aAAaA,EAAW,OAAO,CACjC,EAAG,CAAA,CAAE,EAEL,MAAMU,EAAc,IAAM,CACxB,GAAIV,EAAW,QAAS,CACtB,aAAaA,EAAW,OAAO,EAE/BA,EAAW,QAAU,KACrBN,EAAW,EAAI,EAEf,MACF,CACAH,EAAQ,EAAI,CACd,EAEMoB,EAAc,IAAM,CACpBX,EAAW,UACb,aAAaA,EAAW,OAAO,EAC/BA,EAAW,QAAU,MAGvBN,EAAW,EAAK,EAEhBM,EAAW,QAAU,WAAW,IAAM,CACpCT,EAAQ,EAAK,EACbK,EAAc,IAAI,EAClBI,EAAW,QAAU,IACvB,EAAG,GAAG,CACR,EAEMY,EAAYC,EAAAA,UAChB,GAAGC,EAAAA,MAAM,WACTrB,GAAW,GAAGqB,EAAAA,MAAM,mBAAA,EAGtB,OACEC,EAAAA,KAAC,MAAA,CACC,IAAKlB,EACJ,GAAGV,EACJ,MAAO,CAAE,SAAU,WAAY,GAAGA,EAAM,KAAA,EACxC,aAAcuB,EACd,aAAcC,EAEb,SAAA,CAAA5B,EACDiC,EAAAA,IAAC,OAAA,CACC,IAAKjB,EACL,UAAAa,EACA,MAAO,CACL,GAAGjB,EACH,MAAAV,EACA,QAASK,EAAO,QAAU,MAAA,EAG3B,SAAAN,CAAA,CAAA,CACH,CAAA,CAAA,CAGN,CAEA,MAAAiC,EAAeC,EAAAA,gBAAgBpC,CAAO"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/display/Tooltip/Tooltip.tsx"],"sourcesContent":["import {\n useRef,\n useState,\n useEffect,\n useLayoutEffect,\n type CSSProperties,\n type HTMLAttributes,\n} from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\n\nimport createComponent from '@/core/createComponent';\nimport { useTheme } from '@/theme';\n\nimport '@iziui/styles/components/Tooltip.scss';\n\ntype TooltipCoordinate = { top: number; left: number; };\ntype Direction = 'top' | 'right' | 'bottom' | 'left';\n\nexport interface TooltipProps extends HTMLAttributes<HTMLElement> {\n direction?: Direction;\n width?: CSSProperties['width'];\n children: React.JSX.Element;\n label: string | React.JSX.Element;\n}\n\nfunction Tooltip({\n children,\n label,\n width = 'max-content',\n direction = 'bottom',\n ...props\n}: TooltipProps) {\n const { theme: { spacing } } = useTheme();\n const [open, setOpen] = useState(false);\n const [animate, setAnimate] = useState(false);\n const [coordinate, setCoordinate] = useState<TooltipCoordinate | null>(null);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const tooltipRef = useRef<HTMLSpanElement>(null);\n const leaveTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Measure and position synchronously before the browser paints — no setTimeout hack needed.\n useLayoutEffect(() => {\n if (!open || !containerRef.current || !tooltipRef.current) return;\n\n const { offsetHeight, offsetWidth } = containerRef.current;\n const { offsetHeight: tooltipH, offsetWidth: tooltipW } = tooltipRef.current;\n\n let top: number;\n let left: number;\n\n if (direction === 'top') {\n top = -(tooltipH + spacing);\n left = -(tooltipW - offsetWidth) / 2;\n } else if (direction === 'bottom') {\n top = offsetHeight + spacing;\n left = -(tooltipW - offsetWidth) / 2;\n } else if (direction === 'right') {\n top = (offsetHeight - tooltipH) / 2;\n left = offsetWidth + spacing;\n } else {\n top = (offsetHeight - tooltipH) / 2;\n left = -(tooltipW + spacing);\n }\n\n setCoordinate({ top, left });\n }, [open, direction, spacing]);\n\n // Trigger the CSS transition one frame after position is committed.\n useEffect(() => {\n if (!open) return;\n const frame = requestAnimationFrame(() => setAnimate(true));\n return () => cancelAnimationFrame(frame);\n }, [open]);\n\n useEffect(() => () => {\n if (!leaveTimer.current) { return; }\n\n clearTimeout(leaveTimer.current);\n }, []);\n\n const handleEnter = () => {\n if (leaveTimer.current) {\n clearTimeout(leaveTimer.current);\n\n leaveTimer.current = null;\n setAnimate(true);\n\n return;\n }\n setOpen(true);\n };\n\n const handleLeave = () => {\n if (leaveTimer.current) {\n clearTimeout(leaveTimer.current);\n leaveTimer.current = null;\n }\n\n setAnimate(false);\n\n leaveTimer.current = setTimeout(() => {\n setOpen(false);\n setCoordinate(null);\n leaveTimer.current = null;\n }, 300);\n };\n\n const className = joinClass(\n `${prefix}-tooltip`,\n animate && `${prefix}-tooltip--visible`,\n );\n\n return (\n <div\n ref={containerRef}\n {...props}\n style={{ position: 'relative', ...props.style }}\n onMouseEnter={handleEnter}\n onMouseLeave={handleLeave}\n >\n {children}\n <span\n ref={tooltipRef}\n className={className}\n style={{\n ...coordinate,\n width,\n display: open ? 'block' : 'none',\n }}\n >\n {label}\n </span>\n </div>\n );\n}\n\nexport default createComponent(Tooltip);\n"],"names":["Tooltip","children","label","width","direction","props","spacing","useTheme","open","setOpen","useState","animate","setAnimate","coordinate","setCoordinate","containerRef","useRef","tooltipRef","leaveTimer","useLayoutEffect","offsetHeight","offsetWidth","tooltipH","tooltipW","top","left","useEffect","frame","handleEnter","handleLeave","className","joinClass","prefix","jsxs","jsx","Tooltip_default","createComponent"],"mappings":"oaA4BA,SAASA,EAAQ,CACf,SAAAC,EACA,MAAAC,EACA,MAAAC,EAAQ,cACR,UAAAC,EAAY,SACZ,GAAGC,CACL,EAAiB,CACf,KAAM,CAAE,MAAO,CAAE,QAAAC,CAAA,CAAQ,EAAMC,EAAAA,SAAA,EACzB,CAACC,EAAMC,CAAO,EAAIC,EAAAA,SAAS,EAAK,EAChC,CAACC,EAASC,CAAU,EAAIF,EAAAA,SAAS,EAAK,EACtC,CAACG,EAAYC,CAAa,EAAIJ,EAAAA,SAAmC,IAAI,EAErEK,EAAeC,EAAAA,OAAuB,IAAI,EAC1CC,EAAaD,EAAAA,OAAwB,IAAI,EACzCE,EAAaF,EAAAA,OAA6C,IAAI,EAGpEG,EAAAA,gBAAgB,IAAM,CACpB,GAAI,CAACX,GAAQ,CAACO,EAAa,SAAW,CAACE,EAAW,QAAS,OAE3D,KAAM,CAAE,aAAAG,EAAc,YAAAC,CAAA,EAAgBN,EAAa,QAC7C,CAAE,aAAcO,EAAU,YAAaC,CAAA,EAAaN,EAAW,QAErE,IAAIO,EACAC,EAEArB,IAAc,OAChBoB,EAAM,EAAEF,EAAWhB,GACnBmB,EAAO,EAAEF,EAAWF,GAAe,GAC1BjB,IAAc,UACvBoB,EAAMJ,EAAed,EACrBmB,EAAO,EAAEF,EAAWF,GAAe,GAC1BjB,IAAc,SACvBoB,GAAOJ,EAAeE,GAAY,EAClCG,EAAOJ,EAAcf,IAErBkB,GAAOJ,EAAeE,GAAY,EAClCG,EAAO,EAAEF,EAAWjB,IAGtBQ,EAAc,CAAE,IAAAU,EAAK,KAAAC,EAAM,CAC7B,EAAG,CAACjB,EAAMJ,EAAWE,CAAO,CAAC,EAG7BoB,EAAAA,UAAU,IAAM,CACd,GAAI,CAAClB,EAAM,OACX,MAAMmB,EAAQ,sBAAsB,IAAMf,EAAW,EAAI,CAAC,EAC1D,MAAO,IAAM,qBAAqBe,CAAK,CACzC,EAAG,CAACnB,CAAI,CAAC,EAETkB,EAAAA,UAAU,IAAM,IAAM,CACfR,EAAW,SAEhB,aAAaA,EAAW,OAAO,CACjC,EAAG,CAAA,CAAE,EAEL,MAAMU,EAAc,IAAM,CACxB,GAAIV,EAAW,QAAS,CACtB,aAAaA,EAAW,OAAO,EAE/BA,EAAW,QAAU,KACrBN,EAAW,EAAI,EAEf,MACF,CACAH,EAAQ,EAAI,CACd,EAEMoB,EAAc,IAAM,CACpBX,EAAW,UACb,aAAaA,EAAW,OAAO,EAC/BA,EAAW,QAAU,MAGvBN,EAAW,EAAK,EAEhBM,EAAW,QAAU,WAAW,IAAM,CACpCT,EAAQ,EAAK,EACbK,EAAc,IAAI,EAClBI,EAAW,QAAU,IACvB,EAAG,GAAG,CACR,EAEMY,EAAYC,EAAAA,UAChB,GAAGC,EAAAA,MAAM,WACTrB,GAAW,GAAGqB,EAAAA,MAAM,mBAAA,EAGtB,OACEC,EAAAA,KAAC,MAAA,CACC,IAAKlB,EACJ,GAAGV,EACJ,MAAO,CAAE,SAAU,WAAY,GAAGA,EAAM,KAAA,EACxC,aAAcuB,EACd,aAAcC,EAEb,SAAA,CAAA5B,EACDiC,EAAAA,IAAC,OAAA,CACC,IAAKjB,EACL,UAAAa,EACA,MAAO,CACL,GAAGjB,EACH,MAAAV,EACA,QAASK,EAAO,QAAU,MAAA,EAG3B,SAAAN,CAAA,CAAA,CACH,CAAA,CAAA,CAGN,CAEA,MAAAiC,EAAeC,EAAAA,gBAAgBpC,CAAO"}
@@ -1,2 +1,2 @@
1
- import{jsxs as R,jsx as W}from"react/jsx-runtime";import{useState as p,useRef as h,useLayoutEffect as F,useEffect as x}from"react";import{p as y}from"../../chunks/index-CZ41y9Hn.js";import{j as M}from"../../chunks/joinClass-anSpaauN.js";import{c as $}from"../../chunks/createComponent-C6TL60ri.js";import{u as k}from"../../chunks/useTheme-BkUhhydo.js";function q({children:b,label:g,width:j="max-content",direction:l="bottom",...d}){const{theme:{spacing:t}}=k(),[o,T]=p(!1),[E,u]=p(!1),[A,v]=p(null),i=h(null),c=h(null),e=h(null);F(()=>{if(!o||!i.current||!c.current)return;const{offsetHeight:r,offsetWidth:a}=i.current,{offsetHeight:f,offsetWidth:m}=c.current;let n,s;l==="top"?(n=-(f+t),s=-(m-a)/2):l==="bottom"?(n=r+t,s=-(m-a)/2):l==="right"?(n=(r-f)/2,s=a+t):(n=(r-f)/2,s=-(m+t)),v({top:n,left:s})},[o,l,t]),x(()=>{if(!o)return;const r=requestAnimationFrame(()=>u(!0));return()=>cancelAnimationFrame(r)},[o]),x(()=>()=>{e.current&&clearTimeout(e.current)},[]);const C=()=>{if(e.current){clearTimeout(e.current),e.current=null,u(!0);return}T(!0)},H=()=>{e.current&&(clearTimeout(e.current),e.current=null),u(!1),e.current=setTimeout(()=>{T(!1),v(null),e.current=null},300)},L=M(`${y}-tooltip`,E&&`${y}-tooltip--visible`);return R("div",{ref:i,...d,style:{position:"relative",...d.style},onMouseEnter:C,onMouseLeave:H,children:[b,W("span",{ref:c,className:L,style:{...A,width:j,display:o?"block":"none"},children:g})]})}const B=$(q);export{B as default};
1
+ import{jsxs as R,jsx as W}from"react/jsx-runtime";import{useState as p,useRef as h,useLayoutEffect as F,useEffect as x}from"react";import{p as y}from"../../chunks/index-CZ41y9Hn.js";import{j as M}from"../../chunks/joinClass-anSpaauN.js";import{c as $}from"../../chunks/createComponent-WNQRXK89.js";import{u as k}from"../../chunks/useTheme-njpgklWP.js";import"../../chunks/generateSupportColors-BN5t8dA-.js";function q({children:b,label:g,width:j="max-content",direction:l="bottom",...d}){const{theme:{spacing:t}}=k(),[o,T]=p(!1),[E,i]=p(!1),[A,v]=p(null),u=h(null),c=h(null),e=h(null);F(()=>{if(!o||!u.current||!c.current)return;const{offsetHeight:r,offsetWidth:a}=u.current,{offsetHeight:f,offsetWidth:m}=c.current;let n,s;l==="top"?(n=-(f+t),s=-(m-a)/2):l==="bottom"?(n=r+t,s=-(m-a)/2):l==="right"?(n=(r-f)/2,s=a+t):(n=(r-f)/2,s=-(m+t)),v({top:n,left:s})},[o,l,t]),x(()=>{if(!o)return;const r=requestAnimationFrame(()=>i(!0));return()=>cancelAnimationFrame(r)},[o]),x(()=>()=>{e.current&&clearTimeout(e.current)},[]);const C=()=>{if(e.current){clearTimeout(e.current),e.current=null,i(!0);return}T(!0)},H=()=>{e.current&&(clearTimeout(e.current),e.current=null),i(!1),e.current=setTimeout(()=>{T(!1),v(null),e.current=null},300)},L=M(`${y}-tooltip`,E&&`${y}-tooltip--visible`);return R("div",{ref:u,...d,style:{position:"relative",...d.style},onMouseEnter:C,onMouseLeave:H,children:[b,W("span",{ref:c,className:L,style:{...A,width:j,display:o?"block":"none"},children:g})]})}const D=$(q);export{D as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/display/Tooltip/Tooltip.tsx"],"sourcesContent":["import {\n useRef,\n useState,\n useEffect,\n useLayoutEffect,\n type CSSProperties,\n type HTMLAttributes,\n} from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\n\nimport createComponent from '@/core/createComponent';\nimport { useTheme } from '@/theme';\n\nimport '@iziui/styles/components/Tooltip.scss';\n\ntype TooltipCoordinate = { top: number; left: number; };\ntype Direction = 'top' | 'right' | 'bottom' | 'left';\n\nexport interface TooltipProps extends HTMLAttributes<HTMLElement> {\n direction?: Direction;\n width?: CSSProperties['width'];\n children: React.JSX.Element;\n label: string | React.JSX.Element;\n}\n\nfunction Tooltip({\n children,\n label,\n width = 'max-content',\n direction = 'bottom',\n ...props\n}: TooltipProps) {\n const { theme: { spacing } } = useTheme();\n const [open, setOpen] = useState(false);\n const [animate, setAnimate] = useState(false);\n const [coordinate, setCoordinate] = useState<TooltipCoordinate | null>(null);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const tooltipRef = useRef<HTMLSpanElement>(null);\n const leaveTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Measure and position synchronously before the browser paints — no setTimeout hack needed.\n useLayoutEffect(() => {\n if (!open || !containerRef.current || !tooltipRef.current) return;\n\n const { offsetHeight, offsetWidth } = containerRef.current;\n const { offsetHeight: tooltipH, offsetWidth: tooltipW } = tooltipRef.current;\n\n let top: number;\n let left: number;\n\n if (direction === 'top') {\n top = -(tooltipH + spacing);\n left = -(tooltipW - offsetWidth) / 2;\n } else if (direction === 'bottom') {\n top = offsetHeight + spacing;\n left = -(tooltipW - offsetWidth) / 2;\n } else if (direction === 'right') {\n top = (offsetHeight - tooltipH) / 2;\n left = offsetWidth + spacing;\n } else {\n top = (offsetHeight - tooltipH) / 2;\n left = -(tooltipW + spacing);\n }\n\n setCoordinate({ top, left });\n }, [open, direction, spacing]);\n\n // Trigger the CSS transition one frame after position is committed.\n useEffect(() => {\n if (!open) return;\n const frame = requestAnimationFrame(() => setAnimate(true));\n return () => cancelAnimationFrame(frame);\n }, [open]);\n\n useEffect(() => () => {\n if (!leaveTimer.current) { return; }\n\n clearTimeout(leaveTimer.current);\n }, []);\n\n const handleEnter = () => {\n if (leaveTimer.current) {\n clearTimeout(leaveTimer.current);\n\n leaveTimer.current = null;\n setAnimate(true);\n\n return;\n }\n setOpen(true);\n };\n\n const handleLeave = () => {\n if (leaveTimer.current) {\n clearTimeout(leaveTimer.current);\n leaveTimer.current = null;\n }\n\n setAnimate(false);\n\n leaveTimer.current = setTimeout(() => {\n setOpen(false);\n setCoordinate(null);\n leaveTimer.current = null;\n }, 300);\n };\n\n const className = joinClass(\n `${prefix}-tooltip`,\n animate && `${prefix}-tooltip--visible`,\n );\n\n return (\n <div\n ref={containerRef}\n {...props}\n style={{ position: 'relative', ...props.style }}\n onMouseEnter={handleEnter}\n onMouseLeave={handleLeave}\n >\n {children}\n <span\n ref={tooltipRef}\n className={className}\n style={{\n ...coordinate,\n width,\n display: open ? 'block' : 'none',\n }}\n >\n {label}\n </span>\n </div>\n );\n}\n\nexport default createComponent(Tooltip);\n"],"names":["Tooltip","children","label","width","direction","props","spacing","useTheme","open","setOpen","useState","animate","setAnimate","coordinate","setCoordinate","containerRef","useRef","tooltipRef","leaveTimer","useLayoutEffect","offsetHeight","offsetWidth","tooltipH","tooltipW","top","left","useEffect","frame","handleEnter","handleLeave","className","joinClass","prefix","jsxs","jsx","Tooltip_default","createComponent"],"mappings":"gWA4BA,SAASA,EAAQ,CACf,SAAAC,EACA,MAAAC,EACA,MAAAC,EAAQ,cACR,UAAAC,EAAY,SACZ,GAAGC,CACL,EAAiB,CACf,KAAM,CAAE,MAAO,CAAE,QAAAC,CAAA,CAAQ,EAAMC,EAAA,EACzB,CAACC,EAAMC,CAAO,EAAIC,EAAS,EAAK,EAChC,CAACC,EAASC,CAAU,EAAIF,EAAS,EAAK,EACtC,CAACG,EAAYC,CAAa,EAAIJ,EAAmC,IAAI,EAErEK,EAAeC,EAAuB,IAAI,EAC1CC,EAAaD,EAAwB,IAAI,EACzCE,EAAaF,EAA6C,IAAI,EAGpEG,EAAgB,IAAM,CACpB,GAAI,CAACX,GAAQ,CAACO,EAAa,SAAW,CAACE,EAAW,QAAS,OAE3D,KAAM,CAAE,aAAAG,EAAc,YAAAC,CAAA,EAAgBN,EAAa,QAC7C,CAAE,aAAcO,EAAU,YAAaC,CAAA,EAAaN,EAAW,QAErE,IAAIO,EACAC,EAEArB,IAAc,OAChBoB,EAAM,EAAEF,EAAWhB,GACnBmB,EAAO,EAAEF,EAAWF,GAAe,GAC1BjB,IAAc,UACvBoB,EAAMJ,EAAed,EACrBmB,EAAO,EAAEF,EAAWF,GAAe,GAC1BjB,IAAc,SACvBoB,GAAOJ,EAAeE,GAAY,EAClCG,EAAOJ,EAAcf,IAErBkB,GAAOJ,EAAeE,GAAY,EAClCG,EAAO,EAAEF,EAAWjB,IAGtBQ,EAAc,CAAE,IAAAU,EAAK,KAAAC,EAAM,CAC7B,EAAG,CAACjB,EAAMJ,EAAWE,CAAO,CAAC,EAG7BoB,EAAU,IAAM,CACd,GAAI,CAAClB,EAAM,OACX,MAAMmB,EAAQ,sBAAsB,IAAMf,EAAW,EAAI,CAAC,EAC1D,MAAO,IAAM,qBAAqBe,CAAK,CACzC,EAAG,CAACnB,CAAI,CAAC,EAETkB,EAAU,IAAM,IAAM,CACfR,EAAW,SAEhB,aAAaA,EAAW,OAAO,CACjC,EAAG,CAAA,CAAE,EAEL,MAAMU,EAAc,IAAM,CACxB,GAAIV,EAAW,QAAS,CACtB,aAAaA,EAAW,OAAO,EAE/BA,EAAW,QAAU,KACrBN,EAAW,EAAI,EAEf,MACF,CACAH,EAAQ,EAAI,CACd,EAEMoB,EAAc,IAAM,CACpBX,EAAW,UACb,aAAaA,EAAW,OAAO,EAC/BA,EAAW,QAAU,MAGvBN,EAAW,EAAK,EAEhBM,EAAW,QAAU,WAAW,IAAM,CACpCT,EAAQ,EAAK,EACbK,EAAc,IAAI,EAClBI,EAAW,QAAU,IACvB,EAAG,GAAG,CACR,EAEMY,EAAYC,EAChB,GAAGC,CAAM,WACTrB,GAAW,GAAGqB,CAAM,mBAAA,EAGtB,OACEC,EAAC,MAAA,CACC,IAAKlB,EACJ,GAAGV,EACJ,MAAO,CAAE,SAAU,WAAY,GAAGA,EAAM,KAAA,EACxC,aAAcuB,EACd,aAAcC,EAEb,SAAA,CAAA5B,EACDiC,EAAC,OAAA,CACC,IAAKjB,EACL,UAAAa,EACA,MAAO,CACL,GAAGjB,EACH,MAAAV,EACA,QAASK,EAAO,QAAU,MAAA,EAG3B,SAAAN,CAAA,CAAA,CACH,CAAA,CAAA,CAGN,CAEA,MAAAiC,EAAeC,EAAgBpC,CAAO"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/display/Tooltip/Tooltip.tsx"],"sourcesContent":["import {\n useRef,\n useState,\n useEffect,\n useLayoutEffect,\n type CSSProperties,\n type HTMLAttributes,\n} from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\n\nimport createComponent from '@/core/createComponent';\nimport { useTheme } from '@/theme';\n\nimport '@iziui/styles/components/Tooltip.scss';\n\ntype TooltipCoordinate = { top: number; left: number; };\ntype Direction = 'top' | 'right' | 'bottom' | 'left';\n\nexport interface TooltipProps extends HTMLAttributes<HTMLElement> {\n direction?: Direction;\n width?: CSSProperties['width'];\n children: React.JSX.Element;\n label: string | React.JSX.Element;\n}\n\nfunction Tooltip({\n children,\n label,\n width = 'max-content',\n direction = 'bottom',\n ...props\n}: TooltipProps) {\n const { theme: { spacing } } = useTheme();\n const [open, setOpen] = useState(false);\n const [animate, setAnimate] = useState(false);\n const [coordinate, setCoordinate] = useState<TooltipCoordinate | null>(null);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const tooltipRef = useRef<HTMLSpanElement>(null);\n const leaveTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Measure and position synchronously before the browser paints — no setTimeout hack needed.\n useLayoutEffect(() => {\n if (!open || !containerRef.current || !tooltipRef.current) return;\n\n const { offsetHeight, offsetWidth } = containerRef.current;\n const { offsetHeight: tooltipH, offsetWidth: tooltipW } = tooltipRef.current;\n\n let top: number;\n let left: number;\n\n if (direction === 'top') {\n top = -(tooltipH + spacing);\n left = -(tooltipW - offsetWidth) / 2;\n } else if (direction === 'bottom') {\n top = offsetHeight + spacing;\n left = -(tooltipW - offsetWidth) / 2;\n } else if (direction === 'right') {\n top = (offsetHeight - tooltipH) / 2;\n left = offsetWidth + spacing;\n } else {\n top = (offsetHeight - tooltipH) / 2;\n left = -(tooltipW + spacing);\n }\n\n setCoordinate({ top, left });\n }, [open, direction, spacing]);\n\n // Trigger the CSS transition one frame after position is committed.\n useEffect(() => {\n if (!open) return;\n const frame = requestAnimationFrame(() => setAnimate(true));\n return () => cancelAnimationFrame(frame);\n }, [open]);\n\n useEffect(() => () => {\n if (!leaveTimer.current) { return; }\n\n clearTimeout(leaveTimer.current);\n }, []);\n\n const handleEnter = () => {\n if (leaveTimer.current) {\n clearTimeout(leaveTimer.current);\n\n leaveTimer.current = null;\n setAnimate(true);\n\n return;\n }\n setOpen(true);\n };\n\n const handleLeave = () => {\n if (leaveTimer.current) {\n clearTimeout(leaveTimer.current);\n leaveTimer.current = null;\n }\n\n setAnimate(false);\n\n leaveTimer.current = setTimeout(() => {\n setOpen(false);\n setCoordinate(null);\n leaveTimer.current = null;\n }, 300);\n };\n\n const className = joinClass(\n `${prefix}-tooltip`,\n animate && `${prefix}-tooltip--visible`,\n );\n\n return (\n <div\n ref={containerRef}\n {...props}\n style={{ position: 'relative', ...props.style }}\n onMouseEnter={handleEnter}\n onMouseLeave={handleLeave}\n >\n {children}\n <span\n ref={tooltipRef}\n className={className}\n style={{\n ...coordinate,\n width,\n display: open ? 'block' : 'none',\n }}\n >\n {label}\n </span>\n </div>\n );\n}\n\nexport default createComponent(Tooltip);\n"],"names":["Tooltip","children","label","width","direction","props","spacing","useTheme","open","setOpen","useState","animate","setAnimate","coordinate","setCoordinate","containerRef","useRef","tooltipRef","leaveTimer","useLayoutEffect","offsetHeight","offsetWidth","tooltipH","tooltipW","top","left","useEffect","frame","handleEnter","handleLeave","className","joinClass","prefix","jsxs","jsx","Tooltip_default","createComponent"],"mappings":"uZA4BA,SAASA,EAAQ,CACf,SAAAC,EACA,MAAAC,EACA,MAAAC,EAAQ,cACR,UAAAC,EAAY,SACZ,GAAGC,CACL,EAAiB,CACf,KAAM,CAAE,MAAO,CAAE,QAAAC,CAAA,CAAQ,EAAMC,EAAA,EACzB,CAACC,EAAMC,CAAO,EAAIC,EAAS,EAAK,EAChC,CAACC,EAASC,CAAU,EAAIF,EAAS,EAAK,EACtC,CAACG,EAAYC,CAAa,EAAIJ,EAAmC,IAAI,EAErEK,EAAeC,EAAuB,IAAI,EAC1CC,EAAaD,EAAwB,IAAI,EACzCE,EAAaF,EAA6C,IAAI,EAGpEG,EAAgB,IAAM,CACpB,GAAI,CAACX,GAAQ,CAACO,EAAa,SAAW,CAACE,EAAW,QAAS,OAE3D,KAAM,CAAE,aAAAG,EAAc,YAAAC,CAAA,EAAgBN,EAAa,QAC7C,CAAE,aAAcO,EAAU,YAAaC,CAAA,EAAaN,EAAW,QAErE,IAAIO,EACAC,EAEArB,IAAc,OAChBoB,EAAM,EAAEF,EAAWhB,GACnBmB,EAAO,EAAEF,EAAWF,GAAe,GAC1BjB,IAAc,UACvBoB,EAAMJ,EAAed,EACrBmB,EAAO,EAAEF,EAAWF,GAAe,GAC1BjB,IAAc,SACvBoB,GAAOJ,EAAeE,GAAY,EAClCG,EAAOJ,EAAcf,IAErBkB,GAAOJ,EAAeE,GAAY,EAClCG,EAAO,EAAEF,EAAWjB,IAGtBQ,EAAc,CAAE,IAAAU,EAAK,KAAAC,EAAM,CAC7B,EAAG,CAACjB,EAAMJ,EAAWE,CAAO,CAAC,EAG7BoB,EAAU,IAAM,CACd,GAAI,CAAClB,EAAM,OACX,MAAMmB,EAAQ,sBAAsB,IAAMf,EAAW,EAAI,CAAC,EAC1D,MAAO,IAAM,qBAAqBe,CAAK,CACzC,EAAG,CAACnB,CAAI,CAAC,EAETkB,EAAU,IAAM,IAAM,CACfR,EAAW,SAEhB,aAAaA,EAAW,OAAO,CACjC,EAAG,CAAA,CAAE,EAEL,MAAMU,EAAc,IAAM,CACxB,GAAIV,EAAW,QAAS,CACtB,aAAaA,EAAW,OAAO,EAE/BA,EAAW,QAAU,KACrBN,EAAW,EAAI,EAEf,MACF,CACAH,EAAQ,EAAI,CACd,EAEMoB,EAAc,IAAM,CACpBX,EAAW,UACb,aAAaA,EAAW,OAAO,EAC/BA,EAAW,QAAU,MAGvBN,EAAW,EAAK,EAEhBM,EAAW,QAAU,WAAW,IAAM,CACpCT,EAAQ,EAAK,EACbK,EAAc,IAAI,EAClBI,EAAW,QAAU,IACvB,EAAG,GAAG,CACR,EAEMY,EAAYC,EAChB,GAAGC,CAAM,WACTrB,GAAW,GAAGqB,CAAM,mBAAA,EAGtB,OACEC,EAAC,MAAA,CACC,IAAKlB,EACJ,GAAGV,EACJ,MAAO,CAAE,SAAU,WAAY,GAAGA,EAAM,KAAA,EACxC,aAAcuB,EACd,aAAcC,EAEb,SAAA,CAAA5B,EACDiC,EAAC,OAAA,CACC,IAAKjB,EACL,UAAAa,EACA,MAAO,CACL,GAAGjB,EACH,MAAAV,EACA,QAASK,EAAO,QAAU,MAAA,EAG3B,SAAAN,CAAA,CAAA,CACH,CAAA,CAAA,CAGN,CAEA,MAAAiC,EAAeC,EAAgBpC,CAAO"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("../../chunks/Typography-CPUKMAJT.cjs");require("react/jsx-runtime");require("react");require("../../chunks/index-DYxwT4uW.cjs");require("../../chunks/joinClass-Jk3EszKD.cjs");require("../../chunks/convertPathToColor-BlQMLS4V.cjs");require("../../chunks/useTheme-DwBpyW-5.cjs");require("../../chunks/createComponent-ixuQW53A.cjs");exports.default=e.Typography;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("../../chunks/Typography-DitZ-9b5.cjs");require("react/jsx-runtime");require("react");require("../../chunks/index-DYxwT4uW.cjs");require("../../chunks/joinClass-Jk3EszKD.cjs");require("../../chunks/convertPathToColor-BlQMLS4V.cjs");require("../../chunks/useTheme-DoESyi5h.cjs");require("../../chunks/generateSupportColors-CTMoGhDf.cjs");require("../../chunks/createComponent-CTufIEiN.cjs");exports.default=e.Typography;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,2 +1,2 @@
1
- import{T as d}from"../../chunks/Typography-BDFesZK7.js";import"react/jsx-runtime";import"react";import"../../chunks/index-CZ41y9Hn.js";import"../../chunks/joinClass-anSpaauN.js";import"../../chunks/convertPathToColor-D2SdAqGh.js";import"../../chunks/useTheme-BkUhhydo.js";import"../../chunks/createComponent-C6TL60ri.js";export{d as default};
1
+ import{T as l}from"../../chunks/Typography-v-XX3oAk.js";import"react/jsx-runtime";import"react";import"../../chunks/index-CZ41y9Hn.js";import"../../chunks/joinClass-anSpaauN.js";import"../../chunks/convertPathToColor-D2SdAqGh.js";import"../../chunks/useTheme-njpgklWP.js";import"../../chunks/generateSupportColors-BN5t8dA-.js";import"../../chunks/createComponent-WNQRXK89.js";export{l as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../chunks/generateSupportColors-CTMoGhDf.cjs"),n=require("../chunks/convertPathToColor-BlQMLS4V.cjs"),a=require("../chunks/joinClass-Jk3EszKD.cjs");function l(t){const r=o.hexToHsl(t),s=o.adjustLightness(r.h,r.s,r.l,5),i=o.adjustLightness(r.h,r.s,r.l,10);return`linear-gradient(to right, ${t}, ${s}, ${i})`}function g(t,e){return t.includes(".")?n.convertPathToColor(t,e):t}exports.adjustLightness=o.adjustLightness;exports.generateSupportColors=o.generateSupportColors;exports.getContrastColor=o.getContrastColor;exports.getOpacityColor=o.getOpacityColor;exports.hexToHsl=o.hexToHsl;exports.hslToHex=o.hslToHex;exports.convertPathToColor=n.convertPathToColor;exports.joinClass=a.joinClass;exports.getLinearGradient=l;exports.getPriorityColor=g;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../../core/src/utils/getGradient/getGradient.ts","../../../../core/src/utils/getPriorityColor/getPriorityColor.ts"],"sourcesContent":["\nimport { adjustLightness } from '../adjustLightness';\nimport { hexToHsl } from '../hexToHsl/hexToHsl';\n\nexport function getLinearGradient(hex: string) {\n const variation = 5;\n\n const hsl = hexToHsl(hex);\n\n const color2 = adjustLightness(hsl.h, hsl.s, hsl.l, variation); // 20% mais claro\n const color3 = adjustLightness(hsl.h, hsl.s, hsl.l, variation * 2); // 40% mais claro\n\n return `linear-gradient(to right, ${hex}, ${color2}, ${color3})`;\n}","import type { MappedColors, PaletteBuilded } from '../../theme';\nimport { convertPathToColor } from '../convertPathToColor';\n\nexport function getPriorityColor(color: string, palette: PaletteBuilded) {\n if (color.includes('.')) { return convertPathToColor(color as MappedColors, palette); }\n\n return color;\n}"],"names":["getLinearGradient","hex","hsl","hexToHsl","color2","adjustLightness","color3","getPriorityColor","color","palette","convertPathToColor"],"mappings":"qPAIO,SAASA,EAAkBC,EAAa,CAG7C,MAAMC,EAAMC,EAAAA,SAASF,CAAG,EAElBG,EAASC,kBAAgBH,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAG,CAAS,EACvDI,EAASD,EAAAA,gBAAgBH,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAG,EAAa,EAEjE,MAAO,6BAA6BD,CAAG,KAAKG,CAAM,KAAKE,CAAM,GAC/D,CCVO,SAASC,EAAiBC,EAAeC,EAAyB,CACvE,OAAID,EAAM,SAAS,GAAG,EAAYE,EAAAA,mBAAmBF,EAAuBC,CAAO,EAE5ED,CACT"}
@@ -0,0 +1 @@
1
+ export * from '../.types/_internal/core/utils';
@@ -0,0 +1,2 @@
1
+ import{h as i,a}from"../chunks/generateSupportColors-BN5t8dA-.js";import{g as f,b as C,c as m,d}from"../chunks/generateSupportColors-BN5t8dA-.js";import{c as e}from"../chunks/convertPathToColor-D2SdAqGh.js";import{j as x}from"../chunks/joinClass-anSpaauN.js";function g(o){const t=i(o),s=a(t.h,t.s,t.l,5),n=a(t.h,t.s,t.l,10);return`linear-gradient(to right, ${o}, ${s}, ${n})`}function h(o,r){return o.includes(".")?e(o,r):o}export{a as adjustLightness,e as convertPathToColor,f as generateSupportColors,C as getContrastColor,g as getLinearGradient,m as getOpacityColor,h as getPriorityColor,i as hexToHsl,d as hslToHex,x as joinClass};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../core/src/utils/getGradient/getGradient.ts","../../../../core/src/utils/getPriorityColor/getPriorityColor.ts"],"sourcesContent":["\nimport { adjustLightness } from '../adjustLightness';\nimport { hexToHsl } from '../hexToHsl/hexToHsl';\n\nexport function getLinearGradient(hex: string) {\n const variation = 5;\n\n const hsl = hexToHsl(hex);\n\n const color2 = adjustLightness(hsl.h, hsl.s, hsl.l, variation); // 20% mais claro\n const color3 = adjustLightness(hsl.h, hsl.s, hsl.l, variation * 2); // 40% mais claro\n\n return `linear-gradient(to right, ${hex}, ${color2}, ${color3})`;\n}","import type { MappedColors, PaletteBuilded } from '../../theme';\nimport { convertPathToColor } from '../convertPathToColor';\n\nexport function getPriorityColor(color: string, palette: PaletteBuilded) {\n if (color.includes('.')) { return convertPathToColor(color as MappedColors, palette); }\n\n return color;\n}"],"names":["getLinearGradient","hex","hsl","hexToHsl","color2","adjustLightness","color3","getPriorityColor","color","palette","convertPathToColor"],"mappings":"mQAIO,SAASA,EAAkBC,EAAa,CAG7C,MAAMC,EAAMC,EAASF,CAAG,EAElBG,EAASC,EAAgBH,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAG,CAAS,EACvDI,EAASD,EAAgBH,EAAI,EAAGA,EAAI,EAAGA,EAAI,EAAG,EAAa,EAEjE,MAAO,6BAA6BD,CAAG,KAAKG,CAAM,KAAKE,CAAM,GAC/D,CCVO,SAASC,EAAiBC,EAAeC,EAAyB,CACvE,OAAID,EAAM,SAAS,GAAG,EAAYE,EAAmBF,EAAuBC,CAAO,EAE5ED,CACT"}
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./chunks/useTheme-DwBpyW-5.cjs"),t=require("./chunks/Bounce-ByNbJjX0.cjs"),e=require("./chunks/useForm-TyKbw7O8.cjs"),i=require("./chunks/Fade-CM-5xRVt.cjs"),s=require("./chunks/Slide-D4aLHjYS.cjs"),n=require("./chunks/Zoom-BOnqwiDY.cjs"),d=require("./chunks/useListenerResized-AwpsZLcP.cjs"),u=require("./chunks/useMenu-eNouSUEO.cjs"),q=require("./chunks/useResize-B-oebgDR.cjs"),c=require("./chunks/Card-CVrUgBCJ.cjs"),m=require("./chunks/CardContent-5JyK0TcD.cjs"),a=require("./chunks/Drawer-C3RaAzs0.cjs"),o=require("./chunks/GridItem-wwo-SHGR.cjs"),C=require("./chunks/MenuButton-ybz5rxD_.cjs");require("react");require("react/jsx-runtime");require("./chunks/index-DYxwT4uW.cjs");require("./chunks/joinClass-Jk3EszKD.cjs");require("./chunks/uuid-omnJ9TjZ.cjs");require("./chunks/createComponent-ixuQW53A.cjs");require("./chunks/Ripple-Dy4i91j1.cjs");require("./chunks/Stack-Bpv8iA8b.cjs");exports.ThemeProvider=r.ThemeProvider;exports.createTheme=r.createTheme;exports.useTheme=r.useTheme;exports.Bounce=t.Bounce;exports.Control=e.Control;exports.Form=e.Form;exports.useControl=e.useControl;exports.useForm=e.useForm;exports.useFormGroup=e.useFormGroup;exports.Fade=i.Fade;exports.Slide=s.Slide;exports.Zoom=n.Zoom;exports.useListenerResized=d.useListenerResized;exports.Menu=u.Menu;exports.useMenu=u.useMenu;exports.useResize=q.useResize;exports.Card=c.Card;exports.CardContent=m.CardContent;exports.Drawer=a.Drawer_default;exports.Grid=o.Grid;exports.GridItem=o.GridItem;exports.MenuButton=C.MenuButton_default;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./chunks/useTheme-DoESyi5h.cjs"),t=require("./chunks/Bounce-ByNbJjX0.cjs"),e=require("./chunks/useForm-TyKbw7O8.cjs"),i=require("./chunks/Fade-CM-5xRVt.cjs"),s=require("./chunks/Slide-D4aLHjYS.cjs"),n=require("./chunks/Zoom-BOnqwiDY.cjs"),d=require("./chunks/useListenerResized-AwpsZLcP.cjs"),u=require("./chunks/useMenu-C0u9aTiR.cjs"),q=require("./chunks/useResize-B-oebgDR.cjs"),c=require("./chunks/Card-B8XSgLaD.cjs"),m=require("./chunks/CardContent-BivcVoIc.cjs"),a=require("./chunks/Drawer-0wOdungj.cjs"),o=require("./chunks/GridItem-wwo-SHGR.cjs"),C=require("./chunks/MenuButton-AyzSxRY0.cjs");require("react");require("react/jsx-runtime");require("./chunks/generateSupportColors-CTMoGhDf.cjs");require("./chunks/index-DYxwT4uW.cjs");require("./chunks/joinClass-Jk3EszKD.cjs");require("./chunks/uuid-omnJ9TjZ.cjs");require("./chunks/createComponent-CTufIEiN.cjs");require("./chunks/Ripple-Dy4i91j1.cjs");require("./chunks/Stack-beBM7a60.cjs");exports.ThemeProvider=r.ThemeProvider;exports.createTheme=r.createTheme;exports.useTheme=r.useTheme;exports.Bounce=t.Bounce;exports.Control=e.Control;exports.Form=e.Form;exports.useControl=e.useControl;exports.useForm=e.useForm;exports.useFormGroup=e.useFormGroup;exports.Fade=i.Fade;exports.Slide=s.Slide;exports.Zoom=n.Zoom;exports.useListenerResized=d.useListenerResized;exports.Menu=u.Menu;exports.useMenu=u.useMenu;exports.useResize=q.useResize;exports.Card=c.Card;exports.CardContent=m.CardContent;exports.Drawer=a.Drawer_default;exports.Grid=o.Grid;exports.GridItem=o.GridItem;exports.MenuButton=C.MenuButton_default;
2
2
  //# sourceMappingURL=index.cjs.map
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{T as f,c as x,u as n}from"./chunks/useTheme-BkUhhydo.js";import{B as C}from"./chunks/Bounce-DP0PU3kr.js";import{C as M,F as G,u as T,a as c,b as h}from"./chunks/useForm-3oClzOJC.js";import{F as B}from"./chunks/Fade-spxq-W-Q.js";import{S as D}from"./chunks/Slide-BxEwoZ70.js";import{Z as S}from"./chunks/Zoom-DqgU4Wfv.js";import{u as b}from"./chunks/useListenerResized-Bnqxrt7k.js";import{M as w,u as I}from"./chunks/useMenu-CA-D2bkv.js";import{u as P}from"./chunks/useResize-BjM6tiAF.js";import{C as j}from"./chunks/Card-BjoXz5bX.js";import{C as q}from"./chunks/CardContent-srKirxQF.js";import{D as A}from"./chunks/Drawer-ijxxjWs1.js";import{G as H,a as J}from"./chunks/GridItem-CaoPZmBu.js";import{M as N}from"./chunks/MenuButton-DG-M7g1U.js";import"react";import"react/jsx-runtime";import"./chunks/index-CZ41y9Hn.js";import"./chunks/joinClass-anSpaauN.js";import"./chunks/uuid-dGvr9vBZ.js";import"./chunks/createComponent-C6TL60ri.js";import"./chunks/Ripple-Bq9bxg4k.js";import"./chunks/Stack-BXkZSPdw.js";export{C as Bounce,j as Card,q as CardContent,M as Control,A as Drawer,B as Fade,G as Form,H as Grid,J as GridItem,w as Menu,N as MenuButton,D as Slide,f as ThemeProvider,S as Zoom,x as createTheme,T as useControl,c as useForm,h as useFormGroup,b as useListenerResized,I as useMenu,P as useResize,n as useTheme};
1
+ import{T as x,c as n,u as d}from"./chunks/useTheme-njpgklWP.js";import{B as F}from"./chunks/Bounce-DP0PU3kr.js";import{C as G,F as T,u as c,a as h,b as l}from"./chunks/useForm-3oClzOJC.js";import{F as z}from"./chunks/Fade-spxq-W-Q.js";import{S as R}from"./chunks/Slide-BxEwoZ70.js";import{Z}from"./chunks/Zoom-DqgU4Wfv.js";import{u as v}from"./chunks/useListenerResized-Bnqxrt7k.js";import{M as I,u as L}from"./chunks/useMenu-BNL22pOQ.js";import{u as g}from"./chunks/useResize-BjM6tiAF.js";import{C as k}from"./chunks/Card-DOsl4_nu.js";import{C as y}from"./chunks/CardContent-C8ypE7yH.js";import{D as E}from"./chunks/Drawer-D1lAWrdi.js";import{G as J,a as K}from"./chunks/GridItem-CaoPZmBu.js";import{M as O}from"./chunks/MenuButton-DLf22r80.js";import"react";import"react/jsx-runtime";import"./chunks/generateSupportColors-BN5t8dA-.js";import"./chunks/index-CZ41y9Hn.js";import"./chunks/joinClass-anSpaauN.js";import"./chunks/uuid-dGvr9vBZ.js";import"./chunks/createComponent-WNQRXK89.js";import"./chunks/Ripple-Bq9bxg4k.js";import"./chunks/Stack-DK5pfu2w.js";export{F as Bounce,k as Card,y as CardContent,G as Control,E as Drawer,z as Fade,T as Form,J as Grid,K as GridItem,I as Menu,O as MenuButton,R as Slide,x as ThemeProvider,Z as Zoom,n as createTheme,c as useControl,h as useForm,l as useFormGroup,v as useListenerResized,L as useMenu,g as useResize,d as useTheme};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/useTheme-DwBpyW-5.cjs");require("react");require("react/jsx-runtime");exports.ThemeProvider=e.ThemeProvider;exports.createTheme=e.createTheme;exports.useTheme=e.useTheme;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/useTheme-DoESyi5h.cjs");require("react");require("react/jsx-runtime");require("../chunks/generateSupportColors-CTMoGhDf.cjs");exports.ThemeProvider=e.ThemeProvider;exports.createTheme=e.createTheme;exports.useTheme=e.useTheme;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,2 +1,2 @@
1
- import{T as a,c as s,u as t}from"../chunks/useTheme-BkUhhydo.js";import"react";import"react/jsx-runtime";export{a as ThemeProvider,s as createTheme,t as useTheme};
1
+ import{T as a,c as i,u as p}from"../chunks/useTheme-njpgklWP.js";import"react";import"react/jsx-runtime";import"../chunks/generateSupportColors-BN5t8dA-.js";export{a as ThemeProvider,i as createTheme,p as useTheme};
2
2
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iziui/react",
3
- "version": "0.0.64-rc",
3
+ "version": "0.0.65-rc",
4
4
  "main": "./dist/index.cjs",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -42,6 +42,11 @@
42
42
  "import": "./dist/theme/index.js",
43
43
  "require": "./dist/theme/index.cjs"
44
44
  },
45
+ "./core": {
46
+ "types": "./dist/core/index.d.ts",
47
+ "import": "./dist/core/index.js",
48
+ "require": "./dist/core/index.cjs"
49
+ },
45
50
  "./style.css": "./dist/style.css"
46
51
  },
47
52
  "scripts": {
@@ -1,2 +0,0 @@
1
- import{useState as b,useMemo as F,useEffect as E,createContext as $,useContext as P}from"react";import{jsx as k}from"react/jsx-runtime";function w(t,e,n){e/=100,n/=100;const r=(1-Math.abs(2*n-1))*e,a=r*(1-Math.abs(t/60%2-1)),o=n-r/2;let s=0,c=0,i=0;0<=t&&t<60?(s=r,c=a,i=0):60<=t&&t<120?(s=a,c=r,i=0):120<=t&&t<180?(s=0,c=r,i=a):180<=t&&t<240?(s=0,c=a,i=r):240<=t&&t<300?(s=a,c=0,i=r):300<=t&&t<360&&(s=r,c=0,i=a);const p=Math.round((s+o)*255).toString(16).padStart(2,"0"),f=Math.round((c+o)*255).toString(16).padStart(2,"0"),h=Math.round((i+o)*255).toString(16).padStart(2,"0");return`#${p}${f}${h}`}function u(t,e,n,r){return n=Math.min(Math.max(n+r,0),100),w(t,e,n)}function v(t){const e=parseInt(t.slice(1,3),16)/255,n=parseInt(t.slice(3,5),16)/255,r=parseInt(t.slice(5,7),16)/255,a=Math.max(e,n,r),o=Math.min(e,n,r);let s=0,c=0;const i=(a+o)/2;if(a===o)s=c=0;else{const p=a-o;switch(c=i>.5?p/(2-a-o):p/(a+o),a){case e:s=(n-r)/p+(n<r?6:0);break;case n:s=(r-e)/p+2;break;case r:s=(e-n)/p+4;break}s*=60}return{h:s,s:c*100,l:i*100}}function x(t,e){if(!/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(t))throw new Error("Cor inválida. Use um formato hexadecimal (#RRGGBB ou #RGB).");t.length===4&&(t=`#${t[1]}${t[1]}${t[2]}${t[2]}${t[3]}${t[3]}`);const a=Math.round(e*255).toString(16).padStart(2,"0").toUpperCase();return`${t}${a}`}function S(t){const e=parseInt(t.slice(1,3),16)/255,n=parseInt(t.slice(3,5),16)/255,r=parseInt(t.slice(5,7),16)/255;return .2126*e+.7152*n+.0722*r>.6?"#000000":"#ffffff"}function M(t){const n=v(t),r=S(t),a=u(n.h,n.s,n.l,20),o=u(n.h,n.s,n.l,-20*1.7),s=x(t,20/100);return{main:t,dark:o,light:a,opacity:s,contrast:r}}function T(t){return[`${t}.main`,`${t}.dark`,`${t}.light`,`${t}.opacity`,`${t}.contrast`]}function C(t){return t.reduce((e,n)=>{const r=T(n);return e=[...e,...r],e},["text.primary","text.secondary","text.disabled","background.paper","background.default","divider"])}const B=["primary","secondary","error","warning","success","info"];C(B);function d(t,e){document.documentElement.style.setProperty(`--${t}`,e.main),document.documentElement.style.setProperty(`--${t}-light`,e.light),document.documentElement.style.setProperty(`--${t}-dark`,e.dark),document.documentElement.style.setProperty(`--${t}-contrast`,e.contrast),document.documentElement.style.setProperty(`--${t}-opacity`,e.opacity)}function I(t){if(document.querySelector(`link[href="${t}"]`))return;const e=document.createElement("link");e.rel="stylesheet",e.href=t,document.head.appendChild(e)}function R(t){if(typeof window>"u")return;const{palette:e,shape:n,spacing:r,typography:a}=t;a.url&&I(a.url),d("info",e.info),d("error",e.error),d("warning",e.warning),d("success",e.success),d("primary",e.primary),d("secondary",e.secondary),d("grey",e.grey),document.documentElement.style.setProperty("--typography",a.family),document.documentElement.style.setProperty("--text-primary",e.text?.primary),document.documentElement.style.setProperty("--text-secondary",e.text?.secondary),document.documentElement.style.setProperty("--text-disabled",e.text?.disabled),document.documentElement.style.setProperty("--background-paper",e.background?.paper),document.documentElement.style.setProperty("--background-default",e.background?.default),document.documentElement.style.setProperty("--divider",e.divider),document.documentElement.style.setProperty("--radius",`${n.radius}px`),document.documentElement.style.setProperty("--spacing",`${r}px`)}const l=8,m={radius:8},y={mode:"light",palette:{info:"#72E4FC",error:"#FF5377",warning:"#FF9457",success:"#36E79B",primary:"#6C37F4",secondary:"#FB7185",grey:"#F4F4F4",text:{primary:"rgb(31, 41, 55)",secondary:"rgb(75, 85, 99)",disabled:"rgb(172, 172, 172)"},background:{paper:"#F9F8F9",default:"#FFF"},divider:"rgba(0, 0, 0, 0.12)"},spacing:l,shape:m,typography:{family:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap"}},A={palette:{info:"#72E4FC",error:"#FF5377",warning:"#FF9457",success:"#36E79B",primary:"#6C37F4",secondary:"#EBFF5E",grey:"#2A2A2A",text:{primary:"rgba(255, 255, 255, 0.87)",secondary:"rgba(255, 255, 255, 0.6)",disabled:"rgba(255, 255, 255, 0.38)"},background:{paper:"#0D0225",default:"#30294E"},divider:"rgba(255, 255, 255, 0.12)"},spacing:l,shape:m,typography:{family:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap"}},D=["primary","secondary","error","warning","success","info","grey"];function G(t){const e=t?.mode??"light",n=e==="dark"?A:y,r=t?.palette??{},a=n.palette,o=Object.fromEntries(D.map(s=>[s,M(r[s]??a[s])]));return{mode:e,palette:{text:r.text??a.text,background:r.background??a.background,divider:r.divider??a.divider,...o},shape:t?.shape??n.shape,spacing:t?.spacing??n.spacing,typography:t?.typography??n.typography}}const g=$({theme:G(y),updateTheme:()=>{}});function H({theme:t,children:e}){const[n,r]=b(t),a=F(()=>({theme:n,updateTheme:s=>o(s)}),[t,n]);E(()=>{R(n)},[n]);const o=s=>{r(s)};return k(g.Provider,{value:a,children:e})}function O(){return P(g)}export{H as T,G as c,S as g,O as u};
2
- //# sourceMappingURL=useTheme-BkUhhydo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTheme-BkUhhydo.js","sources":["../../../../core/src/utils/hslToHex/hslToHex.ts","../../../../core/src/utils/adjustLightness/adjustLightness.ts","../../../../core/src/utils/hexToHsl/hexToHsl.ts","../../../../core/src/utils/getOpacityColor/getOpacityColor.ts","../../../../core/src/utils/getContrastColor/getContrastColor.ts","../../../../core/src/utils/generateSupportColors/generateSupportColors.ts","../../../../core/src/theme/createMappedColors.ts","../../../../core/src/theme/Theme.ts","../../../../core/src/theme/applyTheme/applyTheme.ts","../../../../core/src/theme/defaultTheme.ts","../../../../core/src/theme/createTheme/createTheme.ts","../../src/theme/ThemeProvider.tsx","../../src/theme/useTheme.ts"],"sourcesContent":["export function hslToHex(h: number, s: number, l: number) {\n s /= 100;\n l /= 100;\n\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs((h / 60) % 2 - 1));\n const m = l - c / 2;\n let r = 0, g = 0, b = 0;\n\n if (0 <= h && h < 60) { r = c; g = x; b = 0; }\n else if (60 <= h && h < 120) { r = x; g = c; b = 0; }\n else if (120 <= h && h < 180) { r = 0; g = c; b = x; }\n else if (180 <= h && h < 240) { r = 0; g = x; b = c; }\n else if (240 <= h && h < 300) { r = x; g = 0; b = c; }\n else if (300 <= h && h < 360) { r = c; g = 0; b = x; }\n\n const newR = Math.round((r + m) * 255).toString(16).padStart(2, '0');\n const newG = Math.round((g + m) * 255).toString(16).padStart(2, '0');\n const newB = Math.round((b + m) * 255).toString(16).padStart(2, '0');\n\n return `#${newR}${newG}${newB}`;\n}","import { hslToHex } from '../hslToHex';\n\nexport function adjustLightness(h: number, s: number, l: number, amount: number) {\n l = Math.min(Math.max(l + amount, 0), 100);\n return hslToHex(h, s, l);\n}","export function hexToHsl(hex: string) {\n const r = parseInt(hex.slice(1, 3), 16) / 255;\n const g = parseInt(hex.slice(3, 5), 16) / 255;\n const b = parseInt(hex.slice(5, 7), 16) / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0, s = 0;\n const l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0; // acromático\n } else {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h *= 60;\n }\n\n return { h, s: s * 100, l: l * 100 };\n}","/**\n * Adiciona opacidade a uma cor em hexadecimal.\n * @param hexColor - A cor em hexadecimal (ex: #RRGGBB ou #RGB).\n * @param opacity - O valor da opacidade (entre 0 e 1).\n * @returns A cor hexadecimal com opacidade (ex: #RRGGBBAA).\n */\nexport function getOpacityColor(hexColor: string, opacity: number): string {\n // Validar entrada do hexadecimal\n const hexPattern = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;\n if (!hexPattern.test(hexColor)) {\n throw new Error('Cor inválida. Use um formato hexadecimal (#RRGGBB ou #RGB).');\n }\n\n // Expandir formato #RGB para #RRGGBB\n if (hexColor.length === 4) {\n hexColor = `#${hexColor[1]}${hexColor[1]}${hexColor[2]}${hexColor[2]}${hexColor[3]}${hexColor[3]}`;\n }\n\n // Converter opacidade para formato hexadecimal (0 a 255)\n const alpha = Math.round(opacity * 255);\n const alphaHex = alpha.toString(16).padStart(2, '0').toUpperCase();\n\n // Combinar cor com opacidade\n return `${hexColor}${alphaHex}`;\n}","export function getContrastColor(hexColor: string) {\n // Converter hexadecimal para RGB\n const r = parseInt(hexColor.slice(1, 3), 16) / 255;\n const g = parseInt(hexColor.slice(3, 5), 16) / 255;\n const b = parseInt(hexColor.slice(5, 7), 16) / 255;\n\n // Calcular a luminância relativa\n const luminance = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n // Se a luminância for baixa, usar branco como contraste, senão preto\n return luminance > 0.6 ? '#000000' : '#ffffff';\n}","import type { Color } from '../../theme';\nimport { hexToHsl } from '../hexToHsl';\nimport { adjustLightness } from '../adjustLightness';\nimport { getOpacityColor } from '../getOpacityColor';\nimport { getContrastColor } from '../getContrastColor/getContrastColor';\n\nexport function generateSupportColors(hex: string): Color {\n const variation = 20;\n\n const hsl = hexToHsl(hex);\n\n const contrastColor = getContrastColor(hex);\n const lighterColor = adjustLightness(hsl.h, hsl.s, hsl.l, variation);\n const darkerColor = adjustLightness(hsl.h, hsl.s, hsl.l, -variation * 1.7);\n const opacityColor = getOpacityColor(hex, variation / 100);\n\n return {\n main: hex,\n dark: darkerColor,\n light: lighterColor,\n opacity: opacityColor,\n contrast: contrastColor\n };\n}","import type { MappedColors, Colors, colors } from './Theme';\n\nfunction generateMappedColor(color: Colors): MappedColors[] {\n return [\n `${color}.main`,\n `${color}.dark`,\n `${color}.light`,\n `${color}.opacity`,\n `${color}.contrast`,\n ];\n}\n\nexport function createMappedColors(_colors: typeof colors): MappedColors[] {\n return _colors.reduce<MappedColors[]>((acc, color) => {\n const mapped = generateMappedColor(color);\n\n acc = [...acc, ...mapped];\n\n return acc;\n }, [\n 'text.primary',\n 'text.secondary',\n 'text.disabled',\n 'background.paper',\n 'background.default',\n 'divider'\n ]);\n}","import type { Path } from '@iziui/toolkit/interface';\n\nimport { createMappedColors } from './createMappedColors';\n\nexport const colors = ['primary', 'secondary', 'error', 'warning', 'success', 'info'] as const;\nexport const mappedColors = createMappedColors(colors);\n\nexport type Mode = 'light' | 'dark'\n\nexport type MappedColors = Path<PaletteBuilded>;\nexport type Colors = typeof colors[number];\n\nexport type Size = 'small' | 'medium' | 'large';\n\nexport interface Color {\n main: string;\n dark: string;\n light: string;\n opacity: string;\n contrast: string;\n}\n\nexport interface Palette {\n info: string;\n error: string;\n warning: string;\n success: string;\n primary: string;\n secondary: string;\n grey: string;\n text: {\n primary: string;\n secondary: string;\n disabled: string;\n };\n background: {\n paper: string;\n default: string;\n };\n divider: string;\n}\n\nexport type Spacing = number;\nexport type Shape = { radius: number; }\nexport type Typography = { family: string; url?: string; }\n\nexport interface PaletteBuilded extends Pick<Palette, 'text' | 'background' | 'divider'> {\n grey: Color;\n info: Color;\n error: Color;\n warning: Color;\n success: Color;\n primary: Color;\n secondary: Color;\n}\n\nexport interface Theme {\n mode: Mode;\n shape: Shape;\n palette: Palette;\n spacing: Spacing;\n typography: Typography;\n}\n\nexport interface ThemeOptions extends Omit<Partial<Theme>, 'palette'> {\n palette?: Partial<Palette>;\n}\nexport interface ThemeBuilded extends Omit<Theme, 'palette'> {\n palette: PaletteBuilded;\n}\n","import type { ThemeBuilded, Color } from '../Theme';\n\nfunction setColor(name: string, color: Color) {\n document.documentElement.style.setProperty(`--${name}`, color.main);\n document.documentElement.style.setProperty(`--${name}-light`, color.light);\n document.documentElement.style.setProperty(`--${name}-dark`, color.dark);\n document.documentElement.style.setProperty(`--${name}-contrast`, color.contrast);\n document.documentElement.style.setProperty(`--${name}-opacity`, color.opacity);\n}\n\nfunction ensureStylesheet(href: string) {\n if (document.querySelector(`link[href=\"${href}\"]`)) return;\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = href;\n document.head.appendChild(link);\n}\n\nexport function applyTheme(theme: ThemeBuilded) {\n if (typeof window === 'undefined') { return; }\n\n const { palette, shape, spacing, typography } = theme;\n\n if (typography.url) { ensureStylesheet(typography.url); }\n\n // COLORS\n setColor('info', palette.info);\n setColor('error', palette.error);\n setColor('warning', palette.warning);\n setColor('success', palette.success);\n setColor('primary', palette.primary);\n setColor('secondary', palette.secondary);\n\n // GREY\n setColor('grey', palette.grey);\n\n // TYPOGRAPHY\n document.documentElement.style.setProperty('--typography', typography.family);\n\n // TEXT\n document.documentElement.style.setProperty('--text-primary', palette.text?.primary);\n document.documentElement.style.setProperty('--text-secondary', palette.text?.secondary);\n document.documentElement.style.setProperty('--text-disabled', palette.text?.disabled);\n\n // BACKGROUND\n document.documentElement.style.setProperty('--background-paper', palette.background?.paper);\n document.documentElement.style.setProperty('--background-default', palette.background?.default);\n\n // DIVIDER\n document.documentElement.style.setProperty('--divider', palette.divider);\n\n // SHAPE\n document.documentElement.style.setProperty('--radius', `${shape.radius}px`);\n\n // SPACING\n document.documentElement.style.setProperty('--spacing', `${spacing}px`);\n}","import type { Theme } from './Theme';\n\nexport const defaultSpacing: Theme['spacing'] = 8;\nexport const defaultShape: Theme['shape'] = { radius: 8 };\n\nexport const themeDefaultLight: Theme = {\n mode: 'light',\n palette: {\n info: '#72E4FC',\n error: '#FF5377',\n warning: '#FF9457',\n success: '#36E79B',\n primary: '#6C37F4',\n secondary: '#FB7185', //C026D3 // F97316 // FB7185 // F59E0B\n grey: '#F4F4F4',\n text: {\n primary: 'rgb(31, 41, 55)',\n secondary: 'rgb(75, 85, 99)',\n disabled: 'rgb(172, 172, 172)'\n },\n background: {\n paper: '#F9F8F9',\n default: '#FFF',\n },\n divider: 'rgba(0, 0, 0, 0.12)'\n },\n spacing: defaultSpacing,\n shape: defaultShape,\n typography: {\n family: 'Poppins',\n // eslint-disable-next-line\n url: 'https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap'\n }\n};\n\nexport const themeDefaultDark: Theme = {\n mode: 'dark',\n palette: {\n info: '#72E4FC',\n error: '#FF5377',\n warning: '#FF9457',\n success: '#36E79B',\n primary: '#6C37F4',\n secondary: '#EBFF5E',\n grey: '#2A2A2A',\n text: {\n primary: 'rgba(255, 255, 255, 0.87)',\n secondary: 'rgba(255, 255, 255, 0.6)',\n disabled: 'rgba(255, 255, 255, 0.38)'\n },\n background: {\n paper: '#0D0225',\n default: '#30294E',\n },\n divider: 'rgba(255, 255, 255, 0.12)'\n },\n spacing: defaultSpacing,\n shape: defaultShape,\n typography: {\n family: 'Poppins',\n // eslint-disable-next-line\n url: 'https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap'\n }\n};","import { generateSupportColors } from '../../utils';\nimport type { ThemeBuilded, ThemeOptions } from '../Theme';\nimport { themeDefaultDark, themeDefaultLight } from '../defaultTheme';\n\nconst SUPPORT_KEYS = [\n 'primary',\n 'secondary',\n 'error',\n 'warning',\n 'success',\n 'info',\n 'grey',\n] as const;\n\ntype SupportKey = (typeof SUPPORT_KEYS)[number];\n\nexport function createTheme(theme?: ThemeOptions): ThemeBuilded {\n const mode = theme?.mode ?? 'light';\n const ref = mode === 'dark' ? themeDefaultDark : themeDefaultLight;\n\n const paletteFromUser = theme?.palette ?? {};\n const paletteFromRef = ref.palette;\n\n const supportColors = Object.fromEntries(\n SUPPORT_KEYS.map((key) => [\n key,\n generateSupportColors(paletteFromUser[key] ?? paletteFromRef[key]),\n ])\n ) as Record<SupportKey, ThemeBuilded['palette'][SupportKey]>;\n\n return {\n mode,\n palette: {\n text: paletteFromUser.text ?? paletteFromRef.text,\n background: paletteFromUser.background ?? paletteFromRef.background,\n divider: paletteFromUser.divider ?? paletteFromRef.divider,\n ...supportColors,\n },\n shape: theme?.shape ?? ref.shape,\n spacing: theme?.spacing ?? ref.spacing,\n typography: theme?.typography ?? ref.typography,\n };\n}","import { createContext, useEffect, useMemo, useState, type PropsWithChildren } from 'react';\n\nimport type { ThemeBuilded } from '@iziui/core/theme';\nimport { createTheme, applyTheme, themeDefaultLight } from '@iziui/core/theme';\n\nimport '@iziui/styles/base/_base.scss';\n\nexport interface ThemeContextConfig {\n theme: ThemeBuilded;\n updateTheme: (theme: ThemeBuilded) => void;\n}\n\nexport const ThemeContext = createContext<ThemeContextConfig>({\n theme: createTheme(themeDefaultLight),\n updateTheme: () => { },\n});\n\ntype ThemeProviderProps = PropsWithChildren<{ theme: ThemeBuilded; }>\nexport default function ThemeProvider({ theme, children }: ThemeProviderProps) {\n const [_theme, setTheme] = useState<ThemeBuilded>(theme);\n\n const context = useMemo<ThemeContextConfig>(() => ({\n theme: _theme,\n updateTheme: (newTheme: ThemeBuilded) => updateTheme(newTheme),\n }), [theme, _theme]);\n\n useEffect(() => { applyTheme(_theme); }, [_theme]);\n\n const updateTheme = (newTheme: ThemeBuilded) => { setTheme(newTheme); };\n\n return (\n <ThemeContext.Provider value={context}>\n {children}\n </ThemeContext.Provider>\n );\n}\n\n","import { useContext } from 'react';\n\nimport { ThemeContext } from './ThemeProvider';\n\nexport default function useTheme() {\n return useContext(ThemeContext);\n}"],"names":["hslToHex","h","s","l","c","x","m","r","g","b","newR","newG","newB","adjustLightness","amount","hexToHsl","hex","max","min","d","getOpacityColor","hexColor","opacity","alphaHex","getContrastColor","generateSupportColors","hsl","contrastColor","lighterColor","darkerColor","opacityColor","generateMappedColor","color","createMappedColors","_colors","acc","mapped","colors","setColor","name","ensureStylesheet","href","link","applyTheme","theme","palette","shape","spacing","typography","defaultSpacing","defaultShape","themeDefaultLight","themeDefaultDark","SUPPORT_KEYS","createTheme","mode","ref","paletteFromUser","paletteFromRef","supportColors","key","ThemeContext","createContext","ThemeProvider","children","_theme","setTheme","useState","context","useMemo","newTheme","updateTheme","useEffect","useTheme","useContext"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";const u=require("react"),P=require("react/jsx-runtime");function $(t,e,n){e/=100,n/=100;const r=(1-Math.abs(2*n-1))*e,s=r*(1-Math.abs(t/60%2-1)),o=n-r/2;let a=0,c=0,i=0;0<=t&&t<60?(a=r,c=s,i=0):60<=t&&t<120?(a=s,c=r,i=0):120<=t&&t<180?(a=0,c=r,i=s):180<=t&&t<240?(a=0,c=s,i=r):240<=t&&t<300?(a=s,c=0,i=r):300<=t&&t<360&&(a=r,c=0,i=s);const p=Math.round((a+o)*255).toString(16).padStart(2,"0"),F=Math.round((c+o)*255).toString(16).padStart(2,"0"),E=Math.round((i+o)*255).toString(16).padStart(2,"0");return`#${p}${F}${E}`}function l(t,e,n,r){return n=Math.min(Math.max(n+r,0),100),$(t,e,n)}function k(t){const e=parseInt(t.slice(1,3),16)/255,n=parseInt(t.slice(3,5),16)/255,r=parseInt(t.slice(5,7),16)/255,s=Math.max(e,n,r),o=Math.min(e,n,r);let a=0,c=0;const i=(s+o)/2;if(s===o)a=c=0;else{const p=s-o;switch(c=i>.5?p/(2-s-o):p/(s+o),s){case e:a=(n-r)/p+(n<r?6:0);break;case n:a=(r-e)/p+2;break;case r:a=(e-n)/p+4;break}a*=60}return{h:a,s:c*100,l:i*100}}function w(t,e){if(!/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(t))throw new Error("Cor inválida. Use um formato hexadecimal (#RRGGBB ou #RGB).");t.length===4&&(t=`#${t[1]}${t[1]}${t[2]}${t[2]}${t[3]}${t[3]}`);const s=Math.round(e*255).toString(16).padStart(2,"0").toUpperCase();return`${t}${s}`}function m(t){const e=parseInt(t.slice(1,3),16)/255,n=parseInt(t.slice(3,5),16)/255,r=parseInt(t.slice(5,7),16)/255;return .2126*e+.7152*n+.0722*r>.6?"#000000":"#ffffff"}function v(t){const n=k(t),r=m(t),s=l(n.h,n.s,n.l,20),o=l(n.h,n.s,n.l,-20*1.7),a=w(t,20/100);return{main:t,dark:o,light:s,opacity:a,contrast:r}}function x(t){return[`${t}.main`,`${t}.dark`,`${t}.light`,`${t}.opacity`,`${t}.contrast`]}function S(t){return t.reduce((e,n)=>{const r=x(n);return e=[...e,...r],e},["text.primary","text.secondary","text.disabled","background.paper","background.default","divider"])}const T=["primary","secondary","error","warning","success","info"];S(T);function d(t,e){document.documentElement.style.setProperty(`--${t}`,e.main),document.documentElement.style.setProperty(`--${t}-light`,e.light),document.documentElement.style.setProperty(`--${t}-dark`,e.dark),document.documentElement.style.setProperty(`--${t}-contrast`,e.contrast),document.documentElement.style.setProperty(`--${t}-opacity`,e.opacity)}function C(t){if(document.querySelector(`link[href="${t}"]`))return;const e=document.createElement("link");e.rel="stylesheet",e.href=t,document.head.appendChild(e)}function M(t){if(typeof window>"u")return;const{palette:e,shape:n,spacing:r,typography:s}=t;s.url&&C(s.url),d("info",e.info),d("error",e.error),d("warning",e.warning),d("success",e.success),d("primary",e.primary),d("secondary",e.secondary),d("grey",e.grey),document.documentElement.style.setProperty("--typography",s.family),document.documentElement.style.setProperty("--text-primary",e.text?.primary),document.documentElement.style.setProperty("--text-secondary",e.text?.secondary),document.documentElement.style.setProperty("--text-disabled",e.text?.disabled),document.documentElement.style.setProperty("--background-paper",e.background?.paper),document.documentElement.style.setProperty("--background-default",e.background?.default),document.documentElement.style.setProperty("--divider",e.divider),document.documentElement.style.setProperty("--radius",`${n.radius}px`),document.documentElement.style.setProperty("--spacing",`${r}px`)}const y=8,g={radius:8},f={mode:"light",palette:{info:"#72E4FC",error:"#FF5377",warning:"#FF9457",success:"#36E79B",primary:"#6C37F4",secondary:"#FB7185",grey:"#F4F4F4",text:{primary:"rgb(31, 41, 55)",secondary:"rgb(75, 85, 99)",disabled:"rgb(172, 172, 172)"},background:{paper:"#F9F8F9",default:"#FFF"},divider:"rgba(0, 0, 0, 0.12)"},spacing:y,shape:g,typography:{family:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap"}},B={palette:{info:"#72E4FC",error:"#FF5377",warning:"#FF9457",success:"#36E79B",primary:"#6C37F4",secondary:"#EBFF5E",grey:"#2A2A2A",text:{primary:"rgba(255, 255, 255, 0.87)",secondary:"rgba(255, 255, 255, 0.6)",disabled:"rgba(255, 255, 255, 0.38)"},background:{paper:"#0D0225",default:"#30294E"},divider:"rgba(255, 255, 255, 0.12)"},spacing:y,shape:g,typography:{family:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap"}},R=["primary","secondary","error","warning","success","info","grey"];function h(t){const e=t?.mode??"light",n=e==="dark"?B:f,r=t?.palette??{},s=n.palette,o=Object.fromEntries(R.map(a=>[a,v(r[a]??s[a])]));return{mode:e,palette:{text:r.text??s.text,background:r.background??s.background,divider:r.divider??s.divider,...o},shape:t?.shape??n.shape,spacing:t?.spacing??n.spacing,typography:t?.typography??n.typography}}const b=u.createContext({theme:h(f),updateTheme:()=>{}});function I({theme:t,children:e}){const[n,r]=u.useState(t),s=u.useMemo(()=>({theme:n,updateTheme:a=>o(a)}),[t,n]);u.useEffect(()=>{M(n)},[n]);const o=a=>{r(a)};return P.jsx(b.Provider,{value:s,children:e})}function A(){return u.useContext(b)}exports.ThemeProvider=I;exports.createTheme=h;exports.getContrastColor=m;exports.useTheme=A;
2
- //# sourceMappingURL=useTheme-DwBpyW-5.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTheme-DwBpyW-5.cjs","sources":["../../../../core/src/utils/hslToHex/hslToHex.ts","../../../../core/src/utils/adjustLightness/adjustLightness.ts","../../../../core/src/utils/hexToHsl/hexToHsl.ts","../../../../core/src/utils/getOpacityColor/getOpacityColor.ts","../../../../core/src/utils/getContrastColor/getContrastColor.ts","../../../../core/src/utils/generateSupportColors/generateSupportColors.ts","../../../../core/src/theme/createMappedColors.ts","../../../../core/src/theme/Theme.ts","../../../../core/src/theme/applyTheme/applyTheme.ts","../../../../core/src/theme/defaultTheme.ts","../../../../core/src/theme/createTheme/createTheme.ts","../../src/theme/ThemeProvider.tsx","../../src/theme/useTheme.ts"],"sourcesContent":["export function hslToHex(h: number, s: number, l: number) {\n s /= 100;\n l /= 100;\n\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs((h / 60) % 2 - 1));\n const m = l - c / 2;\n let r = 0, g = 0, b = 0;\n\n if (0 <= h && h < 60) { r = c; g = x; b = 0; }\n else if (60 <= h && h < 120) { r = x; g = c; b = 0; }\n else if (120 <= h && h < 180) { r = 0; g = c; b = x; }\n else if (180 <= h && h < 240) { r = 0; g = x; b = c; }\n else if (240 <= h && h < 300) { r = x; g = 0; b = c; }\n else if (300 <= h && h < 360) { r = c; g = 0; b = x; }\n\n const newR = Math.round((r + m) * 255).toString(16).padStart(2, '0');\n const newG = Math.round((g + m) * 255).toString(16).padStart(2, '0');\n const newB = Math.round((b + m) * 255).toString(16).padStart(2, '0');\n\n return `#${newR}${newG}${newB}`;\n}","import { hslToHex } from '../hslToHex';\n\nexport function adjustLightness(h: number, s: number, l: number, amount: number) {\n l = Math.min(Math.max(l + amount, 0), 100);\n return hslToHex(h, s, l);\n}","export function hexToHsl(hex: string) {\n const r = parseInt(hex.slice(1, 3), 16) / 255;\n const g = parseInt(hex.slice(3, 5), 16) / 255;\n const b = parseInt(hex.slice(5, 7), 16) / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0, s = 0;\n const l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0; // acromático\n } else {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h *= 60;\n }\n\n return { h, s: s * 100, l: l * 100 };\n}","/**\n * Adiciona opacidade a uma cor em hexadecimal.\n * @param hexColor - A cor em hexadecimal (ex: #RRGGBB ou #RGB).\n * @param opacity - O valor da opacidade (entre 0 e 1).\n * @returns A cor hexadecimal com opacidade (ex: #RRGGBBAA).\n */\nexport function getOpacityColor(hexColor: string, opacity: number): string {\n // Validar entrada do hexadecimal\n const hexPattern = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;\n if (!hexPattern.test(hexColor)) {\n throw new Error('Cor inválida. Use um formato hexadecimal (#RRGGBB ou #RGB).');\n }\n\n // Expandir formato #RGB para #RRGGBB\n if (hexColor.length === 4) {\n hexColor = `#${hexColor[1]}${hexColor[1]}${hexColor[2]}${hexColor[2]}${hexColor[3]}${hexColor[3]}`;\n }\n\n // Converter opacidade para formato hexadecimal (0 a 255)\n const alpha = Math.round(opacity * 255);\n const alphaHex = alpha.toString(16).padStart(2, '0').toUpperCase();\n\n // Combinar cor com opacidade\n return `${hexColor}${alphaHex}`;\n}","export function getContrastColor(hexColor: string) {\n // Converter hexadecimal para RGB\n const r = parseInt(hexColor.slice(1, 3), 16) / 255;\n const g = parseInt(hexColor.slice(3, 5), 16) / 255;\n const b = parseInt(hexColor.slice(5, 7), 16) / 255;\n\n // Calcular a luminância relativa\n const luminance = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n // Se a luminância for baixa, usar branco como contraste, senão preto\n return luminance > 0.6 ? '#000000' : '#ffffff';\n}","import type { Color } from '../../theme';\nimport { hexToHsl } from '../hexToHsl';\nimport { adjustLightness } from '../adjustLightness';\nimport { getOpacityColor } from '../getOpacityColor';\nimport { getContrastColor } from '../getContrastColor/getContrastColor';\n\nexport function generateSupportColors(hex: string): Color {\n const variation = 20;\n\n const hsl = hexToHsl(hex);\n\n const contrastColor = getContrastColor(hex);\n const lighterColor = adjustLightness(hsl.h, hsl.s, hsl.l, variation);\n const darkerColor = adjustLightness(hsl.h, hsl.s, hsl.l, -variation * 1.7);\n const opacityColor = getOpacityColor(hex, variation / 100);\n\n return {\n main: hex,\n dark: darkerColor,\n light: lighterColor,\n opacity: opacityColor,\n contrast: contrastColor\n };\n}","import type { MappedColors, Colors, colors } from './Theme';\n\nfunction generateMappedColor(color: Colors): MappedColors[] {\n return [\n `${color}.main`,\n `${color}.dark`,\n `${color}.light`,\n `${color}.opacity`,\n `${color}.contrast`,\n ];\n}\n\nexport function createMappedColors(_colors: typeof colors): MappedColors[] {\n return _colors.reduce<MappedColors[]>((acc, color) => {\n const mapped = generateMappedColor(color);\n\n acc = [...acc, ...mapped];\n\n return acc;\n }, [\n 'text.primary',\n 'text.secondary',\n 'text.disabled',\n 'background.paper',\n 'background.default',\n 'divider'\n ]);\n}","import type { Path } from '@iziui/toolkit/interface';\n\nimport { createMappedColors } from './createMappedColors';\n\nexport const colors = ['primary', 'secondary', 'error', 'warning', 'success', 'info'] as const;\nexport const mappedColors = createMappedColors(colors);\n\nexport type Mode = 'light' | 'dark'\n\nexport type MappedColors = Path<PaletteBuilded>;\nexport type Colors = typeof colors[number];\n\nexport type Size = 'small' | 'medium' | 'large';\n\nexport interface Color {\n main: string;\n dark: string;\n light: string;\n opacity: string;\n contrast: string;\n}\n\nexport interface Palette {\n info: string;\n error: string;\n warning: string;\n success: string;\n primary: string;\n secondary: string;\n grey: string;\n text: {\n primary: string;\n secondary: string;\n disabled: string;\n };\n background: {\n paper: string;\n default: string;\n };\n divider: string;\n}\n\nexport type Spacing = number;\nexport type Shape = { radius: number; }\nexport type Typography = { family: string; url?: string; }\n\nexport interface PaletteBuilded extends Pick<Palette, 'text' | 'background' | 'divider'> {\n grey: Color;\n info: Color;\n error: Color;\n warning: Color;\n success: Color;\n primary: Color;\n secondary: Color;\n}\n\nexport interface Theme {\n mode: Mode;\n shape: Shape;\n palette: Palette;\n spacing: Spacing;\n typography: Typography;\n}\n\nexport interface ThemeOptions extends Omit<Partial<Theme>, 'palette'> {\n palette?: Partial<Palette>;\n}\nexport interface ThemeBuilded extends Omit<Theme, 'palette'> {\n palette: PaletteBuilded;\n}\n","import type { ThemeBuilded, Color } from '../Theme';\n\nfunction setColor(name: string, color: Color) {\n document.documentElement.style.setProperty(`--${name}`, color.main);\n document.documentElement.style.setProperty(`--${name}-light`, color.light);\n document.documentElement.style.setProperty(`--${name}-dark`, color.dark);\n document.documentElement.style.setProperty(`--${name}-contrast`, color.contrast);\n document.documentElement.style.setProperty(`--${name}-opacity`, color.opacity);\n}\n\nfunction ensureStylesheet(href: string) {\n if (document.querySelector(`link[href=\"${href}\"]`)) return;\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = href;\n document.head.appendChild(link);\n}\n\nexport function applyTheme(theme: ThemeBuilded) {\n if (typeof window === 'undefined') { return; }\n\n const { palette, shape, spacing, typography } = theme;\n\n if (typography.url) { ensureStylesheet(typography.url); }\n\n // COLORS\n setColor('info', palette.info);\n setColor('error', palette.error);\n setColor('warning', palette.warning);\n setColor('success', palette.success);\n setColor('primary', palette.primary);\n setColor('secondary', palette.secondary);\n\n // GREY\n setColor('grey', palette.grey);\n\n // TYPOGRAPHY\n document.documentElement.style.setProperty('--typography', typography.family);\n\n // TEXT\n document.documentElement.style.setProperty('--text-primary', palette.text?.primary);\n document.documentElement.style.setProperty('--text-secondary', palette.text?.secondary);\n document.documentElement.style.setProperty('--text-disabled', palette.text?.disabled);\n\n // BACKGROUND\n document.documentElement.style.setProperty('--background-paper', palette.background?.paper);\n document.documentElement.style.setProperty('--background-default', palette.background?.default);\n\n // DIVIDER\n document.documentElement.style.setProperty('--divider', palette.divider);\n\n // SHAPE\n document.documentElement.style.setProperty('--radius', `${shape.radius}px`);\n\n // SPACING\n document.documentElement.style.setProperty('--spacing', `${spacing}px`);\n}","import type { Theme } from './Theme';\n\nexport const defaultSpacing: Theme['spacing'] = 8;\nexport const defaultShape: Theme['shape'] = { radius: 8 };\n\nexport const themeDefaultLight: Theme = {\n mode: 'light',\n palette: {\n info: '#72E4FC',\n error: '#FF5377',\n warning: '#FF9457',\n success: '#36E79B',\n primary: '#6C37F4',\n secondary: '#FB7185', //C026D3 // F97316 // FB7185 // F59E0B\n grey: '#F4F4F4',\n text: {\n primary: 'rgb(31, 41, 55)',\n secondary: 'rgb(75, 85, 99)',\n disabled: 'rgb(172, 172, 172)'\n },\n background: {\n paper: '#F9F8F9',\n default: '#FFF',\n },\n divider: 'rgba(0, 0, 0, 0.12)'\n },\n spacing: defaultSpacing,\n shape: defaultShape,\n typography: {\n family: 'Poppins',\n // eslint-disable-next-line\n url: 'https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap'\n }\n};\n\nexport const themeDefaultDark: Theme = {\n mode: 'dark',\n palette: {\n info: '#72E4FC',\n error: '#FF5377',\n warning: '#FF9457',\n success: '#36E79B',\n primary: '#6C37F4',\n secondary: '#EBFF5E',\n grey: '#2A2A2A',\n text: {\n primary: 'rgba(255, 255, 255, 0.87)',\n secondary: 'rgba(255, 255, 255, 0.6)',\n disabled: 'rgba(255, 255, 255, 0.38)'\n },\n background: {\n paper: '#0D0225',\n default: '#30294E',\n },\n divider: 'rgba(255, 255, 255, 0.12)'\n },\n spacing: defaultSpacing,\n shape: defaultShape,\n typography: {\n family: 'Poppins',\n // eslint-disable-next-line\n url: 'https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap'\n }\n};","import { generateSupportColors } from '../../utils';\nimport type { ThemeBuilded, ThemeOptions } from '../Theme';\nimport { themeDefaultDark, themeDefaultLight } from '../defaultTheme';\n\nconst SUPPORT_KEYS = [\n 'primary',\n 'secondary',\n 'error',\n 'warning',\n 'success',\n 'info',\n 'grey',\n] as const;\n\ntype SupportKey = (typeof SUPPORT_KEYS)[number];\n\nexport function createTheme(theme?: ThemeOptions): ThemeBuilded {\n const mode = theme?.mode ?? 'light';\n const ref = mode === 'dark' ? themeDefaultDark : themeDefaultLight;\n\n const paletteFromUser = theme?.palette ?? {};\n const paletteFromRef = ref.palette;\n\n const supportColors = Object.fromEntries(\n SUPPORT_KEYS.map((key) => [\n key,\n generateSupportColors(paletteFromUser[key] ?? paletteFromRef[key]),\n ])\n ) as Record<SupportKey, ThemeBuilded['palette'][SupportKey]>;\n\n return {\n mode,\n palette: {\n text: paletteFromUser.text ?? paletteFromRef.text,\n background: paletteFromUser.background ?? paletteFromRef.background,\n divider: paletteFromUser.divider ?? paletteFromRef.divider,\n ...supportColors,\n },\n shape: theme?.shape ?? ref.shape,\n spacing: theme?.spacing ?? ref.spacing,\n typography: theme?.typography ?? ref.typography,\n };\n}","import { createContext, useEffect, useMemo, useState, type PropsWithChildren } from 'react';\n\nimport type { ThemeBuilded } from '@iziui/core/theme';\nimport { createTheme, applyTheme, themeDefaultLight } from '@iziui/core/theme';\n\nimport '@iziui/styles/base/_base.scss';\n\nexport interface ThemeContextConfig {\n theme: ThemeBuilded;\n updateTheme: (theme: ThemeBuilded) => void;\n}\n\nexport const ThemeContext = createContext<ThemeContextConfig>({\n theme: createTheme(themeDefaultLight),\n updateTheme: () => { },\n});\n\ntype ThemeProviderProps = PropsWithChildren<{ theme: ThemeBuilded; }>\nexport default function ThemeProvider({ theme, children }: ThemeProviderProps) {\n const [_theme, setTheme] = useState<ThemeBuilded>(theme);\n\n const context = useMemo<ThemeContextConfig>(() => ({\n theme: _theme,\n updateTheme: (newTheme: ThemeBuilded) => updateTheme(newTheme),\n }), [theme, _theme]);\n\n useEffect(() => { applyTheme(_theme); }, [_theme]);\n\n const updateTheme = (newTheme: ThemeBuilded) => { setTheme(newTheme); };\n\n return (\n <ThemeContext.Provider value={context}>\n {children}\n </ThemeContext.Provider>\n );\n}\n\n","import { useContext } from 'react';\n\nimport { ThemeContext } from './ThemeProvider';\n\nexport default function useTheme() {\n return useContext(ThemeContext);\n}"],"names":["hslToHex","h","s","l","c","x","m","r","g","b","newR","newG","newB","adjustLightness","amount","hexToHsl","hex","max","min","d","getOpacityColor","hexColor","opacity","alphaHex","getContrastColor","generateSupportColors","hsl","contrastColor","lighterColor","darkerColor","opacityColor","generateMappedColor","color","createMappedColors","_colors","acc","mapped","colors","setColor","name","ensureStylesheet","href","link","applyTheme","theme","palette","shape","spacing","typography","defaultSpacing","defaultShape","themeDefaultLight","themeDefaultDark","SUPPORT_KEYS","createTheme","mode","ref","paletteFromUser","paletteFromRef","supportColors","key","ThemeContext","createContext","ThemeProvider","children","_theme","setTheme","useState","context","useMemo","newTheme","updateTheme","useEffect","useTheme","useContext"],"mappings":"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"}