@ya-accelerators/nextjs-framework 0.0.91 → 0.0.93

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.
@@ -42,8 +42,7 @@ export declare const Layout: {
42
42
  };
43
43
  rowSelect?: (data: TData) => void;
44
44
  }) => import("react").JSX.Element;
45
- Tab: ({ items, title, children, className, contentClassName, }: {
46
- items: Omit<import("react").ComponentProps<typeof import("./tab/component").TabItem>, "ignoreCurrent">[];
45
+ Tab: (props: {
47
46
  title?: import("react").ComponentProps<({ routes, title, actions, back, keepRoutesSpace, showTitle, className, }: {
48
47
  routes?: {
49
48
  label: string;
@@ -60,10 +59,20 @@ export declare const Layout: {
60
59
  showTitle?: boolean;
61
60
  className?: string;
62
61
  }) => import("react").JSX.Element>;
63
- children: import("react").ReactNode;
64
62
  className?: string;
65
63
  contentClassName?: string;
66
- }) => import("react").JSX.Element;
64
+ } & ({
65
+ items: {
66
+ label: string;
67
+ href: string;
68
+ }[];
69
+ children: import("react").ReactNode;
70
+ } | {
71
+ items: {
72
+ label: string;
73
+ content: import("react").ReactNode;
74
+ }[];
75
+ })) => import("react").JSX.Element;
67
76
  TabContent: ({ title, children, className, contentClassName, }: {
68
77
  title?: Omit<import("react").ComponentProps<({ routes, title, actions, back, keepRoutesSpace, showTitle, className, }: {
69
78
  routes?: {
@@ -1,5 +1,8 @@
1
- export declare const TabItem: ({ label, href, ignoreCurrent }: {
1
+ export declare const TabItem: ({ label, isCurrent, href, id, controlsId, onSelect, }: {
2
2
  label: string;
3
- href: string;
4
- ignoreCurrent?: boolean;
3
+ isCurrent: boolean;
4
+ href?: string;
5
+ id?: string;
6
+ controlsId?: string;
7
+ onSelect?: () => void;
5
8
  }) => import("react").JSX.Element;
@@ -1,16 +1,16 @@
1
1
  'use client';
2
2
  import classNames from 'classnames';
3
3
  import Link from 'next/link';
4
- import { usePathname } from 'next/navigation';
5
4
  import { Component } from '../../component';
6
5
  import { getTextColorTypeClassName, TextColorTypes } from '../../theme';
7
- export const TabItem = ({ label, href, ignoreCurrent }) => {
8
- const pathname = usePathname();
9
- const isCurrent = ignoreCurrent === true ? false : href === '/' ? pathname === '/' : pathname.startsWith(href);
10
- return (<Link data-current={isCurrent} href={href} className={classNames(getTextColorTypeClassName(TextColorTypes.sub, false), 'flex items-center justify-center whitespace-nowrap', 'px-control-padding-base py-control-padding-md', 'hover:opacity-60', 'border-transparent border-b-2', 'data-[current=true]:border-primary-default-bg data-[current=true]:text-primary-default-bg', 'data-[current=false]:opacity-40', {
11
- 'pointer-events-none': isCurrent,
12
- })} aria-disabled={isCurrent} tabIndex={isCurrent ? -1 : undefined}>
6
+ export const TabItem = ({ label, isCurrent, href, id, controlsId, onSelect, }) => {
7
+ const className = classNames(getTextColorTypeClassName(TextColorTypes.sub, false), 'flex items-center justify-center whitespace-nowrap', 'px-control-padding-base py-control-padding-md', 'hover:opacity-60', 'border-transparent border-b-2', 'data-[current=true]:border-primary-default-bg data-[current=true]:text-primary-default-bg', 'data-[current=false]:opacity-40', {
8
+ 'pointer-events-none': isCurrent,
9
+ });
10
+ return href !== undefined ? (<Link data-current={isCurrent} href={href} className={className} aria-disabled={isCurrent} tabIndex={isCurrent ? -1 : undefined}>
13
11
  <Component.Typography.P>{label}</Component.Typography.P>
14
- </Link>);
12
+ </Link>) : (<button type='button' role='tab' id={id} aria-controls={controlsId} data-current={isCurrent} onClick={onSelect} className={className} aria-selected={isCurrent} tabIndex={isCurrent ? 0 : -1}>
13
+ <Component.Typography.P>{label}</Component.Typography.P>
14
+ </button>);
15
15
  };
16
16
  //# sourceMappingURL=component.jsx.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.jsx","sourceRoot":"","sources":["../../../../../src/ui/layout/tab/component.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEvE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAA4D,EAAE,EAAE;IAClH,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,SAAS,GAAG,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAC9G,OAAO,CACL,CAAC,IAAI,CACH,YAAY,CAAC,CAAC,SAAS,CAAC,CACxB,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,SAAS,CAAC,CAAC,UAAU,CACnB,yBAAyB,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,EACpD,oDAAoD,EACpD,+CAA+C,EAC/C,kBAAkB,EAClB,+BAA+B,EAC/B,2FAA2F,EAC3F,iCAAiC,EACjC;YACE,qBAAqB,EAAE,SAAS;SACjC,CACF,CAAC,CACF,aAAa,CAAC,CAAC,SAAS,CAAC,CACzB,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAErC;MAAA,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CACzD;IAAA,EAAE,IAAI,CAAC,CACR,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"component.jsx","sourceRoot":"","sources":["../../../../../src/ui/layout/tab/component.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEvE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EACtB,KAAK,EACL,SAAS,EACT,IAAI,EACJ,EAAE,EACF,UAAU,EACV,QAAQ,GAQT,EAAE,EAAE;IACH,MAAM,SAAS,GAAG,UAAU,CAC1B,yBAAyB,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,EACpD,oDAAoD,EACpD,+CAA+C,EAC/C,kBAAkB,EAClB,+BAA+B,EAC/B,2FAA2F,EAC3F,iCAAiC,EACjC;QACE,qBAAqB,EAAE,SAAS;KACjC,CACF,CAAA;IACD,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAC1B,CAAC,IAAI,CACH,YAAY,CAAC,CAAC,SAAS,CAAC,CACxB,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,aAAa,CAAC,CAAC,SAAS,CAAC,CACzB,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAErC;MAAA,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CACzD;IAAA,EAAE,IAAI,CAAC,CACR,CAAC,CAAC,CAAC,CACF,CAAC,MAAM,CACL,IAAI,CAAC,QAAQ,CACb,IAAI,CAAC,KAAK,CACV,EAAE,CAAC,CAAC,EAAE,CAAC,CACP,aAAa,CAAC,CAAC,UAAU,CAAC,CAC1B,YAAY,CAAC,CAAC,SAAS,CAAC,CACxB,OAAO,CAAC,CAAC,QAAQ,CAAC,CAClB,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,aAAa,CAAC,CAAC,SAAS,CAAC,CACzB,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAE7B;MAAA,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CACzD;IAAA,EAAE,MAAM,CAAC,CACV,CAAA;AACH,CAAC,CAAA"}
@@ -1,11 +1,19 @@
1
1
  export * from './content';
2
- import type { ComponentProps, ReactNode } from 'react';
2
+ import { type ComponentProps, type ReactNode } from 'react';
3
3
  import { Composite } from '../../composite';
4
- import { TabItem } from './component';
5
- export declare const Tab: ({ items, title, children, className, contentClassName, }: {
6
- items: Omit<ComponentProps<typeof TabItem>, "ignoreCurrent">[];
4
+ export declare const Tab: (props: {
7
5
  title?: ComponentProps<typeof Composite.PageTitle>;
8
- children: ReactNode;
9
6
  className?: string;
10
7
  contentClassName?: string;
11
- }) => import("react").JSX.Element;
8
+ } & ({
9
+ items: {
10
+ label: string;
11
+ href: string;
12
+ }[];
13
+ children: ReactNode;
14
+ } | {
15
+ items: {
16
+ label: string;
17
+ content: ReactNode;
18
+ }[];
19
+ })) => import("react").JSX.Element;
@@ -3,23 +3,47 @@ export * from './content';
3
3
  import classNames from 'classnames';
4
4
  import { motion } from 'framer-motion';
5
5
  import { usePathname } from 'next/navigation';
6
+ import { useId, useState } from 'react';
6
7
  import { Composite } from '../../composite';
7
8
  import { getBackgroundColorTypeClassName } from '../../theme';
8
9
  import { TabItem } from './component';
9
10
  const isShadowed = (allHrefs, href, pathname) => allHrefs.some((other) => other.length > href.length && pathname.startsWith(other));
10
- export const Tab = ({ items, title, children, className, contentClassName, }) => {
11
+ export const Tab = (props) => {
11
12
  const pathname = usePathname();
12
- const allHrefs = items.map((x) => x.href);
13
- return (<div className={classNames('flex size-full flex-col overflow-y-scroll', getBackgroundColorTypeClassName('default'), className)}>
14
- {title !== undefined && (<div className='mt-base'>
15
- <Composite.PageTitle {...title}/>
13
+ const [activeIndex, setActiveIndex] = useState(0);
14
+ const idPrefix = useId();
15
+ const allHrefs = 'children' in props ? props.items.map((x) => x.href) : [];
16
+ return (<div className={classNames('flex size-full flex-col overflow-y-scroll', getBackgroundColorTypeClassName('default'), props.className)}>
17
+ {props.title !== undefined && (<div className='mt-base'>
18
+ <Composite.PageTitle {...props.title}/>
16
19
  </div>)}
17
- <div className={classNames('flex h-fit w-full flex-col gap-base p-base', contentClassName)}>
18
- <div className='flex w-full gap-md border-outline-default border-b'>
19
- {items.map((x, i) => (<TabItem key={i} {...x} ignoreCurrent={isShadowed(allHrefs, x.href, pathname)}/>))}
20
+ <div className={classNames('flex h-fit w-full flex-col gap-base p-base', props.contentClassName)}>
21
+ <div role={'children' in props ? undefined : 'tablist'} onKeyDown={'children' in props
22
+ ? undefined
23
+ : (e) => {
24
+ const next = e.key === 'ArrowRight'
25
+ ? (activeIndex + 1) % props.items.length
26
+ : e.key === 'ArrowLeft'
27
+ ? (activeIndex - 1 + props.items.length) % props.items.length
28
+ : e.key === 'Home'
29
+ ? 0
30
+ : e.key === 'End'
31
+ ? props.items.length - 1
32
+ : undefined;
33
+ if (next === undefined) {
34
+ return;
35
+ }
36
+ e.preventDefault();
37
+ setActiveIndex(next);
38
+ document.getElementById(`${idPrefix}-${next}`)?.focus();
39
+ }} className='flex w-full gap-md border-outline-default border-b'>
40
+ {'children' in props
41
+ ? props.items.map((x, i) => (<TabItem key={i} label={x.label} href={x.href} isCurrent={!isShadowed(allHrefs, x.href, pathname) &&
42
+ (x.href === '/' ? pathname === '/' : pathname.startsWith(x.href))}/>))
43
+ : props.items.map((x, i) => (<TabItem key={i} label={x.label} isCurrent={i === activeIndex} id={`${idPrefix}-${i}`} controlsId={`${idPrefix}-panel`} onSelect={() => setActiveIndex(i)}/>))}
20
44
  </div>
21
- <motion.main key={pathname} initial={{ opacity: 0 }} animate={{ opacity: 1 }} exit={{ opacity: 0 }} transition={{ duration: 0.3 }}>
22
- {children}
45
+ <motion.main key={'children' in props ? pathname : activeIndex} role={'children' in props ? undefined : 'tabpanel'} id={'children' in props ? undefined : `${idPrefix}-panel`} aria-labelledby={'children' in props ? undefined : `${idPrefix}-${activeIndex}`} initial={{ opacity: 0 }} animate={{ opacity: 1 }} exit={{ opacity: 0 }} transition={{ duration: 0.3 }}>
46
+ {'children' in props ? props.children : props.items[activeIndex]?.content}
23
47
  </motion.main>
24
48
  </div>
25
49
  </div>);
@@ -1 +1 @@
1
- {"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../../../src/ui/layout/tab/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,cAAc,WAAW,CAAA;AAEzB,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAG7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,MAAM,UAAU,GAAG,CAAC,QAAkB,EAAE,IAAY,EAAE,QAAgB,EAAW,EAAE,CACjF,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;AAEpF,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,EAClB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,SAAS,EACT,gBAAgB,GAOjB,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACzC,OAAO,CACL,CAAC,GAAG,CACF,SAAS,CAAC,CAAC,UAAU,CACnB,2CAA2C,EAC3C,+BAA+B,CAAC,SAAS,CAAC,EAC1C,SAAS,CACV,CAAC,CAEF;MAAA,CAAC,KAAK,KAAK,SAAS,IAAI,CACtB,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CACtB;UAAA,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,EACjC;QAAA,EAAE,GAAG,CAAC,CACP,CACD;MAAA,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,4CAA4C,EAAE,gBAAgB,CAAC,CAAC,CACzF;QAAA,CAAC,GAAG,CAAC,SAAS,CAAC,oDAAoD,CACjE;UAAA,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACnB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAG,CAClF,CAAC,CACJ;QAAA,EAAE,GAAG,CACL;QAAA,CAAC,MAAM,CAAC,IAAI,CACV,GAAG,CAAC,CAAC,QAAQ,CAAC,CACd,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CACxB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CACxB,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CACrB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAE9B;UAAA,CAAC,QAAQ,CACX;QAAA,EAAE,MAAM,CAAC,IAAI,CACf;MAAA,EAAE,GAAG,CACP;IAAA,EAAE,GAAG,CAAC,CACP,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../../../src/ui/layout/tab/index.tsx"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export declare const createDateFormat: (t: (key: string) => string, timeZone?: s
3
3
  toLocalISOString: (date: Date) => string;
4
4
  toString: (date: Date, options?: Intl.DateTimeFormatOptions) => string;
5
5
  toDateString: (date?: Date | null, fallBack?: string) => string;
6
+ toMonthString: (date?: Date | null, fallBack?: string) => string;
6
7
  toDateTimeString: (date?: Date | null, fallBack?: string) => string;
7
8
  toTimeString: (date?: Date | null, fallBack?: string) => string;
8
9
  };
@@ -25,6 +25,11 @@ export const createDateFormat = (t, timeZone) => ({
25
25
  day: '2-digit',
26
26
  timeZone,
27
27
  }) ?? fallBack,
28
+ toMonthString: (date, fallBack = '-') => date?.toLocaleString(t('locale'), {
29
+ year: 'numeric',
30
+ month: '2-digit',
31
+ timeZone,
32
+ }) ?? fallBack,
28
33
  toDateTimeString: (date, fallBack = '-') => date?.toLocaleString(t('locale'), {
29
34
  year: 'numeric',
30
35
  month: '2-digit',
@@ -1 +1 @@
1
- {"version":3,"file":"impl.js","sourceRoot":"","sources":["../../../../src/util/date/impl.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAA0B,EAAE,QAAiB,EAAE,EAAE,CAAC,CAAC;IAClF,UAAU,EAAE,CAAC,CAAC,YAAY,CAAC;IAC3B,gBAAgB,EAAE,CAAC,IAAU,EAAU,EAAE;QACvC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YAC7C,QAAQ;YACR,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,KAAK;YAChB,YAAY,EAAE,YAAY;SAC3B,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QACtB,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,CAAA;QAC/E,kGAAkG;QAClG,qGAAqG;QACrG,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAA;QACjE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,MAAM,EAAE,CAAA;IACrH,CAAC;IACD,QAAQ,EAAE,CAAC,IAAU,EAAE,OAAoC,EAAU,EAAE,CACrE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC;IAC5D,YAAY,EAAE,CAAC,IAAkB,EAAE,WAAmB,GAAG,EAAE,EAAE,CAC3D,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;QAChC,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;QACd,QAAQ;KACT,CAAC,IAAI,QAAQ;IAChB,gBAAgB,EAAE,CAAC,IAAkB,EAAE,WAAmB,GAAG,EAAE,EAAE,CAC/D,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;QAChC,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,QAAQ;KACT,CAAC,IAAI,QAAQ;IAChB,YAAY,EAAE,CAAC,IAAkB,EAAE,WAAmB,GAAG,EAAE,EAAE,CAC3D,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;QAChC,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,QAAQ;KACT,CAAC,IAAI,QAAQ;CACjB,CAAC,CAAA"}
1
+ {"version":3,"file":"impl.js","sourceRoot":"","sources":["../../../../src/util/date/impl.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAA0B,EAAE,QAAiB,EAAE,EAAE,CAAC,CAAC;IAClF,UAAU,EAAE,CAAC,CAAC,YAAY,CAAC;IAC3B,gBAAgB,EAAE,CAAC,IAAU,EAAU,EAAE;QACvC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YAC7C,QAAQ;YACR,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,KAAK;YAChB,YAAY,EAAE,YAAY;SAC3B,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QACtB,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,CAAA;QAC/E,kGAAkG;QAClG,qGAAqG;QACrG,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAA;QACjE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,MAAM,EAAE,CAAA;IACrH,CAAC;IACD,QAAQ,EAAE,CAAC,IAAU,EAAE,OAAoC,EAAU,EAAE,CACrE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC;IAC5D,YAAY,EAAE,CAAC,IAAkB,EAAE,WAAmB,GAAG,EAAE,EAAE,CAC3D,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;QAChC,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;QACd,QAAQ;KACT,CAAC,IAAI,QAAQ;IAChB,aAAa,EAAE,CAAC,IAAkB,EAAE,WAAmB,GAAG,EAAE,EAAE,CAC5D,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;QAChC,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,QAAQ;KACT,CAAC,IAAI,QAAQ;IAChB,gBAAgB,EAAE,CAAC,IAAkB,EAAE,WAAmB,GAAG,EAAE,EAAE,CAC/D,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;QAChC,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,QAAQ;KACT,CAAC,IAAI,QAAQ;IAChB,YAAY,EAAE,CAAC,IAAkB,EAAE,WAAmB,GAAG,EAAE,EAAE,CAC3D,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;QAChC,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,QAAQ;KACT,CAAC,IAAI,QAAQ;CACjB,CAAC,CAAA"}
@@ -13,6 +13,7 @@ export declare const dateFormat: () => Promise<{
13
13
  toLocalISOString: (date: Date) => string;
14
14
  toString: (date: Date, options?: Intl.DateTimeFormatOptions) => string;
15
15
  toDateString: (date?: Date | null, fallBack?: string) => string;
16
+ toMonthString: (date?: Date | null, fallBack?: string) => string;
16
17
  toDateTimeString: (date?: Date | null, fallBack?: string) => string;
17
18
  toTimeString: (date?: Date | null, fallBack?: string) => string;
18
19
  }>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ya-accelerators/nextjs-framework",
3
- "version": "0.0.91",
3
+ "version": "0.0.93",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "author": "YA Technologies OÜ",