@iziui/react 0.0.104-rc → 0.0.105-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 (149) hide show
  1. package/dist/.types/fields/Autocomplete/Autocomplete.d.ts.map +1 -1
  2. package/dist/.types/fields/ColorPicker/ColorPicker.d.ts.map +1 -1
  3. package/dist/.types/fields/Input/Input.d.ts.map +1 -1
  4. package/dist/.types/fields/Select/Select.d.ts.map +1 -1
  5. package/dist/.types/lab/Form/Form.stories.d.ts.map +1 -1
  6. package/dist/chunks/{Alert-2lPmGif4.js → Alert-B1SCy_Cp.js} +2 -2
  7. package/dist/chunks/{Alert-2lPmGif4.js.map → Alert-B1SCy_Cp.js.map} +1 -1
  8. package/dist/chunks/{Alert-C1OQ_kCA.cjs → Alert-fUwHz_t-.cjs} +2 -2
  9. package/dist/chunks/{Alert-C1OQ_kCA.cjs.map → Alert-fUwHz_t-.cjs.map} +1 -1
  10. package/dist/chunks/{Box-C4RkeFA4.js → Box-CxH2X9Bk.js} +2 -2
  11. package/dist/chunks/{Box-C4RkeFA4.js.map → Box-CxH2X9Bk.js.map} +1 -1
  12. package/dist/chunks/{Box-BKxhMtOj.cjs → Box-D4_2sdPT.cjs} +2 -2
  13. package/dist/chunks/{Box-BKxhMtOj.cjs.map → Box-D4_2sdPT.cjs.map} +1 -1
  14. package/dist/chunks/{ButtonIcon-CQrH17s6.cjs → ButtonIcon-DX3mcqdA.cjs} +2 -2
  15. package/dist/chunks/{ButtonIcon-CQrH17s6.cjs.map → ButtonIcon-DX3mcqdA.cjs.map} +1 -1
  16. package/dist/chunks/{ButtonIcon-DuOL6WWW.js → ButtonIcon-MvGnh-dW.js} +2 -2
  17. package/dist/chunks/{ButtonIcon-DuOL6WWW.js.map → ButtonIcon-MvGnh-dW.js.map} +1 -1
  18. package/dist/chunks/{Card-CigqRMT2.js → Card-ClgczePq.js} +2 -2
  19. package/dist/chunks/{Card-CigqRMT2.js.map → Card-ClgczePq.js.map} +1 -1
  20. package/dist/chunks/{Card-KRiSWAFI.cjs → Card-XCQBlDqs.cjs} +2 -2
  21. package/dist/chunks/{Card-KRiSWAFI.cjs.map → Card-XCQBlDqs.cjs.map} +1 -1
  22. package/dist/chunks/{CardContent-fPZactJG.js → CardContent-ClanBXcy.js} +2 -2
  23. package/dist/chunks/{CardContent-fPZactJG.js.map → CardContent-ClanBXcy.js.map} +1 -1
  24. package/dist/chunks/{CardContent-iH_wskpH.cjs → CardContent-DtJs1hn5.cjs} +2 -2
  25. package/dist/chunks/{CardContent-iH_wskpH.cjs.map → CardContent-DtJs1hn5.cjs.map} +1 -1
  26. package/dist/chunks/{DrawerContent-kQFoLzOg.js → DrawerContent-DnmGbnN3.js} +2 -2
  27. package/dist/chunks/{DrawerContent-kQFoLzOg.js.map → DrawerContent-DnmGbnN3.js.map} +1 -1
  28. package/dist/chunks/{DrawerContent-wjJUFV6j.cjs → DrawerContent-HD1hysbJ.cjs} +2 -2
  29. package/dist/chunks/{DrawerContent-wjJUFV6j.cjs.map → DrawerContent-HD1hysbJ.cjs.map} +1 -1
  30. package/dist/chunks/{Icon-DHtgHg6D.js → Icon-BivXJuO4.js} +2 -2
  31. package/dist/chunks/{Icon-DHtgHg6D.js.map → Icon-BivXJuO4.js.map} +1 -1
  32. package/dist/chunks/{Icon-DK9kFkJZ.cjs → Icon-C1MlDdnE.cjs} +2 -2
  33. package/dist/chunks/{Icon-DK9kFkJZ.cjs.map → Icon-C1MlDdnE.cjs.map} +1 -1
  34. package/dist/chunks/{Loading-CZmsYoqx.cjs → Loading-DdvJ7_W9.cjs} +2 -2
  35. package/dist/chunks/{Loading-CZmsYoqx.cjs.map → Loading-DdvJ7_W9.cjs.map} +1 -1
  36. package/dist/chunks/{Loading-Bw5MXPw-.js → Loading-pX_kDZTy.js} +2 -2
  37. package/dist/chunks/{Loading-Bw5MXPw-.js.map → Loading-pX_kDZTy.js.map} +1 -1
  38. package/dist/chunks/{MenuButton-CQakN75R.js → MenuButton-BK65tV7s.js} +2 -2
  39. package/dist/chunks/{MenuButton-CQakN75R.js.map → MenuButton-BK65tV7s.js.map} +1 -1
  40. package/dist/chunks/{MenuButton-qyHJwXtF.cjs → MenuButton-CyAVGQuK.cjs} +2 -2
  41. package/dist/chunks/{MenuButton-qyHJwXtF.cjs.map → MenuButton-CyAVGQuK.cjs.map} +1 -1
  42. package/dist/chunks/Select-HDvgk_EX.js +2 -0
  43. package/dist/chunks/Select-HDvgk_EX.js.map +1 -0
  44. package/dist/chunks/Select-_LVZ87j1.cjs +2 -0
  45. package/dist/chunks/Select-_LVZ87j1.cjs.map +1 -0
  46. package/dist/chunks/{Stack-KD0LOLkS.cjs → Stack-B8avMp90.cjs} +2 -2
  47. package/dist/chunks/{Stack-KD0LOLkS.cjs.map → Stack-B8avMp90.cjs.map} +1 -1
  48. package/dist/chunks/{Stack-DnCw2pFA.js → Stack-D4d-dCQk.js} +2 -2
  49. package/dist/chunks/{Stack-DnCw2pFA.js.map → Stack-D4d-dCQk.js.map} +1 -1
  50. package/dist/chunks/{TableHeader-Crwdqye1.js → TableHeader-BL03RSn7.js} +2 -2
  51. package/dist/chunks/{TableHeader-Crwdqye1.js.map → TableHeader-BL03RSn7.js.map} +1 -1
  52. package/dist/chunks/{TableHeader-hddlVfv3.cjs → TableHeader-CF7hXf9i.cjs} +2 -2
  53. package/dist/chunks/{TableHeader-hddlVfv3.cjs.map → TableHeader-CF7hXf9i.cjs.map} +1 -1
  54. package/dist/chunks/{Typography-BMBXbiC1.cjs → Typography-BBFKZ_nV.cjs} +2 -2
  55. package/dist/chunks/{Typography-BMBXbiC1.cjs.map → Typography-BBFKZ_nV.cjs.map} +1 -1
  56. package/dist/chunks/{Typography-BFtQbh5C.js → Typography-CPy8xbfs.js} +2 -2
  57. package/dist/chunks/{Typography-BFtQbh5C.js.map → Typography-CPy8xbfs.js.map} +1 -1
  58. package/dist/chunks/{createComponent-BvE_8glE.js → createComponent-CIN2GARQ.js} +2 -2
  59. package/dist/chunks/{createComponent-BvE_8glE.js.map → createComponent-CIN2GARQ.js.map} +1 -1
  60. package/dist/chunks/{createComponent-cs9AuqoJ.cjs → createComponent-DQ0m5xyl.cjs} +2 -2
  61. package/dist/chunks/{createComponent-cs9AuqoJ.cjs.map → createComponent-DQ0m5xyl.cjs.map} +1 -1
  62. package/dist/chunks/{useMenu-BLhAh_V2.js → useMenu-Cmdi4bDX.js} +2 -2
  63. package/dist/chunks/{useMenu-BLhAh_V2.js.map → useMenu-Cmdi4bDX.js.map} +1 -1
  64. package/dist/chunks/{useMenu-i5MYMNcY.cjs → useMenu-CzjSo7zc.cjs} +2 -2
  65. package/dist/chunks/{useMenu-i5MYMNcY.cjs.map → useMenu-CzjSo7zc.cjs.map} +1 -1
  66. package/dist/chunks/{useTabs-D1LpVrab.cjs → useTabs-CJmpmHPZ.cjs} +2 -2
  67. package/dist/chunks/{useTabs-D1LpVrab.cjs.map → useTabs-CJmpmHPZ.cjs.map} +1 -1
  68. package/dist/chunks/{useTabs-BOKC1kGI.js → useTabs-CufrCtsL.js} +2 -2
  69. package/dist/chunks/{useTabs-BOKC1kGI.js.map → useTabs-CufrCtsL.js.map} +1 -1
  70. package/dist/chunks/{useTheme-DZmXQ5qV.cjs → useTheme-BY1JQ7q7.cjs} +1 -1
  71. package/dist/chunks/{useTheme-DZmXQ5qV.cjs.map → useTheme-BY1JQ7q7.cjs.map} +1 -1
  72. package/dist/chunks/{useTheme-Bxa1LbQE.js → useTheme-dBpqJs9-.js} +1 -1
  73. package/dist/chunks/{useTheme-Bxa1LbQE.js.map → useTheme-dBpqJs9-.js.map} +1 -1
  74. package/dist/components/Alert/index.cjs +1 -1
  75. package/dist/components/Alert/index.js +1 -1
  76. package/dist/components/Autocomplete/index.cjs +1 -1
  77. package/dist/components/Autocomplete/index.cjs.map +1 -1
  78. package/dist/components/Autocomplete/index.js +1 -1
  79. package/dist/components/Autocomplete/index.js.map +1 -1
  80. package/dist/components/Avatar/index.cjs +1 -1
  81. package/dist/components/Avatar/index.js +1 -1
  82. package/dist/components/Box/index.cjs +1 -1
  83. package/dist/components/Box/index.js +1 -1
  84. package/dist/components/Button/index.cjs +1 -1
  85. package/dist/components/Button/index.js +1 -1
  86. package/dist/components/ButtonIcon/index.cjs +1 -1
  87. package/dist/components/ButtonIcon/index.js +1 -1
  88. package/dist/components/Card/index.cjs +1 -1
  89. package/dist/components/Card/index.js +1 -1
  90. package/dist/components/Checkbox/index.cjs +1 -1
  91. package/dist/components/Checkbox/index.js +1 -1
  92. package/dist/components/CheckboxGroup/index.cjs +1 -1
  93. package/dist/components/CheckboxGroup/index.js +1 -1
  94. package/dist/components/Chip/index.cjs +1 -1
  95. package/dist/components/Chip/index.js +1 -1
  96. package/dist/components/ColorPicker/index.cjs +1 -1
  97. package/dist/components/ColorPicker/index.cjs.map +1 -1
  98. package/dist/components/ColorPicker/index.js +1 -1
  99. package/dist/components/ColorPicker/index.js.map +1 -1
  100. package/dist/components/Container/index.cjs +1 -1
  101. package/dist/components/Container/index.js +1 -1
  102. package/dist/components/Divider/index.cjs +1 -1
  103. package/dist/components/Divider/index.js +1 -1
  104. package/dist/components/Drawer/index.cjs +1 -1
  105. package/dist/components/Drawer/index.js +1 -1
  106. package/dist/components/Icon/index.cjs +1 -1
  107. package/dist/components/Icon/index.js +1 -1
  108. package/dist/components/Input/index.cjs +1 -1
  109. package/dist/components/Input/index.cjs.map +1 -1
  110. package/dist/components/Input/index.js +1 -1
  111. package/dist/components/Input/index.js.map +1 -1
  112. package/dist/components/InputFile/index.cjs +1 -1
  113. package/dist/components/InputFile/index.js +1 -1
  114. package/dist/components/Loading/index.cjs +1 -1
  115. package/dist/components/Loading/index.js +1 -1
  116. package/dist/components/Menu/index.cjs +1 -1
  117. package/dist/components/Menu/index.js +1 -1
  118. package/dist/components/Modal/index.cjs +1 -1
  119. package/dist/components/Modal/index.js +1 -1
  120. package/dist/components/Select/index.cjs +1 -1
  121. package/dist/components/Select/index.js +1 -1
  122. package/dist/components/Skeleton/index.cjs +1 -1
  123. package/dist/components/Skeleton/index.js +1 -1
  124. package/dist/components/Stack/index.cjs +1 -1
  125. package/dist/components/Stack/index.js +1 -1
  126. package/dist/components/Switch/index.cjs +1 -1
  127. package/dist/components/Switch/index.js +1 -1
  128. package/dist/components/Table/index.cjs +1 -1
  129. package/dist/components/Table/index.js +1 -1
  130. package/dist/components/Tabs/index.cjs +1 -1
  131. package/dist/components/Tabs/index.js +1 -1
  132. package/dist/components/Textarea/index.cjs +1 -1
  133. package/dist/components/Textarea/index.js +1 -1
  134. package/dist/components/Toast/index.cjs +1 -1
  135. package/dist/components/Toast/index.js +1 -1
  136. package/dist/components/Tooltip/index.cjs +1 -1
  137. package/dist/components/Tooltip/index.js +1 -1
  138. package/dist/components/Typography/index.cjs +1 -1
  139. package/dist/components/Typography/index.js +1 -1
  140. package/dist/index.cjs +1 -1
  141. package/dist/index.js +1 -1
  142. package/dist/style.css +12 -12
  143. package/dist/theme/index.cjs +1 -1
  144. package/dist/theme/index.js +1 -1
  145. package/package.json +1 -1
  146. package/dist/chunks/Select-CQPxeEfV.js +0 -2
  147. package/dist/chunks/Select-CQPxeEfV.js.map +0 -1
  148. package/dist/chunks/Select-CXDit8M-.cjs +0 -2
  149. package/dist/chunks/Select-CXDit8M-.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select-_LVZ87j1.cjs","sources":["../../src/fields/Select/Select.tsx"],"sourcesContent":["import {\n useMemo,\n Children,\n cloneElement,\n type ReactElement,\n type InputHTMLAttributes,\n type ButtonHTMLAttributes,\n} from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport type { Colors } from '@iziui/core/theme';\nimport { joinClass } from '@iziui/core/utils/joinClass';\n\nimport Icon from '@/display/Icon';\nimport { Menu, type MenuProps, useMenu } from '@/navigation/Menu';\n\nimport type { OptionProps } from './Option';\nimport createComponent from '../../core/createComponent';\n\nimport '@iziui/styles/components/Select.scss';\n\nexport interface SelectProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'color'> {\n error?: boolean;\n label?: string;\n helperText?: string;\n color?: Colors;\n position?: MenuProps['position'];\n startIcon?: React.JSX.Element | boolean;\n children: React.JSX.Element | React.JSX.Element[];\n}\n\nfunction Select({\n error,\n position = 'bottom',\n label,\n helperText,\n startIcon,\n children,\n disabled,\n onChange,\n ...props\n}: SelectProps) {\n const arrayChildren = Children.toArray(children) as ReactElement<OptionProps>[];\n\n const newValue = useMemo(() => {\n return arrayChildren.find((child) =>\n child.props.value === props.value)?.props.children || '';\n }, [props.value]);\n\n const [open, el, toggle] = useMenu();\n\n const containerClss = joinClass(\n `${prefix}-select-container`\n );\n\n const labelClss = joinClass(\n `${prefix}-select-label`,\n error && `${prefix}-select-label--error`,\n );\n\n const clss = joinClass(\n `${prefix}-select`,\n disabled && `${prefix}-select--disabled`,\n error && `${prefix}-select--error`,\n props.className\n );\n\n const helperTextClss = joinClass(\n `${prefix}-select__helper-text`,\n error && `${prefix}-select__helper-text--error`\n );\n\n const renderIcon = (icon: ReactElement<ButtonHTMLAttributes<any>>) => {\n return cloneElement(icon, {\n className: joinClass(\n icon.props.className,\n `${prefix}-select__icon--left`\n ),\n type: 'button',\n onClick: (e) => {\n e.stopPropagation();\n if (icon.props.onClick && !disabled) { icon.props.onClick(e); };\n }\n });\n };\n\n const renderOption = () => {\n return arrayChildren.map((child) => {\n return cloneElement(child, {\n className: joinClass(\n child.props.className,\n child.props.value === props.value && `${prefix}-select__option--selected`,\n ),\n onClick: (e) => {\n if (!child.props.disabled && onChange) { onChange(e as any); }\n }\n });\n });\n };\n\n return (\n <div className={containerClss}>\n {label && <label className={labelClss}>{label} {props.required && '*'}</label>}\n <button type=\"button\" className={clss} onClick={toggle} disabled={disabled}>\n <div>\n {startIcon && renderIcon(startIcon as React.JSX.Element)}\n </div>\n <input {...props} readOnly type=\"text\" value={newValue} disabled={disabled} />\n <Icon\n name=\"angle-down\"\n sx={{ color: ({ grey }) => grey.main }}\n className={`${prefix}-select__icon--right`}\n />\n </button>\n <Menu\n autoClose\n position={position}\n direction=\"center\"\n open={open}\n anchorEl={el}\n onClose={toggle}\n >\n {renderOption()}\n </Menu>\n {\n helperTextClss && (\n <span className={helperTextClss}>{helperText}</span>\n )\n }\n </div>\n );\n}\n\nexport default createComponent(Select);\n"],"names":["Select","error","position","label","helperText","startIcon","children","disabled","onChange","props","arrayChildren","Children","newValue","useMemo","child","open","el","toggle","useMenu","containerClss","joinClass","prefix","labelClss","clss","helperTextClss","renderIcon","icon","cloneElement","e","renderOption","jsxs","jsx","Icon","grey","Menu","Select_default","createComponent"],"mappings":"8PAgCA,SAASA,EAAO,CACd,MAAAC,EACA,SAAAC,EAAW,SACX,MAAAC,EACA,WAAAC,EACA,UAAAC,EACA,SAAAC,EACA,SAAAC,EACA,SAAAC,EACA,GAAGC,CACL,EAAgB,CACd,MAAMC,EAAgBC,EAAAA,SAAS,QAAQL,CAAQ,EAEzCM,EAAWC,EAAAA,QAAQ,IAChBH,EAAc,KAAMI,GACzBA,EAAM,MAAM,QAAUL,EAAM,KAAK,GAAG,MAAM,UAAY,GACvD,CAACA,EAAM,KAAK,CAAC,EAEV,CAACM,EAAMC,EAAIC,CAAM,EAAIC,EAAAA,QAAA,EAErBC,EAAgBC,EAAAA,UACpB,GAAGC,EAAAA,MAAM,mBAAA,EAGLC,EAAYF,EAAAA,UAChB,GAAGC,EAAAA,MAAM,gBACTpB,GAAS,GAAGoB,EAAAA,MAAM,sBAAA,EAGdE,EAAOH,EAAAA,UACX,GAAGC,EAAAA,MAAM,UACTd,GAAY,GAAGc,EAAAA,MAAM,oBACrBpB,GAAS,GAAGoB,EAAAA,MAAM,iBAClBZ,EAAM,SAAA,EAGFe,EAAiBJ,EAAAA,UACrB,GAAGC,EAAAA,MAAM,uBACTpB,GAAS,GAAGoB,EAAAA,MAAM,6BAAA,EAGdI,EAAcC,GACXC,EAAAA,aAAaD,EAAM,CACxB,UAAWN,EAAAA,UACTM,EAAK,MAAM,UACX,GAAGL,EAAAA,MAAM,qBAAA,EAEX,KAAM,SACN,QAAUO,GAAM,CACdA,EAAE,gBAAA,EACEF,EAAK,MAAM,SAAW,CAACnB,GAAYmB,EAAK,MAAM,QAAQE,CAAC,CAC7D,CAAA,CACD,EAGGC,EAAe,IACZnB,EAAc,IAAKI,GACjBa,EAAAA,aAAab,EAAO,CACzB,UAAWM,EAAAA,UACTN,EAAM,MAAM,UACZA,EAAM,MAAM,QAAUL,EAAM,OAAS,GAAGY,EAAAA,MAAM,2BAAA,EAEhD,QAAUO,GAAM,CACV,CAACd,EAAM,MAAM,UAAYN,GAAYA,EAASoB,CAAQ,CAC5D,CAAA,CACD,CACF,EAGH,OACEE,EAAAA,KAAC,MAAA,CAAI,UAAWX,EACb,SAAA,CAAAhB,GAAS2B,EAAAA,KAAC,QAAA,CAAM,UAAWR,EAAY,SAAA,CAAAnB,EAAM,IAAEM,EAAM,UAAY,GAAA,EAAI,EACtEqB,EAAAA,KAAC,UAAO,KAAK,SAAS,UAAWP,EAAM,QAASN,EAAQ,SAAAV,EACtD,SAAA,CAAAwB,EAAAA,IAAC,MAAA,CACE,SAAA1B,GAAaoB,EAAWpB,CAA8B,EACzD,EACA0B,EAAAA,IAAC,QAAA,CAAO,GAAGtB,EAAO,SAAQ,GAAC,KAAK,OAAO,MAAOG,EAAU,SAAAL,CAAA,CAAoB,EAC5EwB,EAAAA,IAACC,EAAAA,KAAA,CACC,KAAK,aACL,GAAI,CAAE,MAAO,CAAC,CAAE,KAAAC,CAAA,IAAWA,EAAK,IAAA,EAChC,UAAW,GAAGZ,EAAAA,MAAM,sBAAA,CAAA,CACtB,EACF,EACAU,EAAAA,IAACG,EAAAA,KAAA,CACC,UAAS,GACT,SAAAhC,EACA,UAAU,SACV,KAAAa,EACA,SAAUC,EACV,QAASC,EAER,SAAAY,EAAA,CAAa,CAAA,EAGdL,GACEO,EAAAA,IAAC,OAAA,CAAK,UAAWP,EAAiB,SAAApB,CAAA,CAAW,CAAA,EAGnD,CAEJ,CAEA,MAAA+B,EAAeC,EAAAA,gBAAgBpC,CAAM"}
@@ -1,2 +1,2 @@
1
- "use strict";const f=require("react/jsx-runtime"),k=require("react"),x=require("./index-DYxwT4uW.cjs"),C=require("./joinClass-Jk3EszKD.cjs"),q=require("./createComponent-cs9AuqoJ.cjs"),j=k.forwardRef(function({children:e,tag:s="div",gap:c=16,alignSelf:n,flexWrap:a="nowrap",alignItems:r="flex-start",flexDirection:o="column",justifyContent:i="flex-start",...t},u){const l=C.joinClass(`${x.prefix}-stack`,t.className),m=s;return f.jsx(m,{...t,ref:u,className:l,style:{gap:c,flexWrap:a,alignItems:r,alignSelf:n,flexDirection:o,justifyContent:i,...t.style},children:e})}),S=q.createComponent(j);exports.Stack=S;
2
- //# sourceMappingURL=Stack-KD0LOLkS.cjs.map
1
+ "use strict";const f=require("react/jsx-runtime"),k=require("react"),x=require("./index-DYxwT4uW.cjs"),C=require("./joinClass-Jk3EszKD.cjs"),q=require("./createComponent-DQ0m5xyl.cjs"),j=k.forwardRef(function({children:e,tag:s="div",gap:c=16,alignSelf:n,flexWrap:a="nowrap",alignItems:r="flex-start",flexDirection:o="column",justifyContent:i="flex-start",...t},u){const l=C.joinClass(`${x.prefix}-stack`,t.className),m=s;return f.jsx(m,{...t,ref:u,className:l,style:{gap:c,flexWrap:a,alignItems:r,alignSelf:n,flexDirection:o,justifyContent:i,...t.style},children:e})}),S=q.createComponent(j);exports.Stack=S;
2
+ //# sourceMappingURL=Stack-B8avMp90.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Stack-KD0LOLkS.cjs","sources":["../../src/layout/Stack/Stack.tsx"],"sourcesContent":["import type { HTMLAttributes, CSSProperties } from 'react';\nimport { forwardRef } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils';\n\nimport createComponent from '@/core/createComponent';\n\nimport '@iziui/styles/components/Stack.scss';\n\nexport interface StackProps extends HTMLAttributes<HTMLElement> {\n tag?: React.ElementType;\n gap?: number;\n flexDirection?: CSSProperties['flexDirection'];\n justifyContent?: CSSProperties['justifyContent'];\n alignItems?: CSSProperties['alignItems'];\n alignSelf?: CSSProperties['alignSelf'];\n flexWrap?: CSSProperties['flexWrap'];\n}\n\nconst Stack = forwardRef<HTMLElement, StackProps>(\n function Stack(\n {\n children,\n tag = 'div',\n gap = 16,\n alignSelf,\n flexWrap = 'nowrap',\n alignItems = 'flex-start',\n flexDirection = 'column',\n justifyContent = 'flex-start',\n ...props\n },\n ref\n ) {\n const stackClasses = joinClass(\n `${prefix}-stack`,\n props.className\n );\n\n const CustomTag = tag;\n\n return (\n <CustomTag\n {...props}\n ref={ref}\n className={stackClasses}\n style={{\n gap,\n flexWrap,\n alignItems,\n alignSelf,\n flexDirection,\n justifyContent,\n ...props.style,\n }}\n >\n {children}\n </CustomTag>\n );\n }\n);\n\nexport default createComponent(Stack);\n"],"names":["Stack","forwardRef","children","tag","gap","alignSelf","flexWrap","alignItems","flexDirection","justifyContent","props","ref","stackClasses","joinClass","prefix","CustomTag","jsx","createComponent"],"mappings":"yLAqBMA,EAAQC,EAAAA,WACZ,SACE,CACE,SAAAC,EACA,IAAAC,EAAM,MACN,IAAAC,EAAM,GACN,UAAAC,EACA,SAAAC,EAAW,SACX,WAAAC,EAAa,aACb,cAAAC,EAAgB,SAChB,eAAAC,EAAiB,aACjB,GAAGC,CAAA,EAELC,EACA,CACA,MAAMC,EAAeC,EAAAA,UACnB,GAAGC,EAAAA,MAAM,SACTJ,EAAM,SAAA,EAGFK,EAAYZ,EAElB,OACEa,EAAAA,IAACD,EAAA,CACE,GAAGL,EACJ,IAAAC,EACA,UAAWC,EACX,MAAO,CACL,IAAAR,EACA,SAAAE,EACA,WAAAC,EACA,UAAAF,EACA,cAAAG,EACA,eAAAC,EACA,GAAGC,EAAM,KAAA,EAGV,SAAAR,CAAA,CAAA,CAGP,CACF,EAEAF,EAAeiB,EAAAA,gBAAgBjB,CAAK"}
1
+ {"version":3,"file":"Stack-B8avMp90.cjs","sources":["../../src/layout/Stack/Stack.tsx"],"sourcesContent":["import type { HTMLAttributes, CSSProperties } from 'react';\nimport { forwardRef } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils';\n\nimport createComponent from '@/core/createComponent';\n\nimport '@iziui/styles/components/Stack.scss';\n\nexport interface StackProps extends HTMLAttributes<HTMLElement> {\n tag?: React.ElementType;\n gap?: number;\n flexDirection?: CSSProperties['flexDirection'];\n justifyContent?: CSSProperties['justifyContent'];\n alignItems?: CSSProperties['alignItems'];\n alignSelf?: CSSProperties['alignSelf'];\n flexWrap?: CSSProperties['flexWrap'];\n}\n\nconst Stack = forwardRef<HTMLElement, StackProps>(\n function Stack(\n {\n children,\n tag = 'div',\n gap = 16,\n alignSelf,\n flexWrap = 'nowrap',\n alignItems = 'flex-start',\n flexDirection = 'column',\n justifyContent = 'flex-start',\n ...props\n },\n ref\n ) {\n const stackClasses = joinClass(\n `${prefix}-stack`,\n props.className\n );\n\n const CustomTag = tag;\n\n return (\n <CustomTag\n {...props}\n ref={ref}\n className={stackClasses}\n style={{\n gap,\n flexWrap,\n alignItems,\n alignSelf,\n flexDirection,\n justifyContent,\n ...props.style,\n }}\n >\n {children}\n </CustomTag>\n );\n }\n);\n\nexport default createComponent(Stack);\n"],"names":["Stack","forwardRef","children","tag","gap","alignSelf","flexWrap","alignItems","flexDirection","justifyContent","props","ref","stackClasses","joinClass","prefix","CustomTag","jsx","createComponent"],"mappings":"yLAqBMA,EAAQC,EAAAA,WACZ,SACE,CACE,SAAAC,EACA,IAAAC,EAAM,MACN,IAAAC,EAAM,GACN,UAAAC,EACA,SAAAC,EAAW,SACX,WAAAC,EAAa,aACb,cAAAC,EAAgB,SAChB,eAAAC,EAAiB,aACjB,GAAGC,CAAA,EAELC,EACA,CACA,MAAMC,EAAeC,EAAAA,UACnB,GAAGC,EAAAA,MAAM,SACTJ,EAAM,SAAA,EAGFK,EAAYZ,EAElB,OACEa,EAAAA,IAACD,EAAA,CACE,GAAGL,EACJ,IAAAC,EACA,UAAWC,EACX,MAAO,CACL,IAAAR,EACA,SAAAE,EACA,WAAAC,EACA,UAAAF,EACA,cAAAG,EACA,eAAAC,EACA,GAAGC,EAAM,KAAA,EAGV,SAAAR,CAAA,CAAA,CAGP,CACF,EAEAF,EAAeiB,EAAAA,gBAAgBjB,CAAK"}
@@ -1,2 +1,2 @@
1
- import{jsx as l}from"react/jsx-runtime";import{forwardRef as p}from"react";import{p as k}from"./index-CZ41y9Hn.js";import{j as u}from"./joinClass-anSpaauN.js";import{c as x}from"./createComponent-BvE_8glE.js";const C=p(function({children:s,tag:a="div",gap:o=16,alignSelf:r,flexWrap:m="nowrap",alignItems:c="flex-start",flexDirection:e="column",justifyContent:n="flex-start",...t},f){const i=u(`${k}-stack`,t.className);return l(a,{...t,ref:f,className:i,style:{gap:o,flexWrap:m,alignItems:c,alignSelf:r,flexDirection:e,justifyContent:n,...t.style},children:s})}),T=x(C);export{T as S};
2
- //# sourceMappingURL=Stack-DnCw2pFA.js.map
1
+ import{jsx as l}from"react/jsx-runtime";import{forwardRef as p}from"react";import{p as k}from"./index-CZ41y9Hn.js";import{j as u}from"./joinClass-anSpaauN.js";import{c as x}from"./createComponent-CIN2GARQ.js";const C=p(function({children:s,tag:a="div",gap:o=16,alignSelf:r,flexWrap:m="nowrap",alignItems:c="flex-start",flexDirection:e="column",justifyContent:n="flex-start",...t},f){const i=u(`${k}-stack`,t.className);return l(a,{...t,ref:f,className:i,style:{gap:o,flexWrap:m,alignItems:c,alignSelf:r,flexDirection:e,justifyContent:n,...t.style},children:s})}),T=x(C);export{T as S};
2
+ //# sourceMappingURL=Stack-D4d-dCQk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Stack-DnCw2pFA.js","sources":["../../src/layout/Stack/Stack.tsx"],"sourcesContent":["import type { HTMLAttributes, CSSProperties } from 'react';\nimport { forwardRef } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils';\n\nimport createComponent from '@/core/createComponent';\n\nimport '@iziui/styles/components/Stack.scss';\n\nexport interface StackProps extends HTMLAttributes<HTMLElement> {\n tag?: React.ElementType;\n gap?: number;\n flexDirection?: CSSProperties['flexDirection'];\n justifyContent?: CSSProperties['justifyContent'];\n alignItems?: CSSProperties['alignItems'];\n alignSelf?: CSSProperties['alignSelf'];\n flexWrap?: CSSProperties['flexWrap'];\n}\n\nconst Stack = forwardRef<HTMLElement, StackProps>(\n function Stack(\n {\n children,\n tag = 'div',\n gap = 16,\n alignSelf,\n flexWrap = 'nowrap',\n alignItems = 'flex-start',\n flexDirection = 'column',\n justifyContent = 'flex-start',\n ...props\n },\n ref\n ) {\n const stackClasses = joinClass(\n `${prefix}-stack`,\n props.className\n );\n\n const CustomTag = tag;\n\n return (\n <CustomTag\n {...props}\n ref={ref}\n className={stackClasses}\n style={{\n gap,\n flexWrap,\n alignItems,\n alignSelf,\n flexDirection,\n justifyContent,\n ...props.style,\n }}\n >\n {children}\n </CustomTag>\n );\n }\n);\n\nexport default createComponent(Stack);\n"],"names":["Stack","forwardRef","children","tag","gap","alignSelf","flexWrap","alignItems","flexDirection","justifyContent","props","ref","stackClasses","joinClass","prefix","jsx","Stack$1","createComponent"],"mappings":"iNAqBA,MAAMA,EAAQC,EACZ,SACE,CACE,SAAAC,EACA,IAAAC,EAAM,MACN,IAAAC,EAAM,GACN,UAAAC,EACA,SAAAC,EAAW,SACX,WAAAC,EAAa,aACb,cAAAC,EAAgB,SAChB,eAAAC,EAAiB,aACjB,GAAGC,CAAA,EAELC,EACA,CACA,MAAMC,EAAeC,EACnB,GAAGC,CAAM,SACTJ,EAAM,SAAA,EAKR,OACEK,EAHgBZ,EAGf,CACE,GAAGO,EACJ,IAAAC,EACA,UAAWC,EACX,MAAO,CACL,IAAAR,EACA,SAAAE,EACA,WAAAC,EACA,UAAAF,EACA,cAAAG,EACA,eAAAC,EACA,GAAGC,EAAM,KAAA,EAGV,SAAAR,CAAA,CAAA,CAGP,CACF,EAEAc,EAAeC,EAAgBjB,CAAK"}
1
+ {"version":3,"file":"Stack-D4d-dCQk.js","sources":["../../src/layout/Stack/Stack.tsx"],"sourcesContent":["import type { HTMLAttributes, CSSProperties } from 'react';\nimport { forwardRef } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils';\n\nimport createComponent from '@/core/createComponent';\n\nimport '@iziui/styles/components/Stack.scss';\n\nexport interface StackProps extends HTMLAttributes<HTMLElement> {\n tag?: React.ElementType;\n gap?: number;\n flexDirection?: CSSProperties['flexDirection'];\n justifyContent?: CSSProperties['justifyContent'];\n alignItems?: CSSProperties['alignItems'];\n alignSelf?: CSSProperties['alignSelf'];\n flexWrap?: CSSProperties['flexWrap'];\n}\n\nconst Stack = forwardRef<HTMLElement, StackProps>(\n function Stack(\n {\n children,\n tag = 'div',\n gap = 16,\n alignSelf,\n flexWrap = 'nowrap',\n alignItems = 'flex-start',\n flexDirection = 'column',\n justifyContent = 'flex-start',\n ...props\n },\n ref\n ) {\n const stackClasses = joinClass(\n `${prefix}-stack`,\n props.className\n );\n\n const CustomTag = tag;\n\n return (\n <CustomTag\n {...props}\n ref={ref}\n className={stackClasses}\n style={{\n gap,\n flexWrap,\n alignItems,\n alignSelf,\n flexDirection,\n justifyContent,\n ...props.style,\n }}\n >\n {children}\n </CustomTag>\n );\n }\n);\n\nexport default createComponent(Stack);\n"],"names":["Stack","forwardRef","children","tag","gap","alignSelf","flexWrap","alignItems","flexDirection","justifyContent","props","ref","stackClasses","joinClass","prefix","jsx","Stack$1","createComponent"],"mappings":"iNAqBA,MAAMA,EAAQC,EACZ,SACE,CACE,SAAAC,EACA,IAAAC,EAAM,MACN,IAAAC,EAAM,GACN,UAAAC,EACA,SAAAC,EAAW,SACX,WAAAC,EAAa,aACb,cAAAC,EAAgB,SAChB,eAAAC,EAAiB,aACjB,GAAGC,CAAA,EAELC,EACA,CACA,MAAMC,EAAeC,EACnB,GAAGC,CAAM,SACTJ,EAAM,SAAA,EAKR,OACEK,EAHgBZ,EAGf,CACE,GAAGO,EACJ,IAAAC,EACA,UAAWC,EACX,MAAO,CACL,IAAAR,EACA,SAAAE,EACA,WAAAC,EACA,UAAAF,EACA,cAAAG,EACA,eAAAC,EACA,GAAGC,EAAM,KAAA,EAGV,SAAAR,CAAA,CAAA,CAGP,CACF,EAEAc,EAAeC,EAAgBjB,CAAK"}
@@ -1,2 +1,2 @@
1
- import{jsx as l}from"react/jsx-runtime";import{p as s}from"./index-CZ41y9Hn.js";import{j as o}from"./joinClass-anSpaauN.js";import{c as r}from"./createComponent-BvE_8glE.js";import{C as n}from"./Card-CigqRMT2.js";function m({children:a,...e}){const t=o(`${s}-table`,e.className);return l(n,{fullWidth:!0,style:{overflow:"auto"},children:l("table",{className:t,...e,children:a})})}const p=r(m);function b({children:a,...e}){const t=o(`${s}-table__body`,e.className);return l("tbody",{className:t,...e,children:a})}b.displayName="TableBody";function d({align:a="left",children:e,...t}){const c=o(`${s}-table__cell`,`${s}-table__cell--${a}`);return l("td",{className:c,...t,children:e})}const y=r(d);function i({children:a}){const e=o(`${s}-table__header`);return l("thead",{className:e,children:l("tr",{children:a})})}i.displayName="TableHeader";export{p as T,b as a,y as b,i as c};
2
- //# sourceMappingURL=TableHeader-Crwdqye1.js.map
1
+ import{jsx as l}from"react/jsx-runtime";import{p as s}from"./index-CZ41y9Hn.js";import{j as o}from"./joinClass-anSpaauN.js";import{c as r}from"./createComponent-CIN2GARQ.js";import{C as n}from"./Card-ClgczePq.js";function m({children:a,...e}){const t=o(`${s}-table`,e.className);return l(n,{fullWidth:!0,style:{overflow:"auto"},children:l("table",{className:t,...e,children:a})})}const p=r(m);function b({children:a,...e}){const t=o(`${s}-table__body`,e.className);return l("tbody",{className:t,...e,children:a})}b.displayName="TableBody";function d({align:a="left",children:e,...t}){const c=o(`${s}-table__cell`,`${s}-table__cell--${a}`);return l("td",{className:c,...t,children:e})}const y=r(d);function i({children:a}){const e=o(`${s}-table__header`);return l("thead",{className:e,children:l("tr",{children:a})})}i.displayName="TableHeader";export{p as T,b as a,y as b,i as c};
2
+ //# sourceMappingURL=TableHeader-BL03RSn7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableHeader-Crwdqye1.js","sources":["../../src/display/Table/Table.tsx","../../src/display/Table/TableBody.tsx","../../src/display/Table/TableCell.tsx","../../src/display/Table/TableHeader.tsx"],"sourcesContent":["import type { TableHTMLAttributes } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\n\nimport createComponent from '@/core/createComponent';\n\nimport { Card } from '../Card';\n\nimport '@iziui/styles/components/Table.scss';\n\nexport type TableProps = TableHTMLAttributes<HTMLTableElement>;\n\nfunction Table({ children, ...props }: TableProps) {\n const cls = joinClass(\n `${prefix}-table`,\n props.className\n );\n\n return (\n <Card fullWidth style={{ overflow: 'auto' }}>\n <table className={cls} {...props}>\n {children}\n </table>\n </Card>\n );\n}\n\nexport default createComponent(Table);\n","import type { TableHTMLAttributes } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\n\ninterface TableBodyProps extends TableHTMLAttributes<HTMLTableSectionElement> {\n children: React.ReactNode;\n}\n\nfunction TableBody({ children, ...props }: TableBodyProps) {\n\n const cls = joinClass(\n `${prefix}-table__body`,\n props.className\n );\n\n return (\n <tbody className={cls} {...props}>\n {children}\n </tbody>\n );\n}\n\nTableBody.displayName = 'TableBody';\n\nexport default TableBody;","import { TdHTMLAttributes } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\n\nimport createComponent from '../../core/createComponent';\n\ninterface TableCellProps extends TdHTMLAttributes<HTMLTableDataCellElement> {\n align?: 'left' | 'center' | 'right';\n children: React.JSX.Element | string | number | null;\n}\nfunction TableCell({ align = 'left', children, ...props }: TableCellProps) {\n const className = joinClass(\n `${prefix}-table__cell`,\n `${prefix}-table__cell--${align}`,\n );\n\n return (\n <td className={className} {...props}>\n {children}\n </td>\n );\n}\n\nexport default createComponent(TableCell);","import type { PropsWithChildren } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\n\nfunction TableHeader({ children }: PropsWithChildren) {\n const className = joinClass(\n `${prefix}-table__header`,\n );\n\n return (\n <thead className={className}>\n <tr>\n {children}\n </tr>\n </thead>\n );\n}\n\nTableHeader.displayName = 'TableHeader';\n\nexport default TableHeader;"],"names":["Table","children","props","cls","joinClass","prefix","Card","jsx","Table_default","createComponent","TableBody","TableCell","align","className","TableCell_default","TableHeader"],"mappings":"qNAcA,SAASA,EAAM,CAAE,SAAAC,EAAU,GAAGC,GAAqB,CACjD,MAAMC,EAAMC,EACV,GAAGC,CAAM,SACTH,EAAM,SAAA,EAGR,SACGI,EAAA,CAAK,UAAS,GAAC,MAAO,CAAE,SAAU,MAAA,EACjC,SAAAC,EAAC,SAAM,UAAWJ,EAAM,GAAGD,EACxB,SAAAD,EACH,EACF,CAEJ,CAEA,MAAAO,EAAeC,EAAgBT,CAAK,ECnBpC,SAASU,EAAU,CAAE,SAAAT,EAAU,GAAGC,GAAyB,CAEzD,MAAMC,EAAMC,EACV,GAAGC,CAAM,eACTH,EAAM,SAAA,EAGR,SACG,QAAA,CAAM,UAAWC,EAAM,GAAGD,EACxB,SAAAD,EACH,CAEJ,CAEAS,EAAU,YAAc,YCZxB,SAASC,EAAU,CAAE,MAAAC,EAAQ,OAAQ,SAAAX,EAAU,GAAGC,GAAyB,CACzE,MAAMW,EAAYT,EAChB,GAAGC,CAAM,eACT,GAAGA,CAAM,iBAAiBO,CAAK,EAAA,EAGjC,OACEL,EAAC,KAAA,CAAG,UAAAM,EAAuB,GAAGX,EAC3B,SAAAD,EACH,CAEJ,CAEA,MAAAa,EAAeL,EAAgBE,CAAS,ECnBxC,SAASI,EAAY,CAAE,SAAAd,GAA+B,CACpD,MAAMY,EAAYT,EAChB,GAAGC,CAAM,gBAAA,EAGX,SACG,QAAA,CAAM,UAAAQ,EACL,SAAAN,EAAC,KAAA,CACE,SAAAN,EACH,EACF,CAEJ,CAEAc,EAAY,YAAc"}
1
+ {"version":3,"file":"TableHeader-BL03RSn7.js","sources":["../../src/display/Table/Table.tsx","../../src/display/Table/TableBody.tsx","../../src/display/Table/TableCell.tsx","../../src/display/Table/TableHeader.tsx"],"sourcesContent":["import type { TableHTMLAttributes } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\n\nimport createComponent from '@/core/createComponent';\n\nimport { Card } from '../Card';\n\nimport '@iziui/styles/components/Table.scss';\n\nexport type TableProps = TableHTMLAttributes<HTMLTableElement>;\n\nfunction Table({ children, ...props }: TableProps) {\n const cls = joinClass(\n `${prefix}-table`,\n props.className\n );\n\n return (\n <Card fullWidth style={{ overflow: 'auto' }}>\n <table className={cls} {...props}>\n {children}\n </table>\n </Card>\n );\n}\n\nexport default createComponent(Table);\n","import type { TableHTMLAttributes } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\n\ninterface TableBodyProps extends TableHTMLAttributes<HTMLTableSectionElement> {\n children: React.ReactNode;\n}\n\nfunction TableBody({ children, ...props }: TableBodyProps) {\n\n const cls = joinClass(\n `${prefix}-table__body`,\n props.className\n );\n\n return (\n <tbody className={cls} {...props}>\n {children}\n </tbody>\n );\n}\n\nTableBody.displayName = 'TableBody';\n\nexport default TableBody;","import { TdHTMLAttributes } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\n\nimport createComponent from '../../core/createComponent';\n\ninterface TableCellProps extends TdHTMLAttributes<HTMLTableDataCellElement> {\n align?: 'left' | 'center' | 'right';\n children: React.JSX.Element | string | number | null;\n}\nfunction TableCell({ align = 'left', children, ...props }: TableCellProps) {\n const className = joinClass(\n `${prefix}-table__cell`,\n `${prefix}-table__cell--${align}`,\n );\n\n return (\n <td className={className} {...props}>\n {children}\n </td>\n );\n}\n\nexport default createComponent(TableCell);","import type { PropsWithChildren } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\n\nfunction TableHeader({ children }: PropsWithChildren) {\n const className = joinClass(\n `${prefix}-table__header`,\n );\n\n return (\n <thead className={className}>\n <tr>\n {children}\n </tr>\n </thead>\n );\n}\n\nTableHeader.displayName = 'TableHeader';\n\nexport default TableHeader;"],"names":["Table","children","props","cls","joinClass","prefix","Card","jsx","Table_default","createComponent","TableBody","TableCell","align","className","TableCell_default","TableHeader"],"mappings":"qNAcA,SAASA,EAAM,CAAE,SAAAC,EAAU,GAAGC,GAAqB,CACjD,MAAMC,EAAMC,EACV,GAAGC,CAAM,SACTH,EAAM,SAAA,EAGR,SACGI,EAAA,CAAK,UAAS,GAAC,MAAO,CAAE,SAAU,MAAA,EACjC,SAAAC,EAAC,SAAM,UAAWJ,EAAM,GAAGD,EACxB,SAAAD,EACH,EACF,CAEJ,CAEA,MAAAO,EAAeC,EAAgBT,CAAK,ECnBpC,SAASU,EAAU,CAAE,SAAAT,EAAU,GAAGC,GAAyB,CAEzD,MAAMC,EAAMC,EACV,GAAGC,CAAM,eACTH,EAAM,SAAA,EAGR,SACG,QAAA,CAAM,UAAWC,EAAM,GAAGD,EACxB,SAAAD,EACH,CAEJ,CAEAS,EAAU,YAAc,YCZxB,SAASC,EAAU,CAAE,MAAAC,EAAQ,OAAQ,SAAAX,EAAU,GAAGC,GAAyB,CACzE,MAAMW,EAAYT,EAChB,GAAGC,CAAM,eACT,GAAGA,CAAM,iBAAiBO,CAAK,EAAA,EAGjC,OACEL,EAAC,KAAA,CAAG,UAAAM,EAAuB,GAAGX,EAC3B,SAAAD,EACH,CAEJ,CAEA,MAAAa,EAAeL,EAAgBE,CAAS,ECnBxC,SAASI,EAAY,CAAE,SAAAd,GAA+B,CACpD,MAAMY,EAAYT,EAChB,GAAGC,CAAM,gBAAA,EAGX,SACG,QAAA,CAAM,UAAAQ,EACL,SAAAN,EAAC,KAAA,CACE,SAAAN,EACH,EACF,CAEJ,CAEAc,EAAY,YAAc"}
@@ -1,2 +1,2 @@
1
- "use strict";const l=require("react/jsx-runtime"),s=require("./index-DYxwT4uW.cjs"),n=require("./joinClass-Jk3EszKD.cjs"),r=require("./createComponent-cs9AuqoJ.cjs"),d=require("./Card-KRiSWAFI.cjs");function u({children:a,...e}){const t=n.joinClass(`${s.prefix}-table`,e.className);return l.jsx(d.Card,{fullWidth:!0,style:{overflow:"auto"},children:l.jsx("table",{className:t,...e,children:a})})}const b=r.createComponent(u);function o({children:a,...e}){const t=n.joinClass(`${s.prefix}-table__body`,e.className);return l.jsx("tbody",{className:t,...e,children:a})}o.displayName="TableBody";function f({align:a="left",children:e,...t}){const i=n.joinClass(`${s.prefix}-table__cell`,`${s.prefix}-table__cell--${a}`);return l.jsx("td",{className:i,...t,children:e})}const x=r.createComponent(f);function c({children:a}){const e=n.joinClass(`${s.prefix}-table__header`);return l.jsx("thead",{className:e,children:l.jsx("tr",{children:a})})}c.displayName="TableHeader";exports.TableBody=o;exports.TableCell_default=x;exports.TableHeader=c;exports.Table_default=b;
2
- //# sourceMappingURL=TableHeader-hddlVfv3.cjs.map
1
+ "use strict";const l=require("react/jsx-runtime"),s=require("./index-DYxwT4uW.cjs"),n=require("./joinClass-Jk3EszKD.cjs"),r=require("./createComponent-DQ0m5xyl.cjs"),d=require("./Card-XCQBlDqs.cjs");function u({children:a,...e}){const t=n.joinClass(`${s.prefix}-table`,e.className);return l.jsx(d.Card,{fullWidth:!0,style:{overflow:"auto"},children:l.jsx("table",{className:t,...e,children:a})})}const b=r.createComponent(u);function o({children:a,...e}){const t=n.joinClass(`${s.prefix}-table__body`,e.className);return l.jsx("tbody",{className:t,...e,children:a})}o.displayName="TableBody";function f({align:a="left",children:e,...t}){const i=n.joinClass(`${s.prefix}-table__cell`,`${s.prefix}-table__cell--${a}`);return l.jsx("td",{className:i,...t,children:e})}const x=r.createComponent(f);function c({children:a}){const e=n.joinClass(`${s.prefix}-table__header`);return l.jsx("thead",{className:e,children:l.jsx("tr",{children:a})})}c.displayName="TableHeader";exports.TableBody=o;exports.TableCell_default=x;exports.TableHeader=c;exports.Table_default=b;
2
+ //# sourceMappingURL=TableHeader-CF7hXf9i.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableHeader-hddlVfv3.cjs","sources":["../../src/display/Table/Table.tsx","../../src/display/Table/TableBody.tsx","../../src/display/Table/TableCell.tsx","../../src/display/Table/TableHeader.tsx"],"sourcesContent":["import type { TableHTMLAttributes } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\n\nimport createComponent from '@/core/createComponent';\n\nimport { Card } from '../Card';\n\nimport '@iziui/styles/components/Table.scss';\n\nexport type TableProps = TableHTMLAttributes<HTMLTableElement>;\n\nfunction Table({ children, ...props }: TableProps) {\n const cls = joinClass(\n `${prefix}-table`,\n props.className\n );\n\n return (\n <Card fullWidth style={{ overflow: 'auto' }}>\n <table className={cls} {...props}>\n {children}\n </table>\n </Card>\n );\n}\n\nexport default createComponent(Table);\n","import type { TableHTMLAttributes } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\n\ninterface TableBodyProps extends TableHTMLAttributes<HTMLTableSectionElement> {\n children: React.ReactNode;\n}\n\nfunction TableBody({ children, ...props }: TableBodyProps) {\n\n const cls = joinClass(\n `${prefix}-table__body`,\n props.className\n );\n\n return (\n <tbody className={cls} {...props}>\n {children}\n </tbody>\n );\n}\n\nTableBody.displayName = 'TableBody';\n\nexport default TableBody;","import { TdHTMLAttributes } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\n\nimport createComponent from '../../core/createComponent';\n\ninterface TableCellProps extends TdHTMLAttributes<HTMLTableDataCellElement> {\n align?: 'left' | 'center' | 'right';\n children: React.JSX.Element | string | number | null;\n}\nfunction TableCell({ align = 'left', children, ...props }: TableCellProps) {\n const className = joinClass(\n `${prefix}-table__cell`,\n `${prefix}-table__cell--${align}`,\n );\n\n return (\n <td className={className} {...props}>\n {children}\n </td>\n );\n}\n\nexport default createComponent(TableCell);","import type { PropsWithChildren } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\n\nfunction TableHeader({ children }: PropsWithChildren) {\n const className = joinClass(\n `${prefix}-table__header`,\n );\n\n return (\n <thead className={className}>\n <tr>\n {children}\n </tr>\n </thead>\n );\n}\n\nTableHeader.displayName = 'TableHeader';\n\nexport default TableHeader;"],"names":["Table","children","props","cls","joinClass","prefix","Card","jsx","Table_default","createComponent","TableBody","TableCell","align","className","TableCell_default","TableHeader"],"mappings":"uMAcA,SAASA,EAAM,CAAE,SAAAC,EAAU,GAAGC,GAAqB,CACjD,MAAMC,EAAMC,EAAAA,UACV,GAAGC,EAAAA,MAAM,SACTH,EAAM,SAAA,EAGR,aACGI,EAAAA,KAAA,CAAK,UAAS,GAAC,MAAO,CAAE,SAAU,MAAA,EACjC,SAAAC,MAAC,SAAM,UAAWJ,EAAM,GAAGD,EACxB,SAAAD,EACH,EACF,CAEJ,CAEA,MAAAO,EAAeC,EAAAA,gBAAgBT,CAAK,ECnBpC,SAASU,EAAU,CAAE,SAAAT,EAAU,GAAGC,GAAyB,CAEzD,MAAMC,EAAMC,EAAAA,UACV,GAAGC,EAAAA,MAAM,eACTH,EAAM,SAAA,EAGR,aACG,QAAA,CAAM,UAAWC,EAAM,GAAGD,EACxB,SAAAD,EACH,CAEJ,CAEAS,EAAU,YAAc,YCZxB,SAASC,EAAU,CAAE,MAAAC,EAAQ,OAAQ,SAAAX,EAAU,GAAGC,GAAyB,CACzE,MAAMW,EAAYT,EAAAA,UAChB,GAAGC,EAAAA,MAAM,eACT,GAAGA,EAAAA,MAAM,iBAAiBO,CAAK,EAAA,EAGjC,OACEL,EAAAA,IAAC,KAAA,CAAG,UAAAM,EAAuB,GAAGX,EAC3B,SAAAD,EACH,CAEJ,CAEA,MAAAa,EAAeL,EAAAA,gBAAgBE,CAAS,ECnBxC,SAASI,EAAY,CAAE,SAAAd,GAA+B,CACpD,MAAMY,EAAYT,EAAAA,UAChB,GAAGC,EAAAA,MAAM,gBAAA,EAGX,aACG,QAAA,CAAM,UAAAQ,EACL,SAAAN,EAAAA,IAAC,KAAA,CACE,SAAAN,EACH,EACF,CAEJ,CAEAc,EAAY,YAAc"}
1
+ {"version":3,"file":"TableHeader-CF7hXf9i.cjs","sources":["../../src/display/Table/Table.tsx","../../src/display/Table/TableBody.tsx","../../src/display/Table/TableCell.tsx","../../src/display/Table/TableHeader.tsx"],"sourcesContent":["import type { TableHTMLAttributes } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\n\nimport createComponent from '@/core/createComponent';\n\nimport { Card } from '../Card';\n\nimport '@iziui/styles/components/Table.scss';\n\nexport type TableProps = TableHTMLAttributes<HTMLTableElement>;\n\nfunction Table({ children, ...props }: TableProps) {\n const cls = joinClass(\n `${prefix}-table`,\n props.className\n );\n\n return (\n <Card fullWidth style={{ overflow: 'auto' }}>\n <table className={cls} {...props}>\n {children}\n </table>\n </Card>\n );\n}\n\nexport default createComponent(Table);\n","import type { TableHTMLAttributes } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\n\ninterface TableBodyProps extends TableHTMLAttributes<HTMLTableSectionElement> {\n children: React.ReactNode;\n}\n\nfunction TableBody({ children, ...props }: TableBodyProps) {\n\n const cls = joinClass(\n `${prefix}-table__body`,\n props.className\n );\n\n return (\n <tbody className={cls} {...props}>\n {children}\n </tbody>\n );\n}\n\nTableBody.displayName = 'TableBody';\n\nexport default TableBody;","import { TdHTMLAttributes } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\n\nimport createComponent from '../../core/createComponent';\n\ninterface TableCellProps extends TdHTMLAttributes<HTMLTableDataCellElement> {\n align?: 'left' | 'center' | 'right';\n children: React.JSX.Element | string | number | null;\n}\nfunction TableCell({ align = 'left', children, ...props }: TableCellProps) {\n const className = joinClass(\n `${prefix}-table__cell`,\n `${prefix}-table__cell--${align}`,\n );\n\n return (\n <td className={className} {...props}>\n {children}\n </td>\n );\n}\n\nexport default createComponent(TableCell);","import type { PropsWithChildren } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils/joinClass';\n\nfunction TableHeader({ children }: PropsWithChildren) {\n const className = joinClass(\n `${prefix}-table__header`,\n );\n\n return (\n <thead className={className}>\n <tr>\n {children}\n </tr>\n </thead>\n );\n}\n\nTableHeader.displayName = 'TableHeader';\n\nexport default TableHeader;"],"names":["Table","children","props","cls","joinClass","prefix","Card","jsx","Table_default","createComponent","TableBody","TableCell","align","className","TableCell_default","TableHeader"],"mappings":"uMAcA,SAASA,EAAM,CAAE,SAAAC,EAAU,GAAGC,GAAqB,CACjD,MAAMC,EAAMC,EAAAA,UACV,GAAGC,EAAAA,MAAM,SACTH,EAAM,SAAA,EAGR,aACGI,EAAAA,KAAA,CAAK,UAAS,GAAC,MAAO,CAAE,SAAU,MAAA,EACjC,SAAAC,MAAC,SAAM,UAAWJ,EAAM,GAAGD,EACxB,SAAAD,EACH,EACF,CAEJ,CAEA,MAAAO,EAAeC,EAAAA,gBAAgBT,CAAK,ECnBpC,SAASU,EAAU,CAAE,SAAAT,EAAU,GAAGC,GAAyB,CAEzD,MAAMC,EAAMC,EAAAA,UACV,GAAGC,EAAAA,MAAM,eACTH,EAAM,SAAA,EAGR,aACG,QAAA,CAAM,UAAWC,EAAM,GAAGD,EACxB,SAAAD,EACH,CAEJ,CAEAS,EAAU,YAAc,YCZxB,SAASC,EAAU,CAAE,MAAAC,EAAQ,OAAQ,SAAAX,EAAU,GAAGC,GAAyB,CACzE,MAAMW,EAAYT,EAAAA,UAChB,GAAGC,EAAAA,MAAM,eACT,GAAGA,EAAAA,MAAM,iBAAiBO,CAAK,EAAA,EAGjC,OACEL,EAAAA,IAAC,KAAA,CAAG,UAAAM,EAAuB,GAAGX,EAC3B,SAAAD,EACH,CAEJ,CAEA,MAAAa,EAAeL,EAAAA,gBAAgBE,CAAS,ECnBxC,SAASI,EAAY,CAAE,SAAAd,GAA+B,CACpD,MAAMY,EAAYT,EAAAA,UAChB,GAAGC,EAAAA,MAAM,gBAAA,EAGX,aACG,QAAA,CAAM,UAAAQ,EACL,SAAAN,EAAAA,IAAC,KAAA,CACE,SAAAN,EACH,EACF,CAEJ,CAEAc,EAAY,YAAc"}
@@ -1,2 +1,2 @@
1
- "use strict";const p=require("react/jsx-runtime"),t=require("./index-DYxwT4uW.cjs"),u=require("./joinClass-Jk3EszKD.cjs"),l=require("./convertPathToColor-D8eBpd_D.cjs"),m=require("./useTheme-DZmXQ5qV.cjs"),b=require("./createComponent-cs9AuqoJ.cjs"),T=["h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2"],g={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p"};function x({children:h,variant:o="body1",color:n="text.primary",weight:s,textAlign:c,...e}){const{theme:{palette:a}}=m.useTheme(),i=g[o],y=u.joinClass(`${t.prefix}-typography`,`${t.prefix}-typography--${o}`,s&&`${t.prefix}-typography--weight-${s}`,e.className),r=l.convertPathToColor(n,a);return p.jsx(i,{...e,className:y,style:{...r?{color:r}:{},textAlign:c,...e.style},children:h})}const C=b.createComponent(x);exports.Typography=C;exports.variants=T;
2
- //# sourceMappingURL=Typography-BMBXbiC1.cjs.map
1
+ "use strict";const p=require("react/jsx-runtime"),t=require("./index-DYxwT4uW.cjs"),u=require("./joinClass-Jk3EszKD.cjs"),l=require("./convertPathToColor-D8eBpd_D.cjs"),m=require("./useTheme-BY1JQ7q7.cjs"),b=require("./createComponent-DQ0m5xyl.cjs"),T=["h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2"],g={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p"};function x({children:h,variant:o="body1",color:n="text.primary",weight:s,textAlign:c,...e}){const{theme:{palette:a}}=m.useTheme(),i=g[o],y=u.joinClass(`${t.prefix}-typography`,`${t.prefix}-typography--${o}`,s&&`${t.prefix}-typography--weight-${s}`,e.className),r=l.convertPathToColor(n,a);return p.jsx(i,{...e,className:y,style:{...r?{color:r}:{},textAlign:c,...e.style},children:h})}const C=b.createComponent(x);exports.Typography=C;exports.variants=T;
2
+ //# sourceMappingURL=Typography-BBFKZ_nV.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Typography-BMBXbiC1.cjs","sources":["../../src/display/Typography/Typography.tsx"],"sourcesContent":["import { type PropsWithChildren, type HTMLAttributes, type CSSProperties } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport type { MappedColors } from '@iziui/core/theme';\nimport { joinClass } from '@iziui/core/utils/joinClass';\nimport { convertPathToColor } from '@iziui/core/utils/convertPathToColor';\n\nimport { useTheme } from '@/theme';\nimport createComponent from '@/core/createComponent';\n\nimport '@iziui/styles/components/Typography.scss';\n\nexport const variants = [\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'subtitle1',\n 'subtitle2',\n 'body1',\n 'body2',\n] as const;\n\nexport type Variant = typeof variants[number];\n\nconst MAP: { [x: string]: React.ElementType } = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n subtitle1: 'h6',\n subtitle2: 'h6',\n body1: 'p',\n body2: 'p',\n};\n\nexport interface TypographyProps extends PropsWithChildren<HTMLAttributes<HTMLParagraphElement>> {\n variant?: Variant;\n color?: MappedColors;\n textAlign?: CSSProperties['textAlign'];\n weight?: 'bold' | 'normal' | 'light';\n}\n\nfunction Typography({\n children,\n variant = 'body1',\n color: _color = 'text.primary',\n weight,\n textAlign,\n ...props\n}: TypographyProps) {\n const { theme: { palette } } = useTheme();\n\n const CustomTag = MAP[variant];\n\n const cls = joinClass(\n `${prefix}-typography`,\n `${prefix}-typography--${variant}`,\n weight && `${prefix}-typography--weight-${weight}`,\n props.className\n );\n\n const color = convertPathToColor(_color, palette);\n\n return (\n <CustomTag\n {...props}\n className={cls}\n style={{\n ...(color ? { color } : {}),\n textAlign,\n ...props.style\n }}\n >\n {children}\n </CustomTag>\n );\n}\n\nexport default createComponent(Typography);"],"names":["variants","MAP","Typography","children","variant","_color","weight","textAlign","props","palette","useTheme","CustomTag","cls","joinClass","prefix","color","convertPathToColor","jsx","createComponent"],"mappings":"0PAaaA,EAAW,CACtB,KACA,KACA,KACA,KACA,KACA,KACA,YACA,YACA,QACA,OACF,EAIMC,EAA0C,CAC9C,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,UAAW,KACX,UAAW,KACX,MAAO,IACP,MAAO,GACT,EASA,SAASC,EAAW,CAClB,SAAAC,EACA,QAAAC,EAAU,QACV,MAAOC,EAAS,eAChB,OAAAC,EACA,UAAAC,EACA,GAAGC,CACL,EAAoB,CAClB,KAAM,CAAE,MAAO,CAAE,QAAAC,CAAA,CAAQ,EAAMC,EAAAA,SAAA,EAEzBC,EAAYV,EAAIG,CAAO,EAEvBQ,EAAMC,EAAAA,UACV,GAAGC,EAAAA,MAAM,cACT,GAAGA,EAAAA,MAAM,gBAAgBV,CAAO,GAChCE,GAAU,GAAGQ,EAAAA,MAAM,uBAAuBR,CAAM,GAChDE,EAAM,SAAA,EAGFO,EAAQC,EAAAA,mBAAmBX,EAAQI,CAAO,EAEhD,OACEQ,EAAAA,IAACN,EAAA,CACE,GAAGH,EACJ,UAAWI,EACX,MAAO,CACL,GAAIG,EAAQ,CAAE,MAAAA,CAAA,EAAU,CAAA,EACxB,UAAAR,EACA,GAAGC,EAAM,KAAA,EAGV,SAAAL,CAAA,CAAA,CAGP,CAEA,MAAAD,EAAegB,EAAAA,gBAAgBhB,CAAU"}
1
+ {"version":3,"file":"Typography-BBFKZ_nV.cjs","sources":["../../src/display/Typography/Typography.tsx"],"sourcesContent":["import { type PropsWithChildren, type HTMLAttributes, type CSSProperties } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport type { MappedColors } from '@iziui/core/theme';\nimport { joinClass } from '@iziui/core/utils/joinClass';\nimport { convertPathToColor } from '@iziui/core/utils/convertPathToColor';\n\nimport { useTheme } from '@/theme';\nimport createComponent from '@/core/createComponent';\n\nimport '@iziui/styles/components/Typography.scss';\n\nexport const variants = [\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'subtitle1',\n 'subtitle2',\n 'body1',\n 'body2',\n] as const;\n\nexport type Variant = typeof variants[number];\n\nconst MAP: { [x: string]: React.ElementType } = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n subtitle1: 'h6',\n subtitle2: 'h6',\n body1: 'p',\n body2: 'p',\n};\n\nexport interface TypographyProps extends PropsWithChildren<HTMLAttributes<HTMLParagraphElement>> {\n variant?: Variant;\n color?: MappedColors;\n textAlign?: CSSProperties['textAlign'];\n weight?: 'bold' | 'normal' | 'light';\n}\n\nfunction Typography({\n children,\n variant = 'body1',\n color: _color = 'text.primary',\n weight,\n textAlign,\n ...props\n}: TypographyProps) {\n const { theme: { palette } } = useTheme();\n\n const CustomTag = MAP[variant];\n\n const cls = joinClass(\n `${prefix}-typography`,\n `${prefix}-typography--${variant}`,\n weight && `${prefix}-typography--weight-${weight}`,\n props.className\n );\n\n const color = convertPathToColor(_color, palette);\n\n return (\n <CustomTag\n {...props}\n className={cls}\n style={{\n ...(color ? { color } : {}),\n textAlign,\n ...props.style\n }}\n >\n {children}\n </CustomTag>\n );\n}\n\nexport default createComponent(Typography);"],"names":["variants","MAP","Typography","children","variant","_color","weight","textAlign","props","palette","useTheme","CustomTag","cls","joinClass","prefix","color","convertPathToColor","jsx","createComponent"],"mappings":"0PAaaA,EAAW,CACtB,KACA,KACA,KACA,KACA,KACA,KACA,YACA,YACA,QACA,OACF,EAIMC,EAA0C,CAC9C,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,UAAW,KACX,UAAW,KACX,MAAO,IACP,MAAO,GACT,EASA,SAASC,EAAW,CAClB,SAAAC,EACA,QAAAC,EAAU,QACV,MAAOC,EAAS,eAChB,OAAAC,EACA,UAAAC,EACA,GAAGC,CACL,EAAoB,CAClB,KAAM,CAAE,MAAO,CAAE,QAAAC,CAAA,CAAQ,EAAMC,EAAAA,SAAA,EAEzBC,EAAYV,EAAIG,CAAO,EAEvBQ,EAAMC,EAAAA,UACV,GAAGC,EAAAA,MAAM,cACT,GAAGA,EAAAA,MAAM,gBAAgBV,CAAO,GAChCE,GAAU,GAAGQ,EAAAA,MAAM,uBAAuBR,CAAM,GAChDE,EAAM,SAAA,EAGFO,EAAQC,EAAAA,mBAAmBX,EAAQI,CAAO,EAEhD,OACEQ,EAAAA,IAACN,EAAA,CACE,GAAGH,EACJ,UAAWI,EACX,MAAO,CACL,GAAIG,EAAQ,CAAE,MAAAA,CAAA,EAAU,CAAA,EACxB,UAAAR,EACA,GAAGC,EAAM,KAAA,EAGV,SAAAL,CAAA,CAAA,CAGP,CAEA,MAAAD,EAAegB,EAAAA,gBAAgBhB,CAAU"}
@@ -1,2 +1,2 @@
1
- import{jsx as i}from"react/jsx-runtime";import{p as t}from"./index-CZ41y9Hn.js";import{j as l}from"./joinClass-anSpaauN.js";import{c as n}from"./convertPathToColor-DtOjH4ZP.js";import{u as b}from"./useTheme-Bxa1LbQE.js";import{c as u}from"./createComponent-BvE_8glE.js";const v=["h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2"],f={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p"};function g({children:e,variant:s="body1",color:a="text.primary",weight:h,textAlign:p,...o}){const{theme:{palette:m}}=b(),y=f[s],c=l(`${t}-typography`,`${t}-typography--${s}`,h&&`${t}-typography--weight-${h}`,o.className),r=n(a,m);return i(y,{...o,className:c,style:{...r?{color:r}:{},textAlign:p,...o.style},children:e})}const N=u(g);export{N as T,v};
2
- //# sourceMappingURL=Typography-BFtQbh5C.js.map
1
+ import{jsx as i}from"react/jsx-runtime";import{p as t}from"./index-CZ41y9Hn.js";import{j as l}from"./joinClass-anSpaauN.js";import{c as n}from"./convertPathToColor-DtOjH4ZP.js";import{u as b}from"./useTheme-dBpqJs9-.js";import{c as u}from"./createComponent-CIN2GARQ.js";const v=["h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2"],f={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p"};function g({children:e,variant:s="body1",color:a="text.primary",weight:h,textAlign:p,...o}){const{theme:{palette:m}}=b(),y=f[s],c=l(`${t}-typography`,`${t}-typography--${s}`,h&&`${t}-typography--weight-${h}`,o.className),r=n(a,m);return i(y,{...o,className:c,style:{...r?{color:r}:{},textAlign:p,...o.style},children:e})}const N=u(g);export{N as T,v};
2
+ //# sourceMappingURL=Typography-CPy8xbfs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Typography-BFtQbh5C.js","sources":["../../src/display/Typography/Typography.tsx"],"sourcesContent":["import { type PropsWithChildren, type HTMLAttributes, type CSSProperties } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport type { MappedColors } from '@iziui/core/theme';\nimport { joinClass } from '@iziui/core/utils/joinClass';\nimport { convertPathToColor } from '@iziui/core/utils/convertPathToColor';\n\nimport { useTheme } from '@/theme';\nimport createComponent from '@/core/createComponent';\n\nimport '@iziui/styles/components/Typography.scss';\n\nexport const variants = [\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'subtitle1',\n 'subtitle2',\n 'body1',\n 'body2',\n] as const;\n\nexport type Variant = typeof variants[number];\n\nconst MAP: { [x: string]: React.ElementType } = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n subtitle1: 'h6',\n subtitle2: 'h6',\n body1: 'p',\n body2: 'p',\n};\n\nexport interface TypographyProps extends PropsWithChildren<HTMLAttributes<HTMLParagraphElement>> {\n variant?: Variant;\n color?: MappedColors;\n textAlign?: CSSProperties['textAlign'];\n weight?: 'bold' | 'normal' | 'light';\n}\n\nfunction Typography({\n children,\n variant = 'body1',\n color: _color = 'text.primary',\n weight,\n textAlign,\n ...props\n}: TypographyProps) {\n const { theme: { palette } } = useTheme();\n\n const CustomTag = MAP[variant];\n\n const cls = joinClass(\n `${prefix}-typography`,\n `${prefix}-typography--${variant}`,\n weight && `${prefix}-typography--weight-${weight}`,\n props.className\n );\n\n const color = convertPathToColor(_color, palette);\n\n return (\n <CustomTag\n {...props}\n className={cls}\n style={{\n ...(color ? { color } : {}),\n textAlign,\n ...props.style\n }}\n >\n {children}\n </CustomTag>\n );\n}\n\nexport default createComponent(Typography);"],"names":["variants","MAP","Typography","children","variant","_color","weight","textAlign","props","palette","useTheme","CustomTag","cls","joinClass","prefix","color","convertPathToColor","jsx","Typography$1","createComponent"],"mappings":"8QAaO,MAAMA,EAAW,CACtB,KACA,KACA,KACA,KACA,KACA,KACA,YACA,YACA,QACA,OACF,EAIMC,EAA0C,CAC9C,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,UAAW,KACX,UAAW,KACX,MAAO,IACP,MAAO,GACT,EASA,SAASC,EAAW,CAClB,SAAAC,EACA,QAAAC,EAAU,QACV,MAAOC,EAAS,eAChB,OAAAC,EACA,UAAAC,EACA,GAAGC,CACL,EAAoB,CAClB,KAAM,CAAE,MAAO,CAAE,QAAAC,CAAA,CAAQ,EAAMC,EAAA,EAEzBC,EAAYV,EAAIG,CAAO,EAEvBQ,EAAMC,EACV,GAAGC,CAAM,cACT,GAAGA,CAAM,gBAAgBV,CAAO,GAChCE,GAAU,GAAGQ,CAAM,uBAAuBR,CAAM,GAChDE,EAAM,SAAA,EAGFO,EAAQC,EAAmBX,EAAQI,CAAO,EAEhD,OACEQ,EAACN,EAAA,CACE,GAAGH,EACJ,UAAWI,EACX,MAAO,CACL,GAAIG,EAAQ,CAAE,MAAAA,CAAA,EAAU,CAAA,EACxB,UAAAR,EACA,GAAGC,EAAM,KAAA,EAGV,SAAAL,CAAA,CAAA,CAGP,CAEA,MAAAe,EAAeC,EAAgBjB,CAAU"}
1
+ {"version":3,"file":"Typography-CPy8xbfs.js","sources":["../../src/display/Typography/Typography.tsx"],"sourcesContent":["import { type PropsWithChildren, type HTMLAttributes, type CSSProperties } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport type { MappedColors } from '@iziui/core/theme';\nimport { joinClass } from '@iziui/core/utils/joinClass';\nimport { convertPathToColor } from '@iziui/core/utils/convertPathToColor';\n\nimport { useTheme } from '@/theme';\nimport createComponent from '@/core/createComponent';\n\nimport '@iziui/styles/components/Typography.scss';\n\nexport const variants = [\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'subtitle1',\n 'subtitle2',\n 'body1',\n 'body2',\n] as const;\n\nexport type Variant = typeof variants[number];\n\nconst MAP: { [x: string]: React.ElementType } = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n subtitle1: 'h6',\n subtitle2: 'h6',\n body1: 'p',\n body2: 'p',\n};\n\nexport interface TypographyProps extends PropsWithChildren<HTMLAttributes<HTMLParagraphElement>> {\n variant?: Variant;\n color?: MappedColors;\n textAlign?: CSSProperties['textAlign'];\n weight?: 'bold' | 'normal' | 'light';\n}\n\nfunction Typography({\n children,\n variant = 'body1',\n color: _color = 'text.primary',\n weight,\n textAlign,\n ...props\n}: TypographyProps) {\n const { theme: { palette } } = useTheme();\n\n const CustomTag = MAP[variant];\n\n const cls = joinClass(\n `${prefix}-typography`,\n `${prefix}-typography--${variant}`,\n weight && `${prefix}-typography--weight-${weight}`,\n props.className\n );\n\n const color = convertPathToColor(_color, palette);\n\n return (\n <CustomTag\n {...props}\n className={cls}\n style={{\n ...(color ? { color } : {}),\n textAlign,\n ...props.style\n }}\n >\n {children}\n </CustomTag>\n );\n}\n\nexport default createComponent(Typography);"],"names":["variants","MAP","Typography","children","variant","_color","weight","textAlign","props","palette","useTheme","CustomTag","cls","joinClass","prefix","color","convertPathToColor","jsx","Typography$1","createComponent"],"mappings":"8QAaO,MAAMA,EAAW,CACtB,KACA,KACA,KACA,KACA,KACA,KACA,YACA,YACA,QACA,OACF,EAIMC,EAA0C,CAC9C,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,UAAW,KACX,UAAW,KACX,MAAO,IACP,MAAO,GACT,EASA,SAASC,EAAW,CAClB,SAAAC,EACA,QAAAC,EAAU,QACV,MAAOC,EAAS,eAChB,OAAAC,EACA,UAAAC,EACA,GAAGC,CACL,EAAoB,CAClB,KAAM,CAAE,MAAO,CAAE,QAAAC,CAAA,CAAQ,EAAMC,EAAA,EAEzBC,EAAYV,EAAIG,CAAO,EAEvBQ,EAAMC,EACV,GAAGC,CAAM,cACT,GAAGA,CAAM,gBAAgBV,CAAO,GAChCE,GAAU,GAAGQ,CAAM,uBAAuBR,CAAM,GAChDE,EAAM,SAAA,EAGFO,EAAQC,EAAmBX,EAAQI,CAAO,EAEhD,OACEQ,EAACN,EAAA,CACE,GAAGH,EACJ,UAAWI,EACX,MAAO,CACL,GAAIG,EAAQ,CAAE,MAAAA,CAAA,EAAU,CAAA,EACxB,UAAAR,EACA,GAAGC,EAAM,KAAA,EAGV,SAAAL,CAAA,CAAA,CAGP,CAEA,MAAAe,EAAeC,EAAgBjB,CAAU"}
@@ -1,2 +1,2 @@
1
- import{jsx as x}from"react/jsx-runtime";import{b as P,c as M,d as S}from"./index-CZ41y9Hn.js";import{u as y}from"./useTheme-Bxa1LbQE.js";function B({sx:t,theme:n},...e){return e.reduce((s,a)=>(s={...s,...a(n,t)},s),{})}const w=(t,{color:n})=>{const{palette:e}=t;return n?{color:n(e)}:{}},_=(t,{background:n})=>{const{palette:e}=t;return n?{background:n(e)}:{}},j=(t,{borderColor:n})=>{const{palette:e}=t;return n?{borderColor:n(e)}:{}},z=(t,{backgroundColor:n})=>{const{palette:e}=t;return n?{backgroundColor:n(e)}:{}},C=(t,{borderRadius:n})=>{const{shape:e}=t;return n?{borderRadius:`${e.radius*n}px`}:{}},O=(t,{m:n,mb:e,ml:s,mr:a,mt:c,mx:u,my:l})=>{const{spacing:f}=t,o=i=>i||i===0?`${String(i*f)}px`:"",r=o(n),h=o(c),m=o(e),d=o(l),g=o(u),p=o(s),b=o(a);return{margin:r,marginTop:h||d||r,marginBottom:m||d||r,marginLeft:p||g||r,marginRight:b||g||r}},R=(t,{p:n,pb:e,pl:s,pr:a,pt:c,px:u,py:l})=>{const{spacing:f}=t,o=i=>i||i===0?`${String(i*f)}px`:"",r=o(n),h=o(c),m=o(e),d=o(l),g=o(u),p=o(s),b=o(a);return{padding:r,paddingTop:h||d||r,paddingBottom:m||d||r,paddingLeft:p||g||r,paddingRight:b||g||r}},T=(t,{boxShadow:n})=>n?{boxShadow:{sm:S,md:M,lg:P}[n]}:{},L=Object.freeze(Object.defineProperty({__proto__:null,defineBackground:_,defineBackgroundColor:z,defineBorderColor:j,defineBorderRadius:C,defineBoxShadow:T,defineColor:w,defineMargin:O,definePadding:R},Symbol.toStringTag,{value:"Module"}));function $(t){return Object.values(t).map(n=>n)}function N(t){return t.displayName=t.name,({sx:e,fullWidth:s,...a})=>{const{theme:c}=y(),u=e&&B({theme:c,sx:e},...$(L));return x(t,{...a,style:{boxSizing:"border-box",...a.style,...u,...s?{width:"100%"}:{}}})}}export{N as c};
2
- //# sourceMappingURL=createComponent-BvE_8glE.js.map
1
+ import{jsx as x}from"react/jsx-runtime";import{b as P,c as M,d as S}from"./index-CZ41y9Hn.js";import{u as y}from"./useTheme-dBpqJs9-.js";function B({sx:t,theme:n},...e){return e.reduce((s,a)=>(s={...s,...a(n,t)},s),{})}const w=(t,{color:n})=>{const{palette:e}=t;return n?{color:n(e)}:{}},_=(t,{background:n})=>{const{palette:e}=t;return n?{background:n(e)}:{}},j=(t,{borderColor:n})=>{const{palette:e}=t;return n?{borderColor:n(e)}:{}},z=(t,{backgroundColor:n})=>{const{palette:e}=t;return n?{backgroundColor:n(e)}:{}},C=(t,{borderRadius:n})=>{const{shape:e}=t;return n?{borderRadius:`${e.radius*n}px`}:{}},O=(t,{m:n,mb:e,ml:s,mr:a,mt:c,mx:u,my:l})=>{const{spacing:f}=t,o=i=>i||i===0?`${String(i*f)}px`:"",r=o(n),h=o(c),m=o(e),d=o(l),g=o(u),p=o(s),b=o(a);return{margin:r,marginTop:h||d||r,marginBottom:m||d||r,marginLeft:p||g||r,marginRight:b||g||r}},R=(t,{p:n,pb:e,pl:s,pr:a,pt:c,px:u,py:l})=>{const{spacing:f}=t,o=i=>i||i===0?`${String(i*f)}px`:"",r=o(n),h=o(c),m=o(e),d=o(l),g=o(u),p=o(s),b=o(a);return{padding:r,paddingTop:h||d||r,paddingBottom:m||d||r,paddingLeft:p||g||r,paddingRight:b||g||r}},T=(t,{boxShadow:n})=>n?{boxShadow:{sm:S,md:M,lg:P}[n]}:{},L=Object.freeze(Object.defineProperty({__proto__:null,defineBackground:_,defineBackgroundColor:z,defineBorderColor:j,defineBorderRadius:C,defineBoxShadow:T,defineColor:w,defineMargin:O,definePadding:R},Symbol.toStringTag,{value:"Module"}));function $(t){return Object.values(t).map(n=>n)}function N(t){return t.displayName=t.name,({sx:e,fullWidth:s,...a})=>{const{theme:c}=y(),u=e&&B({theme:c,sx:e},...$(L));return x(t,{...a,style:{boxSizing:"border-box",...a.style,...u,...s?{width:"100%"}:{}}})}}export{N as c};
2
+ //# sourceMappingURL=createComponent-CIN2GARQ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createComponent-BvE_8glE.js","sources":["../../../../core/src/options/createOptions/createOptions.ts","../../../../core/src/plugin/color/defineColor/defineColor.ts","../../../../core/src/plugin/color/defineBackground/defineBackground.ts","../../../../core/src/plugin/color/defineBorderColor/defineBorderColor.ts","../../../../core/src/plugin/color/defineBackgroundColor/defineBackgroundColor.ts","../../../../core/src/plugin/shape/defineBorderRadius/defineBorderRadius.ts","../../../../core/src/plugin/spacing/defineMargin/defineMargin.ts","../../../../core/src/plugin/spacing/definePadding/definePadding.ts","../../../../core/src/plugin/behavior/defineBoxShadow/defineBoxShadow.ts","../../src/core/createComponent.tsx"],"sourcesContent":["import type { Properties } from 'csstype';\n\nimport type { Plugin } from '../../plugin';\nimport type { ThemeBuilded } from '../../theme';\nimport type { CustomOptions } from '../CustomOptions';\n\ntype Data = {\n sx: CustomOptions;\n theme: ThemeBuilded;\n}\n\nexport default function createOptions({ sx, theme }: Data, ...plugins: Plugin[]): Properties {\n return plugins.reduce<Properties>((acc, plugin) => {\n acc = { ...acc, ...plugin(theme, sx) };\n\n return acc;\n }, {});\n}","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { color }) => {\n const { palette } = theme;\n\n if (!color) { return {}; }\n\n return {\n color: color(palette)\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { background }) => {\n const { palette } = theme;\n\n if (!background) { return {}; }\n\n return {\n background: background(palette)\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { borderColor }) => {\n const { palette } = theme;\n\n if (!borderColor) { return {}; }\n\n return {\n borderColor: borderColor(palette)\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { backgroundColor }) => {\n const { palette } = theme;\n\n if (!backgroundColor) { return {}; }\n\n return {\n backgroundColor: backgroundColor(palette)\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { borderRadius }) => {\n const { shape } = theme;\n\n if (!borderRadius) { return {}; }\n\n return {\n borderRadius: `${shape.radius * borderRadius}px`\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { m, mb, ml, mr, mt, mx, my }) => {\n const { spacing } = theme;\n\n const calculateMargin = (mg?: number) => {\n return !!mg || mg === 0 ? `${String(mg * spacing)}px` : '';\n };\n\n const hasM = calculateMargin(m);\n\n const hasMt = calculateMargin(mt);\n const hasMb = calculateMargin(mb);\n\n const hasMy = calculateMargin(my);\n const hasMx = calculateMargin(mx);\n\n const hasMl = calculateMargin(ml);\n const hasMr = calculateMargin(mr);\n\n return {\n margin: hasM,\n marginTop: hasMt || hasMy || hasM,\n marginBottom: hasMb || hasMy || hasM,\n marginLeft: hasMl || hasMx || hasM,\n marginRight: hasMr || hasMx || hasM,\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { p, pb, pl, pr, pt, px, py }) => {\n const { spacing } = theme;\n\n const calculatePadding = (pd?: number) => {\n return !!pd || pd === 0 ? `${String(pd * spacing)}px` : '';\n };\n\n const hasP = calculatePadding(p);\n\n const hasPt = calculatePadding(pt);\n const hasPb = calculatePadding(pb);\n\n const hasPy = calculatePadding(py);\n const hasPx = calculatePadding(px);\n\n const hasPl = calculatePadding(pl);\n const hasPr = calculatePadding(pr);\n\n return {\n padding: hasP,\n paddingTop: hasPt || hasPy || hasP,\n paddingBottom: hasPb || hasPy || hasP,\n paddingLeft: hasPl || hasPx || hasP,\n paddingRight: hasPr || hasPx || hasP,\n };\n});","import { boxShadowSmall, boxShadowRegular, boxShadowLarge } from '@iziui/tokens/web/js';\n\nimport definePlugin from '../../definePlugin';\nimport type { CustomOptions } from '../../../options/CustomOptions';\n\ntype ExtractSize = NonNullable<CustomOptions['boxShadow']>;\n\nexport default definePlugin((_, { boxShadow }) => {\n\n if (!boxShadow) { return {}; }\n\n const sizes: { [s in ExtractSize]: string } = {\n sm: boxShadowSmall,\n md: boxShadowRegular,\n lg: boxShadowLarge,\n };\n\n return {\n boxShadow: sizes[boxShadow]\n };\n});","import type { ComponentType, FC } from 'react';\n\nimport type { Sx } from '@iziui/core/system';\nimport type { Plugin } from '@iziui/core/plugin';\nimport createOptions from '@iziui/core/options';\nimport * as plugins from '@iziui/core/plugin';\n\nimport { useTheme } from '@/theme';\n\nfunction extract(module: { [key: string]: Plugin }) {\n return Object.values(module).map((fn) => fn);\n}\n\nexport default function createComponent<P>(WrappedComponent: ComponentType<P>) {\n WrappedComponent.displayName = WrappedComponent.name;\n\n const EnhancedComponent: FC<Sx<P>> = ({ sx, fullWidth, ...props }) => {\n const { theme } = useTheme();\n\n const options = sx && createOptions({ theme, sx },\n ...extract(plugins),\n );\n\n return (\n <WrappedComponent\n {...(props as P)}\n style={{\n boxSizing: 'border-box',\n ...props['style'],\n ...options,\n ...(fullWidth ? { width: '100%' } : {}),\n }}\n />\n );\n };\n\n return EnhancedComponent;\n}"],"names":["createOptions","sx","theme","plugins","acc","plugin","defineColor","color","palette","defineBackground","background","defineBorderColor","borderColor","defineBackgroundColor","backgroundColor","defineBorderRadius","borderRadius","shape","defineMargin","m","mb","ml","mr","mt","mx","my","spacing","calculateMargin","mg","hasM","hasMt","hasMb","hasMy","hasMx","hasMl","hasMr","definePadding","p","pb","pl","pr","pt","px","py","calculatePadding","pd","hasP","hasPt","hasPb","hasPy","hasPx","hasPl","hasPr","defineBoxShadow","_","boxShadow","boxShadowSmall","boxShadowRegular","boxShadowLarge","extract","module","fn","createComponent","WrappedComponent","fullWidth","props","useTheme","options","jsx"],"mappings":"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"}
1
+ {"version":3,"file":"createComponent-CIN2GARQ.js","sources":["../../../../core/src/options/createOptions/createOptions.ts","../../../../core/src/plugin/color/defineColor/defineColor.ts","../../../../core/src/plugin/color/defineBackground/defineBackground.ts","../../../../core/src/plugin/color/defineBorderColor/defineBorderColor.ts","../../../../core/src/plugin/color/defineBackgroundColor/defineBackgroundColor.ts","../../../../core/src/plugin/shape/defineBorderRadius/defineBorderRadius.ts","../../../../core/src/plugin/spacing/defineMargin/defineMargin.ts","../../../../core/src/plugin/spacing/definePadding/definePadding.ts","../../../../core/src/plugin/behavior/defineBoxShadow/defineBoxShadow.ts","../../src/core/createComponent.tsx"],"sourcesContent":["import type { Properties } from 'csstype';\n\nimport type { Plugin } from '../../plugin';\nimport type { ThemeBuilded } from '../../theme';\nimport type { CustomOptions } from '../CustomOptions';\n\ntype Data = {\n sx: CustomOptions;\n theme: ThemeBuilded;\n}\n\nexport default function createOptions({ sx, theme }: Data, ...plugins: Plugin[]): Properties {\n return plugins.reduce<Properties>((acc, plugin) => {\n acc = { ...acc, ...plugin(theme, sx) };\n\n return acc;\n }, {});\n}","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { color }) => {\n const { palette } = theme;\n\n if (!color) { return {}; }\n\n return {\n color: color(palette)\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { background }) => {\n const { palette } = theme;\n\n if (!background) { return {}; }\n\n return {\n background: background(palette)\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { borderColor }) => {\n const { palette } = theme;\n\n if (!borderColor) { return {}; }\n\n return {\n borderColor: borderColor(palette)\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { backgroundColor }) => {\n const { palette } = theme;\n\n if (!backgroundColor) { return {}; }\n\n return {\n backgroundColor: backgroundColor(palette)\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { borderRadius }) => {\n const { shape } = theme;\n\n if (!borderRadius) { return {}; }\n\n return {\n borderRadius: `${shape.radius * borderRadius}px`\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { m, mb, ml, mr, mt, mx, my }) => {\n const { spacing } = theme;\n\n const calculateMargin = (mg?: number) => {\n return !!mg || mg === 0 ? `${String(mg * spacing)}px` : '';\n };\n\n const hasM = calculateMargin(m);\n\n const hasMt = calculateMargin(mt);\n const hasMb = calculateMargin(mb);\n\n const hasMy = calculateMargin(my);\n const hasMx = calculateMargin(mx);\n\n const hasMl = calculateMargin(ml);\n const hasMr = calculateMargin(mr);\n\n return {\n margin: hasM,\n marginTop: hasMt || hasMy || hasM,\n marginBottom: hasMb || hasMy || hasM,\n marginLeft: hasMl || hasMx || hasM,\n marginRight: hasMr || hasMx || hasM,\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { p, pb, pl, pr, pt, px, py }) => {\n const { spacing } = theme;\n\n const calculatePadding = (pd?: number) => {\n return !!pd || pd === 0 ? `${String(pd * spacing)}px` : '';\n };\n\n const hasP = calculatePadding(p);\n\n const hasPt = calculatePadding(pt);\n const hasPb = calculatePadding(pb);\n\n const hasPy = calculatePadding(py);\n const hasPx = calculatePadding(px);\n\n const hasPl = calculatePadding(pl);\n const hasPr = calculatePadding(pr);\n\n return {\n padding: hasP,\n paddingTop: hasPt || hasPy || hasP,\n paddingBottom: hasPb || hasPy || hasP,\n paddingLeft: hasPl || hasPx || hasP,\n paddingRight: hasPr || hasPx || hasP,\n };\n});","import { boxShadowSmall, boxShadowRegular, boxShadowLarge } from '@iziui/tokens/web/js';\n\nimport definePlugin from '../../definePlugin';\nimport type { CustomOptions } from '../../../options/CustomOptions';\n\ntype ExtractSize = NonNullable<CustomOptions['boxShadow']>;\n\nexport default definePlugin((_, { boxShadow }) => {\n\n if (!boxShadow) { return {}; }\n\n const sizes: { [s in ExtractSize]: string } = {\n sm: boxShadowSmall,\n md: boxShadowRegular,\n lg: boxShadowLarge,\n };\n\n return {\n boxShadow: sizes[boxShadow]\n };\n});","import type { ComponentType, FC } from 'react';\n\nimport type { Sx } from '@iziui/core/system';\nimport type { Plugin } from '@iziui/core/plugin';\nimport createOptions from '@iziui/core/options';\nimport * as plugins from '@iziui/core/plugin';\n\nimport { useTheme } from '@/theme';\n\nfunction extract(module: { [key: string]: Plugin }) {\n return Object.values(module).map((fn) => fn);\n}\n\nexport default function createComponent<P>(WrappedComponent: ComponentType<P>) {\n WrappedComponent.displayName = WrappedComponent.name;\n\n const EnhancedComponent: FC<Sx<P>> = ({ sx, fullWidth, ...props }) => {\n const { theme } = useTheme();\n\n const options = sx && createOptions({ theme, sx },\n ...extract(plugins),\n );\n\n return (\n <WrappedComponent\n {...(props as P)}\n style={{\n boxSizing: 'border-box',\n ...props['style'],\n ...options,\n ...(fullWidth ? { width: '100%' } : {}),\n }}\n />\n );\n };\n\n return EnhancedComponent;\n}"],"names":["createOptions","sx","theme","plugins","acc","plugin","defineColor","color","palette","defineBackground","background","defineBorderColor","borderColor","defineBackgroundColor","backgroundColor","defineBorderRadius","borderRadius","shape","defineMargin","m","mb","ml","mr","mt","mx","my","spacing","calculateMargin","mg","hasM","hasMt","hasMb","hasMy","hasMx","hasMl","hasMr","definePadding","p","pb","pl","pr","pt","px","py","calculatePadding","pd","hasP","hasPt","hasPb","hasPy","hasPx","hasPl","hasPr","defineBoxShadow","_","boxShadow","boxShadowSmall","boxShadowRegular","boxShadowLarge","extract","module","fn","createComponent","WrappedComponent","fullWidth","props","useTheme","options","jsx"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const P=require("react/jsx-runtime"),b=require("./index-DYxwT4uW.cjs"),M=require("./useTheme-DZmXQ5qV.cjs");function S({sx:t,theme:n},...e){return e.reduce((s,a)=>(s={...s,...a(n,t)},s),{})}const y=(t,{color:n})=>{const{palette:e}=t;return n?{color:n(e)}:{}},B=(t,{background:n})=>{const{palette:e}=t;return n?{background:n(e)}:{}},j=(t,{borderColor:n})=>{const{palette:e}=t;return n?{borderColor:n(e)}:{}},w=(t,{backgroundColor:n})=>{const{palette:e}=t;return n?{backgroundColor:n(e)}:{}},C=(t,{borderRadius:n})=>{const{shape:e}=t;return n?{borderRadius:`${e.radius*n}px`}:{}},R=(t,{m:n,mb:e,ml:s,mr:a,mt:c,mx:u,my:l})=>{const{spacing:h}=t,r=i=>i||i===0?`${String(i*h)}px`:"",o=r(n),f=r(c),m=r(e),d=r(l),g=r(u),p=r(s),x=r(a);return{margin:o,marginTop:f||d||o,marginBottom:m||d||o,marginLeft:p||g||o,marginRight:x||g||o}},T=(t,{p:n,pb:e,pl:s,pr:a,pt:c,px:u,py:l})=>{const{spacing:h}=t,r=i=>i||i===0?`${String(i*h)}px`:"",o=r(n),f=r(c),m=r(e),d=r(l),g=r(u),p=r(s),x=r(a);return{padding:o,paddingTop:f||d||o,paddingBottom:m||d||o,paddingLeft:p||g||o,paddingRight:x||g||o}},_=(t,{boxShadow:n})=>n?{boxShadow:{sm:b.boxShadowSmall,md:b.boxShadowRegular,lg:b.boxShadowLarge}[n]}:{},z=Object.freeze(Object.defineProperty({__proto__:null,defineBackground:B,defineBackgroundColor:w,defineBorderColor:j,defineBorderRadius:C,defineBoxShadow:_,defineColor:y,defineMargin:R,definePadding:T},Symbol.toStringTag,{value:"Module"}));function O(t){return Object.values(t).map(n=>n)}function q(t){return t.displayName=t.name,({sx:e,fullWidth:s,...a})=>{const{theme:c}=M.useTheme(),u=e&&S({theme:c,sx:e},...O(z));return P.jsx(t,{...a,style:{boxSizing:"border-box",...a.style,...u,...s?{width:"100%"}:{}}})}}exports.createComponent=q;
2
- //# sourceMappingURL=createComponent-cs9AuqoJ.cjs.map
1
+ "use strict";const P=require("react/jsx-runtime"),b=require("./index-DYxwT4uW.cjs"),M=require("./useTheme-BY1JQ7q7.cjs");function S({sx:t,theme:n},...e){return e.reduce((s,a)=>(s={...s,...a(n,t)},s),{})}const y=(t,{color:n})=>{const{palette:e}=t;return n?{color:n(e)}:{}},B=(t,{background:n})=>{const{palette:e}=t;return n?{background:n(e)}:{}},j=(t,{borderColor:n})=>{const{palette:e}=t;return n?{borderColor:n(e)}:{}},w=(t,{backgroundColor:n})=>{const{palette:e}=t;return n?{backgroundColor:n(e)}:{}},C=(t,{borderRadius:n})=>{const{shape:e}=t;return n?{borderRadius:`${e.radius*n}px`}:{}},R=(t,{m:n,mb:e,ml:s,mr:a,mt:c,mx:u,my:l})=>{const{spacing:h}=t,r=i=>i||i===0?`${String(i*h)}px`:"",o=r(n),f=r(c),m=r(e),d=r(l),g=r(u),p=r(s),x=r(a);return{margin:o,marginTop:f||d||o,marginBottom:m||d||o,marginLeft:p||g||o,marginRight:x||g||o}},T=(t,{p:n,pb:e,pl:s,pr:a,pt:c,px:u,py:l})=>{const{spacing:h}=t,r=i=>i||i===0?`${String(i*h)}px`:"",o=r(n),f=r(c),m=r(e),d=r(l),g=r(u),p=r(s),x=r(a);return{padding:o,paddingTop:f||d||o,paddingBottom:m||d||o,paddingLeft:p||g||o,paddingRight:x||g||o}},_=(t,{boxShadow:n})=>n?{boxShadow:{sm:b.boxShadowSmall,md:b.boxShadowRegular,lg:b.boxShadowLarge}[n]}:{},z=Object.freeze(Object.defineProperty({__proto__:null,defineBackground:B,defineBackgroundColor:w,defineBorderColor:j,defineBorderRadius:C,defineBoxShadow:_,defineColor:y,defineMargin:R,definePadding:T},Symbol.toStringTag,{value:"Module"}));function O(t){return Object.values(t).map(n=>n)}function q(t){return t.displayName=t.name,({sx:e,fullWidth:s,...a})=>{const{theme:c}=M.useTheme(),u=e&&S({theme:c,sx:e},...O(z));return P.jsx(t,{...a,style:{boxSizing:"border-box",...a.style,...u,...s?{width:"100%"}:{}}})}}exports.createComponent=q;
2
+ //# sourceMappingURL=createComponent-DQ0m5xyl.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"createComponent-cs9AuqoJ.cjs","sources":["../../../../core/src/options/createOptions/createOptions.ts","../../../../core/src/plugin/color/defineColor/defineColor.ts","../../../../core/src/plugin/color/defineBackground/defineBackground.ts","../../../../core/src/plugin/color/defineBorderColor/defineBorderColor.ts","../../../../core/src/plugin/color/defineBackgroundColor/defineBackgroundColor.ts","../../../../core/src/plugin/shape/defineBorderRadius/defineBorderRadius.ts","../../../../core/src/plugin/spacing/defineMargin/defineMargin.ts","../../../../core/src/plugin/spacing/definePadding/definePadding.ts","../../../../core/src/plugin/behavior/defineBoxShadow/defineBoxShadow.ts","../../src/core/createComponent.tsx"],"sourcesContent":["import type { Properties } from 'csstype';\n\nimport type { Plugin } from '../../plugin';\nimport type { ThemeBuilded } from '../../theme';\nimport type { CustomOptions } from '../CustomOptions';\n\ntype Data = {\n sx: CustomOptions;\n theme: ThemeBuilded;\n}\n\nexport default function createOptions({ sx, theme }: Data, ...plugins: Plugin[]): Properties {\n return plugins.reduce<Properties>((acc, plugin) => {\n acc = { ...acc, ...plugin(theme, sx) };\n\n return acc;\n }, {});\n}","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { color }) => {\n const { palette } = theme;\n\n if (!color) { return {}; }\n\n return {\n color: color(palette)\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { background }) => {\n const { palette } = theme;\n\n if (!background) { return {}; }\n\n return {\n background: background(palette)\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { borderColor }) => {\n const { palette } = theme;\n\n if (!borderColor) { return {}; }\n\n return {\n borderColor: borderColor(palette)\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { backgroundColor }) => {\n const { palette } = theme;\n\n if (!backgroundColor) { return {}; }\n\n return {\n backgroundColor: backgroundColor(palette)\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { borderRadius }) => {\n const { shape } = theme;\n\n if (!borderRadius) { return {}; }\n\n return {\n borderRadius: `${shape.radius * borderRadius}px`\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { m, mb, ml, mr, mt, mx, my }) => {\n const { spacing } = theme;\n\n const calculateMargin = (mg?: number) => {\n return !!mg || mg === 0 ? `${String(mg * spacing)}px` : '';\n };\n\n const hasM = calculateMargin(m);\n\n const hasMt = calculateMargin(mt);\n const hasMb = calculateMargin(mb);\n\n const hasMy = calculateMargin(my);\n const hasMx = calculateMargin(mx);\n\n const hasMl = calculateMargin(ml);\n const hasMr = calculateMargin(mr);\n\n return {\n margin: hasM,\n marginTop: hasMt || hasMy || hasM,\n marginBottom: hasMb || hasMy || hasM,\n marginLeft: hasMl || hasMx || hasM,\n marginRight: hasMr || hasMx || hasM,\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { p, pb, pl, pr, pt, px, py }) => {\n const { spacing } = theme;\n\n const calculatePadding = (pd?: number) => {\n return !!pd || pd === 0 ? `${String(pd * spacing)}px` : '';\n };\n\n const hasP = calculatePadding(p);\n\n const hasPt = calculatePadding(pt);\n const hasPb = calculatePadding(pb);\n\n const hasPy = calculatePadding(py);\n const hasPx = calculatePadding(px);\n\n const hasPl = calculatePadding(pl);\n const hasPr = calculatePadding(pr);\n\n return {\n padding: hasP,\n paddingTop: hasPt || hasPy || hasP,\n paddingBottom: hasPb || hasPy || hasP,\n paddingLeft: hasPl || hasPx || hasP,\n paddingRight: hasPr || hasPx || hasP,\n };\n});","import { boxShadowSmall, boxShadowRegular, boxShadowLarge } from '@iziui/tokens/web/js';\n\nimport definePlugin from '../../definePlugin';\nimport type { CustomOptions } from '../../../options/CustomOptions';\n\ntype ExtractSize = NonNullable<CustomOptions['boxShadow']>;\n\nexport default definePlugin((_, { boxShadow }) => {\n\n if (!boxShadow) { return {}; }\n\n const sizes: { [s in ExtractSize]: string } = {\n sm: boxShadowSmall,\n md: boxShadowRegular,\n lg: boxShadowLarge,\n };\n\n return {\n boxShadow: sizes[boxShadow]\n };\n});","import type { ComponentType, FC } from 'react';\n\nimport type { Sx } from '@iziui/core/system';\nimport type { Plugin } from '@iziui/core/plugin';\nimport createOptions from '@iziui/core/options';\nimport * as plugins from '@iziui/core/plugin';\n\nimport { useTheme } from '@/theme';\n\nfunction extract(module: { [key: string]: Plugin }) {\n return Object.values(module).map((fn) => fn);\n}\n\nexport default function createComponent<P>(WrappedComponent: ComponentType<P>) {\n WrappedComponent.displayName = WrappedComponent.name;\n\n const EnhancedComponent: FC<Sx<P>> = ({ sx, fullWidth, ...props }) => {\n const { theme } = useTheme();\n\n const options = sx && createOptions({ theme, sx },\n ...extract(plugins),\n );\n\n return (\n <WrappedComponent\n {...(props as P)}\n style={{\n boxSizing: 'border-box',\n ...props['style'],\n ...options,\n ...(fullWidth ? { width: '100%' } : {}),\n }}\n />\n );\n };\n\n return EnhancedComponent;\n}"],"names":["createOptions","sx","theme","plugins","acc","plugin","defineColor","color","palette","defineBackground","background","defineBorderColor","borderColor","defineBackgroundColor","backgroundColor","defineBorderRadius","borderRadius","shape","defineMargin","m","mb","ml","mr","mt","mx","my","spacing","calculateMargin","mg","hasM","hasMt","hasMb","hasMy","hasMx","hasMl","hasMr","definePadding","p","pb","pl","pr","pt","px","py","calculatePadding","pd","hasP","hasPt","hasPb","hasPy","hasPx","hasPl","hasPr","defineBoxShadow","_","boxShadow","boxShadowSmall","boxShadowRegular","boxShadowLarge","extract","module","fn","createComponent","WrappedComponent","fullWidth","props","useTheme","options","jsx"],"mappings":"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"}
1
+ {"version":3,"file":"createComponent-DQ0m5xyl.cjs","sources":["../../../../core/src/options/createOptions/createOptions.ts","../../../../core/src/plugin/color/defineColor/defineColor.ts","../../../../core/src/plugin/color/defineBackground/defineBackground.ts","../../../../core/src/plugin/color/defineBorderColor/defineBorderColor.ts","../../../../core/src/plugin/color/defineBackgroundColor/defineBackgroundColor.ts","../../../../core/src/plugin/shape/defineBorderRadius/defineBorderRadius.ts","../../../../core/src/plugin/spacing/defineMargin/defineMargin.ts","../../../../core/src/plugin/spacing/definePadding/definePadding.ts","../../../../core/src/plugin/behavior/defineBoxShadow/defineBoxShadow.ts","../../src/core/createComponent.tsx"],"sourcesContent":["import type { Properties } from 'csstype';\n\nimport type { Plugin } from '../../plugin';\nimport type { ThemeBuilded } from '../../theme';\nimport type { CustomOptions } from '../CustomOptions';\n\ntype Data = {\n sx: CustomOptions;\n theme: ThemeBuilded;\n}\n\nexport default function createOptions({ sx, theme }: Data, ...plugins: Plugin[]): Properties {\n return plugins.reduce<Properties>((acc, plugin) => {\n acc = { ...acc, ...plugin(theme, sx) };\n\n return acc;\n }, {});\n}","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { color }) => {\n const { palette } = theme;\n\n if (!color) { return {}; }\n\n return {\n color: color(palette)\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { background }) => {\n const { palette } = theme;\n\n if (!background) { return {}; }\n\n return {\n background: background(palette)\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { borderColor }) => {\n const { palette } = theme;\n\n if (!borderColor) { return {}; }\n\n return {\n borderColor: borderColor(palette)\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { backgroundColor }) => {\n const { palette } = theme;\n\n if (!backgroundColor) { return {}; }\n\n return {\n backgroundColor: backgroundColor(palette)\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { borderRadius }) => {\n const { shape } = theme;\n\n if (!borderRadius) { return {}; }\n\n return {\n borderRadius: `${shape.radius * borderRadius}px`\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { m, mb, ml, mr, mt, mx, my }) => {\n const { spacing } = theme;\n\n const calculateMargin = (mg?: number) => {\n return !!mg || mg === 0 ? `${String(mg * spacing)}px` : '';\n };\n\n const hasM = calculateMargin(m);\n\n const hasMt = calculateMargin(mt);\n const hasMb = calculateMargin(mb);\n\n const hasMy = calculateMargin(my);\n const hasMx = calculateMargin(mx);\n\n const hasMl = calculateMargin(ml);\n const hasMr = calculateMargin(mr);\n\n return {\n margin: hasM,\n marginTop: hasMt || hasMy || hasM,\n marginBottom: hasMb || hasMy || hasM,\n marginLeft: hasMl || hasMx || hasM,\n marginRight: hasMr || hasMx || hasM,\n };\n});","import definePlugin from '../../definePlugin';\n\nexport default definePlugin((theme, { p, pb, pl, pr, pt, px, py }) => {\n const { spacing } = theme;\n\n const calculatePadding = (pd?: number) => {\n return !!pd || pd === 0 ? `${String(pd * spacing)}px` : '';\n };\n\n const hasP = calculatePadding(p);\n\n const hasPt = calculatePadding(pt);\n const hasPb = calculatePadding(pb);\n\n const hasPy = calculatePadding(py);\n const hasPx = calculatePadding(px);\n\n const hasPl = calculatePadding(pl);\n const hasPr = calculatePadding(pr);\n\n return {\n padding: hasP,\n paddingTop: hasPt || hasPy || hasP,\n paddingBottom: hasPb || hasPy || hasP,\n paddingLeft: hasPl || hasPx || hasP,\n paddingRight: hasPr || hasPx || hasP,\n };\n});","import { boxShadowSmall, boxShadowRegular, boxShadowLarge } from '@iziui/tokens/web/js';\n\nimport definePlugin from '../../definePlugin';\nimport type { CustomOptions } from '../../../options/CustomOptions';\n\ntype ExtractSize = NonNullable<CustomOptions['boxShadow']>;\n\nexport default definePlugin((_, { boxShadow }) => {\n\n if (!boxShadow) { return {}; }\n\n const sizes: { [s in ExtractSize]: string } = {\n sm: boxShadowSmall,\n md: boxShadowRegular,\n lg: boxShadowLarge,\n };\n\n return {\n boxShadow: sizes[boxShadow]\n };\n});","import type { ComponentType, FC } from 'react';\n\nimport type { Sx } from '@iziui/core/system';\nimport type { Plugin } from '@iziui/core/plugin';\nimport createOptions from '@iziui/core/options';\nimport * as plugins from '@iziui/core/plugin';\n\nimport { useTheme } from '@/theme';\n\nfunction extract(module: { [key: string]: Plugin }) {\n return Object.values(module).map((fn) => fn);\n}\n\nexport default function createComponent<P>(WrappedComponent: ComponentType<P>) {\n WrappedComponent.displayName = WrappedComponent.name;\n\n const EnhancedComponent: FC<Sx<P>> = ({ sx, fullWidth, ...props }) => {\n const { theme } = useTheme();\n\n const options = sx && createOptions({ theme, sx },\n ...extract(plugins),\n );\n\n return (\n <WrappedComponent\n {...(props as P)}\n style={{\n boxSizing: 'border-box',\n ...props['style'],\n ...options,\n ...(fullWidth ? { width: '100%' } : {}),\n }}\n />\n );\n };\n\n return EnhancedComponent;\n}"],"names":["createOptions","sx","theme","plugins","acc","plugin","defineColor","color","palette","defineBackground","background","defineBorderColor","borderColor","defineBackgroundColor","backgroundColor","defineBorderRadius","borderRadius","shape","defineMargin","m","mb","ml","mr","mt","mx","my","spacing","calculateMargin","mg","hasM","hasMt","hasMb","hasMy","hasMx","hasMl","hasMr","definePadding","p","pb","pl","pr","pt","px","py","calculatePadding","pd","hasP","hasPt","hasPb","hasPy","hasPx","hasPl","hasPr","defineBoxShadow","_","boxShadow","boxShadowSmall","boxShadowRegular","boxShadowLarge","extract","module","fn","createComponent","WrappedComponent","fullWidth","props","useTheme","options","jsx"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{jsxs as E,Fragment as H,jsx as m}from"react/jsx-runtime";import{forwardRef as P,useState as y,Children as W,useMemo as F,useEffect as M,cloneElement as G}from"react";import{p as a}from"./index-CZ41y9Hn.js";import{j as L}from"./joinClass-anSpaauN.js";import{u as S}from"./uuid-dGvr9vBZ.js";import{u as U}from"./useListenerResized-Bnqxrt7k.js";import{C as q}from"./Card-CigqRMT2.js";import{C as J}from"./CardContent-fPZactJG.js";import{c as K}from"./createComponent-BvE_8glE.js";class Q{delay(t,n=500){if(!n){t();return}clearTimeout(this.timeout),this.timeout=setTimeout(()=>{t()},n)}}const V=new Q,X=P(function({open:t,width:n,children:u,anchorEl:s,direction:c="left",position:o="bottom",maxHeight:k=150,autoClose:v,onClose:A,...d},I){const[b,j]=y(),[f,r]=y({state:"invisible",animation:"close",width:"auto"}),T=16,$=150,O=W.toArray(u),_=F(()=>S(),[]),R=L(`${a}-menu`,`${a}-menu--${f?.animation}`,`${a}-menu--${o}`,d.className);U(()=>h(),[s]),M(()=>{h()},[s]),M(()=>{t?B():p()},[t]);const h=()=>{s&&setTimeout(()=>{let e={};const{width:i,height:C,left:x,top:N}=s.getBoundingClientRect();r(z=>({...z,width:i}));const w=document.getElementById(_),g=o==="bottom"?N+C+T/2:N-w.offsetHeight-T/2;c==="center"&&(e={top:g,right:i}),c==="left"&&(e={top:g,left:x}),c==="right"&&(e={top:g,left:x-(w.offsetWidth-i)}),j(e)},0)},B=()=>{r(e=>({...e,state:"visible"})),h(),setTimeout(()=>{r(e=>({...e,animation:"open"}))},10)},p=()=>{r(e=>({...e,animation:"close"})),setTimeout(()=>{r(e=>({...e,state:"invisible"})),A()},$)},D=()=>O.map((e,i)=>G(e,{tabIndex:i+1,key:`button-${i}`,onClick:C=>{V.delay(()=>{v&&p(),e.props.onClick&&e.props.onClick(C)},0)}}));return E(H,{children:[m("div",{id:_,ref:I,...d,style:{width:n||f.width,top:b?.top,left:b?.left,display:f?.state==="visible"?"block":"none",transition:`all ${$}ms ease-in`,zIndex:50,...d.style},className:R,children:t&&m(q,{className:`${a}-menu__card`,children:m(J,{className:`${a}-menu__card__content`,sx:{py:1},style:{display:"flex",flexDirection:"column",maxHeight:k},children:D()})})}),t&&m("div",{className:`${a}-menu__overlay`,onClick:p})]})}),re=K(X);function le(){const[l,t]=y(null),n=!!l,u=o=>{t(o?o.currentTarget:null)},s=()=>{t(null)};return[n,l,o=>{if(n){s();return}u(o)}]}export{re as M,le as u};
2
- //# sourceMappingURL=useMenu-BLhAh_V2.js.map
1
+ import{jsxs as E,Fragment as H,jsx as m}from"react/jsx-runtime";import{forwardRef as P,useState as y,Children as W,useMemo as F,useEffect as M,cloneElement as G}from"react";import{p as a}from"./index-CZ41y9Hn.js";import{j as L}from"./joinClass-anSpaauN.js";import{u as S}from"./uuid-dGvr9vBZ.js";import{u as U}from"./useListenerResized-Bnqxrt7k.js";import{C as q}from"./Card-ClgczePq.js";import{C as J}from"./CardContent-ClanBXcy.js";import{c as K}from"./createComponent-CIN2GARQ.js";class Q{delay(t,n=500){if(!n){t();return}clearTimeout(this.timeout),this.timeout=setTimeout(()=>{t()},n)}}const V=new Q,X=P(function({open:t,width:n,children:u,anchorEl:s,direction:c="left",position:o="bottom",maxHeight:k=150,autoClose:v,onClose:A,...d},I){const[b,j]=y(),[f,r]=y({state:"invisible",animation:"close",width:"auto"}),T=16,$=150,O=W.toArray(u),_=F(()=>S(),[]),R=L(`${a}-menu`,`${a}-menu--${f?.animation}`,`${a}-menu--${o}`,d.className);U(()=>h(),[s]),M(()=>{h()},[s]),M(()=>{t?B():p()},[t]);const h=()=>{s&&setTimeout(()=>{let e={};const{width:i,height:C,left:x,top:N}=s.getBoundingClientRect();r(z=>({...z,width:i}));const w=document.getElementById(_),g=o==="bottom"?N+C+T/2:N-w.offsetHeight-T/2;c==="center"&&(e={top:g,right:i}),c==="left"&&(e={top:g,left:x}),c==="right"&&(e={top:g,left:x-(w.offsetWidth-i)}),j(e)},0)},B=()=>{r(e=>({...e,state:"visible"})),h(),setTimeout(()=>{r(e=>({...e,animation:"open"}))},10)},p=()=>{r(e=>({...e,animation:"close"})),setTimeout(()=>{r(e=>({...e,state:"invisible"})),A()},$)},D=()=>O.map((e,i)=>G(e,{tabIndex:i+1,key:`button-${i}`,onClick:C=>{V.delay(()=>{v&&p(),e.props.onClick&&e.props.onClick(C)},0)}}));return E(H,{children:[m("div",{id:_,ref:I,...d,style:{width:n||f.width,top:b?.top,left:b?.left,display:f?.state==="visible"?"block":"none",transition:`all ${$}ms ease-in`,zIndex:50,...d.style},className:R,children:t&&m(q,{className:`${a}-menu__card`,children:m(J,{className:`${a}-menu__card__content`,sx:{py:1},style:{display:"flex",flexDirection:"column",maxHeight:k},children:D()})})}),t&&m("div",{className:`${a}-menu__overlay`,onClick:p})]})}),re=K(X);function le(){const[l,t]=y(null),n=!!l,u=o=>{t(o?o.currentTarget:null)},s=()=>{t(null)};return[n,l,o=>{if(n){s();return}u(o)}]}export{re as M,le as u};
2
+ //# sourceMappingURL=useMenu-Cmdi4bDX.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMenu-BLhAh_V2.js","sources":["../../../../toolkit/src/debounce/debounce.ts","../../src/navigation/Menu/Menu.tsx","../../src/navigation/Menu/useMenu.ts"],"sourcesContent":["class Debounce {\n private timeout: NodeJS.Timeout | undefined;\n public delay(func: (a?: any) => void, milliseconds = 500) {\n if (!milliseconds) {\n func();\n return;\n }\n\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => { func(); }, milliseconds);\n }\n}\n\nexport const debounce = new Debounce();\n","import {\n useMemo,\n useState,\n useEffect,\n Children,\n forwardRef,\n type ReactElement,\n type CSSProperties,\n type HTMLAttributes,\n cloneElement\n} from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils';\n\nimport { uuid } from '@iziui/toolkit/uuid';\nimport { debounce } from '@iziui/toolkit/debounce';\n\nimport useListenerResized from '@/hooks/useListenerResized';\nimport { Card, CardContent } from '@/display/Card';\n\nimport createComponent from '../../core/createComponent';\n\nimport '@iziui/styles/components/Menu.scss';\n\ntype Direction = 'left' | 'right' | 'center';\ntype Position = 'top' | 'bottom';\ntype AnimationClass = 'open' | 'close';\ntype State = 'visible' | 'invisible';\ntype Coordinates = { top?: number; right?: number; bottom?: number; left?: number; };\ntype Config = { animation: AnimationClass, state: State; width: CSSProperties['width'] };\n\nexport interface MenuProps extends HTMLAttributes<HTMLDivElement> {\n open: boolean;\n autoClose?: boolean;\n maxHeight?: CSSProperties['maxHeight'];\n direction?: Direction;\n position?: Position;\n anchorEl: HTMLElement | null;\n width?: CSSProperties['width'];\n onClose: (e?: React.MouseEvent<HTMLButtonElement>) => void;\n}\n\nconst Menu = forwardRef<HTMLDivElement, MenuProps>(function Menu({\n open,\n width,\n children,\n anchorEl,\n direction = 'left',\n position = 'bottom',\n maxHeight = 150,\n autoClose,\n onClose,\n ...props\n}: MenuProps, ref) {\n const [coordinate, setCoordinate] = useState<Coordinates>();\n const [config, setConfig] = useState<Config>({ state: 'invisible', animation: 'close', width: 'auto' });\n\n const GAP = 16;\n const ANIMATION_DURATION = 150;\n\n const arrayChildren = Children.toArray(children) as ReactElement<any>[];\n\n const id = useMemo(() => uuid(), []);\n\n const classes = joinClass(\n `${prefix}-menu`,\n `${prefix}-menu--${config?.animation}`,\n `${prefix}-menu--${position}`,\n props.className\n );\n\n useListenerResized(() => changePosition(), [anchorEl]);\n\n useEffect(() => { changePosition(); }, [anchorEl]);\n\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n useEffect(() => { open ? handleOpen() : handleClose(); }, [open]);\n\n const changePosition = () => {\n if (!anchorEl) { return; }\n\n setTimeout(() => {\n let coordinates: Coordinates = {};\n\n const { width: anchorWidth, height: anchorHeight, left, top: anchorTop } = anchorEl.getBoundingClientRect();\n\n setConfig(prev => ({ ...prev, width: anchorWidth }));\n\n const el = document.getElementById(id) as HTMLElement;\n\n const top = position === 'bottom'\n ? anchorTop + anchorHeight + (GAP / 2)\n : anchorTop - el.offsetHeight - (GAP / 2);\n\n if (direction === 'center') { coordinates = { top, right: anchorWidth }; }\n\n if (direction === 'left') { coordinates = { top, left }; }\n\n if (direction === 'right') { coordinates = { top, left: left - (el.offsetWidth - anchorWidth) }; }\n\n setCoordinate(coordinates);\n }, 0);\n };\n\n const handleOpen = () => {\n setConfig(prev => ({ ...prev, state: 'visible' }));\n\n changePosition();\n\n setTimeout(() => { setConfig(prev => ({ ...prev, animation: 'open' })); }, 10);\n };\n\n const handleClose = () => {\n setConfig(prev => ({ ...prev, animation: 'close' }));\n\n setTimeout(() => {\n setConfig(prev => ({ ...prev, state: 'invisible' }));\n onClose();\n }, ANIMATION_DURATION);\n };\n\n const renderChildren = () => {\n return arrayChildren.map((child, index) => {\n return cloneElement(child, {\n 'tabIndex': index + 1,\n key: `button-${index}`,\n onClick: (e: React.MouseEvent<HTMLButtonElement>) => {\n debounce.delay(() => {\n\n if (autoClose) { handleClose(); }\n\n if (child.props.onClick) { child.props.onClick(e); }\n }, 0);\n },\n });\n });\n };\n\n return (\n <>\n <div\n id={id}\n ref={ref}\n {...props}\n style={{\n width: width || config.width,\n top: coordinate?.top,\n left: coordinate?.left,\n display: config?.state === 'visible' ? 'block' : 'none',\n transition: `all ${ANIMATION_DURATION}ms ease-in`,\n zIndex: 50,\n ...props.style\n }}\n className={classes}\n >\n {\n open && (\n <Card className={`${prefix}-menu__card`}>\n <CardContent\n className={`${prefix}-menu__card__content`}\n sx={{ py: 1 }}\n style={{\n display: 'flex',\n flexDirection: 'column',\n maxHeight\n }}\n >\n {renderChildren()}\n </CardContent>\n </Card>\n )\n }\n </div>\n {open && <div className={`${prefix}-menu__overlay`} onClick={handleClose} />}\n </>\n );\n});\n\nexport default createComponent(Menu);\n","import { useState } from 'react';\n\ntype UseMenu = [\n boolean,\n HTMLElement | null,\n (event?: React.MouseEvent<HTMLButtonElement>) => void,\n];\n\nexport default function useMenu(): UseMenu {\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const open = Boolean(anchorEl);\n\n const handleOpen = (event?: React.MouseEvent<HTMLElement, MouseEvent>) => {\n setAnchorEl(event ? event.currentTarget : null);\n };\n\n const handleClose = () => { setAnchorEl(null); };\n\n const handleToggle = (event?: React.MouseEvent<HTMLElement, MouseEvent>) => {\n if (open) {\n handleClose();\n return;\n }\n\n handleOpen(event);\n };\n\n return [open, anchorEl, handleToggle];\n}\n"],"names":["Debounce","func","milliseconds","debounce","Menu","forwardRef","open","width","children","anchorEl","direction","position","maxHeight","autoClose","onClose","props","ref","coordinate","setCoordinate","useState","config","setConfig","GAP","ANIMATION_DURATION","arrayChildren","Children","id","useMemo","uuid","classes","joinClass","prefix","useListenerResized","changePosition","useEffect","handleOpen","handleClose","coordinates","anchorWidth","anchorHeight","left","anchorTop","prev","el","top","renderChildren","child","index","cloneElement","e","jsxs","Fragment","jsx","Card","CardContent","Menu$1","createComponent","useMenu","setAnchorEl","event"],"mappings":"oeAAA,MAAMA,CAAS,CAEN,MAAMC,EAAyBC,EAAe,IAAK,CACxD,GAAI,CAACA,EAAc,CACjBD,EAAA,EACA,MACF,CAEA,aAAa,KAAK,OAAO,EACzB,KAAK,QAAU,WAAW,IAAM,CAAEA,EAAA,CAAQ,EAAGC,CAAY,CAC3D,CACF,CAEO,MAAMC,EAAW,IAAIH,EC+BtBI,EAAOC,EAAsC,SAAc,CAC/D,KAAAC,EACA,MAAAC,EACA,SAAAC,EACA,SAAAC,EACA,UAAAC,EAAY,OACZ,SAAAC,EAAW,SACX,UAAAC,EAAY,IACZ,UAAAC,EACA,QAAAC,EACA,GAAGC,CACL,EAAcC,EAAK,CACjB,KAAM,CAACC,EAAYC,CAAa,EAAIC,EAAA,EAC9B,CAACC,EAAQC,CAAS,EAAIF,EAAiB,CAAE,MAAO,YAAa,UAAW,QAAS,MAAO,MAAA,CAAQ,EAEhGG,EAAM,GACNC,EAAqB,IAErBC,EAAgBC,EAAS,QAAQjB,CAAQ,EAEzCkB,EAAKC,EAAQ,IAAMC,EAAA,EAAQ,CAAA,CAAE,EAE7BC,EAAUC,EACd,GAAGC,CAAM,QACT,GAAGA,CAAM,UAAUX,GAAQ,SAAS,GACpC,GAAGW,CAAM,UAAUpB,CAAQ,GAC3BI,EAAM,SAAA,EAGRiB,EAAmB,IAAMC,IAAkB,CAACxB,CAAQ,CAAC,EAErDyB,EAAU,IAAM,CAAED,EAAA,CAAkB,EAAG,CAACxB,CAAQ,CAAC,EAGjDyB,EAAU,IAAM,CAAE5B,EAAO6B,EAAA,EAAeC,EAAA,CAAe,EAAG,CAAC9B,CAAI,CAAC,EAEhE,MAAM2B,EAAiB,IAAM,CACtBxB,GAEL,WAAW,IAAM,CACf,IAAI4B,EAA2B,CAAA,EAE/B,KAAM,CAAE,MAAOC,EAAa,OAAQC,EAAc,KAAAC,EAAM,IAAKC,CAAA,EAAchC,EAAS,sBAAA,EAEpFY,MAAmB,CAAE,GAAGqB,EAAM,MAAOJ,GAAc,EAEnD,MAAMK,EAAK,SAAS,eAAejB,CAAE,EAE/BkB,EAAMjC,IAAa,SACrB8B,EAAYF,EAAgBjB,EAAM,EAClCmB,EAAYE,EAAG,aAAgBrB,EAAM,EAErCZ,IAAc,WAAY2B,EAAc,CAAE,IAAAO,EAAK,MAAON,CAAA,GAEtD5B,IAAc,SAAU2B,EAAc,CAAE,IAAAO,EAAK,KAAAJ,CAAA,GAE7C9B,IAAc,UAAW2B,EAAc,CAAE,IAAAO,EAAK,KAAMJ,GAAQG,EAAG,YAAcL,EAAA,GAEjFpB,EAAcmB,CAAW,CAC3B,EAAG,CAAC,CACN,EAEMF,EAAa,IAAM,CACvBd,MAAmB,CAAE,GAAGqB,EAAM,MAAO,WAAY,EAEjDT,EAAA,EAEA,WAAW,IAAM,CAAEZ,MAAmB,CAAE,GAAGqB,EAAM,UAAW,QAAS,CAAG,EAAG,EAAE,CAC/E,EAEMN,EAAc,IAAM,CACxBf,MAAmB,CAAE,GAAGqB,EAAM,UAAW,SAAU,EAEnD,WAAW,IAAM,CACfrB,MAAmB,CAAE,GAAGqB,EAAM,MAAO,aAAc,EACnD5B,EAAA,CACF,EAAGS,CAAkB,CACvB,EAEMsB,EAAiB,IACdrB,EAAc,IAAI,CAACsB,EAAOC,IACxBC,EAAaF,EAAO,CACzB,SAAYC,EAAQ,EACpB,IAAK,UAAUA,CAAK,GACpB,QAAUE,GAA2C,CACnD9C,EAAS,MAAM,IAAM,CAEfU,GAAauB,EAAA,EAEbU,EAAM,MAAM,SAAWA,EAAM,MAAM,QAAQG,CAAC,CAClD,EAAG,CAAC,CACN,CAAA,CACD,CACF,EAGH,OACEC,EAAAC,EAAA,CACE,SAAA,CAAAC,EAAC,MAAA,CACC,GAAA1B,EACA,IAAAV,EACC,GAAGD,EACJ,MAAO,CACL,MAAOR,GAASa,EAAO,MACvB,IAAKH,GAAY,IACjB,KAAMA,GAAY,KAClB,QAASG,GAAQ,QAAU,UAAY,QAAU,OACjD,WAAY,OAAOG,CAAkB,aACrC,OAAQ,GACR,GAAGR,EAAM,KAAA,EAEX,UAAWc,EAGT,YACEuB,EAACC,EAAA,CAAK,UAAW,GAAGtB,CAAM,cACxB,SAAAqB,EAACE,EAAA,CACC,UAAW,GAAGvB,CAAM,uBACpB,GAAI,CAAE,GAAI,CAAA,EACV,MAAO,CACL,QAAS,OACT,cAAe,SACf,UAAAnB,CAAA,EAGD,SAAAiC,EAAA,CAAe,CAAA,CAClB,CACF,CAAA,CAAA,EAILvC,KAAS,MAAA,CAAI,UAAW,GAAGyB,CAAM,iBAAkB,QAASK,CAAA,CAAa,CAAA,EAC5E,CAEJ,CAAC,EAEDmB,GAAeC,EAAgBpD,CAAI,EC5KnC,SAAwBqD,IAAmB,CACzC,KAAM,CAAChD,EAAUiD,CAAW,EAAIvC,EAA6B,IAAI,EAE3Db,EAAO,EAAQG,EAEf0B,EAAcwB,GAAsD,CACxED,EAAYC,EAAQA,EAAM,cAAgB,IAAI,CAChD,EAEMvB,EAAc,IAAM,CAAEsB,EAAY,IAAI,CAAG,EAW/C,MAAO,CAACpD,EAAMG,EATQkD,GAAsD,CAC1E,GAAIrD,EAAM,CACR8B,EAAA,EACA,MACF,CAEAD,EAAWwB,CAAK,CAClB,CAEoC,CACtC"}
1
+ {"version":3,"file":"useMenu-Cmdi4bDX.js","sources":["../../../../toolkit/src/debounce/debounce.ts","../../src/navigation/Menu/Menu.tsx","../../src/navigation/Menu/useMenu.ts"],"sourcesContent":["class Debounce {\n private timeout: NodeJS.Timeout | undefined;\n public delay(func: (a?: any) => void, milliseconds = 500) {\n if (!milliseconds) {\n func();\n return;\n }\n\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => { func(); }, milliseconds);\n }\n}\n\nexport const debounce = new Debounce();\n","import {\n useMemo,\n useState,\n useEffect,\n Children,\n forwardRef,\n type ReactElement,\n type CSSProperties,\n type HTMLAttributes,\n cloneElement\n} from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils';\n\nimport { uuid } from '@iziui/toolkit/uuid';\nimport { debounce } from '@iziui/toolkit/debounce';\n\nimport useListenerResized from '@/hooks/useListenerResized';\nimport { Card, CardContent } from '@/display/Card';\n\nimport createComponent from '../../core/createComponent';\n\nimport '@iziui/styles/components/Menu.scss';\n\ntype Direction = 'left' | 'right' | 'center';\ntype Position = 'top' | 'bottom';\ntype AnimationClass = 'open' | 'close';\ntype State = 'visible' | 'invisible';\ntype Coordinates = { top?: number; right?: number; bottom?: number; left?: number; };\ntype Config = { animation: AnimationClass, state: State; width: CSSProperties['width'] };\n\nexport interface MenuProps extends HTMLAttributes<HTMLDivElement> {\n open: boolean;\n autoClose?: boolean;\n maxHeight?: CSSProperties['maxHeight'];\n direction?: Direction;\n position?: Position;\n anchorEl: HTMLElement | null;\n width?: CSSProperties['width'];\n onClose: (e?: React.MouseEvent<HTMLButtonElement>) => void;\n}\n\nconst Menu = forwardRef<HTMLDivElement, MenuProps>(function Menu({\n open,\n width,\n children,\n anchorEl,\n direction = 'left',\n position = 'bottom',\n maxHeight = 150,\n autoClose,\n onClose,\n ...props\n}: MenuProps, ref) {\n const [coordinate, setCoordinate] = useState<Coordinates>();\n const [config, setConfig] = useState<Config>({ state: 'invisible', animation: 'close', width: 'auto' });\n\n const GAP = 16;\n const ANIMATION_DURATION = 150;\n\n const arrayChildren = Children.toArray(children) as ReactElement<any>[];\n\n const id = useMemo(() => uuid(), []);\n\n const classes = joinClass(\n `${prefix}-menu`,\n `${prefix}-menu--${config?.animation}`,\n `${prefix}-menu--${position}`,\n props.className\n );\n\n useListenerResized(() => changePosition(), [anchorEl]);\n\n useEffect(() => { changePosition(); }, [anchorEl]);\n\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n useEffect(() => { open ? handleOpen() : handleClose(); }, [open]);\n\n const changePosition = () => {\n if (!anchorEl) { return; }\n\n setTimeout(() => {\n let coordinates: Coordinates = {};\n\n const { width: anchorWidth, height: anchorHeight, left, top: anchorTop } = anchorEl.getBoundingClientRect();\n\n setConfig(prev => ({ ...prev, width: anchorWidth }));\n\n const el = document.getElementById(id) as HTMLElement;\n\n const top = position === 'bottom'\n ? anchorTop + anchorHeight + (GAP / 2)\n : anchorTop - el.offsetHeight - (GAP / 2);\n\n if (direction === 'center') { coordinates = { top, right: anchorWidth }; }\n\n if (direction === 'left') { coordinates = { top, left }; }\n\n if (direction === 'right') { coordinates = { top, left: left - (el.offsetWidth - anchorWidth) }; }\n\n setCoordinate(coordinates);\n }, 0);\n };\n\n const handleOpen = () => {\n setConfig(prev => ({ ...prev, state: 'visible' }));\n\n changePosition();\n\n setTimeout(() => { setConfig(prev => ({ ...prev, animation: 'open' })); }, 10);\n };\n\n const handleClose = () => {\n setConfig(prev => ({ ...prev, animation: 'close' }));\n\n setTimeout(() => {\n setConfig(prev => ({ ...prev, state: 'invisible' }));\n onClose();\n }, ANIMATION_DURATION);\n };\n\n const renderChildren = () => {\n return arrayChildren.map((child, index) => {\n return cloneElement(child, {\n 'tabIndex': index + 1,\n key: `button-${index}`,\n onClick: (e: React.MouseEvent<HTMLButtonElement>) => {\n debounce.delay(() => {\n\n if (autoClose) { handleClose(); }\n\n if (child.props.onClick) { child.props.onClick(e); }\n }, 0);\n },\n });\n });\n };\n\n return (\n <>\n <div\n id={id}\n ref={ref}\n {...props}\n style={{\n width: width || config.width,\n top: coordinate?.top,\n left: coordinate?.left,\n display: config?.state === 'visible' ? 'block' : 'none',\n transition: `all ${ANIMATION_DURATION}ms ease-in`,\n zIndex: 50,\n ...props.style\n }}\n className={classes}\n >\n {\n open && (\n <Card className={`${prefix}-menu__card`}>\n <CardContent\n className={`${prefix}-menu__card__content`}\n sx={{ py: 1 }}\n style={{\n display: 'flex',\n flexDirection: 'column',\n maxHeight\n }}\n >\n {renderChildren()}\n </CardContent>\n </Card>\n )\n }\n </div>\n {open && <div className={`${prefix}-menu__overlay`} onClick={handleClose} />}\n </>\n );\n});\n\nexport default createComponent(Menu);\n","import { useState } from 'react';\n\ntype UseMenu = [\n boolean,\n HTMLElement | null,\n (event?: React.MouseEvent<HTMLButtonElement>) => void,\n];\n\nexport default function useMenu(): UseMenu {\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const open = Boolean(anchorEl);\n\n const handleOpen = (event?: React.MouseEvent<HTMLElement, MouseEvent>) => {\n setAnchorEl(event ? event.currentTarget : null);\n };\n\n const handleClose = () => { setAnchorEl(null); };\n\n const handleToggle = (event?: React.MouseEvent<HTMLElement, MouseEvent>) => {\n if (open) {\n handleClose();\n return;\n }\n\n handleOpen(event);\n };\n\n return [open, anchorEl, handleToggle];\n}\n"],"names":["Debounce","func","milliseconds","debounce","Menu","forwardRef","open","width","children","anchorEl","direction","position","maxHeight","autoClose","onClose","props","ref","coordinate","setCoordinate","useState","config","setConfig","GAP","ANIMATION_DURATION","arrayChildren","Children","id","useMemo","uuid","classes","joinClass","prefix","useListenerResized","changePosition","useEffect","handleOpen","handleClose","coordinates","anchorWidth","anchorHeight","left","anchorTop","prev","el","top","renderChildren","child","index","cloneElement","e","jsxs","Fragment","jsx","Card","CardContent","Menu$1","createComponent","useMenu","setAnchorEl","event"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const c=require("react/jsx-runtime"),n=require("react"),a=require("./index-DYxwT4uW.cjs"),B=require("./joinClass-Jk3EszKD.cjs"),D=require("./uuid-omnJ9TjZ.cjs"),E=require("./useListenerResized-AwpsZLcP.cjs"),S=require("./Card-KRiSWAFI.cjs"),H=require("./CardContent-iH_wskpH.cjs"),L=require("./createComponent-cs9AuqoJ.cjs");class P{delay(t,s=500){if(!s){t();return}clearTimeout(this.timeout),this.timeout=setTimeout(()=>{t()},s)}}const W=new P,F=n.forwardRef(function({open:t,width:s,children:f,anchorEl:i,direction:d="left",position:o="bottom",maxHeight:M=150,autoClose:N,onClose:w,...m},k){const[y,v]=n.useState(),[h,l]=n.useState({state:"invisible",animation:"close",width:"auto"}),b=16,T=150,A=n.Children.toArray(f),$=n.useMemo(()=>D.uuid(),[]),I=B.joinClass(`${a.prefix}-menu`,`${a.prefix}-menu--${h?.animation}`,`${a.prefix}-menu--${o}`,m.className);E.useListenerResized(()=>C(),[i]),n.useEffect(()=>{C()},[i]),n.useEffect(()=>{t?R():g()},[t]);const C=()=>{i&&setTimeout(()=>{let e={};const{width:r,height:p,left:q,top:_}=i.getBoundingClientRect();l(z=>({...z,width:r}));const j=document.getElementById($),x=o==="bottom"?_+p+b/2:_-j.offsetHeight-b/2;d==="center"&&(e={top:x,right:r}),d==="left"&&(e={top:x,left:q}),d==="right"&&(e={top:x,left:q-(j.offsetWidth-r)}),v(e)},0)},R=()=>{l(e=>({...e,state:"visible"})),C(),setTimeout(()=>{l(e=>({...e,animation:"open"}))},10)},g=()=>{l(e=>({...e,animation:"close"})),setTimeout(()=>{l(e=>({...e,state:"invisible"})),w()},T)},O=()=>A.map((e,r)=>n.cloneElement(e,{tabIndex:r+1,key:`button-${r}`,onClick:p=>{W.delay(()=>{N&&g(),e.props.onClick&&e.props.onClick(p)},0)}}));return c.jsxs(c.Fragment,{children:[c.jsx("div",{id:$,ref:k,...m,style:{width:s||h.width,top:y?.top,left:y?.left,display:h?.state==="visible"?"block":"none",transition:`all ${T}ms ease-in`,zIndex:50,...m.style},className:I,children:t&&c.jsx(S.Card,{className:`${a.prefix}-menu__card`,children:c.jsx(H.CardContent,{className:`${a.prefix}-menu__card__content`,sx:{py:1},style:{display:"flex",flexDirection:"column",maxHeight:M},children:O()})})}),t&&c.jsx("div",{className:`${a.prefix}-menu__overlay`,onClick:g})]})}),G=L.createComponent(F);function U(){const[u,t]=n.useState(null),s=!!u,f=o=>{t(o?o.currentTarget:null)},i=()=>{t(null)};return[s,u,o=>{if(s){i();return}f(o)}]}exports.Menu=G;exports.useMenu=U;
2
- //# sourceMappingURL=useMenu-i5MYMNcY.cjs.map
1
+ "use strict";const c=require("react/jsx-runtime"),n=require("react"),a=require("./index-DYxwT4uW.cjs"),B=require("./joinClass-Jk3EszKD.cjs"),D=require("./uuid-omnJ9TjZ.cjs"),E=require("./useListenerResized-AwpsZLcP.cjs"),S=require("./Card-XCQBlDqs.cjs"),H=require("./CardContent-DtJs1hn5.cjs"),L=require("./createComponent-DQ0m5xyl.cjs");class P{delay(t,s=500){if(!s){t();return}clearTimeout(this.timeout),this.timeout=setTimeout(()=>{t()},s)}}const W=new P,F=n.forwardRef(function({open:t,width:s,children:f,anchorEl:i,direction:d="left",position:o="bottom",maxHeight:M=150,autoClose:N,onClose:w,...m},k){const[y,v]=n.useState(),[h,l]=n.useState({state:"invisible",animation:"close",width:"auto"}),b=16,T=150,A=n.Children.toArray(f),$=n.useMemo(()=>D.uuid(),[]),I=B.joinClass(`${a.prefix}-menu`,`${a.prefix}-menu--${h?.animation}`,`${a.prefix}-menu--${o}`,m.className);E.useListenerResized(()=>C(),[i]),n.useEffect(()=>{C()},[i]),n.useEffect(()=>{t?R():g()},[t]);const C=()=>{i&&setTimeout(()=>{let e={};const{width:r,height:p,left:q,top:_}=i.getBoundingClientRect();l(z=>({...z,width:r}));const j=document.getElementById($),x=o==="bottom"?_+p+b/2:_-j.offsetHeight-b/2;d==="center"&&(e={top:x,right:r}),d==="left"&&(e={top:x,left:q}),d==="right"&&(e={top:x,left:q-(j.offsetWidth-r)}),v(e)},0)},R=()=>{l(e=>({...e,state:"visible"})),C(),setTimeout(()=>{l(e=>({...e,animation:"open"}))},10)},g=()=>{l(e=>({...e,animation:"close"})),setTimeout(()=>{l(e=>({...e,state:"invisible"})),w()},T)},O=()=>A.map((e,r)=>n.cloneElement(e,{tabIndex:r+1,key:`button-${r}`,onClick:p=>{W.delay(()=>{N&&g(),e.props.onClick&&e.props.onClick(p)},0)}}));return c.jsxs(c.Fragment,{children:[c.jsx("div",{id:$,ref:k,...m,style:{width:s||h.width,top:y?.top,left:y?.left,display:h?.state==="visible"?"block":"none",transition:`all ${T}ms ease-in`,zIndex:50,...m.style},className:I,children:t&&c.jsx(S.Card,{className:`${a.prefix}-menu__card`,children:c.jsx(H.CardContent,{className:`${a.prefix}-menu__card__content`,sx:{py:1},style:{display:"flex",flexDirection:"column",maxHeight:M},children:O()})})}),t&&c.jsx("div",{className:`${a.prefix}-menu__overlay`,onClick:g})]})}),G=L.createComponent(F);function U(){const[u,t]=n.useState(null),s=!!u,f=o=>{t(o?o.currentTarget:null)},i=()=>{t(null)};return[s,u,o=>{if(s){i();return}f(o)}]}exports.Menu=G;exports.useMenu=U;
2
+ //# sourceMappingURL=useMenu-CzjSo7zc.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMenu-i5MYMNcY.cjs","sources":["../../../../toolkit/src/debounce/debounce.ts","../../src/navigation/Menu/Menu.tsx","../../src/navigation/Menu/useMenu.ts"],"sourcesContent":["class Debounce {\n private timeout: NodeJS.Timeout | undefined;\n public delay(func: (a?: any) => void, milliseconds = 500) {\n if (!milliseconds) {\n func();\n return;\n }\n\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => { func(); }, milliseconds);\n }\n}\n\nexport const debounce = new Debounce();\n","import {\n useMemo,\n useState,\n useEffect,\n Children,\n forwardRef,\n type ReactElement,\n type CSSProperties,\n type HTMLAttributes,\n cloneElement\n} from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils';\n\nimport { uuid } from '@iziui/toolkit/uuid';\nimport { debounce } from '@iziui/toolkit/debounce';\n\nimport useListenerResized from '@/hooks/useListenerResized';\nimport { Card, CardContent } from '@/display/Card';\n\nimport createComponent from '../../core/createComponent';\n\nimport '@iziui/styles/components/Menu.scss';\n\ntype Direction = 'left' | 'right' | 'center';\ntype Position = 'top' | 'bottom';\ntype AnimationClass = 'open' | 'close';\ntype State = 'visible' | 'invisible';\ntype Coordinates = { top?: number; right?: number; bottom?: number; left?: number; };\ntype Config = { animation: AnimationClass, state: State; width: CSSProperties['width'] };\n\nexport interface MenuProps extends HTMLAttributes<HTMLDivElement> {\n open: boolean;\n autoClose?: boolean;\n maxHeight?: CSSProperties['maxHeight'];\n direction?: Direction;\n position?: Position;\n anchorEl: HTMLElement | null;\n width?: CSSProperties['width'];\n onClose: (e?: React.MouseEvent<HTMLButtonElement>) => void;\n}\n\nconst Menu = forwardRef<HTMLDivElement, MenuProps>(function Menu({\n open,\n width,\n children,\n anchorEl,\n direction = 'left',\n position = 'bottom',\n maxHeight = 150,\n autoClose,\n onClose,\n ...props\n}: MenuProps, ref) {\n const [coordinate, setCoordinate] = useState<Coordinates>();\n const [config, setConfig] = useState<Config>({ state: 'invisible', animation: 'close', width: 'auto' });\n\n const GAP = 16;\n const ANIMATION_DURATION = 150;\n\n const arrayChildren = Children.toArray(children) as ReactElement<any>[];\n\n const id = useMemo(() => uuid(), []);\n\n const classes = joinClass(\n `${prefix}-menu`,\n `${prefix}-menu--${config?.animation}`,\n `${prefix}-menu--${position}`,\n props.className\n );\n\n useListenerResized(() => changePosition(), [anchorEl]);\n\n useEffect(() => { changePosition(); }, [anchorEl]);\n\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n useEffect(() => { open ? handleOpen() : handleClose(); }, [open]);\n\n const changePosition = () => {\n if (!anchorEl) { return; }\n\n setTimeout(() => {\n let coordinates: Coordinates = {};\n\n const { width: anchorWidth, height: anchorHeight, left, top: anchorTop } = anchorEl.getBoundingClientRect();\n\n setConfig(prev => ({ ...prev, width: anchorWidth }));\n\n const el = document.getElementById(id) as HTMLElement;\n\n const top = position === 'bottom'\n ? anchorTop + anchorHeight + (GAP / 2)\n : anchorTop - el.offsetHeight - (GAP / 2);\n\n if (direction === 'center') { coordinates = { top, right: anchorWidth }; }\n\n if (direction === 'left') { coordinates = { top, left }; }\n\n if (direction === 'right') { coordinates = { top, left: left - (el.offsetWidth - anchorWidth) }; }\n\n setCoordinate(coordinates);\n }, 0);\n };\n\n const handleOpen = () => {\n setConfig(prev => ({ ...prev, state: 'visible' }));\n\n changePosition();\n\n setTimeout(() => { setConfig(prev => ({ ...prev, animation: 'open' })); }, 10);\n };\n\n const handleClose = () => {\n setConfig(prev => ({ ...prev, animation: 'close' }));\n\n setTimeout(() => {\n setConfig(prev => ({ ...prev, state: 'invisible' }));\n onClose();\n }, ANIMATION_DURATION);\n };\n\n const renderChildren = () => {\n return arrayChildren.map((child, index) => {\n return cloneElement(child, {\n 'tabIndex': index + 1,\n key: `button-${index}`,\n onClick: (e: React.MouseEvent<HTMLButtonElement>) => {\n debounce.delay(() => {\n\n if (autoClose) { handleClose(); }\n\n if (child.props.onClick) { child.props.onClick(e); }\n }, 0);\n },\n });\n });\n };\n\n return (\n <>\n <div\n id={id}\n ref={ref}\n {...props}\n style={{\n width: width || config.width,\n top: coordinate?.top,\n left: coordinate?.left,\n display: config?.state === 'visible' ? 'block' : 'none',\n transition: `all ${ANIMATION_DURATION}ms ease-in`,\n zIndex: 50,\n ...props.style\n }}\n className={classes}\n >\n {\n open && (\n <Card className={`${prefix}-menu__card`}>\n <CardContent\n className={`${prefix}-menu__card__content`}\n sx={{ py: 1 }}\n style={{\n display: 'flex',\n flexDirection: 'column',\n maxHeight\n }}\n >\n {renderChildren()}\n </CardContent>\n </Card>\n )\n }\n </div>\n {open && <div className={`${prefix}-menu__overlay`} onClick={handleClose} />}\n </>\n );\n});\n\nexport default createComponent(Menu);\n","import { useState } from 'react';\n\ntype UseMenu = [\n boolean,\n HTMLElement | null,\n (event?: React.MouseEvent<HTMLButtonElement>) => void,\n];\n\nexport default function useMenu(): UseMenu {\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const open = Boolean(anchorEl);\n\n const handleOpen = (event?: React.MouseEvent<HTMLElement, MouseEvent>) => {\n setAnchorEl(event ? event.currentTarget : null);\n };\n\n const handleClose = () => { setAnchorEl(null); };\n\n const handleToggle = (event?: React.MouseEvent<HTMLElement, MouseEvent>) => {\n if (open) {\n handleClose();\n return;\n }\n\n handleOpen(event);\n };\n\n return [open, anchorEl, handleToggle];\n}\n"],"names":["Debounce","func","milliseconds","debounce","Menu","forwardRef","open","width","children","anchorEl","direction","position","maxHeight","autoClose","onClose","props","ref","coordinate","setCoordinate","useState","config","setConfig","GAP","ANIMATION_DURATION","arrayChildren","Children","id","useMemo","uuid","classes","joinClass","prefix","useListenerResized","changePosition","useEffect","handleOpen","handleClose","coordinates","anchorWidth","anchorHeight","left","anchorTop","prev","el","top","renderChildren","child","index","cloneElement","e","jsxs","Fragment","jsx","Card","CardContent","createComponent","useMenu","setAnchorEl","event"],"mappings":"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"}
1
+ {"version":3,"file":"useMenu-CzjSo7zc.cjs","sources":["../../../../toolkit/src/debounce/debounce.ts","../../src/navigation/Menu/Menu.tsx","../../src/navigation/Menu/useMenu.ts"],"sourcesContent":["class Debounce {\n private timeout: NodeJS.Timeout | undefined;\n public delay(func: (a?: any) => void, milliseconds = 500) {\n if (!milliseconds) {\n func();\n return;\n }\n\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => { func(); }, milliseconds);\n }\n}\n\nexport const debounce = new Debounce();\n","import {\n useMemo,\n useState,\n useEffect,\n Children,\n forwardRef,\n type ReactElement,\n type CSSProperties,\n type HTMLAttributes,\n cloneElement\n} from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils';\n\nimport { uuid } from '@iziui/toolkit/uuid';\nimport { debounce } from '@iziui/toolkit/debounce';\n\nimport useListenerResized from '@/hooks/useListenerResized';\nimport { Card, CardContent } from '@/display/Card';\n\nimport createComponent from '../../core/createComponent';\n\nimport '@iziui/styles/components/Menu.scss';\n\ntype Direction = 'left' | 'right' | 'center';\ntype Position = 'top' | 'bottom';\ntype AnimationClass = 'open' | 'close';\ntype State = 'visible' | 'invisible';\ntype Coordinates = { top?: number; right?: number; bottom?: number; left?: number; };\ntype Config = { animation: AnimationClass, state: State; width: CSSProperties['width'] };\n\nexport interface MenuProps extends HTMLAttributes<HTMLDivElement> {\n open: boolean;\n autoClose?: boolean;\n maxHeight?: CSSProperties['maxHeight'];\n direction?: Direction;\n position?: Position;\n anchorEl: HTMLElement | null;\n width?: CSSProperties['width'];\n onClose: (e?: React.MouseEvent<HTMLButtonElement>) => void;\n}\n\nconst Menu = forwardRef<HTMLDivElement, MenuProps>(function Menu({\n open,\n width,\n children,\n anchorEl,\n direction = 'left',\n position = 'bottom',\n maxHeight = 150,\n autoClose,\n onClose,\n ...props\n}: MenuProps, ref) {\n const [coordinate, setCoordinate] = useState<Coordinates>();\n const [config, setConfig] = useState<Config>({ state: 'invisible', animation: 'close', width: 'auto' });\n\n const GAP = 16;\n const ANIMATION_DURATION = 150;\n\n const arrayChildren = Children.toArray(children) as ReactElement<any>[];\n\n const id = useMemo(() => uuid(), []);\n\n const classes = joinClass(\n `${prefix}-menu`,\n `${prefix}-menu--${config?.animation}`,\n `${prefix}-menu--${position}`,\n props.className\n );\n\n useListenerResized(() => changePosition(), [anchorEl]);\n\n useEffect(() => { changePosition(); }, [anchorEl]);\n\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n useEffect(() => { open ? handleOpen() : handleClose(); }, [open]);\n\n const changePosition = () => {\n if (!anchorEl) { return; }\n\n setTimeout(() => {\n let coordinates: Coordinates = {};\n\n const { width: anchorWidth, height: anchorHeight, left, top: anchorTop } = anchorEl.getBoundingClientRect();\n\n setConfig(prev => ({ ...prev, width: anchorWidth }));\n\n const el = document.getElementById(id) as HTMLElement;\n\n const top = position === 'bottom'\n ? anchorTop + anchorHeight + (GAP / 2)\n : anchorTop - el.offsetHeight - (GAP / 2);\n\n if (direction === 'center') { coordinates = { top, right: anchorWidth }; }\n\n if (direction === 'left') { coordinates = { top, left }; }\n\n if (direction === 'right') { coordinates = { top, left: left - (el.offsetWidth - anchorWidth) }; }\n\n setCoordinate(coordinates);\n }, 0);\n };\n\n const handleOpen = () => {\n setConfig(prev => ({ ...prev, state: 'visible' }));\n\n changePosition();\n\n setTimeout(() => { setConfig(prev => ({ ...prev, animation: 'open' })); }, 10);\n };\n\n const handleClose = () => {\n setConfig(prev => ({ ...prev, animation: 'close' }));\n\n setTimeout(() => {\n setConfig(prev => ({ ...prev, state: 'invisible' }));\n onClose();\n }, ANIMATION_DURATION);\n };\n\n const renderChildren = () => {\n return arrayChildren.map((child, index) => {\n return cloneElement(child, {\n 'tabIndex': index + 1,\n key: `button-${index}`,\n onClick: (e: React.MouseEvent<HTMLButtonElement>) => {\n debounce.delay(() => {\n\n if (autoClose) { handleClose(); }\n\n if (child.props.onClick) { child.props.onClick(e); }\n }, 0);\n },\n });\n });\n };\n\n return (\n <>\n <div\n id={id}\n ref={ref}\n {...props}\n style={{\n width: width || config.width,\n top: coordinate?.top,\n left: coordinate?.left,\n display: config?.state === 'visible' ? 'block' : 'none',\n transition: `all ${ANIMATION_DURATION}ms ease-in`,\n zIndex: 50,\n ...props.style\n }}\n className={classes}\n >\n {\n open && (\n <Card className={`${prefix}-menu__card`}>\n <CardContent\n className={`${prefix}-menu__card__content`}\n sx={{ py: 1 }}\n style={{\n display: 'flex',\n flexDirection: 'column',\n maxHeight\n }}\n >\n {renderChildren()}\n </CardContent>\n </Card>\n )\n }\n </div>\n {open && <div className={`${prefix}-menu__overlay`} onClick={handleClose} />}\n </>\n );\n});\n\nexport default createComponent(Menu);\n","import { useState } from 'react';\n\ntype UseMenu = [\n boolean,\n HTMLElement | null,\n (event?: React.MouseEvent<HTMLButtonElement>) => void,\n];\n\nexport default function useMenu(): UseMenu {\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const open = Boolean(anchorEl);\n\n const handleOpen = (event?: React.MouseEvent<HTMLElement, MouseEvent>) => {\n setAnchorEl(event ? event.currentTarget : null);\n };\n\n const handleClose = () => { setAnchorEl(null); };\n\n const handleToggle = (event?: React.MouseEvent<HTMLElement, MouseEvent>) => {\n if (open) {\n handleClose();\n return;\n }\n\n handleOpen(event);\n };\n\n return [open, anchorEl, handleToggle];\n}\n"],"names":["Debounce","func","milliseconds","debounce","Menu","forwardRef","open","width","children","anchorEl","direction","position","maxHeight","autoClose","onClose","props","ref","coordinate","setCoordinate","useState","config","setConfig","GAP","ANIMATION_DURATION","arrayChildren","Children","id","useMemo","uuid","classes","joinClass","prefix","useListenerResized","changePosition","useEffect","handleOpen","handleClose","coordinates","anchorWidth","anchorHeight","left","anchorTop","prev","el","top","renderChildren","child","index","cloneElement","e","jsxs","Fragment","jsx","Card","CardContent","createComponent","useMenu","setAnchorEl","event"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const d=require("react/jsx-runtime"),o=require("react"),i=require("./index-DYxwT4uW.cjs"),_=require("./joinClass-Jk3EszKD.cjs"),q=require("./uuid-omnJ9TjZ.cjs"),v=require("./createComponent-cs9AuqoJ.cjs"),N=require("./useListenerResized-AwpsZLcP.cjs");function w(e,r){if(r>e)throw new Error(`Current tab index (${r}) is greater than the number of tabs (${e})`)}function I({children:e,color:r="primary",current:n=0,onChange:u,...a}){const l=o.Children.toArray(e),[c,b]=o.useState(n),m=o.useRef([]),x=_.joinClass(`${i.prefix}-tabs`,`${i.prefix}-tabs--${r}`,a.className),p=_.joinClass(`${i.prefix}-tabs__marker`,`${i.prefix}-tabs__marker--${r}`),$=o.useMemo(()=>`marker-${q.uuid()}`,[]);N.useListenerResized(()=>C(),[c]),o.useEffect(()=>{w(l.length-1,c)},[]),o.useEffect(()=>{const t=l.findIndex(f=>!f.props.disabled),s=l[n].props.disabled;b(s?t:n)},[n]),o.useEffect(()=>{C(),j(c)},[c]);const T=t=>{u&&u(t),b(t)},j=t=>{m.current&&m.current[t].scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})},k=(t,s)=>{!m.current||!s||(m.current[t]=s)},C=()=>{const t=document.querySelector(`#tab-${$}-${c}`),s=document.getElementById($),f=t.offsetWidth,h=t.offsetLeft;s.style.width=`${f}px`,s.style.left=`${h}px`},y=()=>l.map((t,s)=>{const f=`tab-${$}-${s}`,h=c===s;return d.jsx("div",{ref:E=>k(s,E),style:{width:"100%"},children:o.cloneElement(t,{id:f,tabIndex:s+1,"aria-checked":h,onClick:()=>T(s)})},f)});return d.jsxs("div",{...a,className:x,children:[y(),d.jsx("div",{id:$,className:p})]})}const R=v.createComponent(I);function B({icon:e,label:r,disabled:n,color:u="primary",...a}){const{"aria-checked":l}=a,c=_.joinClass(`${i.prefix}-tabs__button`,n&&`${i.prefix}-tabs__button--disabled`,l&&`${i.prefix}-tabs__button--active-${u}`,a.className),b=()=>e&&o.cloneElement(e,{className:_.joinClass(`${i.prefix}-tabs__button__icon`)});return d.jsxs("button",{type:"button",disabled:n,className:c,...a,children:[b(),r]})}function L({children:e,value:r,current:n,...u}){return r===n&&d.jsx("div",{...u,children:e})}function S(e){const[r,n]=o.useState(e);return o.useEffect(()=>{n(e)},[e]),[a=>{n(a)},r]}exports.TabButton=B;exports.TabContent=L;exports.Tabs_default=R;exports.useTabs=S;
2
- //# sourceMappingURL=useTabs-D1LpVrab.cjs.map
1
+ "use strict";const d=require("react/jsx-runtime"),o=require("react"),i=require("./index-DYxwT4uW.cjs"),_=require("./joinClass-Jk3EszKD.cjs"),q=require("./uuid-omnJ9TjZ.cjs"),v=require("./createComponent-DQ0m5xyl.cjs"),N=require("./useListenerResized-AwpsZLcP.cjs");function w(e,r){if(r>e)throw new Error(`Current tab index (${r}) is greater than the number of tabs (${e})`)}function I({children:e,color:r="primary",current:n=0,onChange:u,...a}){const l=o.Children.toArray(e),[c,b]=o.useState(n),m=o.useRef([]),x=_.joinClass(`${i.prefix}-tabs`,`${i.prefix}-tabs--${r}`,a.className),p=_.joinClass(`${i.prefix}-tabs__marker`,`${i.prefix}-tabs__marker--${r}`),$=o.useMemo(()=>`marker-${q.uuid()}`,[]);N.useListenerResized(()=>C(),[c]),o.useEffect(()=>{w(l.length-1,c)},[]),o.useEffect(()=>{const t=l.findIndex(f=>!f.props.disabled),s=l[n].props.disabled;b(s?t:n)},[n]),o.useEffect(()=>{C(),j(c)},[c]);const T=t=>{u&&u(t),b(t)},j=t=>{m.current&&m.current[t].scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})},k=(t,s)=>{!m.current||!s||(m.current[t]=s)},C=()=>{const t=document.querySelector(`#tab-${$}-${c}`),s=document.getElementById($),f=t.offsetWidth,h=t.offsetLeft;s.style.width=`${f}px`,s.style.left=`${h}px`},y=()=>l.map((t,s)=>{const f=`tab-${$}-${s}`,h=c===s;return d.jsx("div",{ref:E=>k(s,E),style:{width:"100%"},children:o.cloneElement(t,{id:f,tabIndex:s+1,"aria-checked":h,onClick:()=>T(s)})},f)});return d.jsxs("div",{...a,className:x,children:[y(),d.jsx("div",{id:$,className:p})]})}const R=v.createComponent(I);function B({icon:e,label:r,disabled:n,color:u="primary",...a}){const{"aria-checked":l}=a,c=_.joinClass(`${i.prefix}-tabs__button`,n&&`${i.prefix}-tabs__button--disabled`,l&&`${i.prefix}-tabs__button--active-${u}`,a.className),b=()=>e&&o.cloneElement(e,{className:_.joinClass(`${i.prefix}-tabs__button__icon`)});return d.jsxs("button",{type:"button",disabled:n,className:c,...a,children:[b(),r]})}function L({children:e,value:r,current:n,...u}){return r===n&&d.jsx("div",{...u,children:e})}function S(e){const[r,n]=o.useState(e);return o.useEffect(()=>{n(e)},[e]),[a=>{n(a)},r]}exports.TabButton=B;exports.TabContent=L;exports.Tabs_default=R;exports.useTabs=S;
2
+ //# sourceMappingURL=useTabs-CJmpmHPZ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTabs-D1LpVrab.cjs","sources":["../../src/navigation/Tabs/Tabs.tsx","../../src/navigation/Tabs/TabButton.tsx","../../src/navigation/Tabs/TabContent.tsx","../../src/navigation/Tabs/useTabs.ts"],"sourcesContent":["import { Children, cloneElement, ReactElement, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils';\nimport { Colors } from '@iziui/core/theme';\n\nimport { uuid } from '@iziui/toolkit/uuid';\n\nimport createComponent from '@/core/createComponent';\nimport useListenerResized from '@/hooks/useListenerResized';\n\nimport '@iziui/styles/components/Tabs.scss';\n\nfunction validateCurrent(length: number, current: number) {\n if (current > length) {\n throw new Error(`Current tab index (${current}) is greater than the number of tabs (${length})`);\n }\n}\n\nexport interface TabsProps extends Omit<React.HTMLProps<HTMLDivElement>, 'onChange'> {\n current?: number;\n color?: Colors;\n children: React.ReactNode;\n onChange?: (index: number) => void;\n};\n\nfunction Tabs({\n children,\n color = 'primary',\n current = 0,\n onChange,\n ...props\n}: TabsProps) {\n const arrayChildren = Children.toArray(children) as ReactElement<TabsProps>[];\n\n const [_current, setCurrent] = useState(current);\n const scrollRef = useRef<HTMLDivElement[] | null>([]);\n\n const cls = joinClass(\n `${prefix}-tabs`,\n `${prefix}-tabs--${color}`,\n props.className\n );\n\n const classNameMarker = joinClass(\n `${prefix}-tabs__marker`,\n `${prefix}-tabs__marker--${color}`,\n );\n\n const id = useMemo(() => `marker-${uuid()}`, []);\n\n useListenerResized(() => setBorderLine(), [_current]);\n\n useEffect(() => { validateCurrent(arrayChildren.length - 1, _current); }, []);\n\n useEffect(() => {\n const firstEnableButton = arrayChildren.findIndex(children => !children.props.disabled);\n const currentIsDisabled = arrayChildren[current].props.disabled;\n\n setCurrent(currentIsDisabled ? firstEnableButton : current);\n }, [current]);\n\n useEffect(() => {\n setBorderLine();\n goToTab(_current);\n }, [_current]);\n\n const handleClick = (index: number) => {\n if (onChange) { onChange(index); };\n setCurrent(index);\n };\n\n const goToTab = (index: number) => {\n if (!scrollRef.current) { return; }\n scrollRef.current[index].scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center', });\n };\n\n const setRef = (index: number, ref: HTMLDivElement | null) => {\n if (!scrollRef.current || !ref) { return; }\n\n scrollRef.current[index] = ref;\n };\n\n const setBorderLine = () => {\n const element = document.querySelector(`#tab-${id}-${_current}`) as HTMLElement;\n const el = document.getElementById(id) as HTMLElement;\n\n const width = element['offsetWidth'];\n const left = element['offsetLeft'];\n\n el.style.width = `${width}px`;\n el.style.left = `${left}px`;\n };\n\n const renderChildren = () => {\n return arrayChildren.map((child, index) => {\n const _id = `tab-${id}-${index}`;\n const isActive = _current === index;\n\n return (\n <div key={_id} ref={ref => setRef(index, ref)} style={{ width: '100%' }}>\n {\n cloneElement(child, {\n id: _id,\n tabIndex: index + 1,\n 'aria-checked': isActive,\n onClick: () => handleClick(index),\n })\n }\n </div>\n );\n });\n };\n\n return (\n <div {...props} className={cls}>\n {renderChildren()}\n <div id={id} className={classNameMarker} />\n </div>\n );\n}\n\nexport default createComponent(Tabs);\n","import { cloneElement, HTMLAttributes } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { Colors } from '@iziui/core/theme';\nimport { joinClass } from '@iziui/core/utils';\n\nimport type { IconProps } from '@/display/Icon';\n\nexport interface TabButtonProps extends HTMLAttributes<HTMLButtonElement> {\n label: string;\n disabled?: boolean;\n color?: Colors;\n icon?: React.JSX.Element;\n}\n\nexport default function TabButton({ icon, label, disabled, color = 'primary', ...props }: TabButtonProps) {\n const { 'aria-checked': checked } = props;\n\n const className = joinClass(\n `${prefix}-tabs__button`,\n disabled && `${prefix}-tabs__button--disabled`,\n checked && `${prefix}-tabs__button--active-${color}`,\n props.className\n );\n\n const renderIcon = () => {\n return icon && cloneElement<IconProps>(icon, {\n className: joinClass(\n `${prefix}-tabs__button__icon`,\n ),\n });\n };\n\n return (\n <button\n type=\"button\"\n disabled={disabled}\n className={className}\n {...props}\n >\n {renderIcon()}\n {label}\n </button>\n );\n}","import type { HTMLAttributes } from 'react';\n\nexport interface TabContentProps extends HTMLAttributes<HTMLDivElement> {\n children: React.JSX.Element;\n value: number;\n current: number;\n}\n\nexport default function TabContent({ children, value, current, ...props }: TabContentProps) {\n return (\n value === current && (\n <div {...props}>\n {children}\n </div>\n )\n );\n}","import { useEffect, useState } from 'react';\n\ntype UseTabs = [(index: number) => void, number]\n\nexport default function useTabs(current: number): UseTabs {\n const [_current, setCurrent] = useState(current);\n\n useEffect(() => { setCurrent(current); }, [current]);\n\n const setTab = (index: number) => { setCurrent(index); };\n\n return [\n setTab,\n _current,\n ];\n}"],"names":["validateCurrent","length","current","Tabs","children","color","onChange","props","arrayChildren","Children","_current","setCurrent","useState","scrollRef","useRef","cls","joinClass","prefix","classNameMarker","id","useMemo","uuid","useListenerResized","setBorderLine","useEffect","firstEnableButton","currentIsDisabled","goToTab","handleClick","index","setRef","ref","element","el","width","left","renderChildren","child","_id","isActive","jsx","jsxs","Tabs_default","createComponent","TabButton","icon","label","disabled","checked","className","renderIcon","cloneElement","TabContent","value","useTabs"],"mappings":"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"}
1
+ {"version":3,"file":"useTabs-CJmpmHPZ.cjs","sources":["../../src/navigation/Tabs/Tabs.tsx","../../src/navigation/Tabs/TabButton.tsx","../../src/navigation/Tabs/TabContent.tsx","../../src/navigation/Tabs/useTabs.ts"],"sourcesContent":["import { Children, cloneElement, ReactElement, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { joinClass } from '@iziui/core/utils';\nimport { Colors } from '@iziui/core/theme';\n\nimport { uuid } from '@iziui/toolkit/uuid';\n\nimport createComponent from '@/core/createComponent';\nimport useListenerResized from '@/hooks/useListenerResized';\n\nimport '@iziui/styles/components/Tabs.scss';\n\nfunction validateCurrent(length: number, current: number) {\n if (current > length) {\n throw new Error(`Current tab index (${current}) is greater than the number of tabs (${length})`);\n }\n}\n\nexport interface TabsProps extends Omit<React.HTMLProps<HTMLDivElement>, 'onChange'> {\n current?: number;\n color?: Colors;\n children: React.ReactNode;\n onChange?: (index: number) => void;\n};\n\nfunction Tabs({\n children,\n color = 'primary',\n current = 0,\n onChange,\n ...props\n}: TabsProps) {\n const arrayChildren = Children.toArray(children) as ReactElement<TabsProps>[];\n\n const [_current, setCurrent] = useState(current);\n const scrollRef = useRef<HTMLDivElement[] | null>([]);\n\n const cls = joinClass(\n `${prefix}-tabs`,\n `${prefix}-tabs--${color}`,\n props.className\n );\n\n const classNameMarker = joinClass(\n `${prefix}-tabs__marker`,\n `${prefix}-tabs__marker--${color}`,\n );\n\n const id = useMemo(() => `marker-${uuid()}`, []);\n\n useListenerResized(() => setBorderLine(), [_current]);\n\n useEffect(() => { validateCurrent(arrayChildren.length - 1, _current); }, []);\n\n useEffect(() => {\n const firstEnableButton = arrayChildren.findIndex(children => !children.props.disabled);\n const currentIsDisabled = arrayChildren[current].props.disabled;\n\n setCurrent(currentIsDisabled ? firstEnableButton : current);\n }, [current]);\n\n useEffect(() => {\n setBorderLine();\n goToTab(_current);\n }, [_current]);\n\n const handleClick = (index: number) => {\n if (onChange) { onChange(index); };\n setCurrent(index);\n };\n\n const goToTab = (index: number) => {\n if (!scrollRef.current) { return; }\n scrollRef.current[index].scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center', });\n };\n\n const setRef = (index: number, ref: HTMLDivElement | null) => {\n if (!scrollRef.current || !ref) { return; }\n\n scrollRef.current[index] = ref;\n };\n\n const setBorderLine = () => {\n const element = document.querySelector(`#tab-${id}-${_current}`) as HTMLElement;\n const el = document.getElementById(id) as HTMLElement;\n\n const width = element['offsetWidth'];\n const left = element['offsetLeft'];\n\n el.style.width = `${width}px`;\n el.style.left = `${left}px`;\n };\n\n const renderChildren = () => {\n return arrayChildren.map((child, index) => {\n const _id = `tab-${id}-${index}`;\n const isActive = _current === index;\n\n return (\n <div key={_id} ref={ref => setRef(index, ref)} style={{ width: '100%' }}>\n {\n cloneElement(child, {\n id: _id,\n tabIndex: index + 1,\n 'aria-checked': isActive,\n onClick: () => handleClick(index),\n })\n }\n </div>\n );\n });\n };\n\n return (\n <div {...props} className={cls}>\n {renderChildren()}\n <div id={id} className={classNameMarker} />\n </div>\n );\n}\n\nexport default createComponent(Tabs);\n","import { cloneElement, HTMLAttributes } from 'react';\n\nimport { prefix } from '@iziui/tokens/web/js';\n\nimport { Colors } from '@iziui/core/theme';\nimport { joinClass } from '@iziui/core/utils';\n\nimport type { IconProps } from '@/display/Icon';\n\nexport interface TabButtonProps extends HTMLAttributes<HTMLButtonElement> {\n label: string;\n disabled?: boolean;\n color?: Colors;\n icon?: React.JSX.Element;\n}\n\nexport default function TabButton({ icon, label, disabled, color = 'primary', ...props }: TabButtonProps) {\n const { 'aria-checked': checked } = props;\n\n const className = joinClass(\n `${prefix}-tabs__button`,\n disabled && `${prefix}-tabs__button--disabled`,\n checked && `${prefix}-tabs__button--active-${color}`,\n props.className\n );\n\n const renderIcon = () => {\n return icon && cloneElement<IconProps>(icon, {\n className: joinClass(\n `${prefix}-tabs__button__icon`,\n ),\n });\n };\n\n return (\n <button\n type=\"button\"\n disabled={disabled}\n className={className}\n {...props}\n >\n {renderIcon()}\n {label}\n </button>\n );\n}","import type { HTMLAttributes } from 'react';\n\nexport interface TabContentProps extends HTMLAttributes<HTMLDivElement> {\n children: React.JSX.Element;\n value: number;\n current: number;\n}\n\nexport default function TabContent({ children, value, current, ...props }: TabContentProps) {\n return (\n value === current && (\n <div {...props}>\n {children}\n </div>\n )\n );\n}","import { useEffect, useState } from 'react';\n\ntype UseTabs = [(index: number) => void, number]\n\nexport default function useTabs(current: number): UseTabs {\n const [_current, setCurrent] = useState(current);\n\n useEffect(() => { setCurrent(current); }, [current]);\n\n const setTab = (index: number) => { setCurrent(index); };\n\n return [\n setTab,\n _current,\n ];\n}"],"names":["validateCurrent","length","current","Tabs","children","color","onChange","props","arrayChildren","Children","_current","setCurrent","useState","scrollRef","useRef","cls","joinClass","prefix","classNameMarker","id","useMemo","uuid","useListenerResized","setBorderLine","useEffect","firstEnableButton","currentIsDisabled","goToTab","handleClick","index","setRef","ref","element","el","width","left","renderChildren","child","_id","isActive","jsx","jsxs","Tabs_default","createComponent","TabButton","icon","label","disabled","checked","className","renderIcon","cloneElement","TabContent","value","useTabs"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{jsxs as C,jsx as _}from"react/jsx-runtime";import{Children as j,useState as k,useRef as x,useMemo as B,useEffect as b,cloneElement as y}from"react";import{p as c}from"./index-CZ41y9Hn.js";import{j as f}from"./joinClass-anSpaauN.js";import{u as R}from"./uuid-dGvr9vBZ.js";import{c as L}from"./createComponent-BvE_8glE.js";import{u as g}from"./useListenerResized-Bnqxrt7k.js";function A(t,n){if(n>t)throw new Error(`Current tab index (${n}) is greater than the number of tabs (${t})`)}function M({children:t,color:n="primary",current:r=0,onChange:i,...o}){const u=j.toArray(t),[a,$]=k(r),d=x([]),T=f(`${c}-tabs`,`${c}-tabs--${n}`,o.className),v=f(`${c}-tabs__marker`,`${c}-tabs__marker--${n}`),m=B(()=>`marker-${R()}`,[]);g(()=>p(),[a]),b(()=>{A(u.length-1,a)},[]),b(()=>{const e=u.findIndex(l=>!l.props.disabled),s=u[r].props.disabled;$(s?e:r)},[r]),b(()=>{p(),N(a)},[a]);const I=e=>{i&&i(e),$(e)},N=e=>{d.current&&d.current[e].scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})},w=(e,s)=>{!d.current||!s||(d.current[e]=s)},p=()=>{const e=document.querySelector(`#tab-${m}-${a}`),s=document.getElementById(m),l=e.offsetWidth,h=e.offsetLeft;s.style.width=`${l}px`,s.style.left=`${h}px`};return C("div",{...o,className:T,children:[u.map((e,s)=>{const l=`tab-${m}-${s}`,h=a===s;return _("div",{ref:E=>w(s,E),style:{width:"100%"},children:y(e,{id:l,tabIndex:s+1,"aria-checked":h,onClick:()=>I(s)})},l)}),_("div",{id:m,className:v})]})}const H=L(M);function J({icon:t,label:n,disabled:r,color:i="primary",...o}){const{"aria-checked":u}=o,a=f(`${c}-tabs__button`,r&&`${c}-tabs__button--disabled`,u&&`${c}-tabs__button--active-${i}`,o.className);return C("button",{type:"button",disabled:r,className:a,...o,children:[t&&y(t,{className:f(`${c}-tabs__button__icon`)}),n]})}function K({children:t,value:n,current:r,...i}){return n===r&&_("div",{...i,children:t})}function O(t){const[n,r]=k(t);return b(()=>{r(t)},[t]),[o=>{r(o)},n]}export{J as T,K as a,H as b,O as u};
2
- //# sourceMappingURL=useTabs-BOKC1kGI.js.map
1
+ import{jsxs as C,jsx as _}from"react/jsx-runtime";import{Children as j,useState as k,useRef as x,useMemo as B,useEffect as b,cloneElement as y}from"react";import{p as c}from"./index-CZ41y9Hn.js";import{j as f}from"./joinClass-anSpaauN.js";import{u as R}from"./uuid-dGvr9vBZ.js";import{c as L}from"./createComponent-CIN2GARQ.js";import{u as g}from"./useListenerResized-Bnqxrt7k.js";function A(t,n){if(n>t)throw new Error(`Current tab index (${n}) is greater than the number of tabs (${t})`)}function M({children:t,color:n="primary",current:r=0,onChange:i,...o}){const u=j.toArray(t),[a,$]=k(r),d=x([]),T=f(`${c}-tabs`,`${c}-tabs--${n}`,o.className),v=f(`${c}-tabs__marker`,`${c}-tabs__marker--${n}`),m=B(()=>`marker-${R()}`,[]);g(()=>p(),[a]),b(()=>{A(u.length-1,a)},[]),b(()=>{const e=u.findIndex(l=>!l.props.disabled),s=u[r].props.disabled;$(s?e:r)},[r]),b(()=>{p(),N(a)},[a]);const I=e=>{i&&i(e),$(e)},N=e=>{d.current&&d.current[e].scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})},w=(e,s)=>{!d.current||!s||(d.current[e]=s)},p=()=>{const e=document.querySelector(`#tab-${m}-${a}`),s=document.getElementById(m),l=e.offsetWidth,h=e.offsetLeft;s.style.width=`${l}px`,s.style.left=`${h}px`};return C("div",{...o,className:T,children:[u.map((e,s)=>{const l=`tab-${m}-${s}`,h=a===s;return _("div",{ref:E=>w(s,E),style:{width:"100%"},children:y(e,{id:l,tabIndex:s+1,"aria-checked":h,onClick:()=>I(s)})},l)}),_("div",{id:m,className:v})]})}const H=L(M);function J({icon:t,label:n,disabled:r,color:i="primary",...o}){const{"aria-checked":u}=o,a=f(`${c}-tabs__button`,r&&`${c}-tabs__button--disabled`,u&&`${c}-tabs__button--active-${i}`,o.className);return C("button",{type:"button",disabled:r,className:a,...o,children:[t&&y(t,{className:f(`${c}-tabs__button__icon`)}),n]})}function K({children:t,value:n,current:r,...i}){return n===r&&_("div",{...i,children:t})}function O(t){const[n,r]=k(t);return b(()=>{r(t)},[t]),[o=>{r(o)},n]}export{J as T,K as a,H as b,O as u};
2
+ //# sourceMappingURL=useTabs-CufrCtsL.js.map