@ai-matrx/design-system 0.49.2 → 0.49.4

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 CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.49.4
4
+
5
+ Automatic changed-only republish (docs/metadata drift since the last tag — see
6
+ `git diff npm/design-system/v0.49.3..npm/design-system/v0.49.4 -- apps/shared/design-system`).
7
+ No source changes intended and no consumer action required.
8
+
9
+ ## 0.49.3
10
+ ### Unreleased
11
+ ### page-pass shared fix (2026-09-27): one dropdown chevron
12
+
13
+ - New export **`SelectChevron`** — THE trigger glyph for every dropdown (down chevron, 16px / 14px `sm`, muted). `SelectTrigger` and `CreatablePicker` draw it (the picker drew an up-down pair beside Selects' down chevron). Proof: `one-dropdown-chevron.test.tsx`, red on the previous picker.
14
+
3
15
  ## 0.49.2
4
16
 
5
17
  Automatic changed-only republish (docs/metadata drift since the last tag — see
@@ -35068,6 +35068,16 @@ var selectTriggerVariants = (0, import_class_variance_authority2.cva)(
35068
35068
  }
35069
35069
  }
35070
35070
  );
35071
+ function SelectChevron({ className, size = "default" }) {
35072
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
35073
+ RadixChevronDownIcon,
35074
+ {
35075
+ "aria-hidden": "true",
35076
+ "data-select-chevron": "",
35077
+ className: cn(size === "sm" ? "h-3.5 w-3.5" : "h-4 w-4", "shrink-0 opacity-50", className)
35078
+ }
35079
+ );
35080
+ }
35071
35081
  var SelectTrigger = React8.forwardRef(({ className, children, hideArrow = false, size, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
35072
35082
  SelectPrimitive.Trigger,
35073
35083
  {
@@ -35076,7 +35086,7 @@ var SelectTrigger = React8.forwardRef(({ className, children, hideArrow = false,
35076
35086
  ...props,
35077
35087
  children: [
35078
35088
  children,
35079
- !hideArrow && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(RadixChevronDownIcon, { className: "h-4 w-4 shrink-0 opacity-50" }) })
35089
+ !hideArrow && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SelectChevron, { size: size === "sm" ? "sm" : "default" }) })
35080
35090
  ]
35081
35091
  }
35082
35092
  ));
@@ -48221,6 +48231,17 @@ function MatrxDataTableCore(coreProps) {
48221
48231
  const CHECKBOX_TAP_AREA = "h-4 w-4 touch-manipulation";
48222
48232
  const mobileCardsClass = mobileCardsBreakpoint === "lg" ? "lg:hidden" : "sm:hidden";
48223
48233
  const tableWithCardsClass = mobileCardsBreakpoint === "lg" ? "max-lg:hidden" : "max-sm:hidden";
48234
+ const cardsQuery = mobileCardsBreakpoint === "lg" ? "(max-width: 1023px)" : "(max-width: 639px)";
48235
+ const [cardsActive, setCardsActive] = (0, import_react22.useState)(null);
48236
+ (0, import_react22.useEffect)(() => {
48237
+ if (!mobileCards || typeof window === "undefined" || !window.matchMedia) return;
48238
+ const mql = window.matchMedia(cardsQuery);
48239
+ const read2 = () => setCardsActive(mql.matches);
48240
+ read2();
48241
+ mql.addEventListener?.("change", read2);
48242
+ return () => mql.removeEventListener?.("change", read2);
48243
+ }, [mobileCards, cardsQuery]);
48244
+ const inactiveProps = (active) => cardsActive === null || active ? {} : { inert: true, "aria-hidden": true };
48224
48245
  const controlledQuery = query?.mode === "controlled" || query?.mode === "controlled-local" || query?.mode === "controlled-append" ? query : null;
48225
48246
  const remoteQuery = query?.mode === "controlled" || query?.mode === "controlled-append" ? query : null;
48226
48247
  const sourceProcessing = query?.mode === "controlled" || query?.mode === "controlled-local" ? query.sourceProcessing : appendQuery?.sourceProcessing;
@@ -50481,11 +50502,14 @@ function MatrxDataTableCore(coreProps) {
50481
50502
  const footerEpoch = useRenderEpoch([
50482
50503
  ...chromeGeometry,
50483
50504
  footerRows,
50484
- summaryContext.rows,
50485
- summaryContext.isFiltered,
50486
- summaryContext.coverage,
50487
- summaryCaption,
50488
- summaryUsesSource,
50505
+ // A caller-owned footer changes through its `footerRows` identity. The page rows must
50506
+ // invalidate this chrome only when this table is drawing its own aggregate totals; otherwise
50507
+ // one edited record needlessly redraws every caller-owned footer cell and menu.
50508
+ hasSummaryTotals ? summaryContext.rows : null,
50509
+ hasSummaryTotals ? summaryContext.isFiltered : null,
50510
+ hasSummaryTotals ? summaryContext.coverage : null,
50511
+ hasSummaryTotals ? summaryCaption : null,
50512
+ hasSummaryTotals ? summaryUsesSource : null,
50489
50513
  ...summaryTotals.flatMap((total) => [total.id, total.value, total.unavailable])
50490
50514
  ]);
50491
50515
  const paginationEpoch = useRenderEpoch([
@@ -51379,6 +51403,7 @@ function MatrxDataTableCore(coreProps) {
51379
51403
  "div",
51380
51404
  {
51381
51405
  ref: cardsScrollRef,
51406
+ ...inactiveProps(cardsActive === true),
51382
51407
  "data-matrx-table-cards-scroll": true,
51383
51408
  "aria-busy": isLoading || isFetching,
51384
51409
  ...appendQuery === null ? {} : { style: { containerType: "inline-size" } },
@@ -51487,6 +51512,7 @@ function MatrxDataTableCore(coreProps) {
51487
51512
  "div",
51488
51513
  {
51489
51514
  ref: scrollRef,
51515
+ ...mobileCards ? inactiveProps(cardsActive === false) : {},
51490
51516
  "data-matrx-table-scroll": true,
51491
51517
  onScroll: updateScrollHint,
51492
51518
  ...spreadsheetEnabled ? {