@servicetitan/anvil2 3.0.4 → 3.0.5
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 +10 -0
- package/dist/{AnvilProvider-JXEbeQjR.js → AnvilProvider-J9DjoJiB.js} +13 -2
- package/dist/AnvilProvider-J9DjoJiB.js.map +1 -0
- package/dist/AnvilProvider.js +1 -1
- package/dist/{Combobox-C9-3tlcP.js → Combobox-BXQFOwX4.js} +2 -2
- package/dist/{Combobox-C9-3tlcP.js.map → Combobox-BXQFOwX4.js.map} +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-Dr5A6RDe.js → DataTable-BFzj8cZG.js} +3 -3
- package/dist/{DataTable-Dr5A6RDe.js.map → DataTable-BFzj8cZG.js.map} +1 -1
- package/dist/{FilterBar-BUfajdQU.js → FilterBar-GjMlLOME.js} +6 -6
- package/dist/FilterBar-GjMlLOME.js.map +1 -0
- package/dist/FilterBar.js +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-DXIBQABc.js → MultiSelectFieldSync-BxyQiVPQ.js} +56 -26
- package/dist/MultiSelectFieldSync-BxyQiVPQ.js.map +1 -0
- package/dist/MultiSelectFieldSync.css +59 -57
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-CCINebbr.js → MultiSelectMenuSync-BJfvZGf3.js} +19 -6
- package/dist/MultiSelectMenuSync-BJfvZGf3.js.map +1 -0
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldSync-DqIDTKqt.js → SelectFieldSync-z8b41JZz.js} +39 -9
- package/dist/SelectFieldSync-z8b41JZz.js.map +1 -0
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-DYPEX5wc.js → SelectMenuSync-Cf1Zradm.js} +19 -6
- package/dist/SelectMenuSync-Cf1Zradm.js.map +1 -0
- package/dist/{SelectOptions-DuMbmJjh.js → SelectOptions-BgT1V6qp.js} +2 -2
- package/dist/{SelectOptions-DuMbmJjh.js.map → SelectOptions-BgT1V6qp.js.map} +1 -1
- package/dist/{SelectTrigger-RiRjgwXd.js → SelectTrigger-37HzF-VI.js} +2 -2
- package/dist/{SelectTrigger-RiRjgwXd.js.map → SelectTrigger-37HzF-VI.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-CWxP7nPA.js → SelectTriggerBase-4o1cqEbR.js} +2 -2
- package/dist/{SelectTriggerBase-CWxP7nPA.js.map → SelectTriggerBase-4o1cqEbR.js.map} +1 -1
- package/dist/SelectTriggerBase.css +44 -42
- package/dist/SelectTriggerBase.module-BgZSNZfE.js +37 -0
- package/dist/SelectTriggerBase.module-BgZSNZfE.js.map +1 -0
- package/dist/Table.js +1 -1
- package/dist/beta.js +7 -7
- package/dist/index.js +3 -3
- package/dist/src/beta/components/MultiSelectField/MultiSelectField.d.ts +1 -0
- package/dist/src/beta/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -1
- package/dist/src/beta/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -1
- package/dist/src/beta/components/MultiSelectField/internal/types.d.ts +2 -1
- package/dist/src/beta/components/MultiSelectField/types.d.ts +2 -1
- package/dist/src/beta/components/MultiSelectMenu/MultiSelectMenu.d.ts +1 -0
- package/dist/src/beta/components/MultiSelectMenu/types.d.ts +2 -1
- package/dist/src/beta/components/SelectField/SelectField.d.ts +21 -0
- package/dist/src/beta/components/SelectField/internal/SelectFieldComboboxMode.d.ts +1 -1
- package/dist/src/beta/components/SelectField/internal/SelectFieldSelectMode.d.ts +1 -1
- package/dist/src/beta/components/SelectField/types.d.ts +2 -1
- package/dist/src/beta/components/SelectMenu/SelectMenu.d.ts +1 -0
- package/dist/src/beta/components/SelectMenu/types.d.ts +2 -1
- package/dist/src/internal/components/AddNewItemButton.d.ts +40 -0
- package/dist/src/internal/components/OptionsDialog/OptionsDialog.d.ts +3 -1
- package/dist/src/internal/components/OptionsPopover/OptionsPopover.d.ts +13 -1
- package/dist/src/internal/types/addNewItemTypes.d.ts +12 -0
- package/dist/src/internal/types/selectFieldInternalTypes.d.ts +2 -1
- package/dist/{syncFilterUtils-hlw11Ud8.js → syncFilterUtils-Dpp7gt05.js} +96 -24
- package/dist/syncFilterUtils-Dpp7gt05.js.map +1 -0
- package/dist/syncFilterUtils.css +44 -23
- package/dist/{useMenuInteraction-BwZ2ORo9.js → useMenuInteraction-C4RU5Fdq.js} +1 -5
- package/dist/useMenuInteraction-C4RU5Fdq.js.map +1 -0
- package/dist/{useToggleSelection-VwlBkdZo.js → useToggleSelection-DBqr4HwT.js} +2 -2
- package/dist/{useToggleSelection-VwlBkdZo.js.map → useToggleSelection-DBqr4HwT.js.map} +1 -1
- package/package.json +3 -3
- package/dist/AnvilProvider-JXEbeQjR.js.map +0 -1
- package/dist/FilterBar-BUfajdQU.js.map +0 -1
- package/dist/MultiSelectFieldSync-DXIBQABc.js.map +0 -1
- package/dist/MultiSelectMenuSync-CCINebbr.js.map +0 -1
- package/dist/SelectFieldSync-DqIDTKqt.js.map +0 -1
- package/dist/SelectMenuSync-DYPEX5wc.js.map +0 -1
- package/dist/SelectTriggerBase.module-CCLOnHm1.js +0 -37
- package/dist/SelectTriggerBase.module-CCLOnHm1.js.map +0 -1
- package/dist/syncFilterUtils-hlw11Ud8.js.map +0 -1
- package/dist/useMenuInteraction-BwZ2ORo9.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @servicetitan/anvil2
|
|
2
2
|
|
|
3
|
+
## 3.0.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#2336](https://github.com/servicetitan/hammer/pull/2336) [`0277423`](https://github.com/servicetitan/hammer/commit/027742311d21866a3916d4300ece542b0285dd13) Thanks [@w-a-t-s-o-n](https://github.com/w-a-t-s-o-n)! - **BETA** [FilterBar] Update filter drawer combobox `SearchField` and `SelectTrigger` to use `medium` size instead of `small`
|
|
8
|
+
|
|
9
|
+
- [#2313](https://github.com/servicetitan/hammer/pull/2313) [`13093b7`](https://github.com/servicetitan/hammer/commit/13093b77993bfaa76e5137a47686103c44923aa1) Thanks [@AdamLantz](https://github.com/AdamLantz)! - **BETA** [MultiSelectField, MultiSelectMenu, SelectField, SelectMenu] Add `addItemLabel` and `onAddNewItem` props to render a persistent "Add new item" affordance below the option list.
|
|
10
|
+
|
|
11
|
+
- [#2324](https://github.com/servicetitan/hammer/pull/2324) [`e4a8d56`](https://github.com/servicetitan/hammer/commit/e4a8d560fe32621b4db8da52dddd543168013fb7) Thanks [@pbuckingham-st](https://github.com/pbuckingham-st)! - [AnvilProvider] Fix unstyled Anvil2 components inside Anvil1 takeovers (Modal, Dialog, Drawer) by mirroring the `.anvil2` class onto `document.body`.
|
|
12
|
+
|
|
3
13
|
## 3.0.4
|
|
4
14
|
|
|
5
15
|
### Patch Changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { t as themeStyles, T as ThemeProvider } from './ThemeProvider-D4KdGCaP.js';
|
|
3
|
-
import { createContext, useState, useMemo } from 'react';
|
|
3
|
+
import { createContext, useEffect, useState, useMemo } from 'react';
|
|
4
4
|
import { c as cx } from './index-De1g9FRV.js';
|
|
5
5
|
import { u as useBreakpoint } from './useBreakpoint-CeaUyHxh.js';
|
|
6
6
|
import { a as useTranslations, L as LocalizationContext } from './LocalizationContext-UsmB5mnR.js';
|
|
@@ -12,6 +12,7 @@ import './AnvilProvider.css';const AnvilProviderContext = createContext(
|
|
|
12
12
|
);
|
|
13
13
|
const TooltipLegacyGroupContext = createContext(null);
|
|
14
14
|
|
|
15
|
+
let bodyScopeRefcount = 0;
|
|
15
16
|
const AnvilProvider = (props) => {
|
|
16
17
|
const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
|
|
17
18
|
const {
|
|
@@ -43,6 +44,16 @@ const AnvilProvider = (props) => {
|
|
|
43
44
|
...layoutStyles
|
|
44
45
|
};
|
|
45
46
|
const breakpoint = useBreakpoint();
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
bodyScopeRefcount += 1;
|
|
49
|
+
document.body.classList.add("anvil2");
|
|
50
|
+
return () => {
|
|
51
|
+
bodyScopeRefcount = Math.max(0, bodyScopeRefcount - 1);
|
|
52
|
+
if (bodyScopeRefcount === 0) {
|
|
53
|
+
document.body.classList.remove("anvil2");
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}, []);
|
|
46
57
|
const [disableDelayGroup, setDisableDelayGroup] = useState(false);
|
|
47
58
|
const { translations: t } = useTranslations(translations);
|
|
48
59
|
const localizationContextValue = useMemo(() => ({ locale, t }), [locale, t]);
|
|
@@ -72,4 +83,4 @@ const AnvilProvider = (props) => {
|
|
|
72
83
|
};
|
|
73
84
|
|
|
74
85
|
export { AnvilProvider as A, AnvilProviderContext as a };
|
|
75
|
-
//# sourceMappingURL=AnvilProvider-
|
|
86
|
+
//# sourceMappingURL=AnvilProvider-J9DjoJiB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnvilProvider-J9DjoJiB.js","sources":["../src/providers/AnvilProvider/AnvilProviderContext.tsx","../src/providers/AnvilProvider/AnvilProvider.tsx"],"sourcesContent":["import { ThemeProviderProps } from \"../ThemeProvider\";\nimport {\n ComponentPropsWithoutRef,\n Dispatch,\n ReactNode,\n SetStateAction,\n createContext,\n useContext,\n} from \"react\";\nimport { LayoutUtilProps } from \"../../types\";\nimport { ITranslations } from \"../LocalizationProvider/LocalizationProvider\";\nimport { type BreakpointReturnProps } from \"../../hooks/useBreakpoint\";\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 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 { useEffect, useMemo, useState } 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 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.\nlet bodyScopeRefcount = 0;\n\nexport const AnvilProvider = (props: AnvilProviderProps) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n\n const {\n themeData,\n localizationData,\n trackingIdData,\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 bodyScopeRefcount += 1;\n document.body.classList.add(\"anvil2\");\n return () => {\n bodyScopeRefcount = Math.max(0, bodyScopeRefcount - 1);\n if (bodyScopeRefcount === 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-J9DjoJiB.js';
|
|
2
2
|
//# sourceMappingURL=AnvilProvider.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { createContext, useContext, useEffect, useMemo, useState, useRef, forwardRef, useId, useLayoutEffect } from 'react';
|
|
3
3
|
import { P as Popover, u as usePopoverContext } from './Popover-B3Vw4lDW.js';
|
|
4
|
-
import { i as isMultiple, b as SELECT_ALL, a as defaultItemToKey, d as defaultItemToString, g as getScrollParent, A as ADD_NEW, S as SelectTriggerBase } from './SelectTriggerBase-
|
|
4
|
+
import { i as isMultiple, b as SELECT_ALL, a as defaultItemToKey, d as defaultItemToString, g as getScrollParent, A as ADD_NEW, S as SelectTriggerBase } from './SelectTriggerBase-4o1cqEbR.js';
|
|
5
5
|
import { c as cx } from './index-De1g9FRV.js';
|
|
6
6
|
import { u as useDownshiftEnvironment, c as useMultipleSelection, b as useSelect, a as useCombobox$1 } from './downshift.esm-xtSnQp44.js';
|
|
7
7
|
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-CB_zHDbW.js';
|
|
@@ -2472,4 +2472,4 @@ const Combobox = Object.assign(
|
|
|
2472
2472
|
const ComboboxElement = Combobox;
|
|
2473
2473
|
|
|
2474
2474
|
export { Combobox as C, ComboboxElement as a, ComboboxSelect as b, ComboboxList as c };
|
|
2475
|
-
//# sourceMappingURL=Combobox-
|
|
2475
|
+
//# sourceMappingURL=Combobox-BXQFOwX4.js.map
|