Project Init

This commit is contained in:
Muluhabt
2026-05-29 15:23:46 +03:00
commit 2fbc557aac
67387 changed files with 6063341 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
'use client';
import { createSafeContext } from '@mantine/core';
const [TimeGridProvider, useTimeGridContext] = createSafeContext(
"TimeGridProvider was not found in the component tree"
);
export { TimeGridProvider, useTimeGridContext };
//# sourceMappingURL=TimeGrid.context.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"TimeGrid.context.mjs","sources":["../../../src/components/TimeGrid/TimeGrid.context.ts"],"sourcesContent":["import { createSafeContext, GetStylesApi } from '@mantine/core';\nimport type { TimeGridFactory } from './TimeGrid';\n\ninterface TimeGridContextValue {\n getStyles: GetStylesApi<TimeGridFactory>;\n}\n\nexport const [TimeGridProvider, useTimeGridContext] = createSafeContext<TimeGridContextValue>(\n 'TimeGridProvider was not found in the component tree'\n);\n"],"names":[],"mappings":";;;AAOO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA;;"}

View File

@@ -0,0 +1,104 @@
'use client';
import { jsx } from 'react/jsx-runtime';
import { createVarsResolver, getRadius, getFontSize, factory, useProps, useStyles, Box, SimpleGrid } from '@mantine/core';
import { useUncontrolled } from '@mantine/hooks';
import { isSameTime } from '../TimePicker/utils/is-same-time/is-same-time.mjs';
import { isTimeBefore, isTimeAfter } from './compare-time.mjs';
import { TimeGridProvider } from './TimeGrid.context.mjs';
import classes from './TimeGrid.module.css.mjs';
import { TimeGridControl } from './TimeGridControl.mjs';
const defaultProps = {
simpleGridProps: { cols: 3, spacing: "xs" },
format: "24h",
amPmLabels: { am: "AM", pm: "PM" }
};
const varsResolver = createVarsResolver((_theme, { size, radius }) => ({
root: {
"--time-grid-fz": getFontSize(size),
"--time-grid-radius": getRadius(radius)
}
}));
const TimeGrid = factory((_props, ref) => {
const props = useProps("TimeGrid", defaultProps, _props);
const {
classNames,
className,
style,
styles,
unstyled,
vars,
data,
value,
defaultValue,
onChange,
format,
withSeconds = false,
amPmLabels,
allowDeselect,
simpleGridProps,
getControlProps,
minTime,
maxTime,
disableTime,
disabled,
attributes,
...others
} = props;
const getStyles = useStyles({
name: "TimeGrid",
classes,
props,
className,
style,
classNames,
styles,
unstyled,
attributes,
vars,
varsResolver
});
const [_value, setValue] = useUncontrolled({
value,
defaultValue,
finalValue: null,
onChange
});
const controls = data.map((time) => {
const isDisabled = disabled || !!minTime && isTimeBefore(time, minTime) || !!maxTime && isTimeAfter(time, maxTime) || (Array.isArray(disableTime) ? !!disableTime.find((t) => isSameTime({ time, compare: t, withSeconds })) : !!disableTime?.(time));
return /* @__PURE__ */ jsx(
TimeGridControl,
{
active: isSameTime({ time, compare: _value || "", withSeconds }),
time,
onClick: () => {
const nextValue = allowDeselect && (_value === null ? time === _value : isSameTime({ time, compare: _value, withSeconds })) ? null : time;
nextValue !== _value && setValue(nextValue);
},
format,
amPmLabels,
disabled: isDisabled,
"data-disabled": isDisabled || void 0,
withSeconds,
...getControlProps?.(time)
},
time
);
});
return /* @__PURE__ */ jsx(TimeGridProvider, { value: { getStyles }, children: /* @__PURE__ */ jsx(Box, { ref, ...getStyles("root"), ...others, children: /* @__PURE__ */ jsx(
SimpleGrid,
{
...simpleGridProps,
...getStyles("simpleGrid", {
className: simpleGridProps?.className,
style: simpleGridProps?.style
}),
children: controls
}
) }) });
});
TimeGrid.displayName = "@mantine/dates/TimeGrid";
TimeGrid.classes = classes;
export { TimeGrid };
//# sourceMappingURL=TimeGrid.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,5 @@
'use client';
var classes = {"control":"m_ac3f4d63"};
export { classes as default };
//# sourceMappingURL=TimeGrid.module.css.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"TimeGrid.module.css.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}

View File

@@ -0,0 +1,31 @@
'use client';
import { jsx } from 'react/jsx-runtime';
import cx from 'clsx';
import { useMantineTheme, UnstyledButton } from '@mantine/core';
import { TimeValue } from '../TimeValue/TimeValue.mjs';
import { useTimeGridContext } from './TimeGrid.context.mjs';
function TimeGridControl({
time,
active,
className,
amPmLabels,
format,
withSeconds,
...others
}) {
const ctx = useTimeGridContext();
const theme = useMantineTheme();
return /* @__PURE__ */ jsx(
UnstyledButton,
{
mod: [{ active }],
...ctx.getStyles("control", { className: cx(theme.activeClassName, className) }),
...others,
children: /* @__PURE__ */ jsx(TimeValue, { value: time, format, amPmLabels, withSeconds })
}
);
}
export { TimeGridControl };
//# sourceMappingURL=TimeGridControl.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"TimeGridControl.mjs","sources":["../../../src/components/TimeGrid/TimeGridControl.tsx"],"sourcesContent":["import cx from 'clsx';\nimport { UnstyledButton, useMantineTheme } from '@mantine/core';\nimport type { TimePickerAmPmLabels, TimePickerFormat } from '../TimePicker';\nimport { TimeValue } from '../TimeValue';\nimport { useTimeGridContext } from './TimeGrid.context';\n\ninterface TimeGridControlProps extends React.ComponentPropsWithoutRef<'button'> {\n time: string;\n active: boolean;\n format: TimePickerFormat;\n amPmLabels: TimePickerAmPmLabels;\n withSeconds: boolean | undefined;\n}\n\nexport function TimeGridControl({\n time,\n active,\n className,\n amPmLabels,\n format,\n withSeconds,\n ...others\n}: TimeGridControlProps) {\n const ctx = useTimeGridContext();\n const theme = useMantineTheme();\n\n return (\n <UnstyledButton\n mod={[{ active }]}\n {...ctx.getStyles('control', { className: cx(theme.activeClassName, className) })}\n {...others}\n >\n <TimeValue value={time} format={format} amPmLabels={amPmLabels} withSeconds={withSeconds} />\n </UnstyledButton>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAcO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,eAAA,CAAgB,CAAA;AAAA,CAAA,CAC9B,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACL,CAAA,CAAA,CAAyB,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,IAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,IAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA;AAE9B,CAAA,CAAA,uBACE,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACC,GAAA,CAAA,CAAK,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACf,GAAG,CAAA,CAAA,CAAA,CAAI,SAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAG,KAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,EAAG,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC/E,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEJ,8BAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,EAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAwB,WAAA,CAAA,CAA0B,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAC5F,CAAA;AAEJ,CAAA;;"}

View File

@@ -0,0 +1,12 @@
'use client';
import { timeToSeconds } from '../TimePicker/utils/time-to-seconds/time-to-seconds.mjs';
function isTimeBefore(value, compareTo) {
return timeToSeconds(value) < timeToSeconds(compareTo);
}
function isTimeAfter(value, compareTo) {
return timeToSeconds(value) > timeToSeconds(compareTo);
}
export { isTimeAfter, isTimeBefore };
//# sourceMappingURL=compare-time.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"compare-time.mjs","sources":["../../../src/components/TimeGrid/compare-time.ts"],"sourcesContent":["import { timeToSeconds } from '../TimePicker/utils/time-to-seconds/time-to-seconds';\n\nexport function isTimeBefore(value: string, compareTo: string) {\n return timeToSeconds(value) < timeToSeconds(compareTo);\n}\n\nexport function isTimeAfter(value: string, compareTo: string) {\n return timeToSeconds(value) > timeToSeconds(compareTo);\n}\n"],"names":[],"mappings":";;;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,GAAe,SAAA,CAAA,CAAmB,CAAA;AAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,aAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA;AACvD,CAAA;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,GAAe,SAAA,CAAA,CAAmB,CAAA;AAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,aAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA;AACvD,CAAA;;"}