@owp/core 2.2.6 → 2.3.0

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 (121) hide show
  1. package/dist/_virtual/index11.js +2 -2
  2. package/dist/_virtual/index12.js +2 -2
  3. package/dist/_virtual/index13.js +2 -2
  4. package/dist/_virtual/index14.js +2 -2
  5. package/dist/_virtual/index16.js +5 -2
  6. package/dist/_virtual/index16.js.map +1 -1
  7. package/dist/_virtual/index17.js +2 -2
  8. package/dist/_virtual/index6.js +2 -5
  9. package/dist/_virtual/index6.js.map +1 -1
  10. package/dist/_virtual/index7.js +2 -2
  11. package/dist/components/OwpLayout/OwpLayout.js +29 -30
  12. package/dist/components/OwpLayout/OwpLayout.js.map +1 -1
  13. package/dist/components/OwpScrollbars/OwpScrollbars.js +16 -17
  14. package/dist/components/OwpScrollbars/OwpScrollbars.js.map +1 -1
  15. package/dist/components/OwpStyleProvider/OwpStyleProvider.js +28 -29
  16. package/dist/components/OwpStyleProvider/OwpStyleProvider.js.map +1 -1
  17. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +80 -74
  18. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js.map +1 -1
  19. package/dist/contexts/OwpCoreProvider.js +22 -36
  20. package/dist/contexts/OwpCoreProvider.js.map +1 -1
  21. package/dist/contexts/OwpStoreProvider.js +9 -9
  22. package/dist/contexts/OwpStoreProvider.js.map +1 -1
  23. package/dist/hooks/useNavbar.js +24 -0
  24. package/dist/hooks/useNavbar.js.map +1 -0
  25. package/dist/hooks/useOwpSettings.js +21 -0
  26. package/dist/hooks/useOwpSettings.js.map +1 -0
  27. package/dist/hooks.js +75 -62
  28. package/dist/hooks.js.map +1 -1
  29. package/dist/layout/Layout.js +28 -29
  30. package/dist/layout/Layout.js.map +1 -1
  31. package/dist/layout/components/layouts/FooterLayout.js +15 -16
  32. package/dist/layout/components/layouts/FooterLayout.js.map +1 -1
  33. package/dist/layout/components/layouts/NavbarToggleFabLayout.js +21 -18
  34. package/dist/layout/components/layouts/NavbarToggleFabLayout.js.map +1 -1
  35. package/dist/layout/components/layouts/NavbarWrapperLayout.js +20 -21
  36. package/dist/layout/components/layouts/NavbarWrapperLayout.js.map +1 -1
  37. package/dist/layout/components/navbar/NavbarPinToggleButton.js +10 -11
  38. package/dist/layout/components/navbar/NavbarPinToggleButton.js.map +1 -1
  39. package/dist/layout/components/navbar/NavbarToggleButton.js +31 -32
  40. package/dist/layout/components/navbar/NavbarToggleButton.js.map +1 -1
  41. package/dist/layout/components/navbar/style/NavbarStyle.js +36 -37
  42. package/dist/layout/components/navbar/style/NavbarStyle.js.map +1 -1
  43. package/dist/layout/components/navbar/style/NavbarStyleContent.js +29 -30
  44. package/dist/layout/components/navbar/style/NavbarStyleContent.js.map +1 -1
  45. package/dist/layout/components/navigation/Navigation.js +18 -22
  46. package/dist/layout/components/navigation/Navigation.js.map +1 -1
  47. package/dist/layout/components/toggles/NavigationSearchToggle.js +55 -60
  48. package/dist/layout/components/toggles/NavigationSearchToggle.js.map +1 -1
  49. package/dist/layout/components/toggles/NavigationShortcutsToggle.js +44 -49
  50. package/dist/layout/components/toggles/NavigationShortcutsToggle.js.map +1 -1
  51. package/dist/layout/components/toolbar/ToolbarLayout.js +26 -27
  52. package/dist/layout/components/toolbar/ToolbarLayout.js.map +1 -1
  53. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
  54. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/index.js +1 -1
  55. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE39/index.js +1 -1
  56. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/index.js +1 -1
  57. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js +1 -1
  58. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js +1 -1
  59. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js +1 -1
  60. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/index.js +1 -1
  61. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/MSI/index.js +1 -1
  62. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/codabar/index.js +1 -1
  63. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js +1 -1
  64. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/renderers/index.js +1 -1
  65. package/dist/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js +1 -1
  66. package/dist/node_modules/.pnpm/react-imask@7.6.1_react@19.2.4/node_modules/react-imask/esm/mixin.js +1 -1
  67. package/dist/node_modules/.pnpm/react-overlays@5.2.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-overlays/esm/Portal.js +1 -1
  68. package/dist/store/atoms/navbarAtoms.js +84 -0
  69. package/dist/store/atoms/navbarAtoms.js.map +1 -0
  70. package/dist/store/atoms/owpSettingsAtoms.js +140 -0
  71. package/dist/store/atoms/owpSettingsAtoms.js.map +1 -0
  72. package/dist/store/atoms/owpStore.js +29 -0
  73. package/dist/store/atoms/owpStore.js.map +1 -0
  74. package/dist/store.js +44 -39
  75. package/dist/store.js.map +1 -1
  76. package/dist/types/components/OwpPicker/internal/DatePickerInput.d.ts +1 -1
  77. package/dist/types/components/OwpTable/OwpTable.d.ts +1 -1
  78. package/dist/types/components/OwpTabs/OwpTab.d.ts +1 -1
  79. package/dist/types/components/OwpTabs/OwpTabs.d.ts +1 -1
  80. package/dist/types/contexts/OwpCoreProvider.d.ts +2 -2
  81. package/dist/types/contexts/OwpStoreProvider.d.ts +4 -4
  82. package/dist/types/hooks/index.d.ts +2 -1
  83. package/dist/types/hooks/useNavbar.d.ts +19 -0
  84. package/dist/types/hooks/useOwpSettings.d.ts +79 -0
  85. package/dist/types/layout/components/navigation/Navigation.d.ts +6 -2
  86. package/dist/types/layout/components/toggles/NavigationSearchToggle.d.ts +5 -2
  87. package/dist/types/layout/components/toggles/NavigationShortcutsToggle.d.ts +5 -2
  88. package/dist/types/store/atoms/index.d.ts +3 -0
  89. package/dist/types/store/atoms/internal/types.d.ts +29 -0
  90. package/dist/types/store/atoms/navbarAtoms.d.ts +48 -0
  91. package/dist/types/store/atoms/owpSettingsAtoms.d.ts +89 -0
  92. package/dist/types/store/atoms/owpStore.d.ts +13 -0
  93. package/dist/types/store/index.d.ts +1 -3
  94. package/package.json +2 -6
  95. package/dist/hooks/useAppStore.js +0 -8
  96. package/dist/hooks/useAppStore.js.map +0 -1
  97. package/dist/store/generateReducersFromSlices.js +0 -18
  98. package/dist/store/generateReducersFromSlices.js.map +0 -1
  99. package/dist/store/lazyLoadedSlices.js +0 -16
  100. package/dist/store/lazyLoadedSlices.js.map +0 -1
  101. package/dist/store/middleware.js +0 -9
  102. package/dist/store/middleware.js.map +0 -1
  103. package/dist/store/navbarSlice.js +0 -71
  104. package/dist/store/navbarSlice.js.map +0 -1
  105. package/dist/store/navigationSlice.js +0 -46
  106. package/dist/store/navigationSlice.js.map +0 -1
  107. package/dist/store/owpSettingsSlice.js +0 -195
  108. package/dist/store/owpSettingsSlice.js.map +0 -1
  109. package/dist/store/store.js +0 -17
  110. package/dist/store/store.js.map +0 -1
  111. package/dist/store/withSlices.js +0 -27
  112. package/dist/store/withSlices.js.map +0 -1
  113. package/dist/types/hooks/useAppStore.d.ts +0 -7
  114. package/dist/types/store/generateReducersFromSlices.d.ts +0 -6
  115. package/dist/types/store/lazyLoadedSlices.d.ts +0 -9
  116. package/dist/types/store/middleware.d.ts +0 -17
  117. package/dist/types/store/navbarSlice.d.ts +0 -22
  118. package/dist/types/store/navigationSlice.d.ts +0 -93
  119. package/dist/types/store/owpSettingsSlice.d.ts +0 -112
  120. package/dist/types/store/store.d.ts +0 -13
  121. package/dist/types/store/withSlices.d.ts +0 -11
@@ -0,0 +1,29 @@
1
+ var s = Object.defineProperty;
2
+ var o = (n, t) => s(n, "name", { value: t, configurable: !0 });
3
+ import { createInitialOwpSettings as m } from "../../configs/defaultConfig.js";
4
+ import { createStore as c } from "jotai/vanilla";
5
+ import { createNavbarState as g, navbarStateAtom as e } from "./navbarAtoms.js";
6
+ import { createSettingsState as w, owpSettingsStateAtom as f } from "./owpSettingsAtoms.js";
7
+ import { merge as S } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/merge.js";
8
+ function x(n, t, r) {
9
+ const i = m(n, t);
10
+ return {
11
+ owpSettings: S(
12
+ {},
13
+ w(i),
14
+ r == null ? void 0 : r.owpSettings
15
+ ),
16
+ navbar: g(r == null ? void 0 : r.navbar)
17
+ };
18
+ }
19
+ o(x, "createOwpStoreState");
20
+ function I(n) {
21
+ const t = c();
22
+ return t.set(f, n.owpSettings), t.set(e, n.navbar), t;
23
+ }
24
+ o(I, "createOwpStore");
25
+ export {
26
+ I as createOwpStore,
27
+ x as createOwpStoreState
28
+ };
29
+ //# sourceMappingURL=owpStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owpStore.js","sources":["../../../src/store/atoms/owpStore.ts"],"sourcesContent":["import { createInitialOwpSettings } from '@/configs/defaultConfig';\nimport type {\n OwpSettingsConfigType,\n OwpThemesType,\n} from '@/types/OwpSettingsTypes';\nimport { merge } from 'es-toolkit/compat';\nimport { createStore } from 'jotai/vanilla';\nimport type { PartialDeep } from 'type-fest';\nimport { createNavbarState, navbarStateAtom } from './navbarAtoms';\nimport type { OwpStorePreloadedState, OwpStoreState } from './internal/types';\nimport { createSettingsState, owpSettingsStateAtom } from './owpSettingsAtoms';\n\nexport type OwpStore = ReturnType<typeof createStore>;\n\n/**\n * OWP 전역 상태 초기값 생성\n */\nexport function createOwpStoreState(\n settingsConfig?: PartialDeep<OwpSettingsConfigType>,\n themesConfig?: PartialDeep<OwpThemesType>,\n preloadedState?: OwpStorePreloadedState,\n): OwpStoreState {\n const initialSettings = createInitialOwpSettings(settingsConfig, themesConfig);\n const owpSettings = merge(\n {},\n createSettingsState(initialSettings),\n preloadedState?.owpSettings,\n ) as OwpStoreState['owpSettings'];\n\n return {\n owpSettings,\n navbar: createNavbarState(preloadedState?.navbar),\n };\n}\n\n/**\n * OWP Jotai store 생성\n */\nexport function createOwpStore(initialState: OwpStoreState): OwpStore {\n const store = createStore();\n\n store.set(owpSettingsStateAtom, initialState.owpSettings);\n store.set(navbarStateAtom, initialState.navbar);\n\n return store;\n}\n"],"names":["createOwpStoreState","settingsConfig","themesConfig","preloadedState","initialSettings","createInitialOwpSettings","merge","createSettingsState","createNavbarState","__name","createOwpStore","initialState","store","createStore","owpSettingsStateAtom","navbarStateAtom"],"mappings":";;;;;;;AAiBO,SAASA,EACdC,GACAC,GACAC,GACe;AACf,QAAMC,IAAkBC,EAAyBJ,GAAgBC,CAAY;AAO7E,SAAO;AAAA,IACL,aAPkBI;AAAA,MAClB,CAAA;AAAA,MACAC,EAAoBH,CAAe;AAAA,MACnCD,KAAA,gBAAAA,EAAgB;AAAA,IAAA;AAAA,IAKhB,QAAQK,EAAkBL,KAAA,gBAAAA,EAAgB,MAAM;AAAA,EAAA;AAEpD;AAhBgBM,EAAAT,GAAA;AAqBT,SAASU,EAAeC,GAAuC;AACpE,QAAMC,IAAQC,EAAA;AAEd,SAAAD,EAAM,IAAIE,GAAsBH,EAAa,WAAW,GACxDC,EAAM,IAAIG,GAAiBJ,EAAa,MAAM,GAEvCC;AACT;AAPgBH,EAAAC,GAAA;"}
package/dist/store.js CHANGED
@@ -1,42 +1,47 @@
1
- import { OwpStoreProvider as r } from "./contexts/OwpStoreProvider.js";
2
- import { createAppSelector as l, makeStore as a } from "./store/store.js";
3
- import { changeOwpTheme as i, darkPaletteText as c, getDirection as h, getFooterTheme as n, getMainTheme as T, getNavbarTheme as m, getToolbarTheme as g, lightPaletteText as S, owpSettingsSlice as p, resetSettings as b, selectContrastMainTheme as w, selectCustomScrollbarsEnabled as u, selectFooterTheme as D, selectFooterThemeDark as O, selectFooterThemeLight as f, selectMainTheme as k, selectMainThemeDark as C, selectMainThemeLight as v, selectNavbarTheme as x, selectNavbarThemeDark as L, selectNavbarThemeLight as M, selectOwpCurrentLayoutConfig as F, selectOwpCurrentSettings as N, selectOwpDefaultSettings as d, selectOwpSettings as P, selectOwpSettingsCurrent as y, selectOwpSettingsDefaults as A, selectToolbarTheme as E, selectToolbarThemeDark as I, selectToolbarThemeLight as j, setDefaultSettings as q, setInitialSettings as z, setSettings as B } from "./store/owpSettingsSlice.js";
1
+ import { OwpStoreProvider as o } from "./contexts/OwpStoreProvider.js";
2
+ import { createNavbarState as m, navbarCloseAtom as r, navbarCloseFoldedAtom as n, navbarCloseMobileAtom as A, navbarOpenAtom as i, navbarOpenFoldedAtom as g, navbarOpenMobileAtom as l, navbarStateAtom as s, navbarToggleAtom as S, navbarToggleFoldedAtom as b, navbarToggleMobileAtom as T, resetNavbarAtom as v } from "./store/atoms/navbarAtoms.js";
3
+ import { changeOwpThemeAtom as p, createSettingsState as d, currentLayoutConfigAtom as c, currentSettingsAtom as f, customScrollbarsEnabledAtom as O, darkPaletteText as u, defaultSettingsAtom as w, directionAtom as x, footerThemeAtom as C, footerThemeSettingsAtom as F, lightPaletteText as M, mainThemeAtom as P, mainThemeDarkAtom as k, mainThemeLightAtom as D, mainThemeSettingsAtom as L, navbarThemeAtom as N, navbarThemeSettingsAtom as y, owpSettingsAtom as E, owpSettingsStateAtom as I, resetSettingsAtom as j, setDefaultSettingsAtom as q, setInitialSettingsAtom as z, setSettingsAtom as B, toolbarThemeAtom as G, toolbarThemeSettingsAtom as H } from "./store/atoms/owpSettingsAtoms.js";
4
+ import { createOwpStore as K, createOwpStoreState as Q } from "./store/atoms/owpStore.js";
4
5
  export {
5
- r as OwpStoreProvider,
6
- i as changeOwpTheme,
7
- l as createAppSelector,
8
- c as darkPaletteText,
9
- h as getDirection,
10
- n as getFooterTheme,
11
- T as getMainTheme,
12
- m as getNavbarTheme,
13
- g as getToolbarTheme,
14
- S as lightPaletteText,
15
- a as makeStore,
16
- p as owpSettingsSlice,
17
- b as resetSettings,
18
- w as selectContrastMainTheme,
19
- u as selectCustomScrollbarsEnabled,
20
- D as selectFooterTheme,
21
- O as selectFooterThemeDark,
22
- f as selectFooterThemeLight,
23
- k as selectMainTheme,
24
- C as selectMainThemeDark,
25
- v as selectMainThemeLight,
26
- x as selectNavbarTheme,
27
- L as selectNavbarThemeDark,
28
- M as selectNavbarThemeLight,
29
- F as selectOwpCurrentLayoutConfig,
30
- N as selectOwpCurrentSettings,
31
- d as selectOwpDefaultSettings,
32
- P as selectOwpSettings,
33
- y as selectOwpSettingsCurrent,
34
- A as selectOwpSettingsDefaults,
35
- E as selectToolbarTheme,
36
- I as selectToolbarThemeDark,
37
- j as selectToolbarThemeLight,
38
- q as setDefaultSettings,
39
- z as setInitialSettings,
40
- B as setSettings
6
+ o as OwpStoreProvider,
7
+ p as changeOwpThemeAtom,
8
+ m as createNavbarState,
9
+ K as createOwpStore,
10
+ Q as createOwpStoreState,
11
+ d as createSettingsState,
12
+ c as currentLayoutConfigAtom,
13
+ f as currentSettingsAtom,
14
+ O as customScrollbarsEnabledAtom,
15
+ u as darkPaletteText,
16
+ w as defaultSettingsAtom,
17
+ x as directionAtom,
18
+ C as footerThemeAtom,
19
+ F as footerThemeSettingsAtom,
20
+ M as lightPaletteText,
21
+ P as mainThemeAtom,
22
+ k as mainThemeDarkAtom,
23
+ D as mainThemeLightAtom,
24
+ L as mainThemeSettingsAtom,
25
+ r as navbarCloseAtom,
26
+ n as navbarCloseFoldedAtom,
27
+ A as navbarCloseMobileAtom,
28
+ i as navbarOpenAtom,
29
+ g as navbarOpenFoldedAtom,
30
+ l as navbarOpenMobileAtom,
31
+ s as navbarStateAtom,
32
+ N as navbarThemeAtom,
33
+ y as navbarThemeSettingsAtom,
34
+ S as navbarToggleAtom,
35
+ b as navbarToggleFoldedAtom,
36
+ T as navbarToggleMobileAtom,
37
+ E as owpSettingsAtom,
38
+ I as owpSettingsStateAtom,
39
+ v as resetNavbarAtom,
40
+ j as resetSettingsAtom,
41
+ q as setDefaultSettingsAtom,
42
+ z as setInitialSettingsAtom,
43
+ B as setSettingsAtom,
44
+ G as toolbarThemeAtom,
45
+ H as toolbarThemeSettingsAtom
41
46
  };
42
47
  //# sourceMappingURL=store.js.map
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
1
+ {"version":3,"file":"store.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -23,5 +23,5 @@ interface OwnProps {
23
23
  * @param onIconClick 아이콘 클릭 핸들러
24
24
  * @param ref forwardRef 참조
25
25
  */
26
- export declare const DatePickerInput: import("react").ForwardRefExoticComponent<(Omit<import("@mui/material").FilledTextFieldProps & OwnProps, "ref"> | Omit<import("@mui/material").StandardTextFieldProps & OwnProps, "ref"> | Omit<import("@mui/material").OutlinedTextFieldProps & OwnProps, "ref">) & import("react").RefAttributes<unknown>>;
26
+ export declare const DatePickerInput: import("react").ForwardRefExoticComponent<(Omit<import("@mui/material").StandardTextFieldProps & OwnProps, "ref"> | Omit<import("@mui/material").OutlinedTextFieldProps & OwnProps, "ref"> | Omit<import("@mui/material").FilledTextFieldProps & OwnProps, "ref">) & import("react").RefAttributes<unknown>>;
27
27
  export {};
@@ -30,7 +30,7 @@ export declare function OwpTableTotalCount({ totalCount }: {
30
30
  * @param tableLayout tableLayout 값
31
31
  */
32
32
  export declare const StyledTable: ({ canBodyFullHeight, canUseTreeGridStyle, children, className, containerProps, footerSlot, tableLayout, ...tableProps }: StyledTableProps) => import("react/jsx-runtime").JSX.Element;
33
- export declare const StyledTableRow: import("@emotion/styled").StyledComponent<import("@mui/material").TableRowOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, "style" | "hover" | "selected" | "children" | "sx" | "classes" | "className"> & import("@mui/system").MUIStyledCommonProps<Theme>, {}, {}>;
33
+ export declare const StyledTableRow: import("@emotion/styled").StyledComponent<import("@mui/material").TableRowOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, "style" | "hover" | "selected" | "className" | "classes" | "children" | "sx"> & import("@mui/system").MUIStyledCommonProps<Theme>, {}, {}>;
34
34
  interface OwpTableProps<T> extends Omit<StyledTableProps, 'children'> {
35
35
  canTotalCountRow?: boolean;
36
36
  headers: OwpTableHeaderRow | OwpTableHeaderRow[];
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * OwpTab 컴포넌트
3
3
  */
4
- declare const OwpTab: import("@emotion/styled").StyledComponent<import("@mui/material").TabOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style" | "action" | "disabled" | "children" | "sx" | "icon" | "classes" | "className" | "label" | "tabIndex" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "value" | "wrapped" | "iconPosition"> & {
4
+ declare const OwpTab: import("@emotion/styled").StyledComponent<import("@mui/material").TabOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style" | "action" | "disabled" | "className" | "classes" | "children" | "sx" | "label" | "tabIndex" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "value" | "icon" | "wrapped" | "iconPosition"> & {
5
5
  component?: React.ElementType | undefined;
6
6
  } & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
7
7
  export { OwpTab };
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * OwpTabs 컴포넌트
3
3
  */
4
- declare const OwpTabs: import("@emotion/styled").StyledComponent<import("@mui/material").TabsOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style" | "action" | "children" | "sx" | "classes" | "className" | "variant" | "aria-label" | "aria-labelledby" | "onChange" | "slots" | "slotProps" | "value" | "orientation" | "allowScrollButtonsMobile" | "centered" | "indicatorColor" | "ScrollButtonComponent" | "scrollButtons" | "selectionFollowsFocus" | "TabIndicatorProps" | "TabScrollButtonProps" | "textColor" | "visibleScrollbar"> & {
4
+ declare const OwpTabs: import("@emotion/styled").StyledComponent<import("@mui/material").TabsOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style" | "action" | "className" | "classes" | "children" | "sx" | "variant" | "aria-label" | "aria-labelledby" | "onChange" | "slots" | "slotProps" | "value" | "orientation" | "allowScrollButtonsMobile" | "centered" | "indicatorColor" | "ScrollButtonComponent" | "scrollButtons" | "selectionFollowsFocus" | "TabIndicatorProps" | "TabScrollButtonProps" | "textColor" | "visibleScrollbar"> & {
5
5
  component?: React.ElementType | undefined;
6
6
  } & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
7
7
  export { OwpTabs };
@@ -11,10 +11,10 @@ export interface OwpCoreProviderProps extends OwpAppProviderProps {
11
11
  styledEngineProviderProps?: OwpStyledEngineProviderProps;
12
12
  }
13
13
  /**
14
- * App, Redux, React Query provider composition
14
+ * App, Jotai, React Query provider composition
15
15
  * @param queryClient 외부 QueryClient 인스턴스
16
16
  * @param queryClientConfig QueryClient 생성 옵션
17
- * @param storePreloadedState 초기 Redux 상태
17
+ * @param storePreloadedState 초기 전역 상태
18
18
  * @param styledEngineProviderProps StyledEngineProvider 옵션
19
19
  */
20
20
  export declare function OwpCoreProvider({ children, queryClient, queryClientConfig, storePreloadedState, styledEngineProviderProps, ...appProviderProps }: OwpCoreProviderProps): import("react/jsx-runtime").JSX.Element;
@@ -1,12 +1,12 @@
1
+ import type { OwpStorePreloadedState } from '@/store/atoms/internal/types';
1
2
  import { ReactNode } from 'react';
2
- import { RootState } from '../store/store';
3
3
  export interface OwpStoreProviderProps {
4
4
  children?: ReactNode;
5
- preloadedState?: Partial<RootState>;
5
+ preloadedState?: OwpStorePreloadedState;
6
6
  }
7
7
  /**
8
- * Owp Redux store provider
8
+ * OWP Jotai store provider
9
9
  * @param children 하위 콘텐츠
10
- * @param preloadedState 초기 Redux 상태
10
+ * @param preloadedState 초기 전역 상태
11
11
  */
12
12
  export declare function OwpStoreProvider({ children, preloadedState }: OwpStoreProviderProps): import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,5 @@
1
1
  export * from './useCommonCodeList';
2
2
  export * from './useAccessTokenGuard';
3
- export * from './useAppStore';
4
3
  export * from './useConfirm';
5
4
  export * from './useCurrentLanguage';
6
5
  export * from './useLogoSrc';
@@ -11,7 +10,9 @@ export * from './useDeepCompareEffect';
11
10
  export * from './useHeaderWrapState';
12
11
  export * from './useInitApp';
13
12
  export * from './useInitCommonCodes';
13
+ export * from './useNavbar';
14
14
  export * from './useNavigation';
15
+ export * from './useOwpSettings';
15
16
  export * from './useOwpTranslation';
16
17
  export * from './usePageLockLoading';
17
18
  export * from './usePrevious';
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Navbar 상태 조회 훅
3
+ */
4
+ export declare const useGetNavbar: () => import("../store/atoms/internal/types").NavbarState;
5
+ /**
6
+ * Navbar 액션 훅
7
+ */
8
+ export declare const useNavbarActions: () => {
9
+ toggleFolded: () => void;
10
+ openFolded: () => void;
11
+ closeFolded: () => void;
12
+ toggleMobile: () => void;
13
+ openMobile: () => void;
14
+ closeMobile: () => void;
15
+ open: () => void;
16
+ close: () => void;
17
+ toggle: () => void;
18
+ reset: () => void;
19
+ };
@@ -0,0 +1,79 @@
1
+ import type { OwpSettingsConfigType } from '@/types/OwpSettingsTypes';
2
+ import type { OwpSettingsState } from '@/store/atoms/internal/types';
3
+ import type { PartialDeep } from 'type-fest';
4
+ /**
5
+ * OWP settings 원본 상태 조회 훅
6
+ */
7
+ export declare const useGetOwpSettings: () => OwpSettingsState;
8
+ /**
9
+ * 현재 settings 조회 훅
10
+ */
11
+ export declare const useGetCurrentSettings: () => OwpSettingsConfigType;
12
+ /**
13
+ * 기본 settings 조회 훅
14
+ */
15
+ export declare const useGetDefaultSettings: () => OwpSettingsConfigType;
16
+ /**
17
+ * 현재 layout config 조회 훅
18
+ */
19
+ export declare const useGetCurrentLayoutConfig: () => {
20
+ mode?: string;
21
+ containerWidth?: string;
22
+ navbar?: {
23
+ display?: boolean;
24
+ style?: string;
25
+ folded?: boolean;
26
+ position?: string;
27
+ open?: boolean;
28
+ };
29
+ toolbar?: {
30
+ display?: boolean;
31
+ style?: string;
32
+ };
33
+ footer?: {
34
+ display?: boolean;
35
+ style?: string;
36
+ };
37
+ leftSidePanel?: {
38
+ display?: boolean;
39
+ };
40
+ rightSidePanel?: {
41
+ display?: boolean;
42
+ };
43
+ };
44
+ /**
45
+ * Main theme 조회 훅
46
+ */
47
+ export declare const useGetMainTheme: () => import("@mui/material").Theme;
48
+ /**
49
+ * Navbar theme 조회 훅
50
+ */
51
+ export declare const useGetNavbarTheme: () => import("@mui/material").Theme;
52
+ /**
53
+ * Toolbar theme 조회 훅
54
+ */
55
+ export declare const useGetToolbarTheme: () => import("@mui/material").Theme;
56
+ /**
57
+ * Footer theme 조회 훅
58
+ */
59
+ export declare const useGetFooterTheme: () => import("@mui/material").Theme;
60
+ /**
61
+ * Custom scrollbar 사용 여부 조회 훅
62
+ */
63
+ export declare const useGetCustomScrollbarsEnabled: () => boolean;
64
+ /**
65
+ * 현재 settings 설정 훅
66
+ */
67
+ export declare const useSetSettings: () => (nextSettings: OwpSettingsConfigType) => void;
68
+ /**
69
+ * 기본 settings 설정 훅
70
+ */
71
+ export declare const useSetDefaultSettings: () => (nextSettings: PartialDeep<OwpSettingsConfigType>) => OwpSettingsState;
72
+ /**
73
+ * Settings 초기화 훅
74
+ */
75
+ export declare const useResetSettings: () => () => void;
76
+ /**
77
+ * Theme 설정 변경 훅
78
+ */
79
+ export declare const useChangeOwpTheme: () => (theme: import("@/types/OwpSettingsTypes").OwpThemesType) => OwpSettingsState;
@@ -1,3 +1,7 @@
1
1
  import { type NavigationMenuProps } from './NavigationMenu';
2
- declare const NavigationWIthSlices: (props: Partial<NavigationMenuProps>) => import("react/jsx-runtime").JSX.Element;
3
- export default NavigationWIthSlices;
2
+ /**
3
+ * Navigation
4
+ */
5
+ type NavigationProps = Partial<NavigationMenuProps>;
6
+ declare function Navigation(props: NavigationProps): import("react/jsx-runtime").JSX.Element;
7
+ export default Navigation;
@@ -9,8 +9,11 @@ type NavigationSearchToggleProps = {
9
9
  placeholder?: string;
10
10
  noResults?: string;
11
11
  };
12
+ /**
13
+ * Navigation search toggle.
14
+ */
15
+ declare function NavigationSearchToggle(props: NavigationSearchToggleProps): import("react/jsx-runtime").JSX.Element;
12
16
  /**
13
17
  * Memoized navigation search toggle.
14
18
  */
15
- declare const NavigationSearchToggleWithSlices: (props: NavigationSearchToggleProps) => import("react/jsx-runtime").JSX.Element;
16
- export default NavigationSearchToggleWithSlices;
19
+ export default NavigationSearchToggle;
@@ -2,8 +2,11 @@ type NavigationShortcutsToggleProps = {
2
2
  className?: string;
3
3
  variant?: 'horizontal' | 'vertical';
4
4
  };
5
+ /**
6
+ * Navigation shortcuts toggle.
7
+ */
8
+ declare function NavigationShortcutsToggle(props: NavigationShortcutsToggleProps): import("react/jsx-runtime").JSX.Element;
5
9
  /**
6
10
  * Memoized navigation shortcuts toggle.
7
11
  */
8
- declare const NavigationShortcutsToggleWithSlices: (props: NavigationShortcutsToggleProps) => import("react/jsx-runtime").JSX.Element;
9
- export default NavigationShortcutsToggleWithSlices;
12
+ export default NavigationShortcutsToggle;
@@ -0,0 +1,3 @@
1
+ export * from './navbarAtoms';
2
+ export * from './owpSettingsAtoms';
3
+ export * from './owpStore';
@@ -0,0 +1,29 @@
1
+ import type { OwpSettingsConfigType } from '@/types/OwpSettingsTypes';
2
+ import type { PartialDeep } from 'type-fest';
3
+ /**
4
+ * OWP settings 상태 타입
5
+ */
6
+ export type OwpSettingsState = {
7
+ initial: OwpSettingsConfigType;
8
+ defaults: OwpSettingsConfigType;
9
+ current: OwpSettingsConfigType;
10
+ };
11
+ /**
12
+ * Navbar 상태 타입
13
+ */
14
+ export type NavbarState = {
15
+ open: boolean;
16
+ mobileOpen: boolean;
17
+ foldedOpen: boolean;
18
+ };
19
+ /**
20
+ * OWP 전역 상태 타입
21
+ */
22
+ export type OwpStoreState = {
23
+ owpSettings: OwpSettingsState;
24
+ navbar: NavbarState;
25
+ };
26
+ /**
27
+ * OWP 전역 상태 초기값 타입
28
+ */
29
+ export type OwpStorePreloadedState = PartialDeep<OwpStoreState>;
@@ -0,0 +1,48 @@
1
+ import type { NavbarState } from './internal/types';
2
+ /**
3
+ * Navbar 기본 상태 생성
4
+ */
5
+ export declare function createNavbarState(overrides?: Partial<NavbarState>): NavbarState;
6
+ export declare const navbarStateAtom: import("jotai").PrimitiveAtom<NavbarState> & {
7
+ init: NavbarState;
8
+ };
9
+ /**
10
+ * Navbar 접기 상태 토글 atom
11
+ */
12
+ export declare const navbarToggleFoldedAtom: import("jotai").WritableAtom<unknown, [], void>;
13
+ /**
14
+ * Navbar 접기 상태 열기 atom
15
+ */
16
+ export declare const navbarOpenFoldedAtom: import("jotai").WritableAtom<unknown, [], void>;
17
+ /**
18
+ * Navbar 접기 상태 닫기 atom
19
+ */
20
+ export declare const navbarCloseFoldedAtom: import("jotai").WritableAtom<unknown, [], void>;
21
+ /**
22
+ * 모바일 navbar 상태 토글 atom
23
+ */
24
+ export declare const navbarToggleMobileAtom: import("jotai").WritableAtom<unknown, [], void>;
25
+ /**
26
+ * 모바일 navbar 열기 atom
27
+ */
28
+ export declare const navbarOpenMobileAtom: import("jotai").WritableAtom<unknown, [], void>;
29
+ /**
30
+ * 모바일 navbar 닫기 atom
31
+ */
32
+ export declare const navbarCloseMobileAtom: import("jotai").WritableAtom<unknown, [], void>;
33
+ /**
34
+ * Navbar 닫기 atom
35
+ */
36
+ export declare const navbarCloseAtom: import("jotai").WritableAtom<unknown, [], void>;
37
+ /**
38
+ * Navbar 열기 atom
39
+ */
40
+ export declare const navbarOpenAtom: import("jotai").WritableAtom<unknown, [], void>;
41
+ /**
42
+ * Navbar 상태 토글 atom
43
+ */
44
+ export declare const navbarToggleAtom: import("jotai").WritableAtom<unknown, [], void>;
45
+ /**
46
+ * Navbar 기본값 복원 atom
47
+ */
48
+ export declare const resetNavbarAtom: import("jotai").WritableAtom<unknown, [], void>;
@@ -0,0 +1,89 @@
1
+ import type { OwpSettingsConfigType, OwpThemeType, OwpThemesType } from '@/types/OwpSettingsTypes';
2
+ import { type WritableAtom } from 'jotai';
3
+ import type { PartialDeep } from 'type-fest';
4
+ import type { OwpSettingsState } from './internal/types';
5
+ /**
6
+ * Light theme text palette
7
+ */
8
+ export declare const lightPaletteText: {
9
+ primary: string;
10
+ secondary: string;
11
+ disabled: string;
12
+ };
13
+ /**
14
+ * Dark theme text palette
15
+ */
16
+ export declare const darkPaletteText: {
17
+ primary: string;
18
+ secondary: string;
19
+ disabled: string;
20
+ };
21
+ /**
22
+ * Settings 기본 상태 생성
23
+ */
24
+ export declare function createSettingsState(initialValue: OwpSettingsConfigType): OwpSettingsState;
25
+ export declare const owpSettingsStateAtom: import("jotai").PrimitiveAtom<OwpSettingsState> & {
26
+ init: OwpSettingsState;
27
+ };
28
+ export declare const owpSettingsAtom: import("jotai").Atom<OwpSettingsState>;
29
+ export declare const defaultSettingsAtom: import("jotai").Atom<OwpSettingsConfigType>;
30
+ export declare const currentSettingsAtom: import("jotai").Atom<OwpSettingsConfigType>;
31
+ export declare const currentLayoutConfigAtom: import("jotai").Atom<{
32
+ mode?: string;
33
+ containerWidth?: string;
34
+ navbar?: {
35
+ display?: boolean;
36
+ style?: string;
37
+ folded?: boolean;
38
+ position?: string;
39
+ open?: boolean;
40
+ };
41
+ toolbar?: {
42
+ display?: boolean;
43
+ style?: string;
44
+ };
45
+ footer?: {
46
+ display?: boolean;
47
+ style?: string;
48
+ };
49
+ leftSidePanel?: {
50
+ display?: boolean;
51
+ };
52
+ rightSidePanel?: {
53
+ display?: boolean;
54
+ };
55
+ }>;
56
+ export declare const customScrollbarsEnabledAtom: import("jotai").Atom<boolean>;
57
+ export declare const directionAtom: import("jotai").Atom<"rtl" | "ltr">;
58
+ export declare const mainThemeSettingsAtom: import("jotai").Atom<OwpThemeType>;
59
+ export declare const navbarThemeSettingsAtom: import("jotai").Atom<OwpThemeType>;
60
+ export declare const toolbarThemeSettingsAtom: import("jotai").Atom<OwpThemeType>;
61
+ export declare const footerThemeSettingsAtom: import("jotai").Atom<OwpThemeType>;
62
+ export declare const mainThemeAtom: import("jotai").Atom<import("@mui/material").Theme>;
63
+ export declare const mainThemeDarkAtom: import("jotai").Atom<import("@mui/material").Theme>;
64
+ export declare const mainThemeLightAtom: import("jotai").Atom<import("@mui/material").Theme>;
65
+ export declare const navbarThemeAtom: import("jotai").Atom<import("@mui/material").Theme>;
66
+ export declare const toolbarThemeAtom: import("jotai").Atom<import("@mui/material").Theme>;
67
+ export declare const footerThemeAtom: import("jotai").Atom<import("@mui/material").Theme>;
68
+ /**
69
+ * 현재 settings 적용 atom
70
+ */
71
+ export declare const setSettingsAtom: WritableAtom<unknown, [nextSettings: OwpSettingsConfigType], void>;
72
+ /**
73
+ * 기본 settings 변경 atom
74
+ */
75
+ export declare const setDefaultSettingsAtom: WritableAtom<null, [
76
+ PartialDeep<OwpSettingsConfigType>
77
+ ], OwpSettingsState>;
78
+ /**
79
+ * 초기 settings 복원 atom
80
+ */
81
+ export declare const setInitialSettingsAtom: WritableAtom<unknown, [], void>;
82
+ /**
83
+ * 현재 defaults 기준 초기화 atom
84
+ */
85
+ export declare const resetSettingsAtom: WritableAtom<unknown, [], void>;
86
+ /**
87
+ * Theme 설정 변경 atom
88
+ */
89
+ export declare const changeOwpThemeAtom: WritableAtom<unknown, [theme: OwpThemesType], OwpSettingsState>;
@@ -0,0 +1,13 @@
1
+ import type { OwpSettingsConfigType, OwpThemesType } from '@/types/OwpSettingsTypes';
2
+ import { createStore } from 'jotai/vanilla';
3
+ import type { PartialDeep } from 'type-fest';
4
+ import type { OwpStorePreloadedState, OwpStoreState } from './internal/types';
5
+ export type OwpStore = ReturnType<typeof createStore>;
6
+ /**
7
+ * OWP 전역 상태 초기값 생성
8
+ */
9
+ export declare function createOwpStoreState(settingsConfig?: PartialDeep<OwpSettingsConfigType>, themesConfig?: PartialDeep<OwpThemesType>, preloadedState?: OwpStorePreloadedState): OwpStoreState;
10
+ /**
11
+ * OWP Jotai store 생성
12
+ */
13
+ export declare function createOwpStore(initialState: OwpStoreState): OwpStore;
@@ -2,6 +2,4 @@
2
2
  * Public store entry exports
3
3
  */
4
4
  export { OwpStoreProvider, type OwpStoreProviderProps } from '../contexts/OwpStoreProvider';
5
- export { createAppSelector, makeStore } from './store';
6
- export type { AppAction, AppDispatch, AppStore, AppThunk, RootState } from './store';
7
- export * from './owpSettingsSlice';
5
+ export * from './atoms';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@owp/core",
3
3
  "private": false,
4
- "version": "2.2.6",
4
+ "version": "2.3.0",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -49,7 +49,6 @@
49
49
  "@mui/material": "^7.3.2",
50
50
  "@mui/system": "^7.3.2",
51
51
  "@mui/x-date-pickers": "^8.11.2",
52
- "@reduxjs/toolkit": "^2.9.0",
53
52
  "@tanstack/react-query": "^5.87.1",
54
53
  "@toolpad/core": "^0.16.0",
55
54
  "dayjs": "^1.11.18",
@@ -61,12 +60,9 @@
61
60
  "react-dom": "^19.2.0",
62
61
  "react-hook-form": "^7.62.0",
63
62
  "react-i18next": "^15.7.3",
64
- "react-redux": "^9.2.0",
65
63
  "react-router-dom": "^7.8.2"
66
64
  },
67
- "overrides": {
68
- "redux": "^5.0.0"
69
- },
65
+ "overrides": {},
70
66
  "devDependencies": {
71
67
  "@eslint/js": "^9.39.2",
72
68
  "@mui/x-date-pickers": "^8.11.2",
@@ -1,8 +0,0 @@
1
- import { useDispatch as e, useSelector as s, useStore as t } from "react-redux";
2
- const o = e.withTypes(), c = s.withTypes(), r = t.withTypes();
3
- export {
4
- o as useAppDispatch,
5
- c as useAppSelector,
6
- r as useAppStore
7
- };
8
- //# sourceMappingURL=useAppStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAppStore.js","sources":["../../src/hooks/useAppStore.ts"],"sourcesContent":["import { useDispatch, useSelector, useStore } from 'react-redux';\nimport type { AppDispatch, AppStore, RootState } from '@/store/store';\n\n/**\n * Internal typed Redux hooks\n */\nexport const useAppDispatch: () => AppDispatch = useDispatch.withTypes<AppDispatch>();\nexport const useAppSelector: <T>(selector: (state: RootState) => T) => T =\n useSelector.withTypes<RootState>();\nexport const useAppStore: () => AppStore = useStore.withTypes<AppStore>();\n"],"names":["useAppDispatch","useDispatch","useAppSelector","useSelector","useAppStore","useStore"],"mappings":";AAMO,MAAMA,IAAoCC,EAAY,UAAA,GAChDC,IACXC,EAAY,UAAA,GACDC,IAA8BC,EAAS,UAAA;"}
@@ -1,18 +0,0 @@
1
- var m = Object.defineProperty;
2
- var f = (r, o) => m(r, "name", { value: o, configurable: !0 });
3
- import { combineReducers as a } from "@reduxjs/toolkit";
4
- const b = /* @__PURE__ */ f((r) => {
5
- const o = {};
6
- r == null || r.forEach((t) => {
7
- const [e, c] = t.name.split("/");
8
- c ? (o[e] || (o[e] = {}), o[e][c] = t.reducer) : o[e] = t.reducer;
9
- });
10
- const n = {};
11
- return Object.entries(o).forEach(([t, e]) => {
12
- typeof e == "function" ? n[t] = e : typeof e == "object" && (n[t] = a(e));
13
- }), n;
14
- }, "generateReducersFromSlices");
15
- export {
16
- b as generateReducersFromSlices
17
- };
18
- //# sourceMappingURL=generateReducersFromSlices.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateReducersFromSlices.js","sources":["../../src/store/generateReducersFromSlices.ts"],"sourcesContent":["import { combineReducers, Reducer, ReducersMapObject } from '@reduxjs/toolkit';\nimport { DeepPartial } from 'react-hook-form';\nimport type { SlicesType } from './withSlices';\n\n/**\n * Internal grouped reducer factory\n */\nexport const generateReducersFromSlices = <T = unknown>(\n slices: SlicesType,\n): ReducersMapObject<T> => {\n const reducerGroups: DeepPartial<ReducersMapObject> = {};\n\n \n slices?.forEach((slice) => {\n const [primary, secondary] = slice.name.split('/');\n\n if (secondary) {\n if (!reducerGroups[primary]) {\n reducerGroups[primary] = {};\n }\n\n (reducerGroups[primary] as ReducersMapObject<T>)[secondary] = slice.reducer;\n } else {\n reducerGroups[primary] = slice.reducer;\n }\n });\n\n const combinedReducers = {};\n\n \n Object.entries(reducerGroups).forEach(([key, reducerGroup]) => {\n if (typeof reducerGroup === 'function') {\n combinedReducers[key] = reducerGroup as Reducer;\n } else if (typeof reducerGroup === 'object') {\n combinedReducers[key] = combineReducers(reducerGroup);\n }\n });\n\n return combinedReducers as ReducersMapObject<T>;\n};\n"],"names":["generateReducersFromSlices","__name","slices","reducerGroups","slice","primary","secondary","combinedReducers","key","reducerGroup","combineReducers"],"mappings":";;;AAOO,MAAMA,IAA6B,gBAAAC,EAAA,CACxCC,MACyB;AACzB,QAAMC,IAAgD,CAAA;AAGtD,EAAAD,KAAA,QAAAA,EAAQ,QAAQ,CAACE,MAAU;AACzB,UAAM,CAACC,GAASC,CAAS,IAAIF,EAAM,KAAK,MAAM,GAAG;AAEjD,IAAIE,KACGH,EAAcE,CAAO,MACxBF,EAAcE,CAAO,IAAI,CAAA,IAG1BF,EAAcE,CAAO,EAA2BC,CAAS,IAAIF,EAAM,WAEpED,EAAcE,CAAO,IAAID,EAAM;AAAA,EAEnC;AAEA,QAAMG,IAAmB,CAAA;AAGzB,gBAAO,QAAQJ,CAAa,EAAE,QAAQ,CAAC,CAACK,GAAKC,CAAY,MAAM;AAC7D,IAAI,OAAOA,KAAiB,aAC1BF,EAAiBC,CAAG,IAAIC,IACf,OAAOA,KAAiB,aACjCF,EAAiBC,CAAG,IAAIE,EAAgBD,CAAY;AAAA,EAExD,CAAC,GAEMF;AACT,GAhC0C;"}