basalt-ui 1.34.1 → 1.36.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.
- package/AGENTS.md +21 -21
- package/CHANGELOG.md +24 -0
- package/MIGRATING.md +89 -12
- package/agent/rules/basalt-controls.md +1 -1
- package/agent/rules/basalt-mantine.md +1 -1
- package/configs/oxlint-plugin.js +51 -4
- package/configs/oxlint-plugin.test.ts +58 -15
- package/dist/charts/primitives/ChartFrame.d.ts.map +1 -1
- package/dist/charts/primitives/ChartFrame.js +2 -1
- package/dist/charts/primitives/ChartLegend.d.ts.map +1 -1
- package/dist/charts/primitives/ChartLegend.js +2 -1
- package/dist/charts/primitives/chart-tier.d.ts +0 -2
- package/dist/charts/primitives/chart-tier.d.ts.map +1 -1
- package/dist/charts/primitives/chart-tier.js +0 -5
- package/dist/common/index.d.ts +1 -0
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/index.js +2 -0
- package/dist/common/use-media-query.d.ts +7 -0
- package/dist/common/use-media-query.d.ts.map +1 -1
- package/dist/common/use-media-query.js +4 -0
- package/dist/common/vx-families.d.ts +1 -1
- package/dist/{forms → controls}/form-layout.d.ts +1 -1
- package/dist/controls/form-layout.d.ts.map +1 -0
- package/dist/{forms → controls}/form-layout.js +2 -2
- package/dist/controls/index.d.ts +1 -0
- package/dist/controls/index.d.ts.map +1 -1
- package/dist/controls/index.js +10 -0
- package/dist/forms/index.d.ts +37 -7
- package/dist/forms/index.d.ts.map +1 -1
- package/dist/forms/index.js +10 -2
- package/dist/guard/index.d.ts +3 -1
- package/dist/guard/index.d.ts.map +1 -1
- package/dist/guard/index.js +16 -12
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/provider/index.d.ts +5 -4
- package/dist/provider/index.d.ts.map +1 -1
- package/dist/shell/app-mobile-nav.d.ts.map +1 -1
- package/dist/shell/app-mobile-nav.js +19 -10
- package/dist/shell/app-sidebar-account.d.ts.map +1 -1
- package/dist/shell/app-sidebar-account.js +1 -0
- package/dist/shell/app-sidebar.d.ts.map +1 -1
- package/dist/shell/app-sidebar.js +11 -6
- package/dist/shell/app-sidebar.module.css +39 -0
- package/dist/shell/app-sidebar.module.css.d.ts +3 -0
- package/dist/shell/index.d.ts +12 -5
- package/dist/shell/index.d.ts.map +1 -1
- package/dist/shell/nav-types.d.ts +19 -3
- package/dist/shell/nav-types.d.ts.map +1 -1
- package/dist/shell/sidebar-block-model.d.ts +3 -3
- package/dist/shell/sidebar-block-model.d.ts.map +1 -1
- package/dist/shell/sidebar-block-model.js +6 -2
- package/dist/shell/sidebar-blocks.d.ts +2 -1
- package/dist/shell/sidebar-blocks.d.ts.map +1 -1
- package/dist/shell/sidebar-blocks.js +13 -5
- package/dist/shell/use-size-class.d.ts.map +1 -1
- package/dist/surfaces.d.ts +4 -4
- package/dist/surfaces.d.ts.map +1 -1
- package/dist/surfaces.js +13 -5
- package/dist/tokens/index.d.ts.map +1 -1
- package/dist/tokens/index.js +5 -7
- package/llms.txt +5 -5
- package/package.json +1 -1
- package/src/charts/primitives/ChartFrame.tsx +2 -1
- package/src/charts/primitives/ChartLegend.tsx +2 -1
- package/src/charts/primitives/chart-tier.tsx +0 -6
- package/src/common/index.ts +1 -0
- package/src/common/use-media-query.ts +10 -0
- package/src/common/vx-families.ts +1 -1
- package/src/{forms → controls}/form-layout.tsx +7 -5
- package/src/controls/index.ts +16 -0
- package/src/forms/index.ts +36 -9
- package/src/guard/index.ts +35 -29
- package/src/index.ts +1 -0
- package/src/provider/index.tsx +5 -4
- package/src/shell/app-mobile-nav.tsx +34 -15
- package/src/shell/app-sidebar-account.tsx +3 -0
- package/src/shell/app-sidebar.module.css +39 -0
- package/src/shell/app-sidebar.module.css.d.ts +3 -0
- package/src/shell/app-sidebar.tsx +13 -6
- package/src/shell/index.tsx +12 -5
- package/src/shell/nav-types.ts +19 -3
- package/src/shell/sidebar-block-model.ts +13 -5
- package/src/shell/sidebar-blocks.tsx +30 -5
- package/src/shell/use-size-class.ts +6 -4
- package/src/surfaces.ts +13 -5
- package/src/tokens/index.ts +12 -15
- package/dist/forms/form-layout.d.ts.map +0 -1
- /package/dist/{forms → controls}/form-layout.module.css +0 -0
- /package/dist/{forms → controls}/form-layout.module.css.d.ts +0 -0
- /package/src/{forms → controls}/form-layout.module.css +0 -0
- /package/src/{forms → controls}/form-layout.module.css.d.ts +0 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCoarsePointer } from "../../common/use-media-query.js";
|
|
2
3
|
import { alpha, VX } from "../../tokens/index.js";
|
|
3
4
|
import { DOTS_HIT_GAP, LEGEND_DOT_SIZE, LEGEND_ROW_GAP, orderEntries } from "./chart-frame-layout.js";
|
|
4
|
-
import { useChartMetrics
|
|
5
|
+
import { useChartMetrics } from "./chart-tier.js";
|
|
5
6
|
import { LegendDisclosure, useLegendDisclosure } from "./legend-disclosure.js";
|
|
6
7
|
const LEGEND_ITEM_BASE = {
|
|
7
8
|
display: "flex",
|
|
@@ -11,8 +11,6 @@ export declare function ChartTierProvider({ containerClass, children }: ChartTie
|
|
|
11
11
|
export declare function useChartContainerClass(): ContainerClass;
|
|
12
12
|
/** The resolved sizes for the ambient container class — what every internal primitive wants. */
|
|
13
13
|
export declare function useChartMetrics(): ChartTierMetrics;
|
|
14
|
-
/** Whether the primary pointer is coarse. Server snapshot `false`: hydration agrees, then updates. */
|
|
15
|
-
export declare function useCoarsePointer(): boolean;
|
|
16
14
|
/** Viewport height in px (`0` on the server). Only the coarse-pointer height clamp reads it. */
|
|
17
15
|
export declare function useViewportHeight(): number;
|
|
18
16
|
//# sourceMappingURL=chart-tier.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart-tier.d.ts","sourceRoot":"","sources":["../../../src/charts/primitives/chart-tier.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"chart-tier.d.ts","sourceRoot":"","sources":["../../../src/charts/primitives/chart-tier.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAa5D,MAAM,MAAM,sBAAsB,GAAG;IACnC,cAAc,EAAE,cAAc,CAAA;IAC9B,QAAQ,EAAE,SAAS,CAAA;CACpB,CAAA;AAED,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,sBAAsB,GAAG,SAAS,CAMjG;AAED,kFAAkF;AAClF,wBAAgB,sBAAsB,IAAI,cAAc,CAEvD;AAED,gGAAgG;AAChG,wBAAgB,eAAe,IAAI,gBAAgB,CAElD;AAiCD,gGAAgG;AAChG,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { createContext, useContext, useSyncExternalStore } from "react";
|
|
3
|
-
import { useMediaQuery } from "../../common/use-media-query.js";
|
|
4
3
|
import { chartMetrics } from "./chart-frame-layout.js";
|
|
5
4
|
const ChartContainerClassContext = createContext("regular");
|
|
6
5
|
function ChartTierProvider({ containerClass, children }) {
|
|
@@ -14,9 +13,6 @@ function useChartMetrics() {
|
|
|
14
13
|
}
|
|
15
14
|
const subscribeNothing = () => () => {
|
|
16
15
|
};
|
|
17
|
-
function useCoarsePointer() {
|
|
18
|
-
return useMediaQuery("(pointer: coarse)", false);
|
|
19
|
-
}
|
|
20
16
|
const VIEWPORT_H_STEP = 50;
|
|
21
17
|
const viewportHListeners = /* @__PURE__ */ new Set();
|
|
22
18
|
let viewportHListenerAttached = false;
|
|
@@ -44,6 +40,5 @@ export {
|
|
|
44
40
|
ChartTierProvider,
|
|
45
41
|
useChartContainerClass,
|
|
46
42
|
useChartMetrics,
|
|
47
|
-
useCoarsePointer,
|
|
48
43
|
useViewportHeight
|
|
49
44
|
};
|
package/dist/common/index.d.ts
CHANGED
|
@@ -12,5 +12,6 @@ export { assignRef, mergeRefs } from './refs.js';
|
|
|
12
12
|
export { BASALT_PREFIX, requiredProp, oneOf, deprecatedProp, duplicateMount, missingLayer, } from './errors.js';
|
|
13
13
|
export { useValidateProps, assertRequiredProps, resetValidatedProps } from './validate.js';
|
|
14
14
|
export { scrollParentOf, SCROLLPORT_ATTRIBUTE } from './scroll-parent.js';
|
|
15
|
+
export { useCoarsePointer } from './use-media-query.js';
|
|
15
16
|
export { MOTION_DURATION, MOTION_EASE_STANDARD, MOTION_SPRING } from './motion.js';
|
|
16
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AACrF,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,eAAe,EAAE,KAAK,IAAI,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AACxE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EACL,aAAa,EACb,YAAY,EACZ,KAAK,EACL,cAAc,EACd,cAAc,EACd,YAAY,GACb,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AACvF,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AACrF,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,eAAe,EAAE,KAAK,IAAI,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AACxE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EACL,aAAa,EACb,YAAY,EACZ,KAAK,EACL,cAAc,EACd,cAAc,EACd,YAAY,GACb,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AACvF,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA"}
|
package/dist/common/index.js
CHANGED
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
} from "./errors.js";
|
|
12
12
|
import { useValidateProps, assertRequiredProps, resetValidatedProps } from "./validate.js";
|
|
13
13
|
import { scrollParentOf, SCROLLPORT_ATTRIBUTE } from "./scroll-parent.js";
|
|
14
|
+
import { useCoarsePointer } from "./use-media-query.js";
|
|
14
15
|
import { MOTION_DURATION, MOTION_EASE_STANDARD, MOTION_SPRING } from "./motion.js";
|
|
15
16
|
export {
|
|
16
17
|
BASALT_PREFIX,
|
|
@@ -29,5 +30,6 @@ export {
|
|
|
29
30
|
requiredProp,
|
|
30
31
|
resetValidatedProps,
|
|
31
32
|
scrollParentOf,
|
|
33
|
+
useCoarsePointer,
|
|
32
34
|
useValidateProps
|
|
33
35
|
};
|
|
@@ -3,4 +3,11 @@
|
|
|
3
3
|
* should re-render on a match change. */
|
|
4
4
|
export declare function readMediaQuery(query: string, fallback: boolean): boolean;
|
|
5
5
|
export declare function useMediaQuery(query: string, serverFallback: boolean): boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Whether the primary pointer is coarse — the JS twin of `--vx-hit`'s `(pointer: coarse)` query.
|
|
8
|
+
* For a branch CSS cannot express (mount one of two components, attach a keydown listener); styling
|
|
9
|
+
* stays `@media (pointer: coarse)` in a CSS module. Server and hydration snapshot is `false`; a
|
|
10
|
+
* `createRoot` app reads the real pointer on its first render.
|
|
11
|
+
*/
|
|
12
|
+
export declare function useCoarsePointer(): boolean;
|
|
6
13
|
//# sourceMappingURL=use-media-query.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-media-query.d.ts","sourceRoot":"","sources":["../../src/common/use-media-query.ts"],"names":[],"mappings":"AAgCA;;yCAEyC;AACzC,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAExE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,GAAG,OAAO,CAgB7E"}
|
|
1
|
+
{"version":3,"file":"use-media-query.d.ts","sourceRoot":"","sources":["../../src/common/use-media-query.ts"],"names":[],"mappings":"AAgCA;;yCAEyC;AACzC,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAExE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,GAAG,OAAO,CAgB7E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C"}
|
|
@@ -34,7 +34,11 @@ function useMediaQuery(query, serverFallback) {
|
|
|
34
34
|
const getServerSnapshot = useCallback(() => serverFallback, [serverFallback]);
|
|
35
35
|
return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
|
|
36
36
|
}
|
|
37
|
+
function useCoarsePointer() {
|
|
38
|
+
return useMediaQuery("(pointer: coarse)", false);
|
|
39
|
+
}
|
|
37
40
|
export {
|
|
38
41
|
readMediaQuery,
|
|
42
|
+
useCoarsePointer,
|
|
39
43
|
useMediaQuery
|
|
40
44
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The families every emitted `--vx-*` name lives in (`basaltVxFamilies`) — basalt-owned:
|
|
3
|
-
* `unknown-vx-token` judges every name inside one, and `groupTokens`/`seriesTokens`
|
|
3
|
+
* `unknown-vx-token` judges every name inside one, and `groupTokens`/`seriesTokens` throw on a
|
|
4
4
|
* consumer ref there.
|
|
5
5
|
*/
|
|
6
6
|
export declare const BASALT_VX_FAMILIES: readonly string[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
import type { BasaltProps, SlotStylesProps } from '../common/props.js';
|
|
3
|
-
import type { SlotActions } from '
|
|
3
|
+
import type { SlotActions } from './actions.js';
|
|
4
4
|
import type { WidgetHeaderTitleProps } from '../dashboard/index.js';
|
|
5
5
|
/** The three boxes `FormSection` paints (`common/props.ts`). */
|
|
6
6
|
export type FormSectionSlot = 'root' | 'header' | 'body';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-layout.d.ts","sourceRoot":"","sources":["../../src/controls/form-layout.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAyC1D,gEAAgE;AAChE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;AAExD;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GACxC,eAAe,CAAC,eAAe,CAAC,GAChC,sBAAsB,GAAG;IACvB,0DAA0D;IAC1D,QAAQ,EAAE,SAAS,CAAA;CACpB,CAAA;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,+BAoBlD;AAID,4DAA4D;AAC5D,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;AAEtD,MAAM,MAAM,YAAY,GAAG,WAAW,GACpC,eAAe,CAAC,WAAW,CAAC,GAAG;IAC7B,4FAA4F;IAC5F,KAAK,EAAE,MAAM,CAAA;IACb,oFAAoF;IACpF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,oGAAoG;IACpG,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4FAA4F;IAC5F,QAAQ,EAAE,SAAS,CAAA;CACpB,CAAA;AAEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,+BA0B1C;AAID,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG;IACzC,qGAAqG;IACrG,KAAK,EAAE,MAAM,CAAA;IACb,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,0DAA0D;IAC1D,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;IAC5B,+CAA+C;IAC/C,QAAQ,EAAE,SAAS,CAAA;CACpB,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,+BAsB9C;AAID,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG;IAC3C;;;;;;;;OAQG;IACH,OAAO,EAAE,WAAW,CAAA;CACrB,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,+BAgBlD"}
|
|
@@ -2,9 +2,9 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { VisuallyHidden } from "@mantine/core";
|
|
3
3
|
import { cx } from "../common/props.js";
|
|
4
4
|
import { assertRequiredProps } from "../common/validate.js";
|
|
5
|
-
import { BarActionSlot } from "
|
|
5
|
+
import { BarActionSlot } from "./actions.js";
|
|
6
6
|
import { WidgetHeader } from "../dashboard/index.js";
|
|
7
|
-
import { useFormState } from "
|
|
7
|
+
import { useFormState } from "../forms/form-state.js";
|
|
8
8
|
import classes from "./form-layout.module.css";
|
|
9
9
|
function RequiredMark({ required }) {
|
|
10
10
|
if (required !== true) return null;
|
package/dist/controls/index.d.ts
CHANGED
|
@@ -19,4 +19,5 @@ export { ToggleFilter, type ToggleFilterProps } from './toggle-filter.js';
|
|
|
19
19
|
export { ViewTabs, type ViewTabsOption, type ViewTabsProps } from './view-tabs.js';
|
|
20
20
|
export { PanelRow, type PanelRowProps } from './panel-row.js';
|
|
21
21
|
export { SliderControl, type SliderControlProps } from './slider-control.js';
|
|
22
|
+
export { FormSection, FormRow, FormGroup, FormActions, type FormSectionProps, type FormSectionSlot, type FormRowProps, type FormRowSlot, type FormGroupProps, type FormActionsProps, } from './form-layout.js';
|
|
22
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/controls/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAC3F,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAMtE,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,KAAK,sBAAsB,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAChG,OAAO,EACL,aAAa,EACb,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,GAC7B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACtF,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC/F,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACtE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAM/E,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/controls/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAC3F,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAMtE,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,KAAK,sBAAsB,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAChG,OAAO,EACL,aAAa,EACb,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,GAC7B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACtF,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC/F,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACtE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAM/E,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAKzE,OAAO,EACL,WAAW,EACX,OAAO,EACP,SAAS,EACT,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAA"}
|
package/dist/controls/index.js
CHANGED
|
@@ -23,6 +23,12 @@ import { ToggleFilter } from "./toggle-filter.js";
|
|
|
23
23
|
import { ViewTabs } from "./view-tabs.js";
|
|
24
24
|
import { PanelRow } from "./panel-row.js";
|
|
25
25
|
import { SliderControl } from "./slider-control.js";
|
|
26
|
+
import {
|
|
27
|
+
FormSection,
|
|
28
|
+
FormRow,
|
|
29
|
+
FormGroup,
|
|
30
|
+
FormActions
|
|
31
|
+
} from "./form-layout.js";
|
|
26
32
|
export {
|
|
27
33
|
AGE_REFRESH_MS,
|
|
28
34
|
ActionGroup,
|
|
@@ -30,6 +36,10 @@ export {
|
|
|
30
36
|
CompareFilter,
|
|
31
37
|
ControlGroup,
|
|
32
38
|
FilterSet,
|
|
39
|
+
FormActions,
|
|
40
|
+
FormGroup,
|
|
41
|
+
FormRow,
|
|
42
|
+
FormSection,
|
|
33
43
|
MOBILE_GLOBAL_BAR_MAX,
|
|
34
44
|
MultiSelectFilter,
|
|
35
45
|
NumberFilter,
|
package/dist/forms/index.d.ts
CHANGED
|
@@ -6,18 +6,40 @@
|
|
|
6
6
|
* `basalt-ui`. Same reason `./charts` and `./tokens` stay off the root barrel, one optional peer
|
|
7
7
|
* over. Import everything below from `basalt-ui/forms`.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
* (`FormSection` / `FormRow` / `FormGroup` / `FormActions`), the submit lifecycle
|
|
9
|
+
* Four pieces: the form (`useBasaltForm` + `inputProps`/`fieldKey`), the submit lifecycle
|
|
11
10
|
* (`useFormSubmit` + `FormStateProvider`), the list field (`useFieldArray`) and the draft
|
|
12
|
-
* (`useFormDraft`).
|
|
11
|
+
* (`useFormDraft`). The layout (`FormSection` / `FormRow` / `FormGroup` / `FormActions`) moved to
|
|
12
|
+
* `basalt-ui/controls` in 1.36.0 — it needs no `@mantine/form` — and stays here as deprecated
|
|
13
|
+
* aliases until 1.37.0, as do the `useForm`/`schemaResolver` re-exports (import from
|
|
14
|
+
* `@mantine/form`).
|
|
13
15
|
*
|
|
14
16
|
* Optional peer: @mantine/form ^9.3.0 — install with: bun add @mantine/form
|
|
15
17
|
*/
|
|
16
18
|
export { useBasaltForm } from './create-form.js';
|
|
17
19
|
export type { UseBasaltFormOptions } from './create-form.js';
|
|
18
20
|
export { inputProps, fieldKey } from './field.js';
|
|
19
|
-
export {
|
|
20
|
-
|
|
21
|
+
export {
|
|
22
|
+
/** @deprecated Import from 'basalt-ui/controls' — removed in 1.37.0. */
|
|
23
|
+
FormSection,
|
|
24
|
+
/** @deprecated Import from 'basalt-ui/controls' — removed in 1.37.0. */
|
|
25
|
+
FormRow,
|
|
26
|
+
/** @deprecated Import from 'basalt-ui/controls' — removed in 1.37.0. */
|
|
27
|
+
FormGroup,
|
|
28
|
+
/** @deprecated Import from 'basalt-ui/controls' — removed in 1.37.0. */
|
|
29
|
+
FormActions, } from '../controls/form-layout.js';
|
|
30
|
+
export type {
|
|
31
|
+
/** @deprecated Import from 'basalt-ui/controls' — removed in 1.37.0. */
|
|
32
|
+
FormSectionProps,
|
|
33
|
+
/** @deprecated Import from 'basalt-ui/controls' — removed in 1.37.0. */
|
|
34
|
+
FormSectionSlot,
|
|
35
|
+
/** @deprecated Import from 'basalt-ui/controls' — removed in 1.37.0. */
|
|
36
|
+
FormRowProps,
|
|
37
|
+
/** @deprecated Import from 'basalt-ui/controls' — removed in 1.37.0. */
|
|
38
|
+
FormRowSlot,
|
|
39
|
+
/** @deprecated Import from 'basalt-ui/controls' — removed in 1.37.0. */
|
|
40
|
+
FormGroupProps,
|
|
41
|
+
/** @deprecated Import from 'basalt-ui/controls' — removed in 1.37.0. */
|
|
42
|
+
FormActionsProps, } from '../controls/form-layout.js';
|
|
21
43
|
export { useFormSubmit, isFieldErrorEnvelope } from './use-form-submit.js';
|
|
22
44
|
export type { FormFieldErrors, UseFormSubmitOptions, UseFormSubmitReturn } from './use-form-submit.js';
|
|
23
45
|
export { FormStateProvider, useFormState } from './form-state.js';
|
|
@@ -28,6 +50,14 @@ export { FormErrorSummary } from './FormErrorSummary.js';
|
|
|
28
50
|
export type { FormErrorSummaryProps } from './FormErrorSummary.js';
|
|
29
51
|
export { useFormDraft, DEFAULT_AUTOSAVE_DEBOUNCE_MS } from './use-form-draft.js';
|
|
30
52
|
export type { UseFormDraftOptions, UseFormDraftReturn } from './use-form-draft.js';
|
|
31
|
-
export {
|
|
32
|
-
|
|
53
|
+
export {
|
|
54
|
+
/** @deprecated Import from '@mantine/form' — removed in 1.37.0. */
|
|
55
|
+
useForm,
|
|
56
|
+
/** @deprecated Import from '@mantine/form' — removed in 1.37.0. */
|
|
57
|
+
schemaResolver, } from '@mantine/form';
|
|
58
|
+
export type {
|
|
59
|
+
/** @deprecated Import from '@mantine/form' — removed in 1.37.0. */
|
|
60
|
+
UseFormReturnType,
|
|
61
|
+
/** @deprecated Import from '@mantine/form' — removed in 1.37.0. */
|
|
62
|
+
UseFormInput, } from '@mantine/form';
|
|
33
63
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/forms/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/forms/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAIzD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAG9C,OAAO;AACL,wEAAwE;AACxE,WAAW;AACX,wEAAwE;AACxE,OAAO;AACP,wEAAwE;AACxE,SAAS;AACT,wEAAwE;AACxE,WAAW,GACZ,MAAM,yBAAyB,CAAA;AAChC,YAAY;AACV,wEAAwE;AACxE,gBAAgB;AAChB,wEAAwE;AACxE,eAAe;AACf,wEAAwE;AACxE,YAAY;AACZ,wEAAwE;AACxE,WAAW;AACX,wEAAwE;AACxE,cAAc;AACd,wEAAwE;AACxE,gBAAgB,GACjB,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACvE,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACnG,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC9D,YAAY,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAGrE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAG5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAG/D,OAAO,EAAE,YAAY,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAA;AAC7E,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAG/E,OAAO;AACL,mEAAmE;AACnE,OAAO;AACP,mEAAmE;AACnE,cAAc,GACf,MAAM,eAAe,CAAA;AACtB,YAAY;AACV,mEAAmE;AACnE,iBAAiB;AACjB,mEAAmE;AACnE,YAAY,GACb,MAAM,eAAe,CAAA"}
|
package/dist/forms/index.js
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
import { useBasaltForm } from "./create-form.js";
|
|
2
2
|
import { inputProps, fieldKey } from "./field.js";
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
FormSection,
|
|
5
|
+
FormRow,
|
|
6
|
+
FormGroup,
|
|
7
|
+
FormActions
|
|
8
|
+
} from "../controls/form-layout.js";
|
|
4
9
|
import { useFormSubmit, isFieldErrorEnvelope } from "./use-form-submit.js";
|
|
5
10
|
import { FormStateProvider, useFormState } from "./form-state.js";
|
|
6
11
|
import { useFieldArray } from "./use-field-array.js";
|
|
7
12
|
import { FormErrorSummary } from "./FormErrorSummary.js";
|
|
8
13
|
import { useFormDraft, DEFAULT_AUTOSAVE_DEBOUNCE_MS } from "./use-form-draft.js";
|
|
9
|
-
import {
|
|
14
|
+
import {
|
|
15
|
+
useForm,
|
|
16
|
+
schemaResolver
|
|
17
|
+
} from "@mantine/form";
|
|
10
18
|
export {
|
|
11
19
|
DEFAULT_AUTOSAVE_DEBOUNCE_MS,
|
|
12
20
|
FormActions,
|
package/dist/guard/index.d.ts
CHANGED
|
@@ -22,6 +22,8 @@ export type GraceEntry = {
|
|
|
22
22
|
};
|
|
23
23
|
/**
|
|
24
24
|
* Kinds still inside their grace minor — reported, not fatal, until the next minor promotes them.
|
|
25
|
+
* Empty since 1.36.0: `unknown-vx-token`, the last tenant, promoted (its grace ran one minor past
|
|
26
|
+
* 1.35.0 to keep the factory throw out of the a11y release).
|
|
25
27
|
* See {@link GuardSeverity} for the doctrine and why basalt-ui in particular needs it.
|
|
26
28
|
*
|
|
27
29
|
* Adding a kind here is part of shipping it; removing the entry IS the promotion, and belongs in
|
|
@@ -318,7 +320,7 @@ export declare const GUARD_RULES: {
|
|
|
318
320
|
readonly 'unknown-vx-token': {
|
|
319
321
|
readonly kind: "unknown-vx-token";
|
|
320
322
|
readonly pattern: RegExp;
|
|
321
|
-
readonly message: `var() names a --vx-* token basalt does not emit, so it resolves to its fallback (or to nothing) with no error anywhere. Judged: every name inside a basalt-owned family (${string}) \u2014 pick the token from basalt-ui/tokens.css; your own series belong in a family of their own (groupTokens
|
|
323
|
+
readonly message: `var() names a --vx-* token basalt does not emit, so it resolves to its fallback (or to nothing) with no error anywhere. Judged: every name inside a basalt-owned family (${string}) \u2014 pick the token from basalt-ui/tokens.css; your own series belong in a family of their own (groupTokens throws on one inside basalt's, in dev builds). Removed names and their replacements: ${string}. A name in any other family is never judged, because groupTokens may declare it in a file this scan cannot see.`;
|
|
322
324
|
};
|
|
323
325
|
};
|
|
324
326
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/guard/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAK7E,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/guard/index.ts"],"names":[],"mappings":"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"}
|
package/dist/guard/index.js
CHANGED
|
@@ -203,7 +203,18 @@ function titleBodyNamesThePage(body) {
|
|
|
203
203
|
const RAW_SELECTION_CONTROL_TAG = /<(SegmentedControl|Select|MultiSelect|NativeSelect|DatePickerInput|DateInput|TagsInput|Chip\.Group)(?![\w])(?:=>|[^>])*?>/g;
|
|
204
204
|
const PROSE_CONTEXT_TAG = /<(?:Prose|ArticleLayout|Modal|Drawer)(?![\w])/;
|
|
205
205
|
const CONTROL_HOST_TAG = /<(?:SettingsRow|FormRow|FormGroup|Modal|Drawer|Popover\.Dropdown|Menu\.Dropdown|Composer|FilterSet|PageAside|PanelRow)(?![\w])/;
|
|
206
|
-
const
|
|
206
|
+
const CONTROL_HOST_TAG_SCAN = new RegExp(
|
|
207
|
+
`<(/?)(?:${/\(\?:([^)]*)\)/.exec(CONTROL_HOST_TAG.source)?.[1] ?? ""})(?![\\w])(?:=>|[^>])*?>`,
|
|
208
|
+
"g"
|
|
209
|
+
);
|
|
210
|
+
function insideHostTag(codeText, offset) {
|
|
211
|
+
let depth = 0;
|
|
212
|
+
for (const m of codeText.slice(0, offset).matchAll(CONTROL_HOST_TAG_SCAN)) {
|
|
213
|
+
if (m[1] === "/") depth = Math.max(0, depth - 1);
|
|
214
|
+
else if (!m[0].endsWith("/>")) depth += 1;
|
|
215
|
+
}
|
|
216
|
+
return depth > 0;
|
|
217
|
+
}
|
|
207
218
|
const OVERLAY_CONVENTION_KEBAB = /^[^/]*-(?:modal|drawer|popover|panel|form)\.[jt]sx$/;
|
|
208
219
|
const OVERLAY_CONVENTION_PASCAL = /^[A-Z]\w*(?:Modal|Drawer|Popover|Panel|Form)\.[jt]sx$/;
|
|
209
220
|
function isOverlayConventionFile(relPath) {
|
|
@@ -237,13 +248,7 @@ const DEFAULT_GUARD_CONFIG = {
|
|
|
237
248
|
exemptRules: {},
|
|
238
249
|
severity: {}
|
|
239
250
|
};
|
|
240
|
-
const GRACE_PERIOD_KINDS = {
|
|
241
|
-
"unknown-vx-token": {
|
|
242
|
-
since: "1.34.0",
|
|
243
|
-
promote: "1.35.0",
|
|
244
|
-
why: "New kind at 1.33.0 (consumer-loop r2 B3): obsidian lost its 44px touch floor to a removed `var(--vx-space-touch-target)` that nothing reported. WIDENED at 1.34.0 (image-gen r4: `var(--vx-surface-2)` rendered transparent, unreported) to every unemitted name inside a basalt-owned family, so the grace restarts: warn through 1.34.x, error at 1.35.0."
|
|
245
|
-
}
|
|
246
|
-
};
|
|
251
|
+
const GRACE_PERIOD_KINDS = {};
|
|
247
252
|
function severityOf(kind, cfg) {
|
|
248
253
|
return cfg.severity?.[kind] ?? (Object.hasOwn(GRACE_PERIOD_KINDS, kind) ? "warn" : "error");
|
|
249
254
|
}
|
|
@@ -925,7 +930,7 @@ const GUARD_RULES = {
|
|
|
925
930
|
"raw-selection-control": {
|
|
926
931
|
kind: "raw-selection-control",
|
|
927
932
|
pattern: RAW_SELECTION_CONTROL_TAG,
|
|
928
|
-
// handled inline (full-text tag-scoped scan + host
|
|
933
|
+
// handled inline (full-text tag-scoped scan + host ancestry)
|
|
929
934
|
// JSX-tag-shaped (`<Select …>`) — never appears in CSS text.
|
|
930
935
|
appliesTo: (relPath) => !relPath.endsWith(".css"),
|
|
931
936
|
message: "Raw selection control with no home \u2014 a filter or tab belongs in a PageBar / Section / WidgetHeader slot and takes a `field` (a FieldHandle), so it owns the URL write and the localStorage mirror instead of carrying value/onChange (docs/CONTROLS-SPEC.md laws C1\u2013C3). Use the bound control from basalt-ui/controls. A settings row, a FormRow / FormGroup, an overlay and an @mantine/form file are the declared non-homes and never report. No shell? PageBar needs no BasaltShell: outside one it renders in flow, sticky, with its own title \u2014 so its slots are a reachable home for a provider-only app. This is the TEXT lane of basalt/control-outside-home, which answers the same question against the real AST \u2014 where the two disagree, the plugin is right."
|
|
@@ -948,7 +953,7 @@ const GUARD_RULES = {
|
|
|
948
953
|
kind: "unknown-vx-token",
|
|
949
954
|
pattern: VX_VAR_REF,
|
|
950
955
|
// handled inline (basalt-owned families); entry keeps the registry complete
|
|
951
|
-
message: `var() names a --vx-* token basalt does not emit, so it resolves to its fallback (or to nothing) with no error anywhere. Judged: every name inside a basalt-owned family (${[...BASALT_VX_FAMILY_SET].join(", ")}) \u2014 pick the token from basalt-ui/tokens.css; your own series belong in a family of their own (groupTokens
|
|
956
|
+
message: `var() names a --vx-* token basalt does not emit, so it resolves to its fallback (or to nothing) with no error anywhere. Judged: every name inside a basalt-owned family (${[...BASALT_VX_FAMILY_SET].join(", ")}) \u2014 pick the token from basalt-ui/tokens.css; your own series belong in a family of their own (groupTokens throws on one inside basalt's, in dev builds). Removed names and their replacements: ${Object.entries(
|
|
952
957
|
REMOVED_VX_NAMES
|
|
953
958
|
).map(([from, to]) => `${from} \u2192 ${to ?? "(deleted, no replacement)"}`).join(
|
|
954
959
|
"; "
|
|
@@ -1246,8 +1251,7 @@ function checkSource(text, relPath, cfg) {
|
|
|
1246
1251
|
if (ruleApplies("raw-selection-control", relPath) && !isOverlayConventionFile(relPath) && !(CONTROL_OWNER_DEF.test(codeText) && !BASALT_ANY_IMPORT.test(codeText)) && !MANTINE_FORM_IMPORT.test(codeText)) {
|
|
1247
1252
|
for (const m of codeText.matchAll(RAW_SELECTION_CONTROL_TAG)) {
|
|
1248
1253
|
const startLine = codeText.slice(0, m.index ?? 0).split("\n").length;
|
|
1249
|
-
|
|
1250
|
-
if (CONTROL_HOST_TAG.test(codeLines.slice(windowStart, startLine).join("\n"))) continue;
|
|
1254
|
+
if (insideHostTag(codeText, m.index ?? 0)) continue;
|
|
1251
1255
|
const endLine = startLine + (m[0].split("\n").length - 1);
|
|
1252
1256
|
if (isAllowedInRange(startLine, endLine, "raw-selection-control")) continue;
|
|
1253
1257
|
findings.push({
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* here, so a tokens/charts-only consumer never pulls in `@mantine/*`.
|
|
7
7
|
*/
|
|
8
8
|
export { BasaltProvider, type BasaltProviderProps, BasaltErrorBoundary, type BasaltErrorBoundaryProps, type BasaltErrorContext, } from './provider/index.js';
|
|
9
|
-
export { type BasaltProps, type SlotClassNames, type SlotStylesProps, type Tone, type ToneWithNeutral, type Tier, cx, scrollParentOf, SCROLLPORT_ATTRIBUTE, } from './common/index.js';
|
|
9
|
+
export { type BasaltProps, type SlotClassNames, type SlotStylesProps, type Tone, type ToneWithNeutral, type Tier, cx, scrollParentOf, SCROLLPORT_ATTRIBUTE, useCoarsePointer, } from './common/index.js';
|
|
10
10
|
export { createBasaltTheme, baseTheme, cssVariablesResolver } from './theme/index.js';
|
|
11
11
|
export type { BasaltFontsConfig, CreateBasaltThemeOptions } from './theme/index.js';
|
|
12
12
|
export { CTL_THEME, CtlSlot } from './theme/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAA;AASnB,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,IAAI,EACT,KAAK,eAAe,EACpB,KAAK,IAAI,EACT,EAAE,EACF,cAAc,EACd,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,8 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
cx,
|
|
7
7
|
scrollParentOf,
|
|
8
|
-
SCROLLPORT_ATTRIBUTE
|
|
8
|
+
SCROLLPORT_ATTRIBUTE,
|
|
9
|
+
useCoarsePointer
|
|
9
10
|
} from "./common/index.js";
|
|
10
11
|
import { createBasaltTheme, baseTheme, cssVariablesResolver } from "./theme/index.js";
|
|
11
12
|
import { CTL_THEME, CtlSlot } from "./theme/index.js";
|
|
@@ -150,6 +151,7 @@ export {
|
|
|
150
151
|
unwrap,
|
|
151
152
|
useAgentThreadRuns,
|
|
152
153
|
useBasaltSpacing,
|
|
154
|
+
useCoarsePointer,
|
|
153
155
|
useConnectivity,
|
|
154
156
|
useSizeClass
|
|
155
157
|
};
|
package/dist/provider/index.d.ts
CHANGED
|
@@ -81,10 +81,11 @@ export type BasaltProviderProps = {
|
|
|
81
81
|
connectivity?: Omit<ConnectivityProviderProps, 'children'>;
|
|
82
82
|
/**
|
|
83
83
|
* The size class `useSizeClass()` reports on the server and during hydration, before `matchMedia`
|
|
84
|
-
* can answer. Default `'compact'` (mobile-first).
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
84
|
+
* can answer. Default `'compact'` (mobile-first). SSR only: a client-rendered (`createRoot`) app
|
|
85
|
+
* reads `matchMedia` on its first render and never sees this value. An SSR app that knows the
|
|
86
|
+
* device class (UA hint, cookie) passes it so the first frame already matches. An SSR desktop app
|
|
87
|
+
* SHOULD pass it: without it the first paint is `'compact'`, and `PageAside`/`ThreadWorkspace`
|
|
88
|
+
* remount after hydration when the real class lands.
|
|
88
89
|
*/
|
|
89
90
|
sizeClassHint?: SizeClass;
|
|
90
91
|
} & Omit<MantineProviderProps, 'children' | 'theme' | 'defaultColorScheme' | 'cssVariablesResolver'>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/provider/index.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,SAAS,EAAsB,MAAM,OAAO,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAIjD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAIrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAQjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAA;AAEnD,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,SAAS,CAAA;IACnB,oFAAoF;IACpF,KAAK,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAA;IACrC;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,gBAAgB,CAAA;IACjC,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,oBAAoB,CAAC,oBAAoB,CAAC,CAAA;IAC/D;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,kBAAkB,KAAK,IAAI,CAAA;IAC3D;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,YAAY,CAAC,EAAE,IAAI,CAAC,yBAAyB,EAAE,UAAU,CAAC,CAAA;IAC1D
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/provider/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-mobile-nav.d.ts","sourceRoot":"","sources":["../../src/shell/app-mobile-nav.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAc,YAAY,EAAa,MAAM,OAAO,CAAA;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAGlD,OAAO,KAAK,EACV,eAAe,EAEf,cAAc,EAEd,YAAY,
|
|
1
|
+
{"version":3,"file":"app-mobile-nav.d.ts","sourceRoot":"","sources":["../../src/shell/app-mobile-nav.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAc,YAAY,EAAa,MAAM,OAAO,CAAA;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAGlD,OAAO,KAAK,EACV,eAAe,EAEf,cAAc,EAEd,YAAY,EAMb,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAqB/C,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG;IACzC,kFAAkF;IAClF,KAAK,EAAE,cAAc,CAAA;IACrB,MAAM,CAAC,EAAE,eAAe,GAAG,SAAS,CAAA;IACpC;;wEAEoE;IACpE,OAAO,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAA;IACxC,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAA;IAClD;;;;;OAKG;IACH,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,SAAS,CAAA;CACpC,CAAA;AAgHD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,SAAS,GAAG,MAAM,CAE/E;AA8ED,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,MAAM,EACN,OAAO,EACP,iBAAiB,EACjB,MAAM,EACN,SAAS,EACT,KAAK,GACN,EAAE,cAAc,GAAG,YAAY,CAuiB/B"}
|
|
@@ -51,6 +51,10 @@ function IconCheck() {
|
|
|
51
51
|
}
|
|
52
52
|
);
|
|
53
53
|
}
|
|
54
|
+
function rowCurrent(row) {
|
|
55
|
+
if (!row.active) return void 0;
|
|
56
|
+
return row.current === "page" ? "page" : "true";
|
|
57
|
+
}
|
|
54
58
|
function accountRows(account) {
|
|
55
59
|
if (!account || account.state.status === "loading") return [];
|
|
56
60
|
const actions = account.actions;
|
|
@@ -104,7 +108,8 @@ function settingsRows(items) {
|
|
|
104
108
|
label: item.label,
|
|
105
109
|
icon: item.icon,
|
|
106
110
|
onClick: item.onClick,
|
|
107
|
-
...item.active !== void 0 && { active: item.active }
|
|
111
|
+
...item.active !== void 0 && { active: item.active },
|
|
112
|
+
...item.current !== void 0 && { current: item.current }
|
|
108
113
|
}));
|
|
109
114
|
}
|
|
110
115
|
function deepestScrolledDescendant(root) {
|
|
@@ -129,10 +134,10 @@ const menuActionRow = (row, sectionStart = false) => /* @__PURE__ */ jsx(
|
|
|
129
134
|
{
|
|
130
135
|
className: sectionStart ? `${classes.menuItem} ${classes.menuSectionStart}` : classes.menuItem,
|
|
131
136
|
leftSection: row.icon,
|
|
132
|
-
rightSection: row.active ? /* @__PURE__ */ jsx(IconCheck, {}) : void 0,
|
|
137
|
+
rightSection: row.active && row.current !== "page" ? /* @__PURE__ */ jsx(IconCheck, {}) : void 0,
|
|
133
138
|
...row.danger ? { color: "red" } : {},
|
|
134
139
|
onClick: (event) => row.onClick?.(event),
|
|
135
|
-
"aria-current": row
|
|
140
|
+
"aria-current": rowCurrent(row),
|
|
136
141
|
children: row.label
|
|
137
142
|
},
|
|
138
143
|
row.key
|
|
@@ -175,13 +180,15 @@ function MobileNav({
|
|
|
175
180
|
};
|
|
176
181
|
const extraRows = [...accountRows(account), ...settingsRows(settingsMenuItems)];
|
|
177
182
|
const moreBlocks = (blocks ?? []).filter(
|
|
178
|
-
(block) =>
|
|
183
|
+
(block) => sidebarBlockMobile(block) === "more" && (block.kind !== "list" || block.items.length > 0)
|
|
184
|
+
);
|
|
185
|
+
const sheetBlocks = moreBlocks.filter(
|
|
186
|
+
(block) => block.kind !== "progress"
|
|
179
187
|
);
|
|
180
|
-
const listBlocks = moreBlocks.filter((block) => block.kind === "list");
|
|
181
188
|
const tailRule = (slot) => moreBlocks.length + extraRows.length > 0 && slotHasRows(slot);
|
|
182
189
|
const activateBlock = (block) => {
|
|
183
190
|
close();
|
|
184
|
-
if (block.kind
|
|
191
|
+
if (block.kind !== "progress") {
|
|
185
192
|
requestAnimationFrame(() => setOpenBlockKey(block.key));
|
|
186
193
|
return;
|
|
187
194
|
}
|
|
@@ -351,13 +358,14 @@ function MobileNav({
|
|
|
351
358
|
classNames: { root: classes.row },
|
|
352
359
|
label: row.label,
|
|
353
360
|
leftSection: row.icon,
|
|
354
|
-
rightSection: row.active ? /* @__PURE__ */ jsx(IconCheck, {}) : void 0,
|
|
361
|
+
rightSection: row.active && row.current !== "page" ? /* @__PURE__ */ jsx(IconCheck, {}) : void 0,
|
|
355
362
|
...row.danger ? { color: "red" } : {},
|
|
356
363
|
onClick: (event) => {
|
|
357
364
|
row.onClick?.(event);
|
|
358
365
|
close();
|
|
359
366
|
},
|
|
360
|
-
|
|
367
|
+
active: row.active === true && row.current === "page",
|
|
368
|
+
"aria-current": rowCurrent(row)
|
|
361
369
|
},
|
|
362
370
|
row.key
|
|
363
371
|
);
|
|
@@ -463,7 +471,7 @@ function MobileNav({
|
|
|
463
471
|
exitDuration: reduceMotion ? 0 : 120,
|
|
464
472
|
timingFunction: "cubic-bezier(0.32, 0.72, 0, 1)"
|
|
465
473
|
},
|
|
466
|
-
children: /* @__PURE__ */ jsx(ScrollArea.Autosize, { mah: "62dvh", type: "scroll", offsetScrollbars: "present", scrollbarSize: 8, children: /* @__PURE__ */ jsx(Stack, { gap: 1, children: block.items.map(blockItemRow) }) })
|
|
474
|
+
children: /* @__PURE__ */ jsx(ScrollArea.Autosize, { mah: "62dvh", type: "scroll", offsetScrollbars: "present", scrollbarSize: 8, children: block.kind === "list" ? /* @__PURE__ */ jsx(Stack, { gap: 1, children: block.items.map(blockItemRow) }) : block.node })
|
|
467
475
|
},
|
|
468
476
|
`block-${block.key}`
|
|
469
477
|
);
|
|
@@ -479,12 +487,13 @@ function MobileNav({
|
|
|
479
487
|
if (slot.kind === "menu") return menuSlot(slot);
|
|
480
488
|
return sheetSlot(slot);
|
|
481
489
|
}),
|
|
482
|
-
|
|
490
|
+
sheetBlocks.map(blockSheet)
|
|
483
491
|
]
|
|
484
492
|
}
|
|
485
493
|
);
|
|
486
494
|
}
|
|
487
495
|
function blockRowLabel(block) {
|
|
496
|
+
if (block.kind === "custom") return block.label ?? "";
|
|
488
497
|
return block.kind === "list" ? `${block.label} \xB7 ${block.count ?? block.items.length}` : `${block.label} \xB7 ${block.value} of ${block.total}`;
|
|
489
498
|
}
|
|
490
499
|
function slotHasRows(slot) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-sidebar-account.d.ts","sourceRoot":"","sources":["../../src/shell/app-sidebar-account.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AA0DzD,wBAAgB,cAAc,CAAC,KAAK,EAAE,kBAAkB,GAAG,WAAW,+
|
|
1
|
+
{"version":3,"file":"app-sidebar-account.d.ts","sourceRoot":"","sources":["../../src/shell/app-sidebar-account.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AA0DzD,wBAAgB,cAAc,CAAC,KAAK,EAAE,kBAAkB,GAAG,WAAW,+BA6FrE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-sidebar.d.ts","sourceRoot":"","sources":["../../src/shell/app-sidebar.tsx"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAe,cAAc,EAAE,MAAM,aAAa,CAAA;AAI5E,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAE1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAgBjF,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG;IAC1C;;;;OAIG;IACH,KAAK,EAAE,WAAW,GAAG;QAAE,IAAI,CAAC,EAAE,eAAe,EAAE,CAAA;KAAE,CAAA;IACjD,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,SAAS,EAAE,OAAO,CAAA;IAClB;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,IAAI,CAAA;IAC5B;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAA;IACtC;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;IACvC;;;;OAIG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAA;IAC5B;;;;OAIG;IACH,MAAM,CAAC,EAAE,mBAAmB,GAAG;QAAE,OAAO,CAAC,EAAE,oBAAoB,CAAA;KAAE,CAAA;IACjE;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;CACxB,CAAA;
|
|
1
|
+
{"version":3,"file":"app-sidebar.d.ts","sourceRoot":"","sources":["../../src/shell/app-sidebar.tsx"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAe,cAAc,EAAE,MAAM,aAAa,CAAA;AAI5E,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAE1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAgBjF,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG;IAC1C;;;;OAIG;IACH,KAAK,EAAE,WAAW,GAAG;QAAE,IAAI,CAAC,EAAE,eAAe,EAAE,CAAA;KAAE,CAAA;IACjD,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,SAAS,EAAE,OAAO,CAAA;IAClB;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,IAAI,CAAA;IAC5B;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAA;IACtC;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;IACvC;;;;OAIG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAA;IAC5B;;;;OAIG;IACH,MAAM,CAAC,EAAE,mBAAmB,GAAG;QAAE,OAAO,CAAC,EAAE,oBAAoB,CAAA;KAAE,CAAA;IACjE;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;CACxB,CAAA;AAmTD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,+BAyKhD"}
|