@jenesei-software/jenesei-kit-react 1.2.2 → 1.2.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 (155) hide show
  1. package/build/{area-C2sWYH-e.js → area-BC64nSGj.js} +2 -2
  2. package/build/{area-C2sWYH-e.js.map → area-BC64nSGj.js.map} +1 -1
  3. package/build/{area-CD10k19W.cjs → area-C6QOr2Kd.cjs} +7 -7
  4. package/build/{area-CD10k19W.cjs.map → area-C6QOr2Kd.cjs.map} +1 -1
  5. package/build/area-scroll.cjs.js +1 -1
  6. package/build/area-scroll.es.js +1 -1
  7. package/build/build-info.txt +3 -3
  8. package/build/{component-CbPhVNw5.js → component-BJ4BlUBV.js} +2 -2
  9. package/build/{component-CbPhVNw5.js.map → component-BJ4BlUBV.js.map} +1 -1
  10. package/build/{component-BnYw0FvH.cjs → component-BfsH0boq.cjs} +2 -2
  11. package/build/{component-BnYw0FvH.cjs.map → component-BfsH0boq.cjs.map} +1 -1
  12. package/build/{component-9m1Ib3fS.js → component-BtA2Qlbp.js} +2 -2
  13. package/build/{component-9m1Ib3fS.js.map → component-BtA2Qlbp.js.map} +1 -1
  14. package/build/{component-C8QrHu0C.js → component-CTz8wF0z.js} +3 -3
  15. package/build/{component-C8QrHu0C.js.map → component-CTz8wF0z.js.map} +1 -1
  16. package/build/{component-FwG2ieR3.cjs → component-CV14RCdO.cjs} +2 -2
  17. package/build/{component-FwG2ieR3.cjs.map → component-CV14RCdO.cjs.map} +1 -1
  18. package/build/{component-C0atFCun.cjs → component-DBxYbAnr.cjs} +2 -2
  19. package/build/{component-C0atFCun.cjs.map → component-DBxYbAnr.cjs.map} +1 -1
  20. package/build/{component-DURhph1i.js → component-DTH1-Npa.js} +3 -3
  21. package/build/{component-DURhph1i.js.map → component-DTH1-Npa.js.map} +1 -1
  22. package/build/{component-X4e7zEKk.cjs → component-Dw21Chky.cjs} +2 -2
  23. package/build/{component-X4e7zEKk.cjs.map → component-Dw21Chky.cjs.map} +1 -1
  24. package/build/{component-Bovatz78.cjs → component-ODhIlUPq.cjs} +2 -2
  25. package/build/{component-Bovatz78.cjs.map → component-ODhIlUPq.cjs.map} +1 -1
  26. package/build/component-button-group.cjs.js +1 -1
  27. package/build/component-button-group.es.js +1 -1
  28. package/build/component-button.cjs.js +1 -1
  29. package/build/component-button.es.js +1 -1
  30. package/build/component-checkbox-group.cjs.js +1 -1
  31. package/build/component-checkbox-group.es.js +1 -1
  32. package/build/component-checkbox.cjs.js +1 -1
  33. package/build/component-checkbox.es.js +1 -1
  34. package/build/component-date-picker.cjs.js +1 -1
  35. package/build/component-date-picker.d.ts +74 -65
  36. package/build/component-date-picker.es.js +9 -10
  37. package/build/component-image-button.cjs.js +1 -1
  38. package/build/component-image-button.es.js +1 -1
  39. package/build/component-image-select.cjs.js +1 -1
  40. package/build/component-image-select.es.js +1 -1
  41. package/build/component-image-slider.cjs.js +1 -1
  42. package/build/component-image-slider.es.js +1 -1
  43. package/build/component-input-otp.cjs.js +1 -1
  44. package/build/component-input-otp.es.js +1 -1
  45. package/build/component-input.cjs.js +1 -1
  46. package/build/component-input.d.ts +3 -3
  47. package/build/component-input.es.js +3 -3
  48. package/build/component-map.cjs.js +1 -1
  49. package/build/component-map.es.js +1 -1
  50. package/build/component-pagination.cjs.js +1 -1
  51. package/build/component-pagination.es.js +1 -1
  52. package/build/component-range.cjs.js +1 -1
  53. package/build/component-range.es.js +1 -1
  54. package/build/component-select.cjs.js +1 -1
  55. package/build/component-select.d.ts +6 -6
  56. package/build/component-select.es.js +1 -1
  57. package/build/component-textarea.cjs.js +1 -1
  58. package/build/component-textarea.es.js +1 -1
  59. package/build/component-toggle.cjs.js +1 -1
  60. package/build/component-toggle.es.js +1 -1
  61. package/build/component-tooltip.cjs.js +1 -1
  62. package/build/component-tooltip.d.ts +1 -0
  63. package/build/component-tooltip.es.js +1 -1
  64. package/build/component-typography.cjs.js +1 -1
  65. package/build/component-typography.d.ts +1 -0
  66. package/build/component-typography.es.js +1 -1
  67. package/build/{component--cOriuv7.js → component-zhkRBgS8.js} +45 -3
  68. package/build/{component--cOriuv7.js.map → component-zhkRBgS8.js.map} +1 -1
  69. package/build/{component.components-1kRDD3KO.cjs → component.components-9ON8OLUd.cjs} +2 -2
  70. package/build/{component.components-1kRDD3KO.cjs.map → component.components-9ON8OLUd.cjs.map} +1 -1
  71. package/build/{component.components-CQ3LLnFl.js → component.components-CnwUBa8n.js} +2 -2
  72. package/build/{component.components-CQ3LLnFl.js.map → component.components-CnwUBa8n.js.map} +1 -1
  73. package/build/{component.constants-B1rq1PLe.js → component.constants-Ck-Y1EPF.js} +2 -2
  74. package/build/{component.constants-B1rq1PLe.js.map → component.constants-Ck-Y1EPF.js.map} +1 -1
  75. package/build/{component.constants-BLHg7rcI.cjs → component.constants-DD964QJh.cjs} +2 -2
  76. package/build/{component.constants-BLHg7rcI.cjs.map → component.constants-DD964QJh.cjs.map} +1 -1
  77. package/build/{component.constants-Gz2mf7IF.cjs → component.constants-DGS-J9Sc.cjs} +2 -2
  78. package/build/{component.constants-Gz2mf7IF.cjs.map → component.constants-DGS-J9Sc.cjs.map} +1 -1
  79. package/build/{component.constants-B95xyW0s.js → component.constants-c0DK2OSH.js} +3 -3
  80. package/build/{component.constants-B95xyW0s.js.map → component.constants-c0DK2OSH.js.map} +1 -1
  81. package/build/{component.styles-q4ne6jV1.cjs → component.styles-B4reSccT.cjs} +2 -2
  82. package/build/{component.styles-q4ne6jV1.cjs.map → component.styles-B4reSccT.cjs.map} +1 -1
  83. package/build/{component.styles-BrGPrrEb.cjs → component.styles-BScmaCvt.cjs} +2 -2
  84. package/build/{component.styles-BrGPrrEb.cjs.map → component.styles-BScmaCvt.cjs.map} +1 -1
  85. package/build/{component.styles-Dm_Ov4nM.cjs → component.styles-C5GdZJou.cjs} +24 -24
  86. package/build/{component.styles-Dm_Ov4nM.cjs.map → component.styles-C5GdZJou.cjs.map} +1 -1
  87. package/build/{component.styles-BzNkEurr.js → component.styles-CFrk_dpy.js} +5 -5
  88. package/build/{component.styles-BzNkEurr.js.map → component.styles-CFrk_dpy.js.map} +1 -1
  89. package/build/{component.styles-CvJK1eif.cjs → component.styles-CGyQHdKu.cjs} +8 -13
  90. package/build/component.styles-CGyQHdKu.cjs.map +1 -0
  91. package/build/{component.styles-DqNAGfc9.cjs → component.styles-CzsKP7v-.cjs} +2 -2
  92. package/build/{component.styles-DqNAGfc9.cjs.map → component.styles-CzsKP7v-.cjs.map} +1 -1
  93. package/build/{component.styles-vcNQJK0U.cjs → component.styles-D8ZAo-kS.cjs} +2 -2
  94. package/build/{component.styles-vcNQJK0U.cjs.map → component.styles-D8ZAo-kS.cjs.map} +1 -1
  95. package/build/{component.styles-DjLSmx3e.cjs → component.styles-DLbbGi9i.cjs} +2 -2
  96. package/build/{component.styles-DjLSmx3e.cjs.map → component.styles-DLbbGi9i.cjs.map} +1 -1
  97. package/build/{component.styles-DKG-fvog.js → component.styles-DS53SD15.js} +4 -4
  98. package/build/{component.styles-DKG-fvog.js.map → component.styles-DS53SD15.js.map} +1 -1
  99. package/build/{component.styles-DMBvhmz6.js → component.styles-DjJOwUeA.js} +3 -3
  100. package/build/{component.styles-DMBvhmz6.js.map → component.styles-DjJOwUeA.js.map} +1 -1
  101. package/build/{component.styles-DqTkSP8L.js → component.styles-DsnwGPvj.js} +16 -21
  102. package/build/component.styles-DsnwGPvj.js.map +1 -0
  103. package/build/{component.styles-DhI3n-dL.js → component.styles-DxQx6LQO.js} +3 -3
  104. package/build/{component.styles-DhI3n-dL.js.map → component.styles-DxQx6LQO.js.map} +1 -1
  105. package/build/{component.styles-CccZrbSA.js → component.styles-N7ZFXn4z.js} +2 -2
  106. package/build/{component.styles-CccZrbSA.js.map → component.styles-N7ZFXn4z.js.map} +1 -1
  107. package/build/{component.styles-DuIrUV9k.js → component.styles-UIEZecbT.js} +2 -2
  108. package/build/{component.styles-DuIrUV9k.js.map → component.styles-UIEZecbT.js.map} +1 -1
  109. package/build/{component.styles-CRWn1pVi.js → component.styles-WqYNZfbs.js} +3 -3
  110. package/build/{component.styles-CRWn1pVi.js.map → component.styles-WqYNZfbs.js.map} +1 -1
  111. package/build/{component.styles-Dt_CUijB.js → component.styles-hc14mwUo.js} +6 -7
  112. package/build/{component.styles-Dt_CUijB.js.map → component.styles-hc14mwUo.js.map} +1 -1
  113. package/build/{component.styles-DwdN7mQq.cjs → component.styles-qRQ8i8W6.cjs} +2 -2
  114. package/build/{component.styles-DwdN7mQq.cjs.map → component.styles-qRQ8i8W6.cjs.map} +1 -1
  115. package/build/{component.styles-Bz2vyHqK.cjs → component.styles-sTbPcfTb.cjs} +2 -2
  116. package/build/{component.styles-Bz2vyHqK.cjs.map → component.styles-sTbPcfTb.cjs.map} +1 -1
  117. package/build/component.types-A04vFOxU.cjs +164 -0
  118. package/build/component.types-A04vFOxU.cjs.map +1 -0
  119. package/build/component.types-CqvwcIsz.js +843 -0
  120. package/build/component.types-CqvwcIsz.js.map +1 -0
  121. package/build/context-app.cjs.js +1 -1
  122. package/build/context-app.d.ts +2 -2
  123. package/build/context-app.es.js +1 -1
  124. package/build/context-sonner.cjs.js +1 -1
  125. package/build/context-sonner.es.js +1 -1
  126. package/build/{context.constants-BAz35AJw.js → context.constants-B9I-yc9Q.js} +3 -3
  127. package/build/{context.constants-BAz35AJw.js.map → context.constants-B9I-yc9Q.js.map} +1 -1
  128. package/build/{context.constants-fwK8ogSf.cjs → context.constants-DkMk-pc7.cjs} +2 -2
  129. package/build/{context.constants-fwK8ogSf.cjs.map → context.constants-DkMk-pc7.cjs.map} +1 -1
  130. package/build/{context.hooks-Bs1dD25S.js → context.hooks-BFZtc7kP.js} +12 -12
  131. package/build/context.hooks-BFZtc7kP.js.map +1 -0
  132. package/build/{context.hooks-KAyS_7Pj.cjs → context.hooks-BfETPRDy.cjs} +23 -23
  133. package/build/context.hooks-BfETPRDy.cjs.map +1 -0
  134. package/build/index.cjs.js +1 -1
  135. package/build/index.d.ts +85 -63
  136. package/build/index.es.js +34 -35
  137. package/build/{style-DjCgiI7l.js → style-Dca2udON.js} +2 -2
  138. package/build/{style-DjCgiI7l.js.map → style-Dca2udON.js.map} +1 -1
  139. package/build/{style-eIuUYu9x.cjs → style-DmwoOdFB.cjs} +2 -2
  140. package/build/{style-eIuUYu9x.cjs.map → style-DmwoOdFB.cjs.map} +1 -1
  141. package/build/style-error.cjs.js +1 -1
  142. package/build/style-error.es.js +1 -1
  143. package/build/{use-BnaBipTR.cjs → use-Deto6eH3.cjs} +2 -2
  144. package/build/{use-BnaBipTR.cjs.map → use-Deto6eH3.cjs.map} +1 -1
  145. package/build/{use-B6rT81uF.js → use-JiiFbVer.js} +3 -3
  146. package/build/{use-B6rT81uF.js.map → use-JiiFbVer.js.map} +1 -1
  147. package/package.json +1 -1
  148. package/build/component.styles-CvJK1eif.cjs.map +0 -1
  149. package/build/component.styles-DCDOKa6e.js +0 -793
  150. package/build/component.styles-DCDOKa6e.js.map +0 -1
  151. package/build/component.styles-DTC9tjQX.cjs +0 -165
  152. package/build/component.styles-DTC9tjQX.cjs.map +0 -1
  153. package/build/component.styles-DqTkSP8L.js.map +0 -1
  154. package/build/context.hooks-Bs1dD25S.js.map +0 -1
  155. package/build/context.hooks-KAyS_7Pj.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.hooks-Bs1dD25S.js","sources":["../src/contexts/context-app/context.tsx","../src/contexts/context-app/context.styles.ts","../src/contexts/context-app/context.hooks.ts"],"sourcesContent":["import { FC, createContext, useCallback, useEffect, useState } from 'react'\n\nimport { Preview, PreviewAdditionalProps } from '@local/areas/preview'\nimport { JeneseiPalette, IThemePaletteKeys } from '@local/theme'\n\nimport {\n AppContextProps,\n ProviderAppOutlet,\n ProviderAppOutletChildren,\n ProviderAppOutletFooter,\n ProviderAppOutletHeader,\n ProviderAppOutletLeftAside,\n ProviderAppOutletNav,\n ProviderAppOutletNotification,\n ProviderAppOutletRightAside,\n ProviderAppProps,\n ProviderAppWrapper\n} from '.'\nimport { useScreenWidth } from '../context-screen-width'\n\nexport const AppContext = createContext<AppContextProps | null>(null)\n\n/**\n * ProviderApp component is a context context that manages various application-level states\n * such as background color, status bar color, background image, title, and description.\n * It uses several custom hooks to handle these states and provides them via the AppContext.\n *\n * @component\n *\n * @param {ProviderAppProps} props - The properties passed to the ProviderApp component.\n * @param {string} props.defaultBgColor - The default background color.\n * @param {string} props.defaultStatusBarColor - The default status bar color.\n * @param {string} [props.defaultBgImage] - The default background image.\n * @param {string} [props.defaultTitle] - The default title.\n * @param {string} [props.defaultDescription] - The default description.\n * @param {boolean} [props.isScrollOutlet] - Determines if the outlet should be scrollable.\n * @param {object} [props.footer] - The footer component and its properties.\n * @param {object} [props.notification] - The notification component and its properties.\n * @param {object} [props.header] - The header component and its properties.\n * @param {object} [props.nav] - The navigation component and its properties.\n * @param {object} [props.leftAside] - The left aside component and its properties.\n * @param {object} [props.rightAside] - The right aside component and its properties.\n * @param {React.ReactNode} props.children - The children components to be rendered inside the ProviderApp.\n *\n * @returns {JSX.Element} The rendered ProviderApp component.\n */\nexport const ProviderApp: FC<ProviderAppProps> = 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 const { screenActual } = useScreenWidth()\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={JeneseiPalette[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 <ProviderAppWrapper $bgColor={bgColor} $bgImage={bgImage}>\n <ProviderAppOutlet\n $isScrollOutlet={props.isScrollOutlet}\n $footer={props.footer}\n $notification={props.notification}\n $header={props.header}\n $nav={props.nav}\n $leftAside={props.leftAside}\n $rightAside={props.rightAside}\n >\n {props.notification?.length && props.notification?.length?.[screenActual] ? (\n <ProviderAppOutletNotification $notification={props.notification}>\n {props.notification?.component || null}\n </ProviderAppOutletNotification>\n ) : null}\n\n {props.header?.length && props.header?.length?.[screenActual] ? (\n <ProviderAppOutletHeader $header={props.header}>\n {props.header?.component || null}\n </ProviderAppOutletHeader>\n ) : null}\n\n {props.nav?.length && props.nav?.length?.[screenActual] ? (\n <ProviderAppOutletNav $nav={props.nav}>{props.nav?.component || null}</ProviderAppOutletNav>\n ) : null}\n\n {props.leftAside?.length && props.leftAside?.length?.[screenActual] ? (\n <ProviderAppOutletLeftAside $leftAside={props.leftAside}>\n {props.leftAside?.component || null}\n </ProviderAppOutletLeftAside>\n ) : null}\n\n <ProviderAppOutletChildren $main={props.main}>{props.children}</ProviderAppOutletChildren>\n\n {props.rightAside?.length && props.rightAside?.length?.[screenActual] ? (\n <ProviderAppOutletRightAside $rightAside={props.rightAside}>\n {props.rightAside?.component || null}\n </ProviderAppOutletRightAside>\n ) : null}\n\n {props.footer?.length && props.footer?.length?.[screenActual] ? (\n <ProviderAppOutletFooter $footer={props.footer}>\n {props.footer?.component || null}\n </ProviderAppOutletFooter>\n ) : null}\n </ProviderAppOutlet>\n </ProviderAppWrapper>\n </Preview>\n </AppContext.Provider>\n )\n}\n\n/**\n * Custom hook to manage preview properties.\n */\nconst usePreview = (defaultPreview: ProviderAppProps['defaultPreview']) => {\n const [previewProps, setPreviewProps] = useState(defaultPreview || { visible: true, defaultVisible: true })\n\n const changePreview = useCallback((newPreviewProps: PreviewAdditionalProps) => {\n setPreviewProps(newPreviewProps)\n }, [])\n\n useEffect(() => {\n if (defaultPreview) setPreviewProps(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: IThemePaletteKeys\n bgColorHistory: IThemePaletteKeys[]\n bgColorIndex: number\n}\n\nexport const useBgColor = (defaultColor: IThemePaletteKeys) => {\n const [state, setState] = useState<BgColorState>({\n bgColor: defaultColor,\n bgColorHistory: [defaultColor],\n bgColorIndex: 0\n })\n\n const changeBgColor = useCallback((color: IThemePaletteKeys) => {\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: IThemePaletteKeys\n statusBarColorHistory: IThemePaletteKeys[]\n statusBarColorIndex: number\n}\n\nexport const useStatusBarColor = (defaultColor: IThemePaletteKeys) => {\n const [state, setState] = useState<StatusBarColorState>({\n statusBarColor: defaultColor,\n statusBarColorHistory: [defaultColor],\n statusBarColorIndex: 0\n })\n\n const changeStatusBarColor = useCallback((color: IThemePaletteKeys) => {\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 { css, styled } from 'styled-components'\n\nimport { addGridTransition } from '@local/styles/add'\nimport { JeneseiPalette } from '@local/theme'\n\nimport { ProviderAppOutletChildrenProps, ProviderAppOutletProps, ProviderAppWrapperProps } from '.'\nimport { ScreenWidthProps } from '../context-screen-width'\n\nexport const ProviderAppWrapper = styled.div<ProviderAppWrapperProps>`\n display: flex;\n flex-direction: column;\n max-width: 100dvw;\n min-height: 100dvh;\n width: 100%;\n overflow: hidden;\n position: relative;\n\n background-color: ${props => JeneseiPalette[props.$bgColor]};\n background-image: url(${props => props.$bgImage});\n`\n\nconst generateGridTemplateAreas = (props: ProviderAppOutletProps) => {\n let templateAreas = `\n \"notification notification notification\"\n \"header header header\"\n \"nav nav nav\"\n \"leftAside children rightAside\"\n \"footer footer footer\"\n `\n\n templateAreas = `\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 return templateAreas\n}\n\nfunction toStyledAppOutletCSS(props: {\n leftAsideWidth: string\n rightAsideWidth: string\n notificationHeight: string\n headerHeight: string\n navHeight: string\n footerHeight: string\n}) {\n return css`\n grid-template-columns: ${() => `${props.leftAsideWidth} 1fr ${props.rightAsideWidth}`};\n grid-template-rows: ${() =>\n `${props.notificationHeight} ${props.headerHeight} ${props.navHeight} 1fr ${props.footerHeight}`};\n `\n}\nconst addSXAppOutlet = css<ProviderAppOutletProps>`\n ${props => {\n const leftAsideWidth = props.$leftAside?.length?.default\n const rightAsideWidth = props.$rightAside?.length?.default\n const notificationHeight = props.$notification?.length?.default\n const headerHeight = props.$header?.length?.default\n const navHeight = props.$nav?.length?.default\n const footerHeight = props.$footer?.length?.default\n return toStyledAppOutletCSS({\n leftAsideWidth: leftAsideWidth ?? '0px',\n rightAsideWidth: rightAsideWidth ?? '0px',\n notificationHeight: notificationHeight ?? '0px',\n headerHeight: headerHeight ?? '0px',\n navHeight: navHeight ?? '0px',\n footerHeight: footerHeight ?? '0px'\n })\n }}\n ${props => {\n const leftAsideWidth = props.$leftAside?.length\n const rightAsideWidth = props.$rightAside?.length\n const notificationHeight = props.$notification?.length\n const headerHeight = props.$header?.length\n const navHeight = props.$nav?.length\n const footerHeight = props.$footer?.length\n\n return Object.entries(props.theme.screens)\n .filter(([key]) => key !== 'default')\n .map(([key]) => {\n const deviceKey = key as keyof ScreenWidthProps<string | null>\n const screenWidth = props.theme.screens[deviceKey]?.width\n if (!screenWidth) return null\n return css`\n @media (max-width: ${screenWidth}px) {\n ${toStyledAppOutletCSS({\n leftAsideWidth: leftAsideWidth && leftAsideWidth[deviceKey] ? leftAsideWidth[deviceKey] : '0px',\n rightAsideWidth: rightAsideWidth && rightAsideWidth[deviceKey] ? rightAsideWidth[deviceKey] : '0px',\n notificationHeight:\n notificationHeight && notificationHeight[deviceKey] ? notificationHeight[deviceKey] : '0px',\n headerHeight: headerHeight && headerHeight[deviceKey] ? headerHeight[deviceKey] : '0px',\n navHeight: navHeight && navHeight[deviceKey] ? navHeight[deviceKey] : '0px',\n footerHeight: footerHeight && footerHeight[deviceKey] ? footerHeight[deviceKey] : '0px'\n })}\n }\n `\n })\n }}\n`\nexport const ProviderAppOutlet = styled.div<ProviderAppOutletProps>`\n display: grid;\n width: 100%;\n height: 100%;\n\n min-height: 100dvh;\n\n ${addGridTransition};\n\n ${props => `\n grid-template-areas: ${generateGridTemplateAreas(props)};\n `}\n\n ${props =>\n props.$isScrollOutlet\n ? css`\n max-height: 100dvh;\n `\n : css`\n max-height: none;\n `};\n\n ${addSXAppOutlet};\n`\n\nexport const ProviderAppOutletChildren = styled.main<ProviderAppOutletChildrenProps>`\n z-index: ${props => props?.$main?.zIndex ?? 'auto'};\n display: flex;\n grid-area: children;\n max-width: 100%;\n max-height: 100%;\n overflow: auto;\n`\n\nexport const ProviderAppOutletNotification = styled.section<ProviderAppOutletProps>`\n z-index: ${props => props?.$notification?.zIndex ?? 'auto'};\n grid-area: notification;\n display: flex;\n`\n\nexport const ProviderAppOutletHeader = styled.header<ProviderAppOutletProps>`\n z-index: ${props => props?.$header?.zIndex ?? 'auto'};\n grid-area: header;\n display: flex;\n`\n\nexport const ProviderAppOutletFooter = styled.footer<ProviderAppOutletProps>`\n z-index: ${props => props?.$footer?.zIndex ?? 'auto'};\n grid-area: footer;\n display: flex;\n`\n\nexport const ProviderAppOutletNav = styled.nav<ProviderAppOutletProps>`\n z-index: ${props => props?.$nav?.zIndex ?? 'auto'};\n grid-area: nav;\n display: flex;\n`\n\nexport const ProviderAppOutletLeftAside = styled.aside<ProviderAppOutletProps>`\n z-index: ${props => props?.$leftAside?.zIndex ?? 'auto'};\n grid-area: leftAside;\n display: flex;\n`\n\nexport const ProviderAppOutletRightAside = styled.aside<ProviderAppOutletProps>`\n z-index: ${props => props?.$rightAside?.zIndex ?? 'auto'};\n grid-area: rightAside;\n display: flex;\n`\n","import { useContext } from 'react'\n\nimport { AppContext } from '.'\n\n/**\n * Custom hook to access the AppContext.\n */\nexport const useApp = () => {\n const context = useContext(AppContext)\n if (!context) {\n throw new Error('useApp must be used within an ProviderApp')\n }\n return context\n}\n"],"names":["jsxs","jsx","_a"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.hooks-KAyS_7Pj.cjs","sources":["../src/contexts/context-app/context.tsx","../src/contexts/context-app/context.styles.ts","../src/contexts/context-app/context.hooks.ts"],"sourcesContent":["import { FC, createContext, useCallback, useEffect, useState } from 'react'\n\nimport { Preview, PreviewAdditionalProps } from '@local/areas/preview'\nimport { JeneseiPalette, IThemePaletteKeys } from '@local/theme'\n\nimport {\n AppContextProps,\n ProviderAppOutlet,\n ProviderAppOutletChildren,\n ProviderAppOutletFooter,\n ProviderAppOutletHeader,\n ProviderAppOutletLeftAside,\n ProviderAppOutletNav,\n ProviderAppOutletNotification,\n ProviderAppOutletRightAside,\n ProviderAppProps,\n ProviderAppWrapper\n} from '.'\nimport { useScreenWidth } from '../context-screen-width'\n\nexport const AppContext = createContext<AppContextProps | null>(null)\n\n/**\n * ProviderApp component is a context context that manages various application-level states\n * such as background color, status bar color, background image, title, and description.\n * It uses several custom hooks to handle these states and provides them via the AppContext.\n *\n * @component\n *\n * @param {ProviderAppProps} props - The properties passed to the ProviderApp component.\n * @param {string} props.defaultBgColor - The default background color.\n * @param {string} props.defaultStatusBarColor - The default status bar color.\n * @param {string} [props.defaultBgImage] - The default background image.\n * @param {string} [props.defaultTitle] - The default title.\n * @param {string} [props.defaultDescription] - The default description.\n * @param {boolean} [props.isScrollOutlet] - Determines if the outlet should be scrollable.\n * @param {object} [props.footer] - The footer component and its properties.\n * @param {object} [props.notification] - The notification component and its properties.\n * @param {object} [props.header] - The header component and its properties.\n * @param {object} [props.nav] - The navigation component and its properties.\n * @param {object} [props.leftAside] - The left aside component and its properties.\n * @param {object} [props.rightAside] - The right aside component and its properties.\n * @param {React.ReactNode} props.children - The children components to be rendered inside the ProviderApp.\n *\n * @returns {JSX.Element} The rendered ProviderApp component.\n */\nexport const ProviderApp: FC<ProviderAppProps> = 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 const { screenActual } = useScreenWidth()\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={JeneseiPalette[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 <ProviderAppWrapper $bgColor={bgColor} $bgImage={bgImage}>\n <ProviderAppOutlet\n $isScrollOutlet={props.isScrollOutlet}\n $footer={props.footer}\n $notification={props.notification}\n $header={props.header}\n $nav={props.nav}\n $leftAside={props.leftAside}\n $rightAside={props.rightAside}\n >\n {props.notification?.length && props.notification?.length?.[screenActual] ? (\n <ProviderAppOutletNotification $notification={props.notification}>\n {props.notification?.component || null}\n </ProviderAppOutletNotification>\n ) : null}\n\n {props.header?.length && props.header?.length?.[screenActual] ? (\n <ProviderAppOutletHeader $header={props.header}>\n {props.header?.component || null}\n </ProviderAppOutletHeader>\n ) : null}\n\n {props.nav?.length && props.nav?.length?.[screenActual] ? (\n <ProviderAppOutletNav $nav={props.nav}>{props.nav?.component || null}</ProviderAppOutletNav>\n ) : null}\n\n {props.leftAside?.length && props.leftAside?.length?.[screenActual] ? (\n <ProviderAppOutletLeftAside $leftAside={props.leftAside}>\n {props.leftAside?.component || null}\n </ProviderAppOutletLeftAside>\n ) : null}\n\n <ProviderAppOutletChildren $main={props.main}>{props.children}</ProviderAppOutletChildren>\n\n {props.rightAside?.length && props.rightAside?.length?.[screenActual] ? (\n <ProviderAppOutletRightAside $rightAside={props.rightAside}>\n {props.rightAside?.component || null}\n </ProviderAppOutletRightAside>\n ) : null}\n\n {props.footer?.length && props.footer?.length?.[screenActual] ? (\n <ProviderAppOutletFooter $footer={props.footer}>\n {props.footer?.component || null}\n </ProviderAppOutletFooter>\n ) : null}\n </ProviderAppOutlet>\n </ProviderAppWrapper>\n </Preview>\n </AppContext.Provider>\n )\n}\n\n/**\n * Custom hook to manage preview properties.\n */\nconst usePreview = (defaultPreview: ProviderAppProps['defaultPreview']) => {\n const [previewProps, setPreviewProps] = useState(defaultPreview || { visible: true, defaultVisible: true })\n\n const changePreview = useCallback((newPreviewProps: PreviewAdditionalProps) => {\n setPreviewProps(newPreviewProps)\n }, [])\n\n useEffect(() => {\n if (defaultPreview) setPreviewProps(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: IThemePaletteKeys\n bgColorHistory: IThemePaletteKeys[]\n bgColorIndex: number\n}\n\nexport const useBgColor = (defaultColor: IThemePaletteKeys) => {\n const [state, setState] = useState<BgColorState>({\n bgColor: defaultColor,\n bgColorHistory: [defaultColor],\n bgColorIndex: 0\n })\n\n const changeBgColor = useCallback((color: IThemePaletteKeys) => {\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: IThemePaletteKeys\n statusBarColorHistory: IThemePaletteKeys[]\n statusBarColorIndex: number\n}\n\nexport const useStatusBarColor = (defaultColor: IThemePaletteKeys) => {\n const [state, setState] = useState<StatusBarColorState>({\n statusBarColor: defaultColor,\n statusBarColorHistory: [defaultColor],\n statusBarColorIndex: 0\n })\n\n const changeStatusBarColor = useCallback((color: IThemePaletteKeys) => {\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 { css, styled } from 'styled-components'\n\nimport { addGridTransition } from '@local/styles/add'\nimport { JeneseiPalette } from '@local/theme'\n\nimport { ProviderAppOutletChildrenProps, ProviderAppOutletProps, ProviderAppWrapperProps } from '.'\nimport { ScreenWidthProps } from '../context-screen-width'\n\nexport const ProviderAppWrapper = styled.div<ProviderAppWrapperProps>`\n display: flex;\n flex-direction: column;\n max-width: 100dvw;\n min-height: 100dvh;\n width: 100%;\n overflow: hidden;\n position: relative;\n\n background-color: ${props => JeneseiPalette[props.$bgColor]};\n background-image: url(${props => props.$bgImage});\n`\n\nconst generateGridTemplateAreas = (props: ProviderAppOutletProps) => {\n let templateAreas = `\n \"notification notification notification\"\n \"header header header\"\n \"nav nav nav\"\n \"leftAside children rightAside\"\n \"footer footer footer\"\n `\n\n templateAreas = `\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 return templateAreas\n}\n\nfunction toStyledAppOutletCSS(props: {\n leftAsideWidth: string\n rightAsideWidth: string\n notificationHeight: string\n headerHeight: string\n navHeight: string\n footerHeight: string\n}) {\n return css`\n grid-template-columns: ${() => `${props.leftAsideWidth} 1fr ${props.rightAsideWidth}`};\n grid-template-rows: ${() =>\n `${props.notificationHeight} ${props.headerHeight} ${props.navHeight} 1fr ${props.footerHeight}`};\n `\n}\nconst addSXAppOutlet = css<ProviderAppOutletProps>`\n ${props => {\n const leftAsideWidth = props.$leftAside?.length?.default\n const rightAsideWidth = props.$rightAside?.length?.default\n const notificationHeight = props.$notification?.length?.default\n const headerHeight = props.$header?.length?.default\n const navHeight = props.$nav?.length?.default\n const footerHeight = props.$footer?.length?.default\n return toStyledAppOutletCSS({\n leftAsideWidth: leftAsideWidth ?? '0px',\n rightAsideWidth: rightAsideWidth ?? '0px',\n notificationHeight: notificationHeight ?? '0px',\n headerHeight: headerHeight ?? '0px',\n navHeight: navHeight ?? '0px',\n footerHeight: footerHeight ?? '0px'\n })\n }}\n ${props => {\n const leftAsideWidth = props.$leftAside?.length\n const rightAsideWidth = props.$rightAside?.length\n const notificationHeight = props.$notification?.length\n const headerHeight = props.$header?.length\n const navHeight = props.$nav?.length\n const footerHeight = props.$footer?.length\n\n return Object.entries(props.theme.screens)\n .filter(([key]) => key !== 'default')\n .map(([key]) => {\n const deviceKey = key as keyof ScreenWidthProps<string | null>\n const screenWidth = props.theme.screens[deviceKey]?.width\n if (!screenWidth) return null\n return css`\n @media (max-width: ${screenWidth}px) {\n ${toStyledAppOutletCSS({\n leftAsideWidth: leftAsideWidth && leftAsideWidth[deviceKey] ? leftAsideWidth[deviceKey] : '0px',\n rightAsideWidth: rightAsideWidth && rightAsideWidth[deviceKey] ? rightAsideWidth[deviceKey] : '0px',\n notificationHeight:\n notificationHeight && notificationHeight[deviceKey] ? notificationHeight[deviceKey] : '0px',\n headerHeight: headerHeight && headerHeight[deviceKey] ? headerHeight[deviceKey] : '0px',\n navHeight: navHeight && navHeight[deviceKey] ? navHeight[deviceKey] : '0px',\n footerHeight: footerHeight && footerHeight[deviceKey] ? footerHeight[deviceKey] : '0px'\n })}\n }\n `\n })\n }}\n`\nexport const ProviderAppOutlet = styled.div<ProviderAppOutletProps>`\n display: grid;\n width: 100%;\n height: 100%;\n\n min-height: 100dvh;\n\n ${addGridTransition};\n\n ${props => `\n grid-template-areas: ${generateGridTemplateAreas(props)};\n `}\n\n ${props =>\n props.$isScrollOutlet\n ? css`\n max-height: 100dvh;\n `\n : css`\n max-height: none;\n `};\n\n ${addSXAppOutlet};\n`\n\nexport const ProviderAppOutletChildren = styled.main<ProviderAppOutletChildrenProps>`\n z-index: ${props => props?.$main?.zIndex ?? 'auto'};\n display: flex;\n grid-area: children;\n max-width: 100%;\n max-height: 100%;\n overflow: auto;\n`\n\nexport const ProviderAppOutletNotification = styled.section<ProviderAppOutletProps>`\n z-index: ${props => props?.$notification?.zIndex ?? 'auto'};\n grid-area: notification;\n display: flex;\n`\n\nexport const ProviderAppOutletHeader = styled.header<ProviderAppOutletProps>`\n z-index: ${props => props?.$header?.zIndex ?? 'auto'};\n grid-area: header;\n display: flex;\n`\n\nexport const ProviderAppOutletFooter = styled.footer<ProviderAppOutletProps>`\n z-index: ${props => props?.$footer?.zIndex ?? 'auto'};\n grid-area: footer;\n display: flex;\n`\n\nexport const ProviderAppOutletNav = styled.nav<ProviderAppOutletProps>`\n z-index: ${props => props?.$nav?.zIndex ?? 'auto'};\n grid-area: nav;\n display: flex;\n`\n\nexport const ProviderAppOutletLeftAside = styled.aside<ProviderAppOutletProps>`\n z-index: ${props => props?.$leftAside?.zIndex ?? 'auto'};\n grid-area: leftAside;\n display: flex;\n`\n\nexport const ProviderAppOutletRightAside = styled.aside<ProviderAppOutletProps>`\n z-index: ${props => props?.$rightAside?.zIndex ?? 'auto'};\n grid-area: rightAside;\n display: flex;\n`\n","import { useContext } from 'react'\n\nimport { AppContext } from '.'\n\n/**\n * Custom hook to access the AppContext.\n */\nexport const useApp = () => {\n const context = useContext(AppContext)\n if (!context) {\n throw new Error('useApp must be used within an ProviderApp')\n }\n return context\n}\n"],"names":["AppContext","createContext","usePreview","defaultPreview","previewProps","setPreviewProps","useState","visible","defaultVisible","changePreview","useCallback","newPreviewProps","useEffect","useBgColor","defaultColor","state","setState","bgColor","bgColorHistory","bgColorIndex","changeBgColor","color","prev","newHistory","slice","length","historyBgColor","steps","newIndex","setDefaultBgColor","useStatusBarColor","statusBarColor","statusBarColorHistory","statusBarColorIndex","changeStatusBarColor","historyStatusBarColor","setDefaultStatusBarColor","useBgImage","defaultImage","bgImage","bgImageHistory","bgImageIndex","changeBgImage","image","historyBgImage","setDefaultBgImage","useTitle","defaultTitle","title","titleHistory","titleIndex","changeTitle","newTitle","setHistoryTitle","setDefaultTitle","useDescription","defaultDescription","description","descriptionHistory","descriptionIndex","changeDescription","newDescription","historyDescription","setDefaultDescription","ProviderAppWrapper","styled","div","props","JeneseiPalette","$bgColor","$bgImage","toStyledAppOutletCSS","css","leftAsideWidth","rightAsideWidth","notificationHeight","headerHeight","navHeight","footerHeight","addSXAppOutlet","_b","_a","$leftAside","default","_d","_c","$rightAside","_f","_e","$notification","_h","_g","$header","_j","_i","$nav","_l","_k","$footer","Object","entries","theme","screens","filter","key","map","deviceKey","screenWidth","width","ProviderAppOutlet","addGridTransition","templateAreas","isTopHeader","isTopNav","isTopFooter","generateGridTemplateAreas","$isScrollOutlet","ProviderAppOutletChildren","main","$main","zIndex","ProviderAppOutletNotification","section","ProviderAppOutletHeader","header","ProviderAppOutletFooter","footer","ProviderAppOutletNav","nav","ProviderAppOutletLeftAside","aside","ProviderAppOutletRightAside","defaultBgColor","defaultStatusBarColor","defaultBgImage","screenActual","useScreenWidth","jsxs","Provider","value","children","jsx","name","content","Preview","isScrollOutlet","notification","leftAside","rightAside","component","_m","_o","_n","_q","_s","_r","_u","_w","_v","context","useContext","Error"],"mappings":"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"}