@servicetitan/anvil2 3.13.6 → 3.13.7
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.
- package/CHANGELOG.md +16 -0
- package/dist/{AnvilProvider-DcYAaAvs.js → AnvilProvider-D8msiELo.js} +12 -5
- package/dist/AnvilProvider-D8msiELo.js.map +1 -0
- package/dist/AnvilProvider.js +1 -1
- package/dist/{Avatar-D31JDNrs.js → Avatar-DZxHhMTP.js} +2 -4
- package/dist/Avatar-DZxHhMTP.js.map +1 -0
- package/dist/{Avatar-DXI-w1Vi.js → Avatar-DkWoRhJu.js} +2 -2
- package/dist/{Avatar-DXI-w1Vi.js.map → Avatar-DkWoRhJu.js.map} +1 -1
- package/dist/Avatar.js +2 -2
- package/dist/{Calendar-C1mgmbWt.js → Calendar-DV149Rqb.js} +2 -2
- package/dist/{Calendar-C1mgmbWt.js.map → Calendar-DV149Rqb.js.map} +1 -1
- package/dist/{Calendar-DnK6UwPE.js → Calendar-kSH8F7gx.js} +32 -40
- package/dist/Calendar-kSH8F7gx.js.map +1 -0
- package/dist/Calendar.css +50 -48
- package/dist/Calendar.js +2 -2
- package/dist/{Chip-AILbiVZ6.js → Chip-COkotNvt.js} +3 -5
- package/dist/Chip-COkotNvt.js.map +1 -0
- package/dist/Chip.js +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-BE1YvSto.js → DataTable-D0YlJ7IA.js} +5 -7
- package/dist/{DataTable-BE1YvSto.js.map → DataTable-D0YlJ7IA.js.map} +1 -1
- package/dist/{DateFieldRange-VK82YRwV.js → DateFieldRange-B7-z7KXC.js} +2 -2
- package/dist/{DateFieldRange-VK82YRwV.js.map → DateFieldRange-B7-z7KXC.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-BikPSISX.js → DateFieldSingle-B3aY-9vO.js} +2 -2
- package/dist/{DateFieldSingle-BikPSISX.js.map → DateFieldSingle-B3aY-9vO.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-DQIEBYKe.js → DateFieldYearless-BYwWvHXD.js} +2 -2
- package/dist/{DateFieldYearless-DQIEBYKe.js.map → DateFieldYearless-BYwWvHXD.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-BpQqvD9U.js → DateFieldYearlessRange-cyDptr2S.js} +2 -2
- package/dist/{DateFieldYearlessRange-BpQqvD9U.js.map → DateFieldYearlessRange-cyDptr2S.js.map} +1 -1
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{FilterBar-XMZ-Q-aW.js → FilterBar-CrIPZKvL.js} +3 -3
- package/dist/{FilterBar-XMZ-Q-aW.js.map → FilterBar-CrIPZKvL.js.map} +1 -1
- package/dist/FilterBar.js +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-C57Hms2z.js → MultiSelectFieldSync-gH-TQnq3.js} +5 -5
- package/dist/{MultiSelectFieldSync-C57Hms2z.js.map → MultiSelectFieldSync-gH-TQnq3.js.map} +1 -1
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-DxU1AtCL.js → MultiSelectMenuSync-QmhjWA05.js} +4 -4
- package/dist/{MultiSelectMenuSync-DxU1AtCL.js.map → MultiSelectMenuSync-QmhjWA05.js.map} +1 -1
- package/dist/{Page-CBmCe-YR.js → Page-D4RYSd8t.js} +2 -2
- package/dist/{Page-CBmCe-YR.js.map → Page-D4RYSd8t.js.map} +1 -1
- package/dist/Page.js +1 -1
- package/dist/{SavedFiltersButton-DFy_R8yv.js → SavedFiltersButton-D0J5KTsI.js} +4 -4
- package/dist/{SavedFiltersButton-DFy_R8yv.js.map → SavedFiltersButton-D0J5KTsI.js.map} +1 -1
- package/dist/SavedFiltersButton.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldSync-CLpTOgdr.js → SelectFieldSync-BjJN7FC3.js} +4 -4
- package/dist/{SelectFieldSync-CLpTOgdr.js.map → SelectFieldSync-BjJN7FC3.js.map} +1 -1
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-DqUIPJtu.js → SelectMenuSync-iZsNTote.js} +4 -4
- package/dist/{SelectMenuSync-DqUIPJtu.js.map → SelectMenuSync-iZsNTote.js.map} +1 -1
- package/dist/{SelectOptions-BkqBzRiG.js → SelectOptions-BeehD5VV.js} +2 -2
- package/dist/{SelectOptions-BkqBzRiG.js.map → SelectOptions-BeehD5VV.js.map} +1 -1
- package/dist/{SelectTrigger-DdIvzkNw.js → SelectTrigger-BQAVMm3E.js} +3 -3
- package/dist/{SelectTrigger-DdIvzkNw.js.map → SelectTrigger-BQAVMm3E.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-f2z0XQDf.js → SelectTriggerBase-BV-QNhII.js} +2 -2
- package/dist/{SelectTriggerBase-f2z0XQDf.js.map → SelectTriggerBase-BV-QNhII.js.map} +1 -1
- package/dist/Table.js +1 -1
- package/dist/TreeSelectField.js +1 -1
- package/dist/{TreeSelectFieldSync-nD0qctC8.js → TreeSelectFieldSync-CoWxg7tA.js} +4 -4
- package/dist/{TreeSelectFieldSync-nD0qctC8.js.map → TreeSelectFieldSync-CoWxg7tA.js.map} +1 -1
- package/dist/TreeSelectMenu.js +1 -1
- package/dist/{TreeSelectMenuSync-B8pwy4dA.js → TreeSelectMenuSync-CmJa0lyW.js} +3 -3
- package/dist/{TreeSelectMenuSync-B8pwy4dA.js.map → TreeSelectMenuSync-CmJa0lyW.js.map} +1 -1
- package/dist/{YearlessDateInputWithPicker-CuHWd_Vp.js → YearlessDateInputWithPicker-C0FwNBKR.js} +6 -4
- package/dist/YearlessDateInputWithPicker-C0FwNBKR.js.map +1 -0
- package/dist/beta.js +13 -13
- package/dist/{bulkActionTypes-cnslVUIT.js → bulkActionTypes-Ct2cwT7b.js} +2 -2
- package/dist/{bulkActionTypes-cnslVUIT.js.map → bulkActionTypes-Ct2cwT7b.js.map} +1 -1
- package/dist/{filter-state-B7lCzjsR.js → filter-state-lWKlYjeQ.js} +11 -11
- package/dist/{filter-state-B7lCzjsR.js.map → filter-state-lWKlYjeQ.js.map} +1 -1
- package/dist/index.js +15 -15
- package/dist/src/components/DateFieldYearless/internal/YearlessDateSelectionPopover.d.ts +2 -2
- package/dist/src/internal/testing/prefersColorScheme.d.ts +7 -0
- package/dist/{syncFilterUtils-CMH8ApTo.js → syncFilterUtils-CKXbRZG8.js} +2 -2
- package/dist/{syncFilterUtils-CMH8ApTo.js.map → syncFilterUtils-CKXbRZG8.js.map} +1 -1
- package/dist/{treeSync-8byHuYib.js → treeSync-ONC4TbTR.js} +2 -2
- package/dist/{treeSync-8byHuYib.js.map → treeSync-ONC4TbTR.js.map} +1 -1
- package/dist/{useInfiniteCombobox-BS7W8JkW.js → useInfiniteCombobox-DJoVEIk6.js} +3 -3
- package/dist/{useInfiniteCombobox-BS7W8JkW.js.map → useInfiniteCombobox-DJoVEIk6.js.map} +1 -1
- package/dist/{useInvalidateOnOptionsChange-BKKS9HXb.js → useInvalidateOnOptionsChange-C6tF7696.js} +3 -3
- package/dist/{useInvalidateOnOptionsChange-BKKS9HXb.js.map → useInvalidateOnOptionsChange-C6tF7696.js.map} +1 -1
- package/package.json +2 -2
- package/dist/AnvilProvider-DcYAaAvs.js.map +0 -1
- package/dist/Avatar-D31JDNrs.js.map +0 -1
- package/dist/Calendar-DnK6UwPE.js.map +0 -1
- package/dist/Chip-AILbiVZ6.js.map +0 -1
- package/dist/YearlessDateInputWithPicker-CuHWd_Vp.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @servicetitan/anvil2
|
|
2
2
|
|
|
3
|
+
## 3.13.7
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#2923](https://github.com/servicetitan/hammer/pull/2923) [`97cec27`](https://github.com/servicetitan/hammer/commit/97cec27d0e7c15f568892036323379a9bd1c3948) Thanks [@jarizast](https://github.com/jarizast)! - [DateFieldYearless, DateFieldYearlessRange] Fix the first month or day click in the picker being discarded and closing the popover
|
|
8
|
+
|
|
9
|
+
- [#2929](https://github.com/servicetitan/hammer/pull/2929) [`2b2c7d5`](https://github.com/servicetitan/hammer/commit/2b2c7d5cad5fd88c41d546690f5c003b4df41ce9) Thanks [@ericag1985](https://github.com/ericag1985)! - [Chip] Fix custom colors defaulting to the system color scheme when theme mode is unset
|
|
10
|
+
|
|
11
|
+
- [#2929](https://github.com/servicetitan/hammer/pull/2929) [`2b2c7d5`](https://github.com/servicetitan/hammer/commit/2b2c7d5cad5fd88c41d546690f5c003b4df41ce9) Thanks [@ericag1985](https://github.com/ericag1985)! - [Avatar] Fix custom colors defaulting to the system color scheme when theme mode is unset
|
|
12
|
+
|
|
13
|
+
- [#2926](https://github.com/servicetitan/hammer/pull/2926) [`cfcb71d`](https://github.com/servicetitan/hammer/commit/cfcb71df3560e97daff448a4b6e7feeb320bc393) Thanks [@ericag1985](https://github.com/ericag1985)! - [Calendar] Fix bounded month navigation closing containing popovers
|
|
14
|
+
|
|
15
|
+
- [#2929](https://github.com/servicetitan/hammer/pull/2929) [`2b2c7d5`](https://github.com/servicetitan/hammer/commit/2b2c7d5cad5fd88c41d546690f5c003b4df41ce9) Thanks [@ericag1985](https://github.com/ericag1985)! - **BETA** [DataTable] Fix empty-state artwork defaulting to the system color scheme when theme mode is unset
|
|
16
|
+
|
|
17
|
+
- [#2920](https://github.com/servicetitan/hammer/pull/2920) [`82dee43`](https://github.com/servicetitan/hammer/commit/82dee43b8c1ac2706c7e712c0ee67bab9365e751) Thanks [@pbuckingham-st](https://github.com/pbuckingham-st)! - [AnvilProvider] Fix `anvil2` body class being stripped by one MFE scope's unmount while another scope's `AnvilProvider` is still mounted
|
|
18
|
+
|
|
3
19
|
## 3.13.6
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -13,7 +13,13 @@ import './AnvilProvider.css';const AnvilProviderContext = createContext(
|
|
|
13
13
|
);
|
|
14
14
|
const TooltipLegacyGroupContext = createContext(null);
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
const BODY_SCOPE_REFCOUNT_KEY = Symbol.for("ST_ANVIL2_BODY_SCOPE_REFCOUNT");
|
|
17
|
+
function getBodyScopeRefcount() {
|
|
18
|
+
return globalThis[BODY_SCOPE_REFCOUNT_KEY] ?? 0;
|
|
19
|
+
}
|
|
20
|
+
function setBodyScopeRefcount(n) {
|
|
21
|
+
globalThis[BODY_SCOPE_REFCOUNT_KEY] = n;
|
|
22
|
+
}
|
|
17
23
|
const AnvilProvider = (props) => {
|
|
18
24
|
const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
|
|
19
25
|
const {
|
|
@@ -49,11 +55,12 @@ const AnvilProvider = (props) => {
|
|
|
49
55
|
};
|
|
50
56
|
const breakpoint = useBreakpoint();
|
|
51
57
|
useEffect(() => {
|
|
52
|
-
|
|
58
|
+
setBodyScopeRefcount(getBodyScopeRefcount() + 1);
|
|
53
59
|
document.body.classList.add("anvil2");
|
|
54
60
|
return () => {
|
|
55
|
-
|
|
56
|
-
|
|
61
|
+
const next = Math.max(0, getBodyScopeRefcount() - 1);
|
|
62
|
+
setBodyScopeRefcount(next);
|
|
63
|
+
if (next === 0) {
|
|
57
64
|
document.body.classList.remove("anvil2");
|
|
58
65
|
}
|
|
59
66
|
};
|
|
@@ -87,4 +94,4 @@ const AnvilProvider = (props) => {
|
|
|
87
94
|
};
|
|
88
95
|
|
|
89
96
|
export { AnvilProvider as A, AnvilProviderContext as a };
|
|
90
|
-
//# sourceMappingURL=AnvilProvider-
|
|
97
|
+
//# sourceMappingURL=AnvilProvider-D8msiELo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnvilProvider-D8msiELo.js","sources":["../src/providers/AnvilProvider/AnvilProviderContext.tsx","../src/providers/AnvilProvider/AnvilProvider.tsx"],"sourcesContent":["import type { ThemeProviderProps } from \"../ThemeProvider\";\nimport {\n type ComponentPropsWithoutRef,\n type Dispatch,\n type ReactNode,\n type SetStateAction,\n createContext,\n useContext,\n} from \"react\";\nimport type { LayoutUtilProps } from \"../../types\";\nimport type { ITranslations } from \"../LocalizationProvider/LocalizationProvider\";\nimport type { BreakpointReturnProps } from \"../../hooks/useBreakpoint\";\n\n/**\n * @deprecated No longer has any effect. Automatically loading these\n * stylesheets through a dynamic import broke CSS delivery when\n * `AnvilProvider` is shared between a host application and its\n * micro-frontends. Import the `@servicetitan/anvil2/assets/css-utils/*.css`\n * file(s) you need directly instead. See the CSS Utilities docs.\n */\nexport type CssUtilsOptions =\n | boolean\n | {\n spacing?: boolean;\n color?: boolean;\n border?: boolean;\n font?: boolean;\n };\n\nexport type AnvilProviderProps = ComponentPropsWithoutRef<\"div\"> &\n LayoutUtilProps & {\n children?: ReactNode;\n\n themeData?: {\n theme?: ThemeProviderProps[\"theme\"];\n mode?: ThemeProviderProps[\"mode\"];\n };\n\n localizationData?: {\n locale?: ITranslations[\"locale\"];\n dir?: ITranslations[\"dir\"];\n translations?: ITranslations[\"translations\"];\n };\n\n /**\n * @deprecated No longer has any effect. Import the\n * `@servicetitan/anvil2/assets/css-utils/*.css` file(s) you need\n * directly instead. See the CSS Utilities docs.\n */\n cssUtils?: CssUtilsOptions;\n } & {\n trackingIdData?: {\n scope?: string;\n optOut?: boolean;\n };\n };\n\nexport type AnvilProviderContextProps = {\n breakpoint?: BreakpointReturnProps;\n};\n\nexport const AnvilProviderContext = createContext<AnvilProviderContextProps>(\n {},\n);\n\nexport const TooltipLegacyGroupContext = createContext<{\n disableDelayGroup: Dispatch<SetStateAction<boolean>>;\n} | null>(null);\n\nexport const useTooltipLegacyGroup = () => {\n const context = useContext(TooltipLegacyGroupContext);\n\n if (context == null) {\n throw new Error(\n \"Tooltip components must be wrapped in <AnvilProvider /> or <TooltipGroupContext.Provider />\",\n );\n }\n\n return context;\n};\n","import \"@servicetitan/anvil-fonts/dist/css/anvil-fonts.css\";\nimport { ThemeProvider } from \"../ThemeProvider\";\nimport themeStyles from \"../ThemeProvider/ThemeProvider.module.scss\";\nimport { useMemo, useState, useEffect } from \"react\";\nimport cx from \"classnames\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { useBreakpoint } from \"../../hooks/useBreakpoint\";\nimport { useTranslations } from \"../LocalizationProvider/useTranslations\";\nimport { LocalizationContext } from \"../LocalizationProvider\";\nimport TrackingProvider from \"../TrackingProvider\";\nimport {\n AnvilProviderContext,\n type AnvilProviderProps,\n TooltipLegacyGroupContext,\n} from \"./AnvilProviderContext\";\n\n// Refcount of mounted AnvilProviders. Coordinates the body class so the last\n// unmount removes it, but a remount (e.g. story switch, hot reload) keeps it.\n//\n// Stored in the global Symbol registry so all module instances share the same\n// counter. The expose-loader used by the MFE framework re-executes module code\n// per MFE scope, giving each scope its own `let` binding. Without this, a\n// light-bundle MFE's AnvilProvider cleanup decrements its own counter to 0 and\n// strips the class while the host's AnvilProvider is still mounted.\nconst BODY_SCOPE_REFCOUNT_KEY = Symbol.for(\"ST_ANVIL2_BODY_SCOPE_REFCOUNT\");\nfunction getBodyScopeRefcount(): number {\n return (globalThis as Record<symbol, number>)[BODY_SCOPE_REFCOUNT_KEY] ?? 0;\n}\nfunction setBodyScopeRefcount(n: number): void {\n (globalThis as Record<symbol, number>)[BODY_SCOPE_REFCOUNT_KEY] = n;\n}\n\nexport const AnvilProvider = (props: AnvilProviderProps) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n\n const {\n themeData,\n localizationData,\n trackingIdData,\n // Deprecated, no-op: kept so existing callers still type-check. See\n // AnvilProviderProps.cssUtils for the replacement.\n cssUtils: _cssUtils,\n children,\n className,\n style,\n ...rest\n } = componentProps;\n\n const {\n locale = \"en\",\n dir = \"ltr\",\n translations = {},\n } = localizationData ?? {};\n\n const { scope = \"ST\", optOut } = trackingIdData ?? {};\n\n const classNameCombined = cx(\n className,\n \"anvil2\",\n [themeStyles[\"theme-core\"]],\n {\n [themeStyles[\"mode-dark\"]]: themeData?.mode === \"dark\",\n [themeStyles[\"mode-light\"]]: themeData?.mode === \"light\",\n },\n );\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n const breakpoint = useBreakpoint();\n\n // Anvil1 takeover components (Modal/Dialog/Drawer) `createPortal` their\n // children into `document.body`, escaping AnvilProvider's `.anvil2` scope and\n // leaving descendant Anvil2 components without matching selectors. Mirroring\n // the class onto body lets those selectors match for portaled content while\n // leaving theme variables and typography resets on the local element.\n useEffect(() => {\n setBodyScopeRefcount(getBodyScopeRefcount() + 1);\n document.body.classList.add(\"anvil2\");\n return () => {\n const next = Math.max(0, getBodyScopeRefcount() - 1);\n setBodyScopeRefcount(next);\n if (next === 0) {\n document.body.classList.remove(\"anvil2\");\n }\n };\n }, []);\n\n const [disableDelayGroup, setDisableDelayGroup] = useState(false);\n\n const { translations: t } = useTranslations(translations);\n\n const localizationContextValue = useMemo(() => ({ locale, t }), [locale, t]);\n const tooltipLegacyGroupContextValue = useMemo(\n () => ({ disableDelayGroup: setDisableDelayGroup }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [disableDelayGroup],\n );\n\n return (\n <AnvilProviderContext.Provider value={{ breakpoint }}>\n <ThemeProvider\n className={classNameCombined}\n style={styleCombined}\n theme={themeData?.theme}\n mode={themeData?.mode}\n dir={dir}\n {...rest}\n >\n <TooltipLegacyGroupContext.Provider\n value={tooltipLegacyGroupContextValue}\n >\n <LocalizationContext.Provider value={localizationContextValue}>\n <TrackingProvider scope={scope} optOut={optOut}>\n {children}\n </TrackingProvider>\n </LocalizationContext.Provider>\n </TooltipLegacyGroupContext.Provider>\n </ThemeProvider>\n </AnvilProviderContext.Provider>\n );\n};\n"],"names":[],"mappings":"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"}
|
package/dist/AnvilProvider.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { A as AnvilProvider, a as AnvilProviderContext, A as default } from './AnvilProvider-
|
|
1
|
+
export { A as AnvilProvider, a as AnvilProviderContext, A as default } from './AnvilProvider-D8msiELo.js';
|
|
2
2
|
//# sourceMappingURL=AnvilProvider.js.map
|
|
@@ -4,7 +4,6 @@ import { c as cx } from './index-De1g9FRV.js';
|
|
|
4
4
|
import { u as useAccessibleColor, t as tinycolor } from './useAccessibleColor-BYKjkGRg.js';
|
|
5
5
|
import { S as SrOnly } from './SrOnly-pnf8ajnh.js';
|
|
6
6
|
import { T as ThemeProviderContext } from './ThemeProviderContext-l52GohYT.js';
|
|
7
|
-
import { u as usePrefersColorScheme } from './usePrefersColorScheme-CwOF0TjZ.js';
|
|
8
7
|
import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
|
|
9
8
|
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
|
|
10
9
|
|
|
@@ -74,8 +73,7 @@ const AvatarBase = forwardRef(
|
|
|
74
73
|
[avatarBaseStyles["online"]]: status && status === "online"
|
|
75
74
|
});
|
|
76
75
|
const { mode: themeMode } = useContext(ThemeProviderContext);
|
|
77
|
-
const
|
|
78
|
-
const mode = themeMode ?? sysMode;
|
|
76
|
+
const mode = themeMode ?? "light";
|
|
79
77
|
const { foreground, background, border } = useAccessibleColor(color, mode);
|
|
80
78
|
const styleWithColor = {
|
|
81
79
|
"--a2-inline-avatar-background-color": color && background,
|
|
@@ -260,4 +258,4 @@ const Avatar = Object.assign(
|
|
|
260
258
|
Avatar.displayName = "Avatar";
|
|
261
259
|
|
|
262
260
|
export { AvatarGroup as A, Avatar as a };
|
|
263
|
-
//# sourceMappingURL=Avatar-
|
|
261
|
+
//# sourceMappingURL=Avatar-DZxHhMTP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Avatar-DZxHhMTP.js","sources":["../src/internal/functions/getInitial.ts","../src/components/Avatar/internal/AvatarBase.tsx","../src/components/Avatar/AvatarGroup.tsx","../src/components/Avatar/internal/Avatar.tsx"],"sourcesContent":["/**\n * Extracts initials from a full name string.\n *\n * Features:\n * - Handles single names (returns first two characters)\n * - Handles multiple names (returns first and last name initials)\n * - Automatically capitalizes all initials\n * - Filters out empty strings and whitespace\n * - Handles edge cases like empty names and single characters\n * - Preserves proper capitalization rules\n * - Returns undefined for empty or falsy input\n *\n * @param name - The full name string to extract initials from\n * @returns The initials as a string, or undefined if name is empty\n */\nexport function getInitial(name: string) {\n if (!name) return undefined;\n\n const nameArray = name.split(\" \").filter(Boolean);\n\n if (nameArray.length > 1)\n return `${nameArray[0][0]?.toUpperCase()}${nameArray[\n nameArray.length - 1\n ][0].toUpperCase()}`;\n\n if (nameArray[0][1]) {\n return `${nameArray[0][0].toUpperCase()}${nameArray[0][1].toLowerCase()}`;\n }\n return `${nameArray[0][0].toUpperCase()}`;\n}\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n useContext,\n useRef,\n useState,\n useEffect,\n useMemo,\n} from \"react\";\nimport cx from \"classnames\";\nimport tinycolor from \"tinycolor2\";\n\nimport type { LayoutUtilProps, Size } from \"../../../types\";\nimport { SrOnly } from \"../../SrOnly\";\nimport { useAccessibleColor, useMergeRefs } from \"../../../hooks\";\n\nimport styles from \"./AvatarBase.module.scss\";\nimport { ThemeProviderContext } from \"../../../providers/ThemeProvider/internal/ThemeProviderContext\";\n\n/**\n * Props for the AvatarBase component\n * @extends ComponentPropsWithoutRef<\"span\">\n * @extends Omit<LayoutUtilProps, \"flex\" | \"flexBasis\" | \"flexGrow\" | \"flexShrink\">\n */\nexport type AvatarBaseProps = ComponentPropsWithoutRef<\"span\"> &\n Omit<LayoutUtilProps, \"flex\" | \"flexBasis\" | \"flexGrow\" | \"flexShrink\"> & {\n /**\n * Full name\n * @accessibility This is used for alt text and Screenreader\n */\n name: string;\n /**\n * Custom color of the AvatarBase\n */\n color?: string;\n /**\n * Image source to be used for AvatarBase\n */\n image?: string;\n /**\n * Initials to display if no image is provided\n */\n initials?: string;\n /**\n * @default medium\n */\n size?: Extract<Size, \"xsmall\" | \"small\" | \"medium\" | \"large\">;\n /**\n * Online status of the AvatarBase\n */\n status?: \"online\" | \"offline\";\n };\n\n/**\n * Base Avatar component that handles the core avatar functionality.\n *\n * Features:\n * - Renders user avatars with images or initials\n * - Supports custom colors with accessible contrast\n * - Shows online/offline status indicator\n * - Handles image loading errors gracefully\n * - Supports light and dark themes\n * - Fully accessible with screen reader support\n *\n * @example\n * <AvatarBase name=\"John Doe\" size=\"medium\" status=\"online\" />\n */\nexport const AvatarBase = forwardRef<HTMLSpanElement, AvatarBaseProps>(\n (props, ref) => {\n const {\n className,\n color,\n status,\n name,\n image,\n initials,\n style,\n size,\n ...rest\n } = props;\n\n const elRef = useRef<HTMLSpanElement>(null);\n const imgRef = useRef<HTMLImageElement>(null);\n const [hasImageErrored, setHasImageErrored] = useState(false);\n const avatarBaseClassNames = cx(styles[\"avatar-base\"], className, {\n [styles[`${size}`]]: size && size !== \"medium\",\n });\n const onlineIndicatorClassNames = cx(styles[\"indicator\"], {\n [styles[\"offline\"]]: !status || status === \"offline\",\n [styles[\"online\"]]: status && status === \"online\",\n });\n\n const { mode: themeMode } = useContext(ThemeProviderContext);\n const mode = themeMode ?? \"light\";\n\n const { foreground, background, border } = useAccessibleColor(color, mode);\n\n const styleWithColor = {\n \"--a2-inline-avatar-background-color\": color && background,\n \"--a2-inline-avatar-font-color\": color && foreground,\n \"--a2-inline-avatar-border-color\": color && border,\n ...style,\n };\n\n const onlineIndicatorBorderColor = useMemo(() => {\n if (mode === \"dark\") {\n if (color) {\n return tinycolor(background).brighten(20).toHexString();\n }\n }\n return \"var(--a2-background-color-default)\";\n }, [color, mode, background]);\n\n const onlineIndicatorStyles = {\n \"--a2-inline-avatar-border-color\": onlineIndicatorBorderColor,\n } as React.CSSProperties;\n\n const onlineString = status;\n const srOnly = [name, onlineString].filter(Boolean).join(\" \");\n\n // if the image prop updates, also reset the error state for the new image\n useEffect(() => {\n if (image) {\n setHasImageErrored(false);\n }\n }, [image]);\n\n // if the image is already complete on our first render (likely due to SSR),\n // check the error state of the already complete image\n useEffect(() => {\n if (image && imgRef.current && imgRef.current.complete) {\n const img = new Image();\n const handleError = () => setHasImageErrored(true);\n\n img.addEventListener(\"error\", handleError);\n img.src = image;\n\n return () => {\n img.removeEventListener(\"error\", handleError);\n img.src = \"\";\n };\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <span\n className={avatarBaseClassNames}\n style={styleWithColor}\n data-anv=\"avatarBase\"\n {...rest}\n ref={useMergeRefs([elRef, ref])}\n >\n {image && !hasImageErrored ? (\n <img\n className={styles[\"img\"]}\n aria-hidden\n src={image}\n alt={name}\n onError={() => setHasImageErrored(true)}\n ref={imgRef}\n />\n ) : initials ? (\n <span className={styles[\"initial\"]} aria-hidden>\n {initials}\n </span>\n ) : (\n <span aria-hidden>?</span>\n )}\n\n {status && (\n <span\n aria-hidden\n className={onlineIndicatorClassNames}\n style={onlineIndicatorStyles}\n />\n )}\n\n <SrOnly>{srOnly}</SrOnly>\n </span>\n );\n },\n);\n\nAvatarBase.displayName = \"AvatarBase\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n Children,\n isValidElement,\n cloneElement,\n type CSSProperties,\n type ReactElement,\n} from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./AvatarGroup.module.scss\";\nimport avatarBaseStyles from \"./internal/AvatarBase.module.scss\";\nimport type { LayoutUtilProps } from \"../../types\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { AvatarBase } from \"./internal/AvatarBase\";\n\n/**\n * Props for the AvatarGroup component\n * @property {number} [max] - Maximum number of avatars to display before truncating\n * @extends LayoutUtilProps\n * @extends ComponentPropsWithoutRef<\"span\">\n */\nexport type AvatarGroupProps = LayoutUtilProps &\n ComponentPropsWithoutRef<\"span\"> & {\n /**\n * Max child to show before truncating\n */\n max?: number;\n };\n\n/**\n * AvatarGroup component for displaying multiple avatars in a group.\n *\n * Features:\n * - Displays multiple avatars in a stacked layout\n * - Handles overflow with a count indicator\n * - Maintains consistent sizing across all avatars\n * - Supports custom styling and layout\n * - Automatically adjusts z-index for proper stacking\n * - Fully accessible with screen reader support\n *\n * @example\n * <Avatar.Group max={3}>\n * <Avatar name=\"John Doe\" />\n * <Avatar name=\"Jane Smith\" />\n * <Avatar name=\"Bob Johnson\" />\n * <Avatar name=\"Alice Brown\" />\n * </Avatar.Group>\n */\nexport const AvatarGroup = forwardRef<HTMLSpanElement, AvatarGroupProps>(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { className, max, style, children, ...rest } = componentProps;\n const childrenArr = Children.toArray(children);\n const inferredSize =\n (isValidElement(childrenArr[0]) && childrenArr[0].props.size) ?? \"medium\";\n const isOverflowing = max ? max < childrenArr.length : false;\n\n const overflowCount = max && childrenArr.length - max;\n\n const avatarGroupClassNames = cx(styles[\"avatar-group\"], className, {\n [styles[`${inferredSize}`]]: inferredSize,\n });\n\n const avatarBaseOverflowClassNames = cx(\n avatarBaseStyles[\"avatar-base-overflow\"],\n {\n [avatarBaseStyles[\"overflow-ten-plus\"]]:\n overflowCount && overflowCount > 9,\n },\n );\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n return (\n <span\n ref={ref}\n className={avatarGroupClassNames}\n style={styleCombined}\n data-anv=\"avatar-group\"\n {...rest}\n >\n {childrenArr.map((child, i) => {\n let childEl = child;\n if (isValidElement(child)) {\n const nIndex = childrenArr.length - i;\n const nStyle: CSSProperties = {\n ...child.props.style,\n zIndex: nIndex,\n };\n childEl = cloneElement(child as ReactElement, {\n style: nStyle,\n });\n }\n\n if (!max) return childEl;\n if (i < max) return childEl;\n return null;\n })}\n {isOverflowing && max && (\n <AvatarBase\n className={avatarBaseOverflowClassNames}\n name={`+${overflowCount}`}\n initials={`+${overflowCount}`}\n size={inferredSize}\n />\n )}\n </span>\n );\n },\n);\n\nAvatarGroup.displayName = \"AvatarGroup\";\n","import { type ComponentPropsWithoutRef, forwardRef, useMemo } from \"react\";\nimport { AvatarGroup } from \"../AvatarGroup\";\nimport type { LayoutUtilProps } from \"../../../types\";\nimport { getInitial } from \"../../../internal/functions\";\n\nimport { useLayoutPropsUtil } from \"../../../internal/hooks\";\nimport { AvatarBase, type AvatarBaseProps } from \"./AvatarBase\";\n\n/**\n * Props for the Avatar component\n * @property {string} name - Full name of the user. Used for alt text and screen reader announcements\n * @property {string} [color] - Custom color of the avatar. Should maintain sufficient contrast ratio for accessibility\n * @property {string} [image] - Image source to be used for avatar. Falls back to initials if image fails to load\n * @property {Extract<Size, \"small\" | \"medium\" | \"large\">} [size] - Size of the Avatar\n * @property {\"online\" | \"offline\"} [status] - Online status of the Avatar\n * @extends ComponentPropsWithoutRef<\"span\">\n * @extends Omit<AvatarBaseProps, \"initials\">\n * @extends Omit<LayoutUtilProps, \"flex\" | \"flexBasis\" | \"flexGrow\" | \"flexShrink\">\n */\nexport type AvatarProps = ComponentPropsWithoutRef<\"span\"> &\n Omit<AvatarBaseProps, \"initials\"> &\n Omit<LayoutUtilProps, \"flex\" | \"flexBasis\" | \"flexGrow\" | \"flexShrink\">;\n\n/**\n * Avatar component for displaying user avatars with initials or images.\n *\n * Features:\n * - Displays user initials when no image is provided\n * - Supports custom colors and sizes\n * - Shows online/offline status\n * - Fully accessible with screen reader support\n * - Automatic image fallback handling\n * - Supports layout utilities for positioning and spacing\n *\n * @example\n * <Avatar\n * name=\"John Doe\"\n * image=\"https://example.com/avatar.jpg\"\n * size=\"medium\"\n * status=\"online\"\n * />\n */\nexport const Avatar = Object.assign(\n forwardRef<HTMLSpanElement, AvatarProps>(function AvatarInner(props, ref) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { name, style, ...rest } = componentProps;\n\n const styleWithLayout = useMemo(() => {\n return {\n ...layoutStyles,\n ...style,\n };\n }, [layoutStyles, style]);\n\n const initials = getInitial(name);\n\n return (\n <AvatarBase\n style={styleWithLayout}\n data-anv=\"avatar\"\n name={name}\n ref={ref}\n initials={rest.size === \"small\" ? initials?.[0] : initials}\n {...rest}\n />\n );\n }),\n {\n /**\n * AvatarGroup component for displaying multiple avatars in a group.\n *\n * Features:\n * - Displays multiple avatars in a stacked layout\n * - Handles overflow with a count indicator\n * - Maintains consistent sizing across all avatars\n * - Supports custom styling and layout\n * - Automatically adjusts z-index for proper stacking\n * - Fully accessible with screen reader support\n *\n * @example\n * <Avatar.Group max={3}>\n * <Avatar name=\"John Doe\" />\n * <Avatar name=\"Jane Smith\" />\n * <Avatar name=\"Bob Johnson\" />\n * <Avatar name=\"Alice Brown\" />\n * </Avatar.Group>\n */\n Group: AvatarGroup,\n },\n);\nAvatar.displayName = \"Avatar\";\n"],"names":["styles"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { a as Avatar$1, A as AvatarGroup } from './Avatar-
|
|
2
|
+
import { a as Avatar$1, A as AvatarGroup } from './Avatar-DZxHhMTP.js';
|
|
3
3
|
import { forwardRef } from 'react';
|
|
4
4
|
|
|
5
5
|
const Avatar = Object.assign(
|
|
@@ -32,4 +32,4 @@ const Avatar = Object.assign(
|
|
|
32
32
|
Avatar.displayName = Avatar$1.displayName;
|
|
33
33
|
|
|
34
34
|
export { Avatar as A };
|
|
35
|
-
//# sourceMappingURL=Avatar-
|
|
35
|
+
//# sourceMappingURL=Avatar-DkWoRhJu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar-
|
|
1
|
+
{"version":3,"file":"Avatar-DkWoRhJu.js","sources":["../src/components/Avatar/Avatar.tsx"],"sourcesContent":["import {\n Avatar as CoreAvatar,\n type AvatarProps as CoreAvatarProps,\n} from \"./internal/Avatar\";\nimport { forwardRef } from \"react\";\nimport type { DistributiveOmit } from \"../../types\";\nimport { AvatarGroup } from \"./AvatarGroup\";\n\n/**\n * Props for the Avatar component\n * @property {string} name - Full name used for alt text and screen reader\n * @property {string} [color] - Custom color of the Avatar\n * @property {string} [image] - Image source to be used for Avatar\n * @property {\"small\" | \"medium\" | \"large\"} [size] - Size of the Avatar\n * @property {\"online\" | \"offline\"} [status] - Online status of the Avatar\n * @extends ComponentPropsWithoutRef<\"span\">\n * @extends Omit<AvatarBaseProps, \"initials\">\n * @extends Omit<LayoutUtilProps, \"flex\" | \"flexBasis\" | \"flexGrow\" | \"flexShrink\">\n * @extends DataTrackingId\n */\nexport type AvatarProps = DistributiveOmit<CoreAvatarProps, \"size\"> & {\n size?: Extract<CoreAvatarProps[\"size\"], \"small\" | \"medium\" | \"large\">;\n};\n\n/**\n * Avatar component for displaying user avatars with initials or images.\n *\n * Features:\n * - Displays user initials when no image is provided\n * - Supports custom colors and sizes\n * - Shows online/offline status\n * - Fully accessible with screen reader support\n * - Automatic image fallback handling\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Avatar name=\"John Doe\" size=\"medium\" status=\"online\" />\n */\nexport const Avatar = Object.assign(\n forwardRef<HTMLSpanElement, AvatarProps>(function AvatarInner(props, ref) {\n return <CoreAvatar ref={ref} {...props} />;\n }),\n {\n /**\n * AvatarGroup component for displaying multiple avatars in a group.\n *\n * Features:\n * - Displays multiple avatars in a stacked layout\n * - Handles overflow with a count indicator\n * - Maintains consistent sizing across all avatars\n * - Supports custom styling and layout\n * - Automatically adjusts z-index for proper stacking\n * - Fully accessible with screen reader support\n *\n * @example\n * <Avatar.Group max={3}>\n * <Avatar name=\"John Doe\" />\n * <Avatar name=\"Jane Smith\" />\n * <Avatar name=\"Bob Johnson\" />\n * <Avatar name=\"Alice Brown\" />\n * </Avatar.Group>\n */\n Group: AvatarGroup,\n },\n);\nAvatar.displayName = CoreAvatar.displayName;\n"],"names":["CoreAvatar"],"mappings":";;;;AAsCO,MAAM,SAAS,MAAA,CAAO,MAAA;AAAA,EAC3B,UAAA,CAAyC,SAAS,WAAA,CAAY,KAAA,EAAO,GAAA,EAAK;AACxE,IAAA,uBAAO,GAAA,CAACA,QAAA,EAAA,EAAW,GAAA,EAAW,GAAG,KAAA,EAAO,CAAA;AAAA,EAC1C,CAAC,CAAA;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAoBE,KAAA,EAAO;AAAA;AAEX;AACA,MAAA,CAAO,cAAcA,QAAA,CAAW,WAAA;;;;"}
|
package/dist/Avatar.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { A as Avatar, A as default } from './Avatar-
|
|
2
|
-
export { A as AvatarGroup } from './Avatar-
|
|
1
|
+
export { A as Avatar, A as default } from './Avatar-DkWoRhJu.js';
|
|
2
|
+
export { A as AvatarGroup } from './Avatar-DZxHhMTP.js';
|
|
3
3
|
//# sourceMappingURL=Avatar.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { C as CalendarBetaPropsContext, a as Calendar$1 } from './Calendar-
|
|
2
|
+
import { C as CalendarBetaPropsContext, a as Calendar$1 } from './Calendar-kSH8F7gx.js';
|
|
3
3
|
|
|
4
4
|
const Calendar = (props) => {
|
|
5
5
|
const { dateMetadata, onMonthView, ...stableProps } = props;
|
|
@@ -7,4 +7,4 @@ const Calendar = (props) => {
|
|
|
7
7
|
};
|
|
8
8
|
|
|
9
9
|
export { Calendar as C };
|
|
10
|
-
//# sourceMappingURL=Calendar-
|
|
10
|
+
//# sourceMappingURL=Calendar-DV149Rqb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar-
|
|
1
|
+
{"version":3,"file":"Calendar-DV149Rqb.js","sources":["../src/beta/components/Calendar/Calendar.tsx"],"sourcesContent":["import {\n Calendar as StableCalendar,\n type CalendarProps as StableCalendarProps,\n} from \"../../../components\";\nimport { CalendarBetaPropsContext } from \"./CalendarBetaPropsContext\";\n\nexport interface CalendarBetaProps {\n dateMetadata?: {\n date: string;\n context: string;\n }[];\n onMonthView?: ({ month, year }: { month: number; year: number }) => void;\n}\n\n/**\n * Beta Calendar component — wraps the stable Calendar with per-date\n * annotations and month-view tracking, on top of its single/range date\n * selection.\n *\n * Features:\n * - All stable Calendar props and behavior (see `Calendar` in `components`)\n * - `dateMetadata` to annotate specific dates with contextual text (e.g.\n * \"3 available time slots\"), surfaced via `Calendar.Month`'s day pips\n * - `onMonthView` callback fired whenever the visible month/year changes\n *\n * @example\n * <Calendar\n * value=\"2024-01-15\"\n * onSelection={({ value }) => console.log('Selected:', value)}\n * dateMetadata={[{ date: \"2024-01-20\", context: \"3 available slots\" }]}\n * onMonthView={({ month, year }) => console.log('Viewing:', month, year)}\n * />\n */\nexport const Calendar = (props: CalendarBetaProps & StableCalendarProps) => {\n const { dateMetadata, onMonthView, ...stableProps } = props;\n return (\n <CalendarBetaPropsContext.Provider value={{ dateMetadata, onMonthView }}>\n <StableCalendar {...stableProps} />\n </CalendarBetaPropsContext.Provider>\n );\n};\n"],"names":["StableCalendar"],"mappings":";;;AAiCO,MAAM,QAAA,GAAW,CAAC,KAAA,KAAmD;AAC1E,EAAA,MAAM,EAAE,YAAA,EAAc,WAAA,EAAa,GAAG,aAAY,GAAI,KAAA;AACtD,EAAA,uBACE,GAAA,CAAC,wBAAA,CAAyB,QAAA,EAAzB,EAAkC,KAAA,EAAO,EAAE,YAAA,EAAc,WAAA,EAAY,EACpE,QAAA,kBAAA,GAAA,CAACA,UAAA,EAAA,EAAgB,GAAG,aAAa,CAAA,EACnC,CAAA;AAEJ;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { D as DateTime, I as Info } from './luxon-wpz4A-OQ.js';
|
|
3
|
-
import { createContext, useContext, forwardRef,
|
|
3
|
+
import { createContext, useContext, forwardRef, useRef, useCallback, useEffect, useState, useMemo, useId } from 'react';
|
|
4
4
|
import { B as Button } from './Button-Dwh_Nd4l.js';
|
|
5
5
|
import { S as SvgKeyboardArrowDown } from './keyboard_arrow_down-C8WQ38p1.js';
|
|
6
6
|
import { S as SvgKeyboardArrowUp } from './keyboard_arrow_up-CxzK6LAl.js';
|
|
@@ -191,42 +191,42 @@ const CalendarYearButton = forwardRef((props, ref) => {
|
|
|
191
191
|
});
|
|
192
192
|
CalendarYearButton.displayName = "CalendarYearButton";
|
|
193
193
|
|
|
194
|
-
const calendar = "
|
|
195
|
-
const grid = "
|
|
196
|
-
const header = "
|
|
197
|
-
const controller = "
|
|
198
|
-
const spacer = "
|
|
199
|
-
const cell = "
|
|
200
|
-
const weekday = "
|
|
201
|
-
const range = "
|
|
202
|
-
const overflow = "
|
|
203
|
-
const selected = "
|
|
204
|
-
const pip = "
|
|
194
|
+
const calendar = "_calendar_uesx5_1";
|
|
195
|
+
const grid = "_grid_uesx5_18";
|
|
196
|
+
const header = "_header_uesx5_23";
|
|
197
|
+
const controller = "_controller_uesx5_46";
|
|
198
|
+
const spacer = "_spacer_uesx5_62";
|
|
199
|
+
const cell = "_cell_uesx5_77";
|
|
200
|
+
const weekday = "_weekday_uesx5_122";
|
|
201
|
+
const range = "_range_uesx5_165";
|
|
202
|
+
const overflow = "_overflow_uesx5_171";
|
|
203
|
+
const selected = "_selected_uesx5_175";
|
|
204
|
+
const pip = "_pip_uesx5_257";
|
|
205
205
|
const styles$1 = {
|
|
206
206
|
calendar: calendar,
|
|
207
207
|
grid: grid,
|
|
208
208
|
header: header,
|
|
209
209
|
controller: controller,
|
|
210
|
-
"controller-button": "_controller-
|
|
210
|
+
"controller-button": "_controller-button_uesx5_55",
|
|
211
211
|
spacer: spacer,
|
|
212
|
-
"day-grid": "_day-
|
|
212
|
+
"day-grid": "_day-grid_uesx5_66",
|
|
213
213
|
cell: cell,
|
|
214
214
|
weekday: weekday,
|
|
215
|
-
"month-selection": "_month-
|
|
216
|
-
"selection-checkbox": "_selection-
|
|
217
|
-
"selection-card": "_selection-
|
|
218
|
-
"year-selector": "_year-
|
|
219
|
-
"range-first": "_range-
|
|
220
|
-
"range-last": "_range-
|
|
215
|
+
"month-selection": "_month-selection_uesx5_136",
|
|
216
|
+
"selection-checkbox": "_selection-checkbox_uesx5_136",
|
|
217
|
+
"selection-card": "_selection-card_uesx5_146",
|
|
218
|
+
"year-selector": "_year-selector_uesx5_158",
|
|
219
|
+
"range-first": "_range-first_uesx5_165",
|
|
220
|
+
"range-last": "_range-last_uesx5_165",
|
|
221
221
|
range: range,
|
|
222
222
|
overflow: overflow,
|
|
223
223
|
selected: selected,
|
|
224
|
-
"is-unavailable": "_is-
|
|
225
|
-
"hover-last": "_hover-
|
|
226
|
-
"has-metadata": "_has-
|
|
224
|
+
"is-unavailable": "_is-unavailable_uesx5_184",
|
|
225
|
+
"hover-last": "_hover-last_uesx5_209",
|
|
226
|
+
"has-metadata": "_has-metadata_uesx5_252",
|
|
227
227
|
pip: pip,
|
|
228
|
-
"range-fill": "_range-
|
|
229
|
-
"range-disabled": "_range-
|
|
228
|
+
"range-fill": "_range-fill_uesx5_270",
|
|
229
|
+
"range-disabled": "_range-disabled_uesx5_281"
|
|
230
230
|
};
|
|
231
231
|
|
|
232
232
|
const CalendarPrev = forwardRef(
|
|
@@ -239,13 +239,9 @@ const CalendarPrev = forwardRef(
|
|
|
239
239
|
setSelectedMonth,
|
|
240
240
|
setSelectedYear
|
|
241
241
|
} = useCalendar();
|
|
242
|
-
const
|
|
243
|
-
useEffect(() => {
|
|
244
|
-
setDisabled(
|
|
245
|
-
minDate != null && focusedDate.minus({ month: 1 }).endOf("month") < minDate
|
|
246
|
-
);
|
|
247
|
-
}, [minDate, focusedDate]);
|
|
242
|
+
const isDisabled = minDate != null && focusedDate.minus({ month: 1 }).endOf("month") < minDate;
|
|
248
243
|
const onClickHandler = (e) => {
|
|
244
|
+
if (isDisabled) return;
|
|
249
245
|
onClick?.(e);
|
|
250
246
|
const targetMonth = focusedDate.minus({ month: 1 }).endOf("month");
|
|
251
247
|
const targetDate = focusedDate.minus({ month: 1 });
|
|
@@ -286,7 +282,7 @@ const CalendarPrev = forwardRef(
|
|
|
286
282
|
"data-anv": "calendar-prev",
|
|
287
283
|
"aria-label": "Previous Month",
|
|
288
284
|
...rest,
|
|
289
|
-
disabled
|
|
285
|
+
"aria-disabled": isDisabled || void 0
|
|
290
286
|
}
|
|
291
287
|
);
|
|
292
288
|
}
|
|
@@ -303,13 +299,9 @@ const CalendarNext = forwardRef(
|
|
|
303
299
|
setSelectedMonth,
|
|
304
300
|
setSelectedYear
|
|
305
301
|
} = useCalendar();
|
|
306
|
-
const
|
|
307
|
-
useEffect(() => {
|
|
308
|
-
setDisabled(
|
|
309
|
-
maxDate != null && focusedDate.plus({ month: 1 }).startOf("month") > maxDate
|
|
310
|
-
);
|
|
311
|
-
}, [maxDate, focusedDate]);
|
|
302
|
+
const isDisabled = maxDate != null && focusedDate.plus({ month: 1 }).startOf("month") > maxDate;
|
|
312
303
|
const onClickHandler = (e) => {
|
|
304
|
+
if (isDisabled) return;
|
|
313
305
|
onClick?.(e);
|
|
314
306
|
const targetMonth = focusedDate.plus({ month: 1 }).startOf("month");
|
|
315
307
|
const targetDate = focusedDate.plus({ month: 1 });
|
|
@@ -350,7 +342,7 @@ const CalendarNext = forwardRef(
|
|
|
350
342
|
"data-anv": "calendar-next",
|
|
351
343
|
ref,
|
|
352
344
|
...rest,
|
|
353
|
-
disabled
|
|
345
|
+
"aria-disabled": isDisabled || void 0
|
|
354
346
|
}
|
|
355
347
|
);
|
|
356
348
|
}
|
|
@@ -1834,4 +1826,4 @@ const Calendar = Object.assign(
|
|
|
1834
1826
|
Calendar.displayName = "Calendar";
|
|
1835
1827
|
|
|
1836
1828
|
export { CalendarBetaPropsContext as C, Calendar as a, CalendarNow as b, CalendarYearButton as c, CalendarPrev as d, CalendarNext as e, CalendarMonthButton as f, CalendarMonth as g, useCalendarBetaProps as u };
|
|
1837
|
-
//# sourceMappingURL=Calendar-
|
|
1829
|
+
//# sourceMappingURL=Calendar-kSH8F7gx.js.map
|