@jenesei-software/jenesei-kit-react 2.3.3 → 2.3.4

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 (104) hide show
  1. package/build/area-preview.cjs.js +1 -1
  2. package/build/area-preview.es.js +1 -1
  3. package/build/button-Cl4532xK.cjs +3 -0
  4. package/build/button-Cl4532xK.cjs.map +1 -0
  5. package/build/button-ygPLb-n_.js +118 -0
  6. package/build/button-ygPLb-n_.js.map +1 -0
  7. package/build/{checkbox-9ue4f3-6.cjs → checkbox-B_eE5eQs.cjs} +2 -2
  8. package/build/{checkbox-9ue4f3-6.cjs.map → checkbox-B_eE5eQs.cjs.map} +1 -1
  9. package/build/{checkbox-TW5VSNui.js → checkbox-CLGIqCRV.js} +2 -2
  10. package/build/{checkbox-TW5VSNui.js.map → checkbox-CLGIqCRV.js.map} +1 -1
  11. package/build/component-button.cjs.js +1 -1
  12. package/build/component-button.es.js +1 -1
  13. package/build/component-checkbox.cjs.js +1 -1
  14. package/build/component-checkbox.es.js +1 -1
  15. package/build/component-date-picker.cjs.js +1 -1
  16. package/build/component-date-picker.es.js +1 -1
  17. package/build/component-icon.cjs.js +1 -1
  18. package/build/component-icon.es.js +1 -1
  19. package/build/component-pagination.cjs.js +1 -1
  20. package/build/component-pagination.es.js +1 -1
  21. package/build/component-select.cjs.js +1 -1
  22. package/build/component-select.es.js +1 -1
  23. package/build/components/button/component.d.ts +1 -2
  24. package/build/components/icon/component.d.ts +1 -1
  25. package/build/components/icon/component.hooks.d.ts +3 -1
  26. package/build/{context-app-CxNgCfd2.js → context-app-DhxAgIBE.js} +2 -2
  27. package/build/{context-app-CxNgCfd2.js.map → context-app-DhxAgIBE.js.map} +1 -1
  28. package/build/{context-app-29ajupjq.cjs → context-app-v8y-IIxP.cjs} +2 -2
  29. package/build/{context-app-29ajupjq.cjs.map → context-app-v8y-IIxP.cjs.map} +1 -1
  30. package/build/context-app.cjs.js +1 -1
  31. package/build/context-app.es.js +1 -1
  32. package/build/{context-cookie-Daq2MZo3.js → context-cookie-DRPslhxf.js} +2 -2
  33. package/build/{context-cookie-Daq2MZo3.js.map → context-cookie-DRPslhxf.js.map} +1 -1
  34. package/build/{context-cookie-DFgWWGA9.cjs → context-cookie-qk-RTVhn.cjs} +2 -2
  35. package/build/{context-cookie-DFgWWGA9.cjs.map → context-cookie-qk-RTVhn.cjs.map} +1 -1
  36. package/build/context-cookie.cjs.js +1 -1
  37. package/build/context-cookie.es.js +1 -1
  38. package/build/{context-geolocation-B_KYGlfQ.js → context-geolocation-6vk3sckx.js} +2 -2
  39. package/build/{context-geolocation-B_KYGlfQ.js.map → context-geolocation-6vk3sckx.js.map} +1 -1
  40. package/build/{context-geolocation-bP0_455H.cjs → context-geolocation-DlHZrmaf.cjs} +2 -2
  41. package/build/{context-geolocation-bP0_455H.cjs.map → context-geolocation-DlHZrmaf.cjs.map} +1 -1
  42. package/build/context-geolocation.cjs.js +1 -1
  43. package/build/context-geolocation.es.js +1 -1
  44. package/build/{context-local-storage-DA_whw_k.js → context-local-storage-CknlDupP.js} +2 -2
  45. package/build/{context-local-storage-DA_whw_k.js.map → context-local-storage-CknlDupP.js.map} +1 -1
  46. package/build/{context-local-storage-D_x8dwxM.cjs → context-local-storage-DK4zzbkX.cjs} +2 -2
  47. package/build/{context-local-storage-D_x8dwxM.cjs.map → context-local-storage-DK4zzbkX.cjs.map} +1 -1
  48. package/build/context-local-storage.cjs.js +1 -1
  49. package/build/context-local-storage.es.js +1 -1
  50. package/build/{context-permission-Cj70kL4A.js → context-permission-C5L4I8X3.js} +2 -2
  51. package/build/{context-permission-Cj70kL4A.js.map → context-permission-C5L4I8X3.js.map} +1 -1
  52. package/build/{context-permission-BP9hPUcR.cjs → context-permission-qp3vUfoA.cjs} +2 -2
  53. package/build/{context-permission-BP9hPUcR.cjs.map → context-permission-qp3vUfoA.cjs.map} +1 -1
  54. package/build/context-permission.cjs.js +1 -1
  55. package/build/context-permission.es.js +1 -1
  56. package/build/{context-sonner-DNJWVKTw.js → context-sonner-BB7C6Wsf.js} +3 -3
  57. package/build/{context-sonner-DNJWVKTw.js.map → context-sonner-BB7C6Wsf.js.map} +1 -1
  58. package/build/{context-sonner-C8aMJPWz.cjs → context-sonner-BGpNwV_S.cjs} +2 -2
  59. package/build/{context-sonner-C8aMJPWz.cjs.map → context-sonner-BGpNwV_S.cjs.map} +1 -1
  60. package/build/context-sonner.cjs.js +1 -1
  61. package/build/context-sonner.es.js +1 -1
  62. package/build/{date-picker-DRXvfRZx.cjs → date-picker-CexAqJgp.cjs} +2 -2
  63. package/build/{date-picker-DRXvfRZx.cjs.map → date-picker-CexAqJgp.cjs.map} +1 -1
  64. package/build/{date-picker-Sw6n-RRw.js → date-picker-WGlcoobG.js} +3 -3
  65. package/build/{date-picker-Sw6n-RRw.js.map → date-picker-WGlcoobG.js.map} +1 -1
  66. package/build/hooks-use-deep-compare-memoize.cjs.js +1 -1
  67. package/build/hooks-use-deep-compare-memoize.es.js +1 -1
  68. package/build/hooks-use-deep-memo.cjs.js +1 -1
  69. package/build/hooks-use-deep-memo.es.js +1 -1
  70. package/build/icon-B6PvcNvO.cjs +3 -0
  71. package/build/icon-B6PvcNvO.cjs.map +1 -0
  72. package/build/icon-okw710zo.js +255 -0
  73. package/build/icon-okw710zo.js.map +1 -0
  74. package/build/index.cjs.js +1 -1
  75. package/build/index.es.js +13 -13
  76. package/build/{isEqual-BHn_Fkkw.js → isEqual-BF-XUq17.js} +1 -1
  77. package/build/{isEqual-BHn_Fkkw.js.map → isEqual-BF-XUq17.js.map} +1 -1
  78. package/build/{isEqual-Q-mEN2md.cjs → isEqual-DJD8QXYf.cjs} +1 -1
  79. package/build/{isEqual-Q-mEN2md.cjs.map → isEqual-DJD8QXYf.cjs.map} +1 -1
  80. package/build/{logger-QC3A33gh.js → logger-D-UddU9-.js} +1 -1
  81. package/build/{logger-QC3A33gh.js.map → logger-D-UddU9-.js.map} +1 -1
  82. package/build/{logger-D3Xu5ef3.cjs → logger-GLARTxbP.cjs} +1 -1
  83. package/build/{logger-D3Xu5ef3.cjs.map → logger-GLARTxbP.cjs.map} +1 -1
  84. package/build/{pagination-CzmrFLcs.cjs → pagination-ClW-z5EV.cjs} +2 -2
  85. package/build/{pagination-CzmrFLcs.cjs.map → pagination-ClW-z5EV.cjs.map} +1 -1
  86. package/build/{pagination-DWlnuh1H.js → pagination-Dnl1v3VL.js} +2 -2
  87. package/build/{pagination-DWlnuh1H.js.map → pagination-Dnl1v3VL.js.map} +1 -1
  88. package/build/{preview-p2i9Ju3I.cjs → preview-DEFGRXfJ.cjs} +2 -2
  89. package/build/{preview-p2i9Ju3I.cjs.map → preview-DEFGRXfJ.cjs.map} +1 -1
  90. package/build/{preview-C-mtYSGG.js → preview-DVk-Ykii.js} +2 -2
  91. package/build/{preview-C-mtYSGG.js.map → preview-DVk-Ykii.js.map} +1 -1
  92. package/build/{select-Bn-24dwy.js → select-9C2iAXLx.js} +3 -3
  93. package/build/{select-Bn-24dwy.js.map → select-9C2iAXLx.js.map} +1 -1
  94. package/build/{select-DcgzvPvR.cjs → select-C2lLQlEy.cjs} +2 -2
  95. package/build/{select-DcgzvPvR.cjs.map → select-C2lLQlEy.cjs.map} +1 -1
  96. package/package.json +1 -1
  97. package/build/button-9k2nzpqW.js +0 -135
  98. package/build/button-9k2nzpqW.js.map +0 -1
  99. package/build/button-C1H35JQG.cjs +0 -3
  100. package/build/button-C1H35JQG.cjs.map +0 -1
  101. package/build/icon-DyjaxKWq.cjs +0 -3
  102. package/build/icon-DyjaxKWq.cjs.map +0 -1
  103. package/build/icon-Y-IZxLXB.js +0 -245
  104. package/build/icon-Y-IZxLXB.js.map +0 -1
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./chunk-Dd8m0Ver.cjs"),e=require("./preview-p2i9Ju3I.cjs");exports.Preview=e.Preview;exports.useRemovePreviewLoader=e.useRemovePreviewLoader;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./chunk-Dd8m0Ver.cjs"),e=require("./preview-DEFGRXfJ.cjs");exports.Preview=e.Preview;exports.useRemovePreviewLoader=e.useRemovePreviewLoader;
@@ -1,4 +1,4 @@
1
- import { n as r, t as o } from "./preview-C-mtYSGG.js";
1
+ import { n as r, t as o } from "./preview-DVk-Ykii.js";
2
2
  export {
3
3
  r as Preview,
4
4
  o as useRemovePreviewLoader
@@ -0,0 +1,3 @@
1
+ const q=require("./chunk-Dd8m0Ver.cjs"),n=require("./utils-DCIq-5FL.cjs"),a=require("./functions-CZrZU5U0.cjs"),f=require("./icon-B6PvcNvO.cjs"),V=require("./isEqual-DJD8QXYf.cjs"),m=require("./hooks-use-deep-compare-memoize.cjs.js"),v=require("./hooks-use-merge-refs.cjs.js"),L=require("./hooks-use-typography-styles.cjs.js");let y=require("react/jsx-runtime"),i=require("react");var b=q.__toESM(V.require_isEqual(),1),M=e=>{const s=m.useDeepCompareMemoize(e.icons??[]),S=m.useDeepCompareMemoize(e.style),u=m.useDeepCompareMemoize(e.sxTypography),c="iconGroupOrder"in e,o=c?e.iconGroupOrder:void 0,l=(0,i.useMemo)(()=>f.getIconComponents({icons:s.map(r=>({...r,style:{color:n.CSS_VARS.genre.button[e.genre].color.index}})),size:e.size}),[s,e.size,e.genre]),d=(0,i.useRef)(null),_=v.useMergeRefs((0,i.useMemo)(()=>[d,e.ref],[e.ref])),{className:C,style:g}=L.useTypographyStyles({sx:(0,i.useMemo)(()=>({variant:n.EXTRA_VALUE.sizeToController[e.size],isNoUserSelect:!0,...u}),[e.size,u]),style:(0,i.useMemo)(()=>({order:0,display:"inline-flex"}),[])}),{className:h,style:R}=(0,i.useMemo)(()=>{const r=a.setClasses([n.CSS_CLASS.component.button.root,n.CSS_CLASS.control[e.isDisabled?"none":e.control??"boxShadow"],n.CSS_CLASS.transition.color,e.isZeroRadius&&n.CSS_CLASS.component.button.isZeroRadius,e.isHidden&&n.CSS_CLASS.component.button.isHidden,e.isHiddenBorder&&n.CSS_CLASS.component.button.isHiddenBorder,e.isFullRadius&&n.CSS_CLASS.component.button.isFullRadius,e.isFullSize&&n.CSS_CLASS.component.button.isFullSize,e.isWidthAsHeight&&n.CSS_CLASS.component.button.isWidthAsHeight,e.isMinWidthAsContent&&n.CSS_CLASS.component.button.isMinWidthAsContent,e.isZeroPadding&&n.CSS_CLASS.component.button.isZeroPadding,e.isSizeFitContent&&n.CSS_CLASS.component.button.isSizeFitContent,e.className]),t={};return t[n.CSS_VARS_RAW.component.button.background]=n.CSS_VARS.genre.button[e.genre].background.index,t[n.CSS_VARS_RAW.component.button.color]=n.CSS_VARS.genre.button[e.genre].color.index,t[n.CSS_VARS_RAW.component.button.border]=n.CSS_VARS.genre.button[e.genre].border.index,t[n.CSS_VARS_RAW.component.button.height]=n.CSS_VARS.size[e.size].height,t[n.CSS_VARS_RAW.component.button.padding]=n.CSS_VARS.size[e.size].padding,t[n.CSS_VARS_RAW.component.button.radius]=n.CSS_VARS.size[e.size].radius,t[n.CSS_VARS_RAW.component.button.gap]=`calc(${n.CSS_VARS.size[e.size].padding} - 2px)`,{className:r,style:a.setStyles([Object.keys(t).length?t:void 0,S])}},[e.className,S,e.genre,e.isDisabled,e.isFullSize,e.isHidden,e.isHiddenBorder,e.isMinWidthAsContent,e.isFullRadius,e.isWidthAsHeight,e.size,e.isZeroRadius,e.control,e.isZeroPadding,e.isSizeFitContent]),{className:x,style:z}=(0,i.useMemo)(()=>{const r=a.setClasses([n.CSS_CLASS.component.button.iconGroup,e.isIconGroup&&n.CSS_CLASS.component.button.iconGroupIsIconGroup]),t={};return c&&(t[n.CSS_VARS_RAW.component.button.iconGroupOrder]=String(o??"initial")),{className:r,style:a.setStyles([Object.keys(t).length?t:void 0])}},[e.isIconGroup,c,o]);return(0,y.jsxs)("button",{tabIndex:e.tabIndex,disabled:e.isDisabled,className:h,style:R,onClick:e.onClick,onFocus:e.onFocus,onMouseDown:e.onMouseDown,type:e.type??"button",ref:_,name:e.name,"aria-label":e.ariaLabel,id:e.id,children:[!e.isOnlyIcon&&e.children&&(0,y.jsx)("div",{className:C,style:g,children:e.children}),(0,y.jsx)("div",{className:x,style:z,children:l})]})},A=(0,i.memo)(M,W);A.displayName="Button";function W(e,s){const{icons:S,style:u,sxTypography:c,...o}=e,{icons:l,style:d,sxTypography:_,...C}=s;return(0,b.default)(S,l)&&(0,b.default)(u,d)&&(0,b.default)(c,_)&&I(o,C)}function I(e,s){const S=Object.keys(e),u=Object.keys(s);if(S.length!==u.length)return!1;const c=new Set(u);return S.every(o=>c.has(o)&&Object.is(e[o],s[o]))}Object.defineProperty(exports,"Button",{enumerable:!0,get:function(){return A}});
2
+
3
+ //# sourceMappingURL=button-Cl4532xK.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-Cl4532xK.cjs","names":[],"sources":["../src/components/button/component.tsx"],"sourcesContent":["import { getIconComponents } from '@local/components/icon';\nimport { useDeepCompareMemoize } from '@local/hooks/use-deep-compare-memoize';\nimport { useMergeRefs } from '@local/hooks/use-merge-refs';\nimport { useTypographyStyles } from '@local/hooks/use-typography-styles';\nimport { CSS_CLASS, CSS_VARS, CSS_VARS_RAW, EXTRA_VALUE } from '@local/styles/utils';\nimport { setClasses, setStyles } from '@local/styles/utils/functions';\n\nimport isEqual from 'lodash/isEqual';\nimport { FC, memo, Ref, useMemo, useRef } from 'react';\n\nimport { IButton } from './component.types';\n\nconst ButtonComponent: FC<IButton> = (props) => {\n const icons = useDeepCompareMemoize(props.icons ?? []);\n const propsStyle = useDeepCompareMemoize(props.style);\n const sxTypography = useDeepCompareMemoize(props.sxTypography);\n const hasIconGroupOrder = 'iconGroupOrder' in props;\n const iconGroupOrder = hasIconGroupOrder ? props.iconGroupOrder : undefined;\n\n const iconComponents = useMemo(\n () =>\n getIconComponents({\n icons: icons.map((e) => ({\n ...e,\n style: { color: CSS_VARS.genre.button[props.genre].color.index },\n })),\n size: props.size,\n }),\n [icons, props.size, props.genre],\n );\n\n const refDefault = useRef<HTMLButtonElement>(null);\n\n const refs = useMemo(() => [refDefault, props.ref], [props.ref]);\n const ref = useMergeRefs(refs);\n\n const typographySx = useMemo(\n () => ({ variant: EXTRA_VALUE.sizeToController[props.size], isNoUserSelect: true, ...sxTypography }),\n [props.size, sxTypography],\n );\n\n const typographyStyle = useMemo(() => ({ order: 0, display: 'inline-flex' }), []);\n\n const { className: classNameTypography, style: styleTypography } = useTypographyStyles({\n sx: typographySx,\n style: typographyStyle,\n });\n\n const { className, style } = useMemo(() => {\n const className = setClasses([\n CSS_CLASS.component.button.root,\n CSS_CLASS.control[props.isDisabled ? 'none' : (props.control ?? 'boxShadow')],\n CSS_CLASS.transition.color,\n props.isZeroRadius && CSS_CLASS.component.button.isZeroRadius,\n props.isHidden && CSS_CLASS.component.button.isHidden,\n props.isHiddenBorder && CSS_CLASS.component.button.isHiddenBorder,\n props.isFullRadius && CSS_CLASS.component.button.isFullRadius,\n props.isFullSize && CSS_CLASS.component.button.isFullSize,\n props.isWidthAsHeight && CSS_CLASS.component.button.isWidthAsHeight,\n props.isMinWidthAsContent && CSS_CLASS.component.button.isMinWidthAsContent,\n props.isZeroPadding && CSS_CLASS.component.button.isZeroPadding,\n props.isSizeFitContent && CSS_CLASS.component.button.isSizeFitContent,\n props.className,\n ]);\n\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.button.background] = CSS_VARS.genre.button[props.genre].background.index;\n vars[CSS_VARS_RAW.component.button.color] = CSS_VARS.genre.button[props.genre].color.index;\n vars[CSS_VARS_RAW.component.button.border] = CSS_VARS.genre.button[props.genre].border.index;\n\n vars[CSS_VARS_RAW.component.button.height] = CSS_VARS.size[props.size].height;\n vars[CSS_VARS_RAW.component.button.padding] = CSS_VARS.size[props.size].padding;\n vars[CSS_VARS_RAW.component.button.radius] = CSS_VARS.size[props.size].radius;\n vars[CSS_VARS_RAW.component.button.gap] = `calc(${CSS_VARS.size[props.size].padding} - 2px)`;\n\n const style = setStyles([Object.keys(vars).length ? vars : undefined, propsStyle]);\n\n return { className, style };\n }, [\n props.className,\n propsStyle,\n props.genre,\n props.isDisabled,\n props.isFullSize,\n props.isHidden,\n props.isHiddenBorder,\n props.isMinWidthAsContent,\n props.isFullRadius,\n props.isWidthAsHeight,\n props.size,\n props.isZeroRadius,\n props.control,\n props.isZeroPadding,\n props.isSizeFitContent,\n ]);\n\n const { className: classNameIconGroup, style: styleIconGroup } = useMemo(() => {\n const className = setClasses([\n CSS_CLASS.component.button.iconGroup,\n\n props.isIconGroup && CSS_CLASS.component.button.iconGroupIsIconGroup,\n ]);\n\n const vars: Record<string, string> = {};\n\n if (hasIconGroupOrder) vars[CSS_VARS_RAW.component.button.iconGroupOrder] = String(iconGroupOrder ?? 'initial');\n\n const style = setStyles([Object.keys(vars).length ? vars : undefined]);\n\n return { className, style };\n }, [props.isIconGroup, hasIconGroupOrder, iconGroupOrder]);\n\n return (\n <button\n tabIndex={props.tabIndex}\n disabled={props.isDisabled}\n className={className}\n style={style}\n onClick={props.onClick}\n onFocus={props.onFocus}\n onMouseDown={props.onMouseDown}\n type={props.type ?? 'button'}\n ref={ref as Ref<HTMLButtonElement>}\n name={props.name}\n aria-label={props.ariaLabel}\n id={props.id}\n >\n {!props.isOnlyIcon && props.children && (\n <div className={classNameTypography} style={styleTypography}>\n {props.children}\n </div>\n )}\n <div className={classNameIconGroup} style={styleIconGroup}>\n {iconComponents}\n </div>\n </button>\n );\n};\n\nexport const Button = memo(ButtonComponent, areButtonPropsEqual);\nButton.displayName = 'Button';\n\nfunction areButtonPropsEqual(prev: IButton, next: IButton) {\n const { icons: prevIcons, style: prevStyle, sxTypography: prevSxTypography, ...prevRest } = prev;\n const { icons: nextIcons, style: nextStyle, sxTypography: nextSxTypography, ...nextRest } = next;\n\n return (\n isEqual(prevIcons, nextIcons) &&\n isEqual(prevStyle, nextStyle) &&\n isEqual(prevSxTypography, nextSxTypography) &&\n areShallowEqual(prevRest, nextRest)\n );\n}\n\nfunction areShallowEqual<T extends Record<string, unknown>>(prev: T, next: T) {\n const prevKeys = Object.keys(prev);\n const nextKeys = Object.keys(next);\n\n if (prevKeys.length !== nextKeys.length) return false;\n\n const nextKeysSet = new Set(nextKeys);\n\n return prevKeys.every((key) => nextKeysSet.has(key) && Object.is(prev[key], next[key]));\n}\n"],"mappings":"oaAYM,EAAgC,GAAU,CAC9C,MAAM,EAAQ,EAAA,sBAAsB,EAAM,OAAS,CAAA,CAAE,EAC/C,EAAa,EAAA,sBAAsB,EAAM,KAAA,EACzC,EAAe,EAAA,sBAAsB,EAAM,YAAA,EAC3C,EAAoB,mBAAoB,EACxC,EAAiB,EAAoB,EAAM,eAAiB,OAE5D,KAAA,EAAA,SAAA,IAEF,EAAA,kBAAkB,CAChB,MAAO,EAAM,IAAK,IAAO,CACvB,GAAG,EACH,MAAO,CAAE,MAAO,EAAA,SAAS,MAAM,OAAO,EAAM,KAAA,EAAO,MAAM,KAAA,GAC1D,EACD,KAAM,EAAM,KACb,EACH,CAAC,EAAO,EAAM,KAAM,EAAM,MAAM,EAG5B,KAAA,EAAA,QAAuC,IAAA,EAGvC,EAAM,EAAA,gBAAA,EAAA,SAAA,IADe,CAAC,EAAY,EAAM,GAAA,EAAM,CAAC,EAAM,GAAA,CAAI,CAAC,EAU1D,CAAE,UAAW,EAAqB,MAAO,CAAA,EAAoB,EAAA,oBAAoB,CACrF,MAAA,EAAA,SAAA,KAPO,CAAE,QAAS,EAAA,YAAY,iBAAiB,EAAM,IAAA,EAAO,eAAgB,GAAM,GAAG,IACrF,CAAC,EAAM,KAAM,CAAA,CAAa,EAO1B,SAAA,EAAA,SAAA,KAJqC,CAAE,MAAO,EAAG,QAAS,gBAAkB,CAAA,CAAE,EAK/E,EAEK,CAAE,UAAA,EAAW,MAAA,CAAA,KAAA,EAAA,SAAA,IAAwB,CACzC,MAAM,EAAY,EAAA,WAAW,CAC3B,EAAA,UAAU,UAAU,OAAO,KAC3B,EAAA,UAAU,QAAQ,EAAM,WAAa,OAAU,EAAM,SAAW,WAAA,EAChE,EAAA,UAAU,WAAW,MACrB,EAAM,cAAgB,EAAA,UAAU,UAAU,OAAO,aACjD,EAAM,UAAY,EAAA,UAAU,UAAU,OAAO,SAC7C,EAAM,gBAAkB,EAAA,UAAU,UAAU,OAAO,eACnD,EAAM,cAAgB,EAAA,UAAU,UAAU,OAAO,aACjD,EAAM,YAAc,EAAA,UAAU,UAAU,OAAO,WAC/C,EAAM,iBAAmB,EAAA,UAAU,UAAU,OAAO,gBACpD,EAAM,qBAAuB,EAAA,UAAU,UAAU,OAAO,oBACxD,EAAM,eAAiB,EAAA,UAAU,UAAU,OAAO,cAClD,EAAM,kBAAoB,EAAA,UAAU,UAAU,OAAO,iBACrD,EAAM,UACP,EAEK,EAA+B,CAAA,EAErC,OAAA,EAAK,EAAA,aAAa,UAAU,OAAO,UAAA,EAAc,EAAA,SAAS,MAAM,OAAO,EAAM,KAAA,EAAO,WAAW,MAC/F,EAAK,EAAA,aAAa,UAAU,OAAO,KAAA,EAAS,EAAA,SAAS,MAAM,OAAO,EAAM,KAAA,EAAO,MAAM,MACrF,EAAK,EAAA,aAAa,UAAU,OAAO,MAAA,EAAU,EAAA,SAAS,MAAM,OAAO,EAAM,KAAA,EAAO,OAAO,MAEvF,EAAK,EAAA,aAAa,UAAU,OAAO,MAAA,EAAU,EAAA,SAAS,KAAK,EAAM,IAAA,EAAM,OACvE,EAAK,EAAA,aAAa,UAAU,OAAO,OAAA,EAAW,EAAA,SAAS,KAAK,EAAM,IAAA,EAAM,QACxE,EAAK,EAAA,aAAa,UAAU,OAAO,MAAA,EAAU,EAAA,SAAS,KAAK,EAAM,IAAA,EAAM,OACvE,EAAK,EAAA,aAAa,UAAU,OAAO,GAAA,EAAO,QAAQ,EAAA,SAAS,KAAK,EAAM,IAAA,EAAM,OAAA,UAIrE,CAAE,UAAA,EAAW,MAFN,EAAA,UAAU,CAAC,OAAO,KAAK,CAAA,EAAM,OAAS,EAAO,OAAW,CAAA,CAAW,IAGhF,CACD,EAAM,UACN,EACA,EAAM,MACN,EAAM,WACN,EAAM,WACN,EAAM,SACN,EAAM,eACN,EAAM,oBACN,EAAM,aACN,EAAM,gBACN,EAAM,KACN,EAAM,aACN,EAAM,QACN,EAAM,cACN,EAAM,iBACP,EAEK,CAAE,UAAW,EAAoB,MAAO,CAAA,KAAA,EAAA,SAAA,IAAiC,CAC7E,MAAM,EAAY,EAAA,WAAW,CAC3B,EAAA,UAAU,UAAU,OAAO,UAE3B,EAAM,aAAe,EAAA,UAAU,UAAU,OAAO,oBAAA,CACjD,EAEK,EAA+B,CAAA,EAErC,OAAI,IAAmB,EAAK,EAAA,aAAa,UAAU,OAAO,cAAA,EAAkB,OAAO,GAAkB,SAAA,GAI9F,CAAE,UAAA,EAAW,MAFN,EAAA,UAAU,CAAC,OAAO,KAAK,CAAA,EAAM,OAAS,EAAO,MAAA,CAAU,IAGpE,CAAC,EAAM,YAAa,EAAmB,EAAe,EAEzD,SACE,EAAA,MAAC,SAAD,CACE,SAAU,EAAM,SAChB,SAAU,EAAM,WACL,UAAA,EACJ,MAAA,EACP,QAAS,EAAM,QACf,QAAS,EAAM,QACf,YAAa,EAAM,YACnB,KAAM,EAAM,MAAQ,SACf,IAAA,EACL,KAAM,EAAM,KACZ,aAAY,EAAM,UAClB,GAAI,EAAM,YAZZ,CAcG,CAAC,EAAM,YAAc,EAAM,aAC1B,EAAA,KAAC,MAAD,CAAK,UAAW,EAAqB,MAAO,WACzC,EAAM,SACH,KAER,EAAA,KAAC,MAAD,CAAK,UAAW,EAAoB,MAAO,WACxC,EACG,CAAA,KAKC,KAAA,EAAA,MAAc,EAAiB,CAAA,EAC5C,EAAO,YAAc,SAErB,SAAS,EAAoB,EAAe,EAAe,CACzD,KAAM,CAAE,MAAO,EAAW,MAAO,EAAW,aAAc,EAAkB,GAAG,CAAA,EAAa,EACtF,CAAE,MAAO,EAAW,MAAO,EAAW,aAAc,EAAkB,GAAG,CAAA,EAAa,EAE5F,SAAA,EAAA,SACU,EAAW,CAAA,MAAU,EAAA,SACrB,EAAW,CAAA,MAAU,EAAA,SACrB,EAAkB,CAAA,GAC1B,EAAgB,EAAU,CAAA,EAI9B,SAAS,EAAmD,EAAS,EAAS,CAC5E,MAAM,EAAW,OAAO,KAAK,CAAA,EACvB,EAAW,OAAO,KAAK,CAAA,EAE7B,GAAI,EAAS,SAAW,EAAS,OAAQ,MAAO,GAEhD,MAAM,EAAc,IAAI,IAAI,CAAA,EAE5B,OAAO,EAAS,MAAO,GAAQ,EAAY,IAAI,CAAA,GAAQ,OAAO,GAAG,EAAK,CAAA,EAAM,EAAK,CAAA,CAAA,CAAK"}
@@ -0,0 +1,118 @@
1
+ import { o as A } from "./chunk-cI0lbGMq.js";
2
+ import { i, n, r as s, t as G } from "./utils-BRgi6734.js";
3
+ import { n as f, t as x } from "./functions-DzX-pTN8.js";
4
+ import { t as F } from "./icon-okw710zo.js";
5
+ import { t as O } from "./isEqual-BF-XUq17.js";
6
+ import { useDeepCompareMemoize as h } from "./hooks-use-deep-compare-memoize.es.js";
7
+ import { useMergeRefs as T } from "./hooks-use-merge-refs.es.js";
8
+ import { useTypographyStyles as H } from "./hooks-use-typography-styles.es.js";
9
+ import { jsx as z, jsxs as M } from "react/jsx-runtime";
10
+ import { memo as _, useMemo as r, useRef as j } from "react";
11
+ var S = /* @__PURE__ */ A(O(), 1), B = (e) => {
12
+ const a = h(e.icons ?? []), c = h(e.style), l = h(e.sxTypography), u = "iconGroupOrder" in e, o = u ? e.iconGroupOrder : void 0, m = r(() => F({
13
+ icons: a.map((d) => ({
14
+ ...d,
15
+ style: { color: s.genre.button[e.genre].color.index }
16
+ })),
17
+ size: e.size
18
+ }), [
19
+ a,
20
+ e.size,
21
+ e.genre
22
+ ]), y = j(null), b = T(r(() => [y, e.ref], [e.ref])), { className: g, style: C } = H({
23
+ sx: r(() => ({
24
+ variant: G.sizeToController[e.size],
25
+ isNoUserSelect: !0,
26
+ ...l
27
+ }), [e.size, l]),
28
+ style: r(() => ({
29
+ order: 0,
30
+ display: "inline-flex"
31
+ }), [])
32
+ }), { className: v, style: R } = r(() => {
33
+ const d = x([
34
+ n.component.button.root,
35
+ n.control[e.isDisabled ? "none" : e.control ?? "boxShadow"],
36
+ n.transition.color,
37
+ e.isZeroRadius && n.component.button.isZeroRadius,
38
+ e.isHidden && n.component.button.isHidden,
39
+ e.isHiddenBorder && n.component.button.isHiddenBorder,
40
+ e.isFullRadius && n.component.button.isFullRadius,
41
+ e.isFullSize && n.component.button.isFullSize,
42
+ e.isWidthAsHeight && n.component.button.isWidthAsHeight,
43
+ e.isMinWidthAsContent && n.component.button.isMinWidthAsContent,
44
+ e.isZeroPadding && n.component.button.isZeroPadding,
45
+ e.isSizeFitContent && n.component.button.isSizeFitContent,
46
+ e.className
47
+ ]), t = {};
48
+ return t[i.component.button.background] = s.genre.button[e.genre].background.index, t[i.component.button.color] = s.genre.button[e.genre].color.index, t[i.component.button.border] = s.genre.button[e.genre].border.index, t[i.component.button.height] = s.size[e.size].height, t[i.component.button.padding] = s.size[e.size].padding, t[i.component.button.radius] = s.size[e.size].radius, t[i.component.button.gap] = `calc(${s.size[e.size].padding} - 2px)`, {
49
+ className: d,
50
+ style: f([Object.keys(t).length ? t : void 0, c])
51
+ };
52
+ }, [
53
+ e.className,
54
+ c,
55
+ e.genre,
56
+ e.isDisabled,
57
+ e.isFullSize,
58
+ e.isHidden,
59
+ e.isHiddenBorder,
60
+ e.isMinWidthAsContent,
61
+ e.isFullRadius,
62
+ e.isWidthAsHeight,
63
+ e.size,
64
+ e.isZeroRadius,
65
+ e.control,
66
+ e.isZeroPadding,
67
+ e.isSizeFitContent
68
+ ]), { className: I, style: N } = r(() => {
69
+ const d = x([n.component.button.iconGroup, e.isIconGroup && n.component.button.iconGroupIsIconGroup]), t = {};
70
+ return u && (t[i.component.button.iconGroupOrder] = String(o ?? "initial")), {
71
+ className: d,
72
+ style: f([Object.keys(t).length ? t : void 0])
73
+ };
74
+ }, [
75
+ e.isIconGroup,
76
+ u,
77
+ o
78
+ ]);
79
+ return /* @__PURE__ */ M("button", {
80
+ tabIndex: e.tabIndex,
81
+ disabled: e.isDisabled,
82
+ className: v,
83
+ style: R,
84
+ onClick: e.onClick,
85
+ onFocus: e.onFocus,
86
+ onMouseDown: e.onMouseDown,
87
+ type: e.type ?? "button",
88
+ ref: b,
89
+ name: e.name,
90
+ "aria-label": e.ariaLabel,
91
+ id: e.id,
92
+ children: [!e.isOnlyIcon && e.children && /* @__PURE__ */ z("div", {
93
+ className: g,
94
+ style: C,
95
+ children: e.children
96
+ }), /* @__PURE__ */ z("div", {
97
+ className: I,
98
+ style: N,
99
+ children: m
100
+ })]
101
+ });
102
+ }, D = _(B, E);
103
+ D.displayName = "Button";
104
+ function E(e, a) {
105
+ const { icons: c, style: l, sxTypography: u, ...o } = e, { icons: m, style: y, sxTypography: b, ...g } = a;
106
+ return (0, S.default)(c, m) && (0, S.default)(l, y) && (0, S.default)(u, b) && W(o, g);
107
+ }
108
+ function W(e, a) {
109
+ const c = Object.keys(e), l = Object.keys(a);
110
+ if (c.length !== l.length) return !1;
111
+ const u = new Set(l);
112
+ return c.every((o) => u.has(o) && Object.is(e[o], a[o]));
113
+ }
114
+ export {
115
+ D as t
116
+ };
117
+
118
+ //# sourceMappingURL=button-ygPLb-n_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-ygPLb-n_.js","names":[],"sources":["../src/components/button/component.tsx"],"sourcesContent":["import { getIconComponents } from '@local/components/icon';\nimport { useDeepCompareMemoize } from '@local/hooks/use-deep-compare-memoize';\nimport { useMergeRefs } from '@local/hooks/use-merge-refs';\nimport { useTypographyStyles } from '@local/hooks/use-typography-styles';\nimport { CSS_CLASS, CSS_VARS, CSS_VARS_RAW, EXTRA_VALUE } from '@local/styles/utils';\nimport { setClasses, setStyles } from '@local/styles/utils/functions';\n\nimport isEqual from 'lodash/isEqual';\nimport { FC, memo, Ref, useMemo, useRef } from 'react';\n\nimport { IButton } from './component.types';\n\nconst ButtonComponent: FC<IButton> = (props) => {\n const icons = useDeepCompareMemoize(props.icons ?? []);\n const propsStyle = useDeepCompareMemoize(props.style);\n const sxTypography = useDeepCompareMemoize(props.sxTypography);\n const hasIconGroupOrder = 'iconGroupOrder' in props;\n const iconGroupOrder = hasIconGroupOrder ? props.iconGroupOrder : undefined;\n\n const iconComponents = useMemo(\n () =>\n getIconComponents({\n icons: icons.map((e) => ({\n ...e,\n style: { color: CSS_VARS.genre.button[props.genre].color.index },\n })),\n size: props.size,\n }),\n [icons, props.size, props.genre],\n );\n\n const refDefault = useRef<HTMLButtonElement>(null);\n\n const refs = useMemo(() => [refDefault, props.ref], [props.ref]);\n const ref = useMergeRefs(refs);\n\n const typographySx = useMemo(\n () => ({ variant: EXTRA_VALUE.sizeToController[props.size], isNoUserSelect: true, ...sxTypography }),\n [props.size, sxTypography],\n );\n\n const typographyStyle = useMemo(() => ({ order: 0, display: 'inline-flex' }), []);\n\n const { className: classNameTypography, style: styleTypography } = useTypographyStyles({\n sx: typographySx,\n style: typographyStyle,\n });\n\n const { className, style } = useMemo(() => {\n const className = setClasses([\n CSS_CLASS.component.button.root,\n CSS_CLASS.control[props.isDisabled ? 'none' : (props.control ?? 'boxShadow')],\n CSS_CLASS.transition.color,\n props.isZeroRadius && CSS_CLASS.component.button.isZeroRadius,\n props.isHidden && CSS_CLASS.component.button.isHidden,\n props.isHiddenBorder && CSS_CLASS.component.button.isHiddenBorder,\n props.isFullRadius && CSS_CLASS.component.button.isFullRadius,\n props.isFullSize && CSS_CLASS.component.button.isFullSize,\n props.isWidthAsHeight && CSS_CLASS.component.button.isWidthAsHeight,\n props.isMinWidthAsContent && CSS_CLASS.component.button.isMinWidthAsContent,\n props.isZeroPadding && CSS_CLASS.component.button.isZeroPadding,\n props.isSizeFitContent && CSS_CLASS.component.button.isSizeFitContent,\n props.className,\n ]);\n\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.button.background] = CSS_VARS.genre.button[props.genre].background.index;\n vars[CSS_VARS_RAW.component.button.color] = CSS_VARS.genre.button[props.genre].color.index;\n vars[CSS_VARS_RAW.component.button.border] = CSS_VARS.genre.button[props.genre].border.index;\n\n vars[CSS_VARS_RAW.component.button.height] = CSS_VARS.size[props.size].height;\n vars[CSS_VARS_RAW.component.button.padding] = CSS_VARS.size[props.size].padding;\n vars[CSS_VARS_RAW.component.button.radius] = CSS_VARS.size[props.size].radius;\n vars[CSS_VARS_RAW.component.button.gap] = `calc(${CSS_VARS.size[props.size].padding} - 2px)`;\n\n const style = setStyles([Object.keys(vars).length ? vars : undefined, propsStyle]);\n\n return { className, style };\n }, [\n props.className,\n propsStyle,\n props.genre,\n props.isDisabled,\n props.isFullSize,\n props.isHidden,\n props.isHiddenBorder,\n props.isMinWidthAsContent,\n props.isFullRadius,\n props.isWidthAsHeight,\n props.size,\n props.isZeroRadius,\n props.control,\n props.isZeroPadding,\n props.isSizeFitContent,\n ]);\n\n const { className: classNameIconGroup, style: styleIconGroup } = useMemo(() => {\n const className = setClasses([\n CSS_CLASS.component.button.iconGroup,\n\n props.isIconGroup && CSS_CLASS.component.button.iconGroupIsIconGroup,\n ]);\n\n const vars: Record<string, string> = {};\n\n if (hasIconGroupOrder) vars[CSS_VARS_RAW.component.button.iconGroupOrder] = String(iconGroupOrder ?? 'initial');\n\n const style = setStyles([Object.keys(vars).length ? vars : undefined]);\n\n return { className, style };\n }, [props.isIconGroup, hasIconGroupOrder, iconGroupOrder]);\n\n return (\n <button\n tabIndex={props.tabIndex}\n disabled={props.isDisabled}\n className={className}\n style={style}\n onClick={props.onClick}\n onFocus={props.onFocus}\n onMouseDown={props.onMouseDown}\n type={props.type ?? 'button'}\n ref={ref as Ref<HTMLButtonElement>}\n name={props.name}\n aria-label={props.ariaLabel}\n id={props.id}\n >\n {!props.isOnlyIcon && props.children && (\n <div className={classNameTypography} style={styleTypography}>\n {props.children}\n </div>\n )}\n <div className={classNameIconGroup} style={styleIconGroup}>\n {iconComponents}\n </div>\n </button>\n );\n};\n\nexport const Button = memo(ButtonComponent, areButtonPropsEqual);\nButton.displayName = 'Button';\n\nfunction areButtonPropsEqual(prev: IButton, next: IButton) {\n const { icons: prevIcons, style: prevStyle, sxTypography: prevSxTypography, ...prevRest } = prev;\n const { icons: nextIcons, style: nextStyle, sxTypography: nextSxTypography, ...nextRest } = next;\n\n return (\n isEqual(prevIcons, nextIcons) &&\n isEqual(prevStyle, nextStyle) &&\n isEqual(prevSxTypography, nextSxTypography) &&\n areShallowEqual(prevRest, nextRest)\n );\n}\n\nfunction areShallowEqual<T extends Record<string, unknown>>(prev: T, next: T) {\n const prevKeys = Object.keys(prev);\n const nextKeys = Object.keys(next);\n\n if (prevKeys.length !== nextKeys.length) return false;\n\n const nextKeysSet = new Set(nextKeys);\n\n return prevKeys.every((key) => nextKeysSet.has(key) && Object.is(prev[key], next[key]));\n}\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- const x=require("./chunk-Dd8m0Ver.cjs"),i=require("./utils-DCIq-5FL.cjs"),S=require("./functions-CZrZU5U0.cjs"),u=require("./icon-DyjaxKWq.cjs"),C=require("./hooks-use-merge-refs.cjs.js"),_=require("./hooks-use-typography-styles.cjs.js"),b=require("./error-aQfsl_Kl.cjs");let c=require("react/jsx-runtime"),t=require("react");var A=e=>{const s=C.useMergeRefs([(0,t.useRef)(null),e.ref]),{className:o,style:l}=_.useTypographyStyles({sx:{variant:i.EXTRA_VALUE.sizeToController[e.size],isNoUserSelect:!0,...e?.sxTypography},style:{order:0,display:"inline-flex"}}),{className:r,style:a}=(0,t.useMemo)(()=>{const h=S.setClasses([i.CSS_CLASS.component.checkbox.root,i.CSS_CLASS.control[e.isDisabled?"none":e.control??"boxShadow"],i.CSS_CLASS.transition.color,e.error?.isError&&i.CSS_CLASS.isError,e.isZeroRadius&&i.CSS_CLASS.component.checkbox.isZeroRadius,e.isHidden&&i.CSS_CLASS.component.checkbox.isHidden,e.isHiddenBorder&&i.CSS_CLASS.component.checkbox.isHiddenBorder,e.isFullRadius&&i.CSS_CLASS.component.checkbox.isFullRadius,e.isFullSize&&i.CSS_CLASS.component.checkbox.isFullSize,e.isWidthAsHeight&&i.CSS_CLASS.component.checkbox.isWidthAsHeight,e.isMinWidthAsContent&&i.CSS_CLASS.component.checkbox.isMinWidthAsContent,e.isOnlyIcon&&i.CSS_CLASS.component.checkbox.isOnlyIcon,e.className]),n={};return n[i.CSS_VARS_RAW.component.checkbox.background]=i.CSS_VARS.genre.checkbox[e.genre].background.index,n[i.CSS_VARS_RAW.component.checkbox.color]=i.CSS_VARS.genre.checkbox[e.genre].color.index,n[i.CSS_VARS_RAW.component.checkbox.border]=i.CSS_VARS.genre.checkbox[e.genre].border.index,n[i.CSS_VARS_RAW.component.checkbox.height]=i.CSS_VARS.size[e.size].height,n[i.CSS_VARS_RAW.component.checkbox.padding]=i.CSS_VARS.size[e.size].padding,n[i.CSS_VARS_RAW.component.checkbox.radius]=i.CSS_VARS.size[e.size].radius,n[i.CSS_VARS_RAW.component.checkbox.gap]=`calc(${i.CSS_VARS.size[e.size].padding} - 2px)`,{className:h,style:S.setStyles([Object.keys(n).length?n:void 0,e.style])}},[e.className,e.style,e.genre,e.isDisabled,e.isFullSize,e.isHidden,e.isHiddenBorder,e.isMinWidthAsContent,e.isFullRadius,e.isWidthAsHeight,e.size,e.error,e.isZeroRadius,e.isOnlyIcon,e.control]),d=(0,t.useCallback)(()=>{!e.isDisabled&&e.onChange&&e.onChange(!e.checked)},[e.isDisabled,e.onChange,e.checked]);return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)("button",{disabled:e.isDisabled,tabIndex:e.tabIndex,onClick:d,onFocus:e.onFocus,onMouseDown:e.onMouseDown,className:r,style:a,type:e.type??"button",ref:s,name:e.name,"aria-label":e.ariaLabel,id:e.id,children:[(0,c.jsx)(u.Icon,{...e.checked?e.view.true:e.view.false,size:(e.checked?e.view.true:e.view.false)?.size??e.size}),!e.isOnlyIcon&&e.children&&(0,c.jsx)("div",{className:o,style:l,children:e.children})]}),e?.error?.isError&&(0,c.jsx)(b.ErrorMessage,{size:e?.error.size??e.size,sxTypography:{size:"16px",weight:"400",...e?.error.sxTypography},...e.error})]})};Object.defineProperty(exports,"Checkbox",{enumerable:!0,get:function(){return A}});
1
+ const x=require("./chunk-Dd8m0Ver.cjs"),i=require("./utils-DCIq-5FL.cjs"),S=require("./functions-CZrZU5U0.cjs"),u=require("./icon-B6PvcNvO.cjs"),C=require("./hooks-use-merge-refs.cjs.js"),_=require("./hooks-use-typography-styles.cjs.js"),b=require("./error-aQfsl_Kl.cjs");let c=require("react/jsx-runtime"),t=require("react");var A=e=>{const s=C.useMergeRefs([(0,t.useRef)(null),e.ref]),{className:o,style:l}=_.useTypographyStyles({sx:{variant:i.EXTRA_VALUE.sizeToController[e.size],isNoUserSelect:!0,...e?.sxTypography},style:{order:0,display:"inline-flex"}}),{className:r,style:a}=(0,t.useMemo)(()=>{const h=S.setClasses([i.CSS_CLASS.component.checkbox.root,i.CSS_CLASS.control[e.isDisabled?"none":e.control??"boxShadow"],i.CSS_CLASS.transition.color,e.error?.isError&&i.CSS_CLASS.isError,e.isZeroRadius&&i.CSS_CLASS.component.checkbox.isZeroRadius,e.isHidden&&i.CSS_CLASS.component.checkbox.isHidden,e.isHiddenBorder&&i.CSS_CLASS.component.checkbox.isHiddenBorder,e.isFullRadius&&i.CSS_CLASS.component.checkbox.isFullRadius,e.isFullSize&&i.CSS_CLASS.component.checkbox.isFullSize,e.isWidthAsHeight&&i.CSS_CLASS.component.checkbox.isWidthAsHeight,e.isMinWidthAsContent&&i.CSS_CLASS.component.checkbox.isMinWidthAsContent,e.isOnlyIcon&&i.CSS_CLASS.component.checkbox.isOnlyIcon,e.className]),n={};return n[i.CSS_VARS_RAW.component.checkbox.background]=i.CSS_VARS.genre.checkbox[e.genre].background.index,n[i.CSS_VARS_RAW.component.checkbox.color]=i.CSS_VARS.genre.checkbox[e.genre].color.index,n[i.CSS_VARS_RAW.component.checkbox.border]=i.CSS_VARS.genre.checkbox[e.genre].border.index,n[i.CSS_VARS_RAW.component.checkbox.height]=i.CSS_VARS.size[e.size].height,n[i.CSS_VARS_RAW.component.checkbox.padding]=i.CSS_VARS.size[e.size].padding,n[i.CSS_VARS_RAW.component.checkbox.radius]=i.CSS_VARS.size[e.size].radius,n[i.CSS_VARS_RAW.component.checkbox.gap]=`calc(${i.CSS_VARS.size[e.size].padding} - 2px)`,{className:h,style:S.setStyles([Object.keys(n).length?n:void 0,e.style])}},[e.className,e.style,e.genre,e.isDisabled,e.isFullSize,e.isHidden,e.isHiddenBorder,e.isMinWidthAsContent,e.isFullRadius,e.isWidthAsHeight,e.size,e.error,e.isZeroRadius,e.isOnlyIcon,e.control]),d=(0,t.useCallback)(()=>{!e.isDisabled&&e.onChange&&e.onChange(!e.checked)},[e.isDisabled,e.onChange,e.checked]);return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)("button",{disabled:e.isDisabled,tabIndex:e.tabIndex,onClick:d,onFocus:e.onFocus,onMouseDown:e.onMouseDown,className:r,style:a,type:e.type??"button",ref:s,name:e.name,"aria-label":e.ariaLabel,id:e.id,children:[(0,c.jsx)(u.Icon,{...e.checked?e.view.true:e.view.false,size:(e.checked?e.view.true:e.view.false)?.size??e.size}),!e.isOnlyIcon&&e.children&&(0,c.jsx)("div",{className:o,style:l,children:e.children})]}),e?.error?.isError&&(0,c.jsx)(b.ErrorMessage,{size:e?.error.size??e.size,sxTypography:{size:"16px",weight:"400",...e?.error.sxTypography},...e.error})]})};Object.defineProperty(exports,"Checkbox",{enumerable:!0,get:function(){return A}});
2
2
 
3
- //# sourceMappingURL=checkbox-9ue4f3-6.cjs.map
3
+ //# sourceMappingURL=checkbox-B_eE5eQs.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox-9ue4f3-6.cjs","names":[],"sources":["../src/components/checkbox/component.tsx"],"sourcesContent":["import { ErrorMessage } from '@local/components/error';\nimport { Icon } from '@local/components/icon';\nimport { useMergeRefs } from '@local/hooks/use-merge-refs';\nimport { useTypographyStyles } from '@local/hooks/use-typography-styles';\nimport { CSS_CLASS, CSS_VARS, EXTRA_VALUE } from '@local/styles/utils';\nimport { CSS_VARS_RAW } from '@local/styles/utils/constants';\nimport { setClasses, setStyles } from '@local/styles/utils/functions';\n\nimport { FC, Ref, useCallback, useMemo, useRef } from 'react';\n\nimport { ICheckbox } from './component.types';\n\nexport const Checkbox: FC<ICheckbox> = (props) => {\n const refDefault = useRef<HTMLButtonElement>(null);\n\n const ref = useMergeRefs([refDefault, props.ref]);\n\n const { className: classNameTypography, style: styleTypography } = useTypographyStyles({\n sx: { variant: EXTRA_VALUE.sizeToController[props.size], isNoUserSelect: true, ...props?.sxTypography },\n style: { order: 0, display: 'inline-flex' },\n });\n\n const { className, style } = useMemo(() => {\n const className = setClasses([\n CSS_CLASS.component.checkbox.root,\n CSS_CLASS.control[props.isDisabled ? 'none' : (props.control ?? 'boxShadow')],\n CSS_CLASS.transition.color,\n props.error?.isError && CSS_CLASS.isError,\n props.isZeroRadius && CSS_CLASS.component.checkbox.isZeroRadius,\n props.isHidden && CSS_CLASS.component.checkbox.isHidden,\n props.isHiddenBorder && CSS_CLASS.component.checkbox.isHiddenBorder,\n props.isFullRadius && CSS_CLASS.component.checkbox.isFullRadius,\n props.isFullSize && CSS_CLASS.component.checkbox.isFullSize,\n props.isWidthAsHeight && CSS_CLASS.component.checkbox.isWidthAsHeight,\n props.isMinWidthAsContent && CSS_CLASS.component.checkbox.isMinWidthAsContent,\n props.isOnlyIcon && CSS_CLASS.component.checkbox.isOnlyIcon,\n props.className,\n ]);\n\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.checkbox.background] = CSS_VARS.genre.checkbox[props.genre].background.index;\n vars[CSS_VARS_RAW.component.checkbox.color] = CSS_VARS.genre.checkbox[props.genre].color.index;\n vars[CSS_VARS_RAW.component.checkbox.border] = CSS_VARS.genre.checkbox[props.genre].border.index;\n\n vars[CSS_VARS_RAW.component.checkbox.height] = CSS_VARS.size[props.size].height;\n vars[CSS_VARS_RAW.component.checkbox.padding] = CSS_VARS.size[props.size].padding;\n vars[CSS_VARS_RAW.component.checkbox.radius] = CSS_VARS.size[props.size].radius;\n vars[CSS_VARS_RAW.component.checkbox.gap] = `calc(${CSS_VARS.size[props.size].padding} - 2px)`;\n\n const style = setStyles([Object.keys(vars).length ? vars : undefined, props.style]);\n\n return { className, style };\n }, [\n props.className,\n props.style,\n props.genre,\n props.isDisabled,\n props.isFullSize,\n props.isHidden,\n props.isHiddenBorder,\n props.isMinWidthAsContent,\n props.isFullRadius,\n props.isWidthAsHeight,\n props.size,\n props.error,\n props.isZeroRadius,\n props.isOnlyIcon,\n props.control,\n ]);\n const handleClick = useCallback(() => {\n if (!props.isDisabled && props.onChange) {\n props.onChange(!props.checked);\n }\n }, [props.isDisabled, props.onChange, props.checked]);\n return (\n <>\n <button\n disabled={props.isDisabled}\n tabIndex={props.tabIndex}\n onClick={handleClick}\n onFocus={props.onFocus}\n onMouseDown={props.onMouseDown}\n className={className}\n style={style}\n type={props.type ?? 'button'}\n ref={ref as Ref<HTMLButtonElement>}\n name={props.name}\n aria-label={props.ariaLabel}\n id={props.id}\n >\n <Icon\n {...(props.checked ? props.view.true : props.view.false)}\n size={(props.checked ? props.view.true : props.view.false)?.size ?? props.size}\n />\n {!props.isOnlyIcon && props.children && (\n <div className={classNameTypography} style={styleTypography}>\n {props.children}\n </div>\n )}\n </button>\n {props?.error?.isError && (\n <ErrorMessage\n size={props?.error.size ?? props.size}\n sxTypography={{ size: '16px', weight: '400', ...props?.error.sxTypography }}\n {...props.error}\n />\n )}\n </>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"checkbox-B_eE5eQs.cjs","names":[],"sources":["../src/components/checkbox/component.tsx"],"sourcesContent":["import { ErrorMessage } from '@local/components/error';\nimport { Icon } from '@local/components/icon';\nimport { useMergeRefs } from '@local/hooks/use-merge-refs';\nimport { useTypographyStyles } from '@local/hooks/use-typography-styles';\nimport { CSS_CLASS, CSS_VARS, EXTRA_VALUE } from '@local/styles/utils';\nimport { CSS_VARS_RAW } from '@local/styles/utils/constants';\nimport { setClasses, setStyles } from '@local/styles/utils/functions';\n\nimport { FC, Ref, useCallback, useMemo, useRef } from 'react';\n\nimport { ICheckbox } from './component.types';\n\nexport const Checkbox: FC<ICheckbox> = (props) => {\n const refDefault = useRef<HTMLButtonElement>(null);\n\n const ref = useMergeRefs([refDefault, props.ref]);\n\n const { className: classNameTypography, style: styleTypography } = useTypographyStyles({\n sx: { variant: EXTRA_VALUE.sizeToController[props.size], isNoUserSelect: true, ...props?.sxTypography },\n style: { order: 0, display: 'inline-flex' },\n });\n\n const { className, style } = useMemo(() => {\n const className = setClasses([\n CSS_CLASS.component.checkbox.root,\n CSS_CLASS.control[props.isDisabled ? 'none' : (props.control ?? 'boxShadow')],\n CSS_CLASS.transition.color,\n props.error?.isError && CSS_CLASS.isError,\n props.isZeroRadius && CSS_CLASS.component.checkbox.isZeroRadius,\n props.isHidden && CSS_CLASS.component.checkbox.isHidden,\n props.isHiddenBorder && CSS_CLASS.component.checkbox.isHiddenBorder,\n props.isFullRadius && CSS_CLASS.component.checkbox.isFullRadius,\n props.isFullSize && CSS_CLASS.component.checkbox.isFullSize,\n props.isWidthAsHeight && CSS_CLASS.component.checkbox.isWidthAsHeight,\n props.isMinWidthAsContent && CSS_CLASS.component.checkbox.isMinWidthAsContent,\n props.isOnlyIcon && CSS_CLASS.component.checkbox.isOnlyIcon,\n props.className,\n ]);\n\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.checkbox.background] = CSS_VARS.genre.checkbox[props.genre].background.index;\n vars[CSS_VARS_RAW.component.checkbox.color] = CSS_VARS.genre.checkbox[props.genre].color.index;\n vars[CSS_VARS_RAW.component.checkbox.border] = CSS_VARS.genre.checkbox[props.genre].border.index;\n\n vars[CSS_VARS_RAW.component.checkbox.height] = CSS_VARS.size[props.size].height;\n vars[CSS_VARS_RAW.component.checkbox.padding] = CSS_VARS.size[props.size].padding;\n vars[CSS_VARS_RAW.component.checkbox.radius] = CSS_VARS.size[props.size].radius;\n vars[CSS_VARS_RAW.component.checkbox.gap] = `calc(${CSS_VARS.size[props.size].padding} - 2px)`;\n\n const style = setStyles([Object.keys(vars).length ? vars : undefined, props.style]);\n\n return { className, style };\n }, [\n props.className,\n props.style,\n props.genre,\n props.isDisabled,\n props.isFullSize,\n props.isHidden,\n props.isHiddenBorder,\n props.isMinWidthAsContent,\n props.isFullRadius,\n props.isWidthAsHeight,\n props.size,\n props.error,\n props.isZeroRadius,\n props.isOnlyIcon,\n props.control,\n ]);\n const handleClick = useCallback(() => {\n if (!props.isDisabled && props.onChange) {\n props.onChange(!props.checked);\n }\n }, [props.isDisabled, props.onChange, props.checked]);\n return (\n <>\n <button\n disabled={props.isDisabled}\n tabIndex={props.tabIndex}\n onClick={handleClick}\n onFocus={props.onFocus}\n onMouseDown={props.onMouseDown}\n className={className}\n style={style}\n type={props.type ?? 'button'}\n ref={ref as Ref<HTMLButtonElement>}\n name={props.name}\n aria-label={props.ariaLabel}\n id={props.id}\n >\n <Icon\n {...(props.checked ? props.view.true : props.view.false)}\n size={(props.checked ? props.view.true : props.view.false)?.size ?? props.size}\n />\n {!props.isOnlyIcon && props.children && (\n <div className={classNameTypography} style={styleTypography}>\n {props.children}\n </div>\n )}\n </button>\n {props?.error?.isError && (\n <ErrorMessage\n size={props?.error.size ?? props.size}\n sxTypography={{ size: '16px', weight: '400', ...props?.error.sxTypography }}\n {...props.error}\n />\n )}\n </>\n );\n};\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { i as c, n as i, r as t, t as x } from "./utils-BRgi6734.js";
2
2
  import { n as u, t as g } from "./functions-DzX-pTN8.js";
3
- import { r as k } from "./icon-Y-IZxLXB.js";
3
+ import { r as k } from "./icon-okw710zo.js";
4
4
  import { useMergeRefs as y } from "./hooks-use-merge-refs.es.js";
5
5
  import { useTypographyStyles as z } from "./hooks-use-typography-styles.es.js";
6
6
  import { t as S } from "./error-iaB6e_aq.js";
@@ -95,4 +95,4 @@ export {
95
95
  I as t
96
96
  };
97
97
 
98
- //# sourceMappingURL=checkbox-TW5VSNui.js.map
98
+ //# sourceMappingURL=checkbox-CLGIqCRV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox-TW5VSNui.js","names":[],"sources":["../src/components/checkbox/component.tsx"],"sourcesContent":["import { ErrorMessage } from '@local/components/error';\nimport { Icon } from '@local/components/icon';\nimport { useMergeRefs } from '@local/hooks/use-merge-refs';\nimport { useTypographyStyles } from '@local/hooks/use-typography-styles';\nimport { CSS_CLASS, CSS_VARS, EXTRA_VALUE } from '@local/styles/utils';\nimport { CSS_VARS_RAW } from '@local/styles/utils/constants';\nimport { setClasses, setStyles } from '@local/styles/utils/functions';\n\nimport { FC, Ref, useCallback, useMemo, useRef } from 'react';\n\nimport { ICheckbox } from './component.types';\n\nexport const Checkbox: FC<ICheckbox> = (props) => {\n const refDefault = useRef<HTMLButtonElement>(null);\n\n const ref = useMergeRefs([refDefault, props.ref]);\n\n const { className: classNameTypography, style: styleTypography } = useTypographyStyles({\n sx: { variant: EXTRA_VALUE.sizeToController[props.size], isNoUserSelect: true, ...props?.sxTypography },\n style: { order: 0, display: 'inline-flex' },\n });\n\n const { className, style } = useMemo(() => {\n const className = setClasses([\n CSS_CLASS.component.checkbox.root,\n CSS_CLASS.control[props.isDisabled ? 'none' : (props.control ?? 'boxShadow')],\n CSS_CLASS.transition.color,\n props.error?.isError && CSS_CLASS.isError,\n props.isZeroRadius && CSS_CLASS.component.checkbox.isZeroRadius,\n props.isHidden && CSS_CLASS.component.checkbox.isHidden,\n props.isHiddenBorder && CSS_CLASS.component.checkbox.isHiddenBorder,\n props.isFullRadius && CSS_CLASS.component.checkbox.isFullRadius,\n props.isFullSize && CSS_CLASS.component.checkbox.isFullSize,\n props.isWidthAsHeight && CSS_CLASS.component.checkbox.isWidthAsHeight,\n props.isMinWidthAsContent && CSS_CLASS.component.checkbox.isMinWidthAsContent,\n props.isOnlyIcon && CSS_CLASS.component.checkbox.isOnlyIcon,\n props.className,\n ]);\n\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.checkbox.background] = CSS_VARS.genre.checkbox[props.genre].background.index;\n vars[CSS_VARS_RAW.component.checkbox.color] = CSS_VARS.genre.checkbox[props.genre].color.index;\n vars[CSS_VARS_RAW.component.checkbox.border] = CSS_VARS.genre.checkbox[props.genre].border.index;\n\n vars[CSS_VARS_RAW.component.checkbox.height] = CSS_VARS.size[props.size].height;\n vars[CSS_VARS_RAW.component.checkbox.padding] = CSS_VARS.size[props.size].padding;\n vars[CSS_VARS_RAW.component.checkbox.radius] = CSS_VARS.size[props.size].radius;\n vars[CSS_VARS_RAW.component.checkbox.gap] = `calc(${CSS_VARS.size[props.size].padding} - 2px)`;\n\n const style = setStyles([Object.keys(vars).length ? vars : undefined, props.style]);\n\n return { className, style };\n }, [\n props.className,\n props.style,\n props.genre,\n props.isDisabled,\n props.isFullSize,\n props.isHidden,\n props.isHiddenBorder,\n props.isMinWidthAsContent,\n props.isFullRadius,\n props.isWidthAsHeight,\n props.size,\n props.error,\n props.isZeroRadius,\n props.isOnlyIcon,\n props.control,\n ]);\n const handleClick = useCallback(() => {\n if (!props.isDisabled && props.onChange) {\n props.onChange(!props.checked);\n }\n }, [props.isDisabled, props.onChange, props.checked]);\n return (\n <>\n <button\n disabled={props.isDisabled}\n tabIndex={props.tabIndex}\n onClick={handleClick}\n onFocus={props.onFocus}\n onMouseDown={props.onMouseDown}\n className={className}\n style={style}\n type={props.type ?? 'button'}\n ref={ref as Ref<HTMLButtonElement>}\n name={props.name}\n aria-label={props.ariaLabel}\n id={props.id}\n >\n <Icon\n {...(props.checked ? props.view.true : props.view.false)}\n size={(props.checked ? props.view.true : props.view.false)?.size ?? props.size}\n />\n {!props.isOnlyIcon && props.children && (\n <div className={classNameTypography} style={styleTypography}>\n {props.children}\n </div>\n )}\n </button>\n {props?.error?.isError && (\n <ErrorMessage\n size={props?.error.size ?? props.size}\n sxTypography={{ size: '16px', weight: '400', ...props?.error.sxTypography }}\n {...props.error}\n />\n )}\n </>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"checkbox-CLGIqCRV.js","names":[],"sources":["../src/components/checkbox/component.tsx"],"sourcesContent":["import { ErrorMessage } from '@local/components/error';\nimport { Icon } from '@local/components/icon';\nimport { useMergeRefs } from '@local/hooks/use-merge-refs';\nimport { useTypographyStyles } from '@local/hooks/use-typography-styles';\nimport { CSS_CLASS, CSS_VARS, EXTRA_VALUE } from '@local/styles/utils';\nimport { CSS_VARS_RAW } from '@local/styles/utils/constants';\nimport { setClasses, setStyles } from '@local/styles/utils/functions';\n\nimport { FC, Ref, useCallback, useMemo, useRef } from 'react';\n\nimport { ICheckbox } from './component.types';\n\nexport const Checkbox: FC<ICheckbox> = (props) => {\n const refDefault = useRef<HTMLButtonElement>(null);\n\n const ref = useMergeRefs([refDefault, props.ref]);\n\n const { className: classNameTypography, style: styleTypography } = useTypographyStyles({\n sx: { variant: EXTRA_VALUE.sizeToController[props.size], isNoUserSelect: true, ...props?.sxTypography },\n style: { order: 0, display: 'inline-flex' },\n });\n\n const { className, style } = useMemo(() => {\n const className = setClasses([\n CSS_CLASS.component.checkbox.root,\n CSS_CLASS.control[props.isDisabled ? 'none' : (props.control ?? 'boxShadow')],\n CSS_CLASS.transition.color,\n props.error?.isError && CSS_CLASS.isError,\n props.isZeroRadius && CSS_CLASS.component.checkbox.isZeroRadius,\n props.isHidden && CSS_CLASS.component.checkbox.isHidden,\n props.isHiddenBorder && CSS_CLASS.component.checkbox.isHiddenBorder,\n props.isFullRadius && CSS_CLASS.component.checkbox.isFullRadius,\n props.isFullSize && CSS_CLASS.component.checkbox.isFullSize,\n props.isWidthAsHeight && CSS_CLASS.component.checkbox.isWidthAsHeight,\n props.isMinWidthAsContent && CSS_CLASS.component.checkbox.isMinWidthAsContent,\n props.isOnlyIcon && CSS_CLASS.component.checkbox.isOnlyIcon,\n props.className,\n ]);\n\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.checkbox.background] = CSS_VARS.genre.checkbox[props.genre].background.index;\n vars[CSS_VARS_RAW.component.checkbox.color] = CSS_VARS.genre.checkbox[props.genre].color.index;\n vars[CSS_VARS_RAW.component.checkbox.border] = CSS_VARS.genre.checkbox[props.genre].border.index;\n\n vars[CSS_VARS_RAW.component.checkbox.height] = CSS_VARS.size[props.size].height;\n vars[CSS_VARS_RAW.component.checkbox.padding] = CSS_VARS.size[props.size].padding;\n vars[CSS_VARS_RAW.component.checkbox.radius] = CSS_VARS.size[props.size].radius;\n vars[CSS_VARS_RAW.component.checkbox.gap] = `calc(${CSS_VARS.size[props.size].padding} - 2px)`;\n\n const style = setStyles([Object.keys(vars).length ? vars : undefined, props.style]);\n\n return { className, style };\n }, [\n props.className,\n props.style,\n props.genre,\n props.isDisabled,\n props.isFullSize,\n props.isHidden,\n props.isHiddenBorder,\n props.isMinWidthAsContent,\n props.isFullRadius,\n props.isWidthAsHeight,\n props.size,\n props.error,\n props.isZeroRadius,\n props.isOnlyIcon,\n props.control,\n ]);\n const handleClick = useCallback(() => {\n if (!props.isDisabled && props.onChange) {\n props.onChange(!props.checked);\n }\n }, [props.isDisabled, props.onChange, props.checked]);\n return (\n <>\n <button\n disabled={props.isDisabled}\n tabIndex={props.tabIndex}\n onClick={handleClick}\n onFocus={props.onFocus}\n onMouseDown={props.onMouseDown}\n className={className}\n style={style}\n type={props.type ?? 'button'}\n ref={ref as Ref<HTMLButtonElement>}\n name={props.name}\n aria-label={props.ariaLabel}\n id={props.id}\n >\n <Icon\n {...(props.checked ? props.view.true : props.view.false)}\n size={(props.checked ? props.view.true : props.view.false)?.size ?? props.size}\n />\n {!props.isOnlyIcon && props.children && (\n <div className={classNameTypography} style={styleTypography}>\n {props.children}\n </div>\n )}\n </button>\n {props?.error?.isError && (\n <ErrorMessage\n size={props?.error.size ?? props.size}\n sxTypography={{ size: '16px', weight: '400', ...props?.error.sxTypography }}\n {...props.error}\n />\n )}\n </>\n );\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./chunk-Dd8m0Ver.cjs"),e=require("./button-C1H35JQG.cjs");exports.Button=e.Button;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./chunk-Dd8m0Ver.cjs"),e=require("./button-Cl4532xK.cjs");exports.Button=e.Button;
@@ -1,4 +1,4 @@
1
- import { t as o } from "./button-9k2nzpqW.js";
1
+ import { t as o } from "./button-ygPLb-n_.js";
2
2
  export {
3
3
  o as Button
4
4
  };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./chunk-Dd8m0Ver.cjs"),e=require("./checkbox-9ue4f3-6.cjs");exports.Checkbox=e.Checkbox;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./chunk-Dd8m0Ver.cjs"),e=require("./checkbox-B_eE5eQs.cjs");exports.Checkbox=e.Checkbox;
@@ -1,4 +1,4 @@
1
- import { t as r } from "./checkbox-TW5VSNui.js";
1
+ import { t as r } from "./checkbox-CLGIqCRV.js";
2
2
  export {
3
3
  r as Checkbox
4
4
  };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./chunk-Dd8m0Ver.cjs"),e=require("./date-picker-DRXvfRZx.cjs");exports.DatePicker=e.DatePicker;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./chunk-Dd8m0Ver.cjs"),e=require("./date-picker-CexAqJgp.cjs");exports.DatePicker=e.DatePicker;
@@ -1,4 +1,4 @@
1
- import { t } from "./date-picker-Sw6n-RRw.js";
1
+ import { t } from "./date-picker-WGlcoobG.js";
2
2
  export {
3
3
  t as DatePicker
4
4
  };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./chunk-Dd8m0Ver.cjs"),e=require("./icon-DyjaxKWq.cjs");exports.Icon=e.Icon;exports.THEME_MAP=e.THEME_MAP;exports.getIconComponents=e.getIconComponents;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./chunk-Dd8m0Ver.cjs"),e=require("./icon-B6PvcNvO.cjs");exports.Icon=e.Icon;exports.THEME_MAP=e.THEME_MAP;exports.getIconComponents=e.getIconComponents;
@@ -1,4 +1,4 @@
1
- import { n, r as t, t as r } from "./icon-Y-IZxLXB.js";
1
+ import { n, r as t, t as r } from "./icon-okw710zo.js";
2
2
  export {
3
3
  t as Icon,
4
4
  n as THEME_MAP,
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./chunk-Dd8m0Ver.cjs"),e=require("./pagination-CzmrFLcs.cjs");exports.Pagination=e.Pagination;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./chunk-Dd8m0Ver.cjs"),e=require("./pagination-ClW-z5EV.cjs");exports.Pagination=e.Pagination;
@@ -1,4 +1,4 @@
1
- import { t } from "./pagination-DWlnuh1H.js";
1
+ import { t } from "./pagination-Dnl1v3VL.js";
2
2
  export {
3
3
  t as Pagination
4
4
  };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./chunk-Dd8m0Ver.cjs"),e=require("./select-DcgzvPvR.cjs");exports.Select=e.Select;exports.SelectMonth=e.SelectMonth;exports.SelectMonths=e.SelectMonths;exports.SelectYear=e.SelectYear;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./chunk-Dd8m0Ver.cjs"),e=require("./select-C2lLQlEy.cjs");exports.Select=e.Select;exports.SelectMonth=e.SelectMonth;exports.SelectMonths=e.SelectMonths;exports.SelectYear=e.SelectYear;
@@ -1,4 +1,4 @@
1
- import { a as t, n as a, r as o, t as r } from "./select-Bn-24dwy.js";
1
+ import { a as t, n as a, r as o, t as r } from "./select-9C2iAXLx.js";
2
2
  export {
3
3
  t as Select,
4
4
  r as SelectMonth,
@@ -1,3 +1,2 @@
1
- import { FC } from 'react';
2
1
  import { IButton } from './component.types';
3
- export declare const Button: FC<IButton>;
2
+ export declare const Button: import('react').NamedExoticComponent<IButton>;
@@ -1,5 +1,5 @@
1
1
  import { IIcon } from './component.types';
2
- export declare const Icon: (props: IIcon) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const Icon: import('react').MemoExoticComponent<(props: IIcon) => import("react/jsx-runtime").JSX.Element>;
3
3
  export declare function getIconId(props: {
4
4
  type: string;
5
5
  name: string;
@@ -1,5 +1,7 @@
1
1
  export declare function useInjectSprites(urls: string[]): void;
2
- export declare function useLazyInjectSprite(url: string): {
2
+ type SpriteState = {
3
3
  loaded: boolean;
4
4
  error: Error | null;
5
5
  };
6
+ export declare function useLazyInjectSprite(url: string): SpriteState;
7
+ export {};
@@ -1,6 +1,6 @@
1
1
  import { n as u, r as H } from "./utils-BRgi6734.js";
2
2
  import { t as V } from "./functions-DzX-pTN8.js";
3
- import { n as j } from "./preview-C-mtYSGG.js";
3
+ import { n as j } from "./preview-DVk-Ykii.js";
4
4
  import { n as E, t as W } from "./dist-ck-7oUux.js";
5
5
  import { t as _ } from "./context-screen-width-Cq_B7IVp.js";
6
6
  import { jsx as g, jsxs as f } from "react/jsx-runtime";
@@ -414,4 +414,4 @@ export {
414
414
  It as t
415
415
  };
416
416
 
417
- //# sourceMappingURL=context-app-CxNgCfd2.js.map
417
+ //# sourceMappingURL=context-app-DhxAgIBE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-app-CxNgCfd2.js","names":[],"sources":["../src/contexts/context-app/context.styles.ts","../src/contexts/context-app/context.tsx","../src/contexts/context-app/context.hooks.ts"],"sourcesContent":["import { CSS_VARS, IThemePalette } from '@local/styles/utils';\n\nimport { CSSProperties } from 'react';\n\nimport { IAppProviderOutletStyled } from './context.types';\n\ntype IAppOutletParts = IAppProviderOutletStyled;\n\nconst toPx = (value?: number | string | null) => (typeof value === 'number' ? `${value}px` : (value ?? '0px'));\n\nconst generateGridTemplateAreas = (props: IAppOutletParts) => {\n return `\n \"notification notification notification\"\n \"${props.leftAside?.isTopHeader ? 'leftAside' : 'header'} header ${props.rightAside?.isTopHeader ? 'rightAside' : 'header'}\"\n \"${props.leftAside?.isTopHeader ? 'leftAside' : props.leftAside?.isTopNav ? 'leftAside' : 'nav'} nav ${props.rightAside?.isTopHeader ? 'rightAside' : props.rightAside?.isTopNav ? 'rightAside' : 'nav'}\"\n \"leftAside children rightAside\"\n \"${props.leftAside?.isTopFooter ? 'leftAside' : 'footer'} footer ${props.rightAside?.isTopFooter ? 'rightAside' : 'footer'}\"\n `;\n};\n\nexport const getProviderAppWrapperStyle = (bgColor: IThemePalette, bgImage: string | null): CSSProperties => ({\n backgroundColor: CSS_VARS.palette[bgColor],\n backgroundImage: bgImage ? `url(${bgImage})` : undefined,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat',\n});\n\nexport const getProviderAppOutletStyle = (props: IAppOutletParts): CSSProperties => ({\n gridTemplateAreas: generateGridTemplateAreas(props),\n gridTemplateColumns: `${toPx(props.leftAside?.length)} 1fr ${toPx(props.rightAside?.length)}`,\n gridTemplateRows: `${toPx(props.notification?.length)} ${toPx(props.header?.length)} ${toPx(props.nav?.length)} 1fr ${toPx(props.footer?.length)}`,\n});\n\nexport const getProviderAppOutletChildrenStyle = (props: IAppOutletParts): CSSProperties => ({\n zIndex: props.main?.zIndex ?? 'auto',\n overflow: props.isScrollOutlet ? 'auto' : 'visible',\n});\n\nexport const getProviderAppOutletNotificationStyle = (props: IAppOutletParts): CSSProperties => ({\n zIndex: props.notification?.zIndex ?? 'auto',\n});\n\nexport const getProviderAppOutletHeaderStyle = (props: IAppOutletParts): CSSProperties => ({\n zIndex: props.header?.zIndex ?? 'auto',\n});\n\nexport const getProviderAppOutletFooterStyle = (props: IAppOutletParts): CSSProperties => ({\n zIndex: props.footer?.zIndex ?? 'auto',\n});\n\nexport const getProviderAppOutletNavStyle = (props: IAppOutletParts): CSSProperties => ({\n zIndex: props.nav?.zIndex ?? 'auto',\n});\n\nexport const getProviderAppOutletLeftAsideStyle = (props: IAppOutletParts): CSSProperties => ({\n zIndex: props.leftAside?.zIndex ?? 'auto',\n});\n\nexport const getProviderAppOutletRightAsideStyle = (props: IAppOutletParts): CSSProperties => ({\n zIndex: props.rightAside?.zIndex ?? 'auto',\n});\n","import { IPreviewAdditional, Preview } from '@local/areas/preview';\nimport { useScreenWidth } from '@local/contexts/context-screen-width';\nimport { CSS_CLASS, CSS_VARS, IThemePalette } from '@local/styles/utils';\nimport { setClasses } from '@local/styles/utils/functions';\n\nimport { FC, useCallback, useEffect, useMemo, useState } from 'react';\nimport { createContext } from 'use-context-selector';\n\nimport {\n getProviderAppOutletChildrenStyle,\n getProviderAppOutletFooterStyle,\n getProviderAppOutletHeaderStyle,\n getProviderAppOutletLeftAsideStyle,\n getProviderAppOutletNavStyle,\n getProviderAppOutletNotificationStyle,\n getProviderAppOutletRightAsideStyle,\n getProviderAppOutletStyle,\n getProviderAppWrapperStyle,\n} from './context.styles';\nimport { IAppContext, IAppProvider, IAppProviderElement, IAppProviderOutletStyled } from './context.types';\n\nexport const AppContext = createContext<IAppContext | null>(null);\n\nexport const ProviderApp: FC<IAppProvider> = (props) => {\n const { bgColor, changeBgColor, historyBgColor, setDefaultBgColor } = useBgColor(props.defaultBgColor);\n const { statusBarColor, changeStatusBarColor, historyStatusBarColor, setDefaultStatusBarColor } = useStatusBarColor(\n props.defaultStatusBarColor,\n );\n const { bgImage, changeBgImage, historyBgImage, setDefaultBgImage } = useBgImage(props.defaultBgImage || null);\n const { title, changeTitle, setHistoryTitle, setDefaultTitle } = useTitle(props.defaultTitle || null);\n const { description, changeDescription, historyDescription, setDefaultDescription } = useDescription(\n props.defaultDescription,\n );\n const { changePreview, previewProps } = usePreview(props.defaultPreview);\n\n const { breakpoint, type, orientation } = useScreenWidth(['breakpoint', 'type', 'orientation']);\n\n const getValueByBreakpoint = useCallback(\n (lengthByBreakpoint: IAppProviderElement['length']) => {\n if (!lengthByBreakpoint) return null;\n if (type === 'orientation' && lengthByBreakpoint.orientation) {\n const value = lengthByBreakpoint.orientation?.[orientation];\n return value ?? null;\n }\n if (lengthByBreakpoint.breakpoint && lengthByBreakpoint.breakpoint) {\n if (breakpoint === 'default') return lengthByBreakpoint.default ?? null;\n const value = lengthByBreakpoint.breakpoint?.[breakpoint];\n return value ?? null;\n }\n },\n [breakpoint, orientation, type],\n );\n\n const outletStyledProps: IAppProviderOutletStyled = useMemo(\n () => ({\n isScrollOutlet: props.isScrollOutlet,\n main: props.main,\n notification: props.notification\n ? {\n component: props.notification.component,\n length: getValueByBreakpoint(props.notification.length),\n zIndex: props.notification.zIndex,\n }\n : undefined,\n header: props.header\n ? {\n component: props.header.component,\n length: getValueByBreakpoint(props.header.length),\n zIndex: props.header.zIndex,\n }\n : undefined,\n nav: props.nav\n ? {\n component: props.nav.component,\n length: getValueByBreakpoint(props.nav.length),\n zIndex: props.nav.zIndex,\n }\n : undefined,\n footer: props.footer\n ? {\n component: props.footer.component,\n length: getValueByBreakpoint(props.footer.length),\n zIndex: props.footer.zIndex,\n }\n : undefined,\n leftAside: props.leftAside\n ? {\n component: props.leftAside.component,\n length: getValueByBreakpoint(props.leftAside.length),\n zIndex: props.leftAside.zIndex,\n isTopHeader: props.leftAside.isTopHeader,\n isTopFooter: props.leftAside.isTopFooter,\n isTopNav: props.leftAside.isTopNav,\n }\n : undefined,\n rightAside: props.rightAside\n ? {\n component: props.rightAside.component,\n length: getValueByBreakpoint(props.rightAside.length),\n zIndex: props.rightAside.zIndex,\n isTopHeader: props.rightAside.isTopHeader,\n isTopFooter: props.rightAside.isTopFooter,\n isTopNav: props.rightAside.isTopNav,\n }\n : undefined,\n }),\n [\n props.footer,\n props.header,\n props.leftAside,\n props.main,\n props.nav,\n props.notification,\n props.rightAside,\n props.isScrollOutlet,\n getValueByBreakpoint,\n ],\n );\n\n return (\n <AppContext.Provider\n value={{\n changePreview,\n changeStatusBarColor,\n changeBgColor,\n changeBgImage,\n changeTitle,\n changeDescription,\n historyStatusBarColor,\n historyBgColor,\n historyBgImage,\n setHistoryTitle,\n historyDescription,\n setDefaultStatusBarColor,\n setDefaultBgColor,\n setDefaultBgImage,\n setDefaultTitle,\n setDefaultDescription,\n }}\n >\n <title>{title}</title>\n <meta name='description' content={description} />\n <meta name='theme-color' content={CSS_VARS.palette[statusBarColor]} />\n <meta name='apple-mobile-web-app-status-bar-style' content='default' />\n <meta name='mobile-web-app-capable' content='yes' />\n <Preview {...previewProps}>\n <div className={CSS_CLASS.context.app.wrapper} style={getProviderAppWrapperStyle(bgColor, bgImage)}>\n <div\n className={setClasses([CSS_CLASS.context.app.outlet, CSS_CLASS.transition.grid])}\n style={getProviderAppOutletStyle(outletStyledProps)}\n >\n {outletStyledProps.notification?.length ? (\n <section\n className={CSS_CLASS.context.app.outletNotification}\n style={getProviderAppOutletNotificationStyle(outletStyledProps)}\n >\n {props.notification?.component || null}\n </section>\n ) : null}\n\n {outletStyledProps.header?.length ? (\n <header\n className={CSS_CLASS.context.app.outletHeader}\n style={getProviderAppOutletHeaderStyle(outletStyledProps)}\n >\n {props.header?.component || null}\n </header>\n ) : null}\n\n {outletStyledProps.nav?.length ? (\n <nav className={CSS_CLASS.context.app.outletNav} style={getProviderAppOutletNavStyle(outletStyledProps)}>\n {props.nav?.component || null}\n </nav>\n ) : null}\n\n {outletStyledProps.leftAside?.length ? (\n <aside\n className={CSS_CLASS.context.app.outletLeftAside}\n style={getProviderAppOutletLeftAsideStyle(outletStyledProps)}\n >\n {props.leftAside?.component || null}\n </aside>\n ) : null}\n\n <main\n className={CSS_CLASS.context.app.outletChildren}\n style={getProviderAppOutletChildrenStyle(outletStyledProps)}\n >\n {props.children}\n </main>\n\n {outletStyledProps.rightAside?.length ? (\n <aside\n className={CSS_CLASS.context.app.outletRightAside}\n style={getProviderAppOutletRightAsideStyle(outletStyledProps)}\n >\n {props.rightAside?.component || null}\n </aside>\n ) : null}\n\n {outletStyledProps.footer?.length ? (\n <footer\n className={CSS_CLASS.context.app.outletFooter}\n style={getProviderAppOutletFooterStyle(outletStyledProps)}\n >\n {props.footer?.component || null}\n </footer>\n ) : null}\n </div>\n </div>\n </Preview>\n </AppContext.Provider>\n );\n};\n\n/**\n * Custom hook to manage preview properties.\n */\nconst usePreview = (defaultPreview: IAppProvider['defaultPreview']) => {\n const [previewProps, setIPreview] = useState(defaultPreview || { visible: true, defaultVisible: true });\n\n const changePreview = useCallback((newIPreview: IPreviewAdditional) => {\n setIPreview(newIPreview);\n }, []);\n\n useEffect(() => {\n if (defaultPreview) setIPreview(defaultPreview);\n }, [defaultPreview]);\n\n return { previewProps, changePreview };\n};\n\n/**\n * Custom hook to manage background color state with history tracking.\n */\ntype BgColorState = {\n bgColor: IThemePalette;\n bgColorHistory: IThemePalette[];\n bgColorIndex: number;\n};\n\nexport const useBgColor = (defaultColor: IThemePalette) => {\n const [state, setState] = useState<BgColorState>({\n bgColor: defaultColor,\n bgColorHistory: [defaultColor],\n bgColorIndex: 0,\n });\n\n const changeBgColor = useCallback((color: IThemePalette) => {\n setState((prev) => {\n const newHistory = [...prev.bgColorHistory.slice(0, prev.bgColorIndex + 1), color];\n return {\n bgColor: color,\n bgColorHistory: newHistory,\n bgColorIndex: newHistory.length - 1,\n };\n });\n }, []);\n\n const historyBgColor = useCallback((steps: number) => {\n setState((prev) => {\n const newIndex = prev.bgColorIndex + steps;\n if (newIndex >= 0 && newIndex < prev.bgColorHistory.length) {\n return {\n ...prev,\n bgColor: prev.bgColorHistory[newIndex],\n bgColorIndex: newIndex,\n };\n }\n return prev;\n });\n }, []);\n\n const setDefaultBgColor = useCallback(() => {\n setState({\n bgColor: defaultColor,\n bgColorHistory: [defaultColor],\n bgColorIndex: 0,\n });\n }, [defaultColor]);\n\n useEffect(() => {\n setState({\n bgColor: defaultColor,\n bgColorHistory: [defaultColor],\n bgColorIndex: 0,\n });\n }, [defaultColor]);\n\n return {\n bgColor: state.bgColor,\n changeBgColor,\n historyBgColor,\n setDefaultBgColor,\n bgColorIndex: state.bgColorIndex,\n };\n};\n\n/**\n * Custom hook to manage the status bar color with history tracking.\n */\ntype StatusBarColorState = {\n statusBarColor: IThemePalette;\n statusBarColorHistory: IThemePalette[];\n statusBarColorIndex: number;\n};\n\nexport const useStatusBarColor = (defaultColor: IThemePalette) => {\n const [state, setState] = useState<StatusBarColorState>({\n statusBarColor: defaultColor,\n statusBarColorHistory: [defaultColor],\n statusBarColorIndex: 0,\n });\n\n const changeStatusBarColor = useCallback((color: IThemePalette) => {\n setState((prev) => {\n const newHistory = [...prev.statusBarColorHistory.slice(0, prev.statusBarColorIndex + 1), color];\n return {\n statusBarColor: color,\n statusBarColorHistory: newHistory,\n statusBarColorIndex: newHistory.length - 1,\n };\n });\n }, []);\n\n const historyStatusBarColor = useCallback((steps: number) => {\n setState((prev) => {\n const newIndex = prev.statusBarColorIndex + steps;\n if (newIndex >= 0 && newIndex < prev.statusBarColorHistory.length) {\n return {\n ...prev,\n statusBarColor: prev.statusBarColorHistory[newIndex],\n statusBarColorIndex: newIndex,\n };\n }\n return prev;\n });\n }, []);\n\n const setDefaultStatusBarColor = useCallback(() => {\n setState({\n statusBarColor: defaultColor,\n statusBarColorHistory: [defaultColor],\n statusBarColorIndex: 0,\n });\n }, [defaultColor]);\n\n useEffect(() => {\n setState({\n statusBarColor: defaultColor,\n statusBarColorHistory: [defaultColor],\n statusBarColorIndex: 0,\n });\n }, [defaultColor]);\n\n return {\n statusBarColor: state.statusBarColor,\n changeStatusBarColor,\n historyStatusBarColor,\n setDefaultStatusBarColor,\n statusBarColorIndex: state.statusBarColorIndex,\n };\n};\n\n/**\n * Custom hook to manage background images with history.\n */\ntype BgImageState = {\n bgImage: string | null;\n bgImageHistory: (string | null)[];\n bgImageIndex: number;\n};\n\nexport const useBgImage = (defaultImage: string | null) => {\n const [state, setState] = useState<BgImageState>({\n bgImage: defaultImage,\n bgImageHistory: [defaultImage],\n bgImageIndex: 0,\n });\n\n const changeBgImage = useCallback((image: string | null) => {\n setState((prev) => {\n const newHistory = [...prev.bgImageHistory.slice(0, prev.bgImageIndex + 1), image];\n return {\n bgImage: image,\n bgImageHistory: newHistory,\n bgImageIndex: newHistory.length - 1,\n };\n });\n }, []);\n\n const historyBgImage = useCallback((steps: number) => {\n setState((prev) => {\n const newIndex = prev.bgImageIndex + steps;\n if (newIndex >= 0 && newIndex < prev.bgImageHistory.length) {\n return {\n ...prev,\n bgImage: prev.bgImageHistory[newIndex],\n bgImageIndex: newIndex,\n };\n }\n return prev;\n });\n }, []);\n\n const setDefaultBgImage = useCallback(() => {\n setState({\n bgImage: defaultImage,\n bgImageHistory: [defaultImage],\n bgImageIndex: 0,\n });\n }, [defaultImage]);\n\n useEffect(() => {\n setState({\n bgImage: defaultImage,\n bgImageHistory: [defaultImage],\n bgImageIndex: 0,\n });\n }, [defaultImage]);\n\n return {\n bgImage: state.bgImage,\n changeBgImage,\n historyBgImage,\n setDefaultBgImage,\n bgImageIndex: state.bgImageIndex,\n };\n};\n\ntype TitleState = {\n title: string | null;\n titleHistory: (string | null)[];\n titleIndex: number;\n};\n/**\n * Custom hook to manage the document title with history tracking.\n */\nconst useTitle = (defaultTitle: string | null) => {\n const [state, setState] = useState<TitleState>({\n title: defaultTitle,\n titleHistory: [defaultTitle],\n titleIndex: 0,\n });\n\n const changeTitle = useCallback((newTitle: string | null) => {\n setState((prev) => {\n const newHistory = [...prev.titleHistory.slice(0, prev.titleIndex + 1), newTitle];\n return {\n title: newTitle,\n titleHistory: newHistory,\n titleIndex: newHistory.length - 1,\n };\n });\n }, []);\n\n const setHistoryTitle = useCallback((steps: number) => {\n setState((prev) => {\n const newIndex = prev.titleIndex + steps;\n if (newIndex >= 0 && newIndex < prev.titleHistory.length) {\n return {\n ...prev,\n title: prev.titleHistory[newIndex],\n titleIndex: newIndex,\n };\n }\n return prev;\n });\n }, []);\n\n const setDefaultTitle = useCallback(() => {\n setState({\n title: defaultTitle,\n titleHistory: [defaultTitle],\n titleIndex: 0,\n });\n }, [defaultTitle]);\n\n useEffect(() => {\n setState({\n title: defaultTitle,\n titleHistory: [defaultTitle],\n titleIndex: 0,\n });\n }, [defaultTitle]);\n\n return {\n title: state.title,\n titleIndex: state.titleIndex,\n titleHistory: state.titleHistory,\n changeTitle,\n setHistoryTitle,\n setDefaultTitle,\n };\n};\n\n/**\n * Custom hook to manage a description with history tracking.\n */\ntype DescriptionState = {\n description: string;\n descriptionHistory: string[];\n descriptionIndex: number;\n};\n\nexport const useDescription = (defaultDescription: string) => {\n const [state, setState] = useState<DescriptionState>({\n description: defaultDescription,\n descriptionHistory: [defaultDescription],\n descriptionIndex: 0,\n });\n\n const changeDescription = useCallback((newDescription: string) => {\n setState((prev) => {\n const newHistory = [...prev.descriptionHistory.slice(0, prev.descriptionIndex + 1), newDescription];\n return {\n description: newDescription,\n descriptionHistory: newHistory,\n descriptionIndex: newHistory.length - 1,\n };\n });\n }, []);\n\n const historyDescription = useCallback((steps: number) => {\n setState((prev) => {\n const newIndex = prev.descriptionIndex + steps;\n if (newIndex >= 0 && newIndex < prev.descriptionHistory.length) {\n return {\n ...prev,\n description: prev.descriptionHistory[newIndex],\n descriptionIndex: newIndex,\n };\n }\n return prev;\n });\n }, []);\n\n const setDefaultDescription = useCallback(() => {\n setState({\n description: defaultDescription,\n descriptionHistory: [defaultDescription],\n descriptionIndex: 0,\n });\n }, [defaultDescription]);\n\n useEffect(() => {\n setState({\n description: defaultDescription,\n descriptionHistory: [defaultDescription],\n descriptionIndex: 0,\n });\n }, [defaultDescription]);\n\n return {\n description: state.description,\n changeDescription,\n historyDescription,\n setDefaultDescription,\n descriptionIndex: state.descriptionIndex,\n };\n};\n","import { useContextSelector } from 'use-context-selector';\n\nimport { AppContext } from './context';\nimport { IAppContext, IUseAppDependencies } from './context.types';\n\nexport const useApp = (props: IUseAppDependencies): IAppContext => {\n const context = useContextSelector(AppContext, (v) => {\n return v\n ? props.reduce((acc, prop) => {\n acc[prop] = v[prop];\n return acc;\n }, {} as any)\n : null;\n });\n if (!context) {\n throw new Error('useApp must be used within an AppContext');\n }\n return context;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"context-app-DhxAgIBE.js","names":[],"sources":["../src/contexts/context-app/context.styles.ts","../src/contexts/context-app/context.tsx","../src/contexts/context-app/context.hooks.ts"],"sourcesContent":["import { CSS_VARS, IThemePalette } from '@local/styles/utils';\n\nimport { CSSProperties } from 'react';\n\nimport { IAppProviderOutletStyled } from './context.types';\n\ntype IAppOutletParts = IAppProviderOutletStyled;\n\nconst toPx = (value?: number | string | null) => (typeof value === 'number' ? `${value}px` : (value ?? '0px'));\n\nconst generateGridTemplateAreas = (props: IAppOutletParts) => {\n return `\n \"notification notification notification\"\n \"${props.leftAside?.isTopHeader ? 'leftAside' : 'header'} header ${props.rightAside?.isTopHeader ? 'rightAside' : 'header'}\"\n \"${props.leftAside?.isTopHeader ? 'leftAside' : props.leftAside?.isTopNav ? 'leftAside' : 'nav'} nav ${props.rightAside?.isTopHeader ? 'rightAside' : props.rightAside?.isTopNav ? 'rightAside' : 'nav'}\"\n \"leftAside children rightAside\"\n \"${props.leftAside?.isTopFooter ? 'leftAside' : 'footer'} footer ${props.rightAside?.isTopFooter ? 'rightAside' : 'footer'}\"\n `;\n};\n\nexport const getProviderAppWrapperStyle = (bgColor: IThemePalette, bgImage: string | null): CSSProperties => ({\n backgroundColor: CSS_VARS.palette[bgColor],\n backgroundImage: bgImage ? `url(${bgImage})` : undefined,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat',\n});\n\nexport const getProviderAppOutletStyle = (props: IAppOutletParts): CSSProperties => ({\n gridTemplateAreas: generateGridTemplateAreas(props),\n gridTemplateColumns: `${toPx(props.leftAside?.length)} 1fr ${toPx(props.rightAside?.length)}`,\n gridTemplateRows: `${toPx(props.notification?.length)} ${toPx(props.header?.length)} ${toPx(props.nav?.length)} 1fr ${toPx(props.footer?.length)}`,\n});\n\nexport const getProviderAppOutletChildrenStyle = (props: IAppOutletParts): CSSProperties => ({\n zIndex: props.main?.zIndex ?? 'auto',\n overflow: props.isScrollOutlet ? 'auto' : 'visible',\n});\n\nexport const getProviderAppOutletNotificationStyle = (props: IAppOutletParts): CSSProperties => ({\n zIndex: props.notification?.zIndex ?? 'auto',\n});\n\nexport const getProviderAppOutletHeaderStyle = (props: IAppOutletParts): CSSProperties => ({\n zIndex: props.header?.zIndex ?? 'auto',\n});\n\nexport const getProviderAppOutletFooterStyle = (props: IAppOutletParts): CSSProperties => ({\n zIndex: props.footer?.zIndex ?? 'auto',\n});\n\nexport const getProviderAppOutletNavStyle = (props: IAppOutletParts): CSSProperties => ({\n zIndex: props.nav?.zIndex ?? 'auto',\n});\n\nexport const getProviderAppOutletLeftAsideStyle = (props: IAppOutletParts): CSSProperties => ({\n zIndex: props.leftAside?.zIndex ?? 'auto',\n});\n\nexport const getProviderAppOutletRightAsideStyle = (props: IAppOutletParts): CSSProperties => ({\n zIndex: props.rightAside?.zIndex ?? 'auto',\n});\n","import { IPreviewAdditional, Preview } from '@local/areas/preview';\nimport { useScreenWidth } from '@local/contexts/context-screen-width';\nimport { CSS_CLASS, CSS_VARS, IThemePalette } from '@local/styles/utils';\nimport { setClasses } from '@local/styles/utils/functions';\n\nimport { FC, useCallback, useEffect, useMemo, useState } from 'react';\nimport { createContext } from 'use-context-selector';\n\nimport {\n getProviderAppOutletChildrenStyle,\n getProviderAppOutletFooterStyle,\n getProviderAppOutletHeaderStyle,\n getProviderAppOutletLeftAsideStyle,\n getProviderAppOutletNavStyle,\n getProviderAppOutletNotificationStyle,\n getProviderAppOutletRightAsideStyle,\n getProviderAppOutletStyle,\n getProviderAppWrapperStyle,\n} from './context.styles';\nimport { IAppContext, IAppProvider, IAppProviderElement, IAppProviderOutletStyled } from './context.types';\n\nexport const AppContext = createContext<IAppContext | null>(null);\n\nexport const ProviderApp: FC<IAppProvider> = (props) => {\n const { bgColor, changeBgColor, historyBgColor, setDefaultBgColor } = useBgColor(props.defaultBgColor);\n const { statusBarColor, changeStatusBarColor, historyStatusBarColor, setDefaultStatusBarColor } = useStatusBarColor(\n props.defaultStatusBarColor,\n );\n const { bgImage, changeBgImage, historyBgImage, setDefaultBgImage } = useBgImage(props.defaultBgImage || null);\n const { title, changeTitle, setHistoryTitle, setDefaultTitle } = useTitle(props.defaultTitle || null);\n const { description, changeDescription, historyDescription, setDefaultDescription } = useDescription(\n props.defaultDescription,\n );\n const { changePreview, previewProps } = usePreview(props.defaultPreview);\n\n const { breakpoint, type, orientation } = useScreenWidth(['breakpoint', 'type', 'orientation']);\n\n const getValueByBreakpoint = useCallback(\n (lengthByBreakpoint: IAppProviderElement['length']) => {\n if (!lengthByBreakpoint) return null;\n if (type === 'orientation' && lengthByBreakpoint.orientation) {\n const value = lengthByBreakpoint.orientation?.[orientation];\n return value ?? null;\n }\n if (lengthByBreakpoint.breakpoint && lengthByBreakpoint.breakpoint) {\n if (breakpoint === 'default') return lengthByBreakpoint.default ?? null;\n const value = lengthByBreakpoint.breakpoint?.[breakpoint];\n return value ?? null;\n }\n },\n [breakpoint, orientation, type],\n );\n\n const outletStyledProps: IAppProviderOutletStyled = useMemo(\n () => ({\n isScrollOutlet: props.isScrollOutlet,\n main: props.main,\n notification: props.notification\n ? {\n component: props.notification.component,\n length: getValueByBreakpoint(props.notification.length),\n zIndex: props.notification.zIndex,\n }\n : undefined,\n header: props.header\n ? {\n component: props.header.component,\n length: getValueByBreakpoint(props.header.length),\n zIndex: props.header.zIndex,\n }\n : undefined,\n nav: props.nav\n ? {\n component: props.nav.component,\n length: getValueByBreakpoint(props.nav.length),\n zIndex: props.nav.zIndex,\n }\n : undefined,\n footer: props.footer\n ? {\n component: props.footer.component,\n length: getValueByBreakpoint(props.footer.length),\n zIndex: props.footer.zIndex,\n }\n : undefined,\n leftAside: props.leftAside\n ? {\n component: props.leftAside.component,\n length: getValueByBreakpoint(props.leftAside.length),\n zIndex: props.leftAside.zIndex,\n isTopHeader: props.leftAside.isTopHeader,\n isTopFooter: props.leftAside.isTopFooter,\n isTopNav: props.leftAside.isTopNav,\n }\n : undefined,\n rightAside: props.rightAside\n ? {\n component: props.rightAside.component,\n length: getValueByBreakpoint(props.rightAside.length),\n zIndex: props.rightAside.zIndex,\n isTopHeader: props.rightAside.isTopHeader,\n isTopFooter: props.rightAside.isTopFooter,\n isTopNav: props.rightAside.isTopNav,\n }\n : undefined,\n }),\n [\n props.footer,\n props.header,\n props.leftAside,\n props.main,\n props.nav,\n props.notification,\n props.rightAside,\n props.isScrollOutlet,\n getValueByBreakpoint,\n ],\n );\n\n return (\n <AppContext.Provider\n value={{\n changePreview,\n changeStatusBarColor,\n changeBgColor,\n changeBgImage,\n changeTitle,\n changeDescription,\n historyStatusBarColor,\n historyBgColor,\n historyBgImage,\n setHistoryTitle,\n historyDescription,\n setDefaultStatusBarColor,\n setDefaultBgColor,\n setDefaultBgImage,\n setDefaultTitle,\n setDefaultDescription,\n }}\n >\n <title>{title}</title>\n <meta name='description' content={description} />\n <meta name='theme-color' content={CSS_VARS.palette[statusBarColor]} />\n <meta name='apple-mobile-web-app-status-bar-style' content='default' />\n <meta name='mobile-web-app-capable' content='yes' />\n <Preview {...previewProps}>\n <div className={CSS_CLASS.context.app.wrapper} style={getProviderAppWrapperStyle(bgColor, bgImage)}>\n <div\n className={setClasses([CSS_CLASS.context.app.outlet, CSS_CLASS.transition.grid])}\n style={getProviderAppOutletStyle(outletStyledProps)}\n >\n {outletStyledProps.notification?.length ? (\n <section\n className={CSS_CLASS.context.app.outletNotification}\n style={getProviderAppOutletNotificationStyle(outletStyledProps)}\n >\n {props.notification?.component || null}\n </section>\n ) : null}\n\n {outletStyledProps.header?.length ? (\n <header\n className={CSS_CLASS.context.app.outletHeader}\n style={getProviderAppOutletHeaderStyle(outletStyledProps)}\n >\n {props.header?.component || null}\n </header>\n ) : null}\n\n {outletStyledProps.nav?.length ? (\n <nav className={CSS_CLASS.context.app.outletNav} style={getProviderAppOutletNavStyle(outletStyledProps)}>\n {props.nav?.component || null}\n </nav>\n ) : null}\n\n {outletStyledProps.leftAside?.length ? (\n <aside\n className={CSS_CLASS.context.app.outletLeftAside}\n style={getProviderAppOutletLeftAsideStyle(outletStyledProps)}\n >\n {props.leftAside?.component || null}\n </aside>\n ) : null}\n\n <main\n className={CSS_CLASS.context.app.outletChildren}\n style={getProviderAppOutletChildrenStyle(outletStyledProps)}\n >\n {props.children}\n </main>\n\n {outletStyledProps.rightAside?.length ? (\n <aside\n className={CSS_CLASS.context.app.outletRightAside}\n style={getProviderAppOutletRightAsideStyle(outletStyledProps)}\n >\n {props.rightAside?.component || null}\n </aside>\n ) : null}\n\n {outletStyledProps.footer?.length ? (\n <footer\n className={CSS_CLASS.context.app.outletFooter}\n style={getProviderAppOutletFooterStyle(outletStyledProps)}\n >\n {props.footer?.component || null}\n </footer>\n ) : null}\n </div>\n </div>\n </Preview>\n </AppContext.Provider>\n );\n};\n\n/**\n * Custom hook to manage preview properties.\n */\nconst usePreview = (defaultPreview: IAppProvider['defaultPreview']) => {\n const [previewProps, setIPreview] = useState(defaultPreview || { visible: true, defaultVisible: true });\n\n const changePreview = useCallback((newIPreview: IPreviewAdditional) => {\n setIPreview(newIPreview);\n }, []);\n\n useEffect(() => {\n if (defaultPreview) setIPreview(defaultPreview);\n }, [defaultPreview]);\n\n return { previewProps, changePreview };\n};\n\n/**\n * Custom hook to manage background color state with history tracking.\n */\ntype BgColorState = {\n bgColor: IThemePalette;\n bgColorHistory: IThemePalette[];\n bgColorIndex: number;\n};\n\nexport const useBgColor = (defaultColor: IThemePalette) => {\n const [state, setState] = useState<BgColorState>({\n bgColor: defaultColor,\n bgColorHistory: [defaultColor],\n bgColorIndex: 0,\n });\n\n const changeBgColor = useCallback((color: IThemePalette) => {\n setState((prev) => {\n const newHistory = [...prev.bgColorHistory.slice(0, prev.bgColorIndex + 1), color];\n return {\n bgColor: color,\n bgColorHistory: newHistory,\n bgColorIndex: newHistory.length - 1,\n };\n });\n }, []);\n\n const historyBgColor = useCallback((steps: number) => {\n setState((prev) => {\n const newIndex = prev.bgColorIndex + steps;\n if (newIndex >= 0 && newIndex < prev.bgColorHistory.length) {\n return {\n ...prev,\n bgColor: prev.bgColorHistory[newIndex],\n bgColorIndex: newIndex,\n };\n }\n return prev;\n });\n }, []);\n\n const setDefaultBgColor = useCallback(() => {\n setState({\n bgColor: defaultColor,\n bgColorHistory: [defaultColor],\n bgColorIndex: 0,\n });\n }, [defaultColor]);\n\n useEffect(() => {\n setState({\n bgColor: defaultColor,\n bgColorHistory: [defaultColor],\n bgColorIndex: 0,\n });\n }, [defaultColor]);\n\n return {\n bgColor: state.bgColor,\n changeBgColor,\n historyBgColor,\n setDefaultBgColor,\n bgColorIndex: state.bgColorIndex,\n };\n};\n\n/**\n * Custom hook to manage the status bar color with history tracking.\n */\ntype StatusBarColorState = {\n statusBarColor: IThemePalette;\n statusBarColorHistory: IThemePalette[];\n statusBarColorIndex: number;\n};\n\nexport const useStatusBarColor = (defaultColor: IThemePalette) => {\n const [state, setState] = useState<StatusBarColorState>({\n statusBarColor: defaultColor,\n statusBarColorHistory: [defaultColor],\n statusBarColorIndex: 0,\n });\n\n const changeStatusBarColor = useCallback((color: IThemePalette) => {\n setState((prev) => {\n const newHistory = [...prev.statusBarColorHistory.slice(0, prev.statusBarColorIndex + 1), color];\n return {\n statusBarColor: color,\n statusBarColorHistory: newHistory,\n statusBarColorIndex: newHistory.length - 1,\n };\n });\n }, []);\n\n const historyStatusBarColor = useCallback((steps: number) => {\n setState((prev) => {\n const newIndex = prev.statusBarColorIndex + steps;\n if (newIndex >= 0 && newIndex < prev.statusBarColorHistory.length) {\n return {\n ...prev,\n statusBarColor: prev.statusBarColorHistory[newIndex],\n statusBarColorIndex: newIndex,\n };\n }\n return prev;\n });\n }, []);\n\n const setDefaultStatusBarColor = useCallback(() => {\n setState({\n statusBarColor: defaultColor,\n statusBarColorHistory: [defaultColor],\n statusBarColorIndex: 0,\n });\n }, [defaultColor]);\n\n useEffect(() => {\n setState({\n statusBarColor: defaultColor,\n statusBarColorHistory: [defaultColor],\n statusBarColorIndex: 0,\n });\n }, [defaultColor]);\n\n return {\n statusBarColor: state.statusBarColor,\n changeStatusBarColor,\n historyStatusBarColor,\n setDefaultStatusBarColor,\n statusBarColorIndex: state.statusBarColorIndex,\n };\n};\n\n/**\n * Custom hook to manage background images with history.\n */\ntype BgImageState = {\n bgImage: string | null;\n bgImageHistory: (string | null)[];\n bgImageIndex: number;\n};\n\nexport const useBgImage = (defaultImage: string | null) => {\n const [state, setState] = useState<BgImageState>({\n bgImage: defaultImage,\n bgImageHistory: [defaultImage],\n bgImageIndex: 0,\n });\n\n const changeBgImage = useCallback((image: string | null) => {\n setState((prev) => {\n const newHistory = [...prev.bgImageHistory.slice(0, prev.bgImageIndex + 1), image];\n return {\n bgImage: image,\n bgImageHistory: newHistory,\n bgImageIndex: newHistory.length - 1,\n };\n });\n }, []);\n\n const historyBgImage = useCallback((steps: number) => {\n setState((prev) => {\n const newIndex = prev.bgImageIndex + steps;\n if (newIndex >= 0 && newIndex < prev.bgImageHistory.length) {\n return {\n ...prev,\n bgImage: prev.bgImageHistory[newIndex],\n bgImageIndex: newIndex,\n };\n }\n return prev;\n });\n }, []);\n\n const setDefaultBgImage = useCallback(() => {\n setState({\n bgImage: defaultImage,\n bgImageHistory: [defaultImage],\n bgImageIndex: 0,\n });\n }, [defaultImage]);\n\n useEffect(() => {\n setState({\n bgImage: defaultImage,\n bgImageHistory: [defaultImage],\n bgImageIndex: 0,\n });\n }, [defaultImage]);\n\n return {\n bgImage: state.bgImage,\n changeBgImage,\n historyBgImage,\n setDefaultBgImage,\n bgImageIndex: state.bgImageIndex,\n };\n};\n\ntype TitleState = {\n title: string | null;\n titleHistory: (string | null)[];\n titleIndex: number;\n};\n/**\n * Custom hook to manage the document title with history tracking.\n */\nconst useTitle = (defaultTitle: string | null) => {\n const [state, setState] = useState<TitleState>({\n title: defaultTitle,\n titleHistory: [defaultTitle],\n titleIndex: 0,\n });\n\n const changeTitle = useCallback((newTitle: string | null) => {\n setState((prev) => {\n const newHistory = [...prev.titleHistory.slice(0, prev.titleIndex + 1), newTitle];\n return {\n title: newTitle,\n titleHistory: newHistory,\n titleIndex: newHistory.length - 1,\n };\n });\n }, []);\n\n const setHistoryTitle = useCallback((steps: number) => {\n setState((prev) => {\n const newIndex = prev.titleIndex + steps;\n if (newIndex >= 0 && newIndex < prev.titleHistory.length) {\n return {\n ...prev,\n title: prev.titleHistory[newIndex],\n titleIndex: newIndex,\n };\n }\n return prev;\n });\n }, []);\n\n const setDefaultTitle = useCallback(() => {\n setState({\n title: defaultTitle,\n titleHistory: [defaultTitle],\n titleIndex: 0,\n });\n }, [defaultTitle]);\n\n useEffect(() => {\n setState({\n title: defaultTitle,\n titleHistory: [defaultTitle],\n titleIndex: 0,\n });\n }, [defaultTitle]);\n\n return {\n title: state.title,\n titleIndex: state.titleIndex,\n titleHistory: state.titleHistory,\n changeTitle,\n setHistoryTitle,\n setDefaultTitle,\n };\n};\n\n/**\n * Custom hook to manage a description with history tracking.\n */\ntype DescriptionState = {\n description: string;\n descriptionHistory: string[];\n descriptionIndex: number;\n};\n\nexport const useDescription = (defaultDescription: string) => {\n const [state, setState] = useState<DescriptionState>({\n description: defaultDescription,\n descriptionHistory: [defaultDescription],\n descriptionIndex: 0,\n });\n\n const changeDescription = useCallback((newDescription: string) => {\n setState((prev) => {\n const newHistory = [...prev.descriptionHistory.slice(0, prev.descriptionIndex + 1), newDescription];\n return {\n description: newDescription,\n descriptionHistory: newHistory,\n descriptionIndex: newHistory.length - 1,\n };\n });\n }, []);\n\n const historyDescription = useCallback((steps: number) => {\n setState((prev) => {\n const newIndex = prev.descriptionIndex + steps;\n if (newIndex >= 0 && newIndex < prev.descriptionHistory.length) {\n return {\n ...prev,\n description: prev.descriptionHistory[newIndex],\n descriptionIndex: newIndex,\n };\n }\n return prev;\n });\n }, []);\n\n const setDefaultDescription = useCallback(() => {\n setState({\n description: defaultDescription,\n descriptionHistory: [defaultDescription],\n descriptionIndex: 0,\n });\n }, [defaultDescription]);\n\n useEffect(() => {\n setState({\n description: defaultDescription,\n descriptionHistory: [defaultDescription],\n descriptionIndex: 0,\n });\n }, [defaultDescription]);\n\n return {\n description: state.description,\n changeDescription,\n historyDescription,\n setDefaultDescription,\n descriptionIndex: state.descriptionIndex,\n };\n};\n","import { useContextSelector } from 'use-context-selector';\n\nimport { AppContext } from './context';\nimport { IAppContext, IUseAppDependencies } from './context.types';\n\nexport const useApp = (props: IUseAppDependencies): IAppContext => {\n const context = useContextSelector(AppContext, (v) => {\n return v\n ? props.reduce((acc, prop) => {\n acc[prop] = v[prop];\n return acc;\n }, {} as any)\n : null;\n });\n if (!context) {\n throw new Error('useApp must be used within an AppContext');\n }\n return context;\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- const ne=require("./chunk-Dd8m0Ver.cjs"),u=require("./utils-DCIq-5FL.cjs"),O=require("./functions-CZrZU5U0.cjs"),$=require("./preview-p2i9Ju3I.cjs"),m=require("./dist-SXTf0-_7.cjs"),L=require("./context-screen-width-Cfe3atNC.cjs");let c=require("react/jsx-runtime"),o=require("react");var I=e=>typeof e=="number"?`${e}px`:e??"0px",D=e=>`
1
+ const ne=require("./chunk-Dd8m0Ver.cjs"),u=require("./utils-DCIq-5FL.cjs"),O=require("./functions-CZrZU5U0.cjs"),$=require("./preview-DEFGRXfJ.cjs"),m=require("./dist-SXTf0-_7.cjs"),L=require("./context-screen-width-Cfe3atNC.cjs");let c=require("react/jsx-runtime"),o=require("react");var I=e=>typeof e=="number"?`${e}px`:e??"0px",D=e=>`
2
2
  "notification notification notification"
3
3
  "${e.leftAside?.isTopHeader?"leftAside":"header"} header ${e.rightAside?.isTopHeader?"rightAside":"header"}"
4
4
  "${e.leftAside?.isTopHeader||e.leftAside?.isTopNav?"leftAside":"nav"} nav ${e.rightAside?.isTopHeader||e.rightAside?.isTopNav?"rightAside":"nav"}"
@@ -6,4 +6,4 @@ const ne=require("./chunk-Dd8m0Ver.cjs"),u=require("./utils-DCIq-5FL.cjs"),O=req
6
6
  "${e.leftAside?.isTopFooter?"leftAside":"footer"} footer ${e.rightAside?.isTopFooter?"rightAside":"footer"}"
7
7
  `,F=(e,s)=>({backgroundColor:u.CSS_VARS.palette[e],backgroundImage:s?`url(${s})`:void 0,backgroundSize:"cover",backgroundPosition:"center",backgroundRepeat:"no-repeat"}),E=e=>({gridTemplateAreas:D(e),gridTemplateColumns:`${I(e.leftAside?.length)} 1fr ${I(e.rightAside?.length)}`,gridTemplateRows:`${I(e.notification?.length)} ${I(e.header?.length)} ${I(e.nav?.length)} 1fr ${I(e.footer?.length)}`}),R=e=>({zIndex:e.main?.zIndex??"auto",overflow:e.isScrollOutlet?"auto":"visible"}),V=e=>({zIndex:e.notification?.zIndex??"auto"}),W=e=>({zIndex:e.header?.zIndex??"auto"}),G=e=>({zIndex:e.footer?.zIndex??"auto"}),M=e=>({zIndex:e.nav?.zIndex??"auto"}),J=e=>({zIndex:e.leftAside?.zIndex??"auto"}),K=e=>({zIndex:e.rightAside?.zIndex??"auto"}),A=m.createContext(null),Q=e=>{const{bgColor:s,changeBgColor:i,historyBgColor:a,setDefaultBgColor:l}=X(e.defaultBgColor),{statusBarColor:g,changeStatusBarColor:r,historyStatusBarColor:t,setDefaultStatusBarColor:n}=Y(e.defaultStatusBarColor),{bgImage:y,changeBgImage:f,historyBgImage:H,setDefaultBgImage:v}=Z(e.defaultBgImage||null),{title:B,changeTitle:z,setHistoryTitle:T,setDefaultTitle:k}=p(e.defaultTitle||null),{description:w,changeDescription:P,historyDescription:_,setDefaultDescription:j}=ee(e.defaultDescription),{changePreview:N,previewProps:q}=U(e.defaultPreview),{breakpoint:C,type:b,orientation:S}=L.useScreenWidth(["breakpoint","type","orientation"]),x=(0,o.useCallback)(h=>{if(!h)return null;if(b==="orientation"&&h.orientation)return h.orientation?.[S]??null;if(h.breakpoint&&h.breakpoint)return C==="default"?h.default??null:h.breakpoint?.[C]??null},[C,S,b]),d=(0,o.useMemo)(()=>({isScrollOutlet:e.isScrollOutlet,main:e.main,notification:e.notification?{component:e.notification.component,length:x(e.notification.length),zIndex:e.notification.zIndex}:void 0,header:e.header?{component:e.header.component,length:x(e.header.length),zIndex:e.header.zIndex}:void 0,nav:e.nav?{component:e.nav.component,length:x(e.nav.length),zIndex:e.nav.zIndex}:void 0,footer:e.footer?{component:e.footer.component,length:x(e.footer.length),zIndex:e.footer.zIndex}:void 0,leftAside:e.leftAside?{component:e.leftAside.component,length:x(e.leftAside.length),zIndex:e.leftAside.zIndex,isTopHeader:e.leftAside.isTopHeader,isTopFooter:e.leftAside.isTopFooter,isTopNav:e.leftAside.isTopNav}:void 0,rightAside:e.rightAside?{component:e.rightAside.component,length:x(e.rightAside.length),zIndex:e.rightAside.zIndex,isTopHeader:e.rightAside.isTopHeader,isTopFooter:e.rightAside.isTopFooter,isTopNav:e.rightAside.isTopNav}:void 0}),[e.footer,e.header,e.leftAside,e.main,e.nav,e.notification,e.rightAside,e.isScrollOutlet,x]);return(0,c.jsxs)(A.Provider,{value:{changePreview:N,changeStatusBarColor:r,changeBgColor:i,changeBgImage:f,changeTitle:z,changeDescription:P,historyStatusBarColor:t,historyBgColor:a,historyBgImage:H,setHistoryTitle:T,historyDescription:_,setDefaultStatusBarColor:n,setDefaultBgColor:l,setDefaultBgImage:v,setDefaultTitle:k,setDefaultDescription:j},children:[(0,c.jsx)("title",{children:B}),(0,c.jsx)("meta",{name:"description",content:w}),(0,c.jsx)("meta",{name:"theme-color",content:u.CSS_VARS.palette[g]}),(0,c.jsx)("meta",{name:"apple-mobile-web-app-status-bar-style",content:"default"}),(0,c.jsx)("meta",{name:"mobile-web-app-capable",content:"yes"}),(0,c.jsx)($.Preview,{...q,children:(0,c.jsx)("div",{className:u.CSS_CLASS.context.app.wrapper,style:F(s,y),children:(0,c.jsxs)("div",{className:O.setClasses([u.CSS_CLASS.context.app.outlet,u.CSS_CLASS.transition.grid]),style:E(d),children:[d.notification?.length?(0,c.jsx)("section",{className:u.CSS_CLASS.context.app.outletNotification,style:V(d),children:e.notification?.component||null}):null,d.header?.length?(0,c.jsx)("header",{className:u.CSS_CLASS.context.app.outletHeader,style:W(d),children:e.header?.component||null}):null,d.nav?.length?(0,c.jsx)("nav",{className:u.CSS_CLASS.context.app.outletNav,style:M(d),children:e.nav?.component||null}):null,d.leftAside?.length?(0,c.jsx)("aside",{className:u.CSS_CLASS.context.app.outletLeftAside,style:J(d),children:e.leftAside?.component||null}):null,(0,c.jsx)("main",{className:u.CSS_CLASS.context.app.outletChildren,style:R(d),children:e.children}),d.rightAside?.length?(0,c.jsx)("aside",{className:u.CSS_CLASS.context.app.outletRightAside,style:K(d),children:e.rightAside?.component||null}):null,d.footer?.length?(0,c.jsx)("footer",{className:u.CSS_CLASS.context.app.outletFooter,style:G(d),children:e.footer?.component||null}):null]})})})]})},U=e=>{const[s,i]=(0,o.useState)(e||{visible:!0,defaultVisible:!0}),a=(0,o.useCallback)(l=>{i(l)},[]);return(0,o.useEffect)(()=>{e&&i(e)},[e]),{previewProps:s,changePreview:a}},X=e=>{const[s,i]=(0,o.useState)({bgColor:e,bgColorHistory:[e],bgColorIndex:0}),a=(0,o.useCallback)(r=>{i(t=>{const n=[...t.bgColorHistory.slice(0,t.bgColorIndex+1),r];return{bgColor:r,bgColorHistory:n,bgColorIndex:n.length-1}})},[]),l=(0,o.useCallback)(r=>{i(t=>{const n=t.bgColorIndex+r;return n>=0&&n<t.bgColorHistory.length?{...t,bgColor:t.bgColorHistory[n],bgColorIndex:n}:t})},[]),g=(0,o.useCallback)(()=>{i({bgColor:e,bgColorHistory:[e],bgColorIndex:0})},[e]);return(0,o.useEffect)(()=>{i({bgColor:e,bgColorHistory:[e],bgColorIndex:0})},[e]),{bgColor:s.bgColor,changeBgColor:a,historyBgColor:l,setDefaultBgColor:g,bgColorIndex:s.bgColorIndex}},Y=e=>{const[s,i]=(0,o.useState)({statusBarColor:e,statusBarColorHistory:[e],statusBarColorIndex:0}),a=(0,o.useCallback)(r=>{i(t=>{const n=[...t.statusBarColorHistory.slice(0,t.statusBarColorIndex+1),r];return{statusBarColor:r,statusBarColorHistory:n,statusBarColorIndex:n.length-1}})},[]),l=(0,o.useCallback)(r=>{i(t=>{const n=t.statusBarColorIndex+r;return n>=0&&n<t.statusBarColorHistory.length?{...t,statusBarColor:t.statusBarColorHistory[n],statusBarColorIndex:n}:t})},[]),g=(0,o.useCallback)(()=>{i({statusBarColor:e,statusBarColorHistory:[e],statusBarColorIndex:0})},[e]);return(0,o.useEffect)(()=>{i({statusBarColor:e,statusBarColorHistory:[e],statusBarColorIndex:0})},[e]),{statusBarColor:s.statusBarColor,changeStatusBarColor:a,historyStatusBarColor:l,setDefaultStatusBarColor:g,statusBarColorIndex:s.statusBarColorIndex}},Z=e=>{const[s,i]=(0,o.useState)({bgImage:e,bgImageHistory:[e],bgImageIndex:0}),a=(0,o.useCallback)(r=>{i(t=>{const n=[...t.bgImageHistory.slice(0,t.bgImageIndex+1),r];return{bgImage:r,bgImageHistory:n,bgImageIndex:n.length-1}})},[]),l=(0,o.useCallback)(r=>{i(t=>{const n=t.bgImageIndex+r;return n>=0&&n<t.bgImageHistory.length?{...t,bgImage:t.bgImageHistory[n],bgImageIndex:n}:t})},[]),g=(0,o.useCallback)(()=>{i({bgImage:e,bgImageHistory:[e],bgImageIndex:0})},[e]);return(0,o.useEffect)(()=>{i({bgImage:e,bgImageHistory:[e],bgImageIndex:0})},[e]),{bgImage:s.bgImage,changeBgImage:a,historyBgImage:l,setDefaultBgImage:g,bgImageIndex:s.bgImageIndex}},p=e=>{const[s,i]=(0,o.useState)({title:e,titleHistory:[e],titleIndex:0}),a=(0,o.useCallback)(r=>{i(t=>{const n=[...t.titleHistory.slice(0,t.titleIndex+1),r];return{title:r,titleHistory:n,titleIndex:n.length-1}})},[]),l=(0,o.useCallback)(r=>{i(t=>{const n=t.titleIndex+r;return n>=0&&n<t.titleHistory.length?{...t,title:t.titleHistory[n],titleIndex:n}:t})},[]),g=(0,o.useCallback)(()=>{i({title:e,titleHistory:[e],titleIndex:0})},[e]);return(0,o.useEffect)(()=>{i({title:e,titleHistory:[e],titleIndex:0})},[e]),{title:s.title,titleIndex:s.titleIndex,titleHistory:s.titleHistory,changeTitle:a,setHistoryTitle:l,setDefaultTitle:g}},ee=e=>{const[s,i]=(0,o.useState)({description:e,descriptionHistory:[e],descriptionIndex:0}),a=(0,o.useCallback)(r=>{i(t=>{const n=[...t.descriptionHistory.slice(0,t.descriptionIndex+1),r];return{description:r,descriptionHistory:n,descriptionIndex:n.length-1}})},[]),l=(0,o.useCallback)(r=>{i(t=>{const n=t.descriptionIndex+r;return n>=0&&n<t.descriptionHistory.length?{...t,description:t.descriptionHistory[n],descriptionIndex:n}:t})},[]),g=(0,o.useCallback)(()=>{i({description:e,descriptionHistory:[e],descriptionIndex:0})},[e]);return(0,o.useEffect)(()=>{i({description:e,descriptionHistory:[e],descriptionIndex:0})},[e]),{description:s.description,changeDescription:a,historyDescription:l,setDefaultDescription:g,descriptionIndex:s.descriptionIndex}},te=e=>{const s=m.useContextSelector(A,i=>i?e.reduce((a,l)=>(a[l]=i[l],a),{}):null);if(!s)throw new Error("useApp must be used within an AppContext");return s};Object.defineProperty(exports,"ProviderApp",{enumerable:!0,get:function(){return Q}});Object.defineProperty(exports,"useApp",{enumerable:!0,get:function(){return te}});
8
8
 
9
- //# sourceMappingURL=context-app-29ajupjq.cjs.map
9
+ //# sourceMappingURL=context-app-v8y-IIxP.cjs.map