@open-mercato/core 0.6.7-develop.6594.1.5581f765f4 → 0.6.7-develop.6597.1.b8f069b7fe

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.
@@ -1,4 +1,4 @@
1
- [build:core] found 3499 entry points
1
+ [build:core] found 3500 entry points
2
2
  [build:core] built successfully
3
3
  [build:core:generated] found 188 entry points
4
4
  [build:core:generated] built successfully
@@ -23,7 +23,7 @@ function CalendarTabs({ tab, counts, view, onTabChange, onViewChange }) {
23
23
  onValueChange: (value) => onTabChange(value),
24
24
  variant: "underline",
25
25
  children: /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-stretch justify-between gap-x-3 gap-y-2", children: [
26
- /* @__PURE__ */ jsx("div", { className: "min-w-0 max-w-full overflow-x-auto", children: /* @__PURE__ */ jsxs(TabsList, { className: "shrink-0", children: [
26
+ /* @__PURE__ */ jsx("div", { className: "min-w-0 max-w-full overflow-x-auto scrollbar-hide [mask-image:linear-gradient(to_right,black_calc(100%-1.5rem),transparent)] sm:[mask-image:none]", children: /* @__PURE__ */ jsxs(TabsList, { className: "shrink-0", children: [
27
27
  /* @__PURE__ */ jsx(TabsTrigger, { value: "all", leading: /* @__PURE__ */ jsx(LayoutGrid, { className: "size-4" }), children: t("customers.calendar.tabs.all", "All Scheduled") }),
28
28
  /* @__PURE__ */ jsxs(TabsTrigger, { value: "meetings", leading: /* @__PURE__ */ jsx(List, { className: "size-4" }), children: [
29
29
  t("customers.calendar.tabs.meetings", "Meetings"),
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/modules/customers/components/calendar/CalendarTabs.tsx"],
4
- "sourcesContent": ["\"use client\"\n\nimport * as React from 'react'\nimport { Clock, LayoutGrid, List } from 'lucide-react'\nimport {\n SegmentedControl,\n SegmentedControlItem,\n} from '@open-mercato/ui/primitives/segmented-control'\nimport { Tabs, TabsList, TabsTrigger } from '@open-mercato/ui/primitives/tabs'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport type { CalendarTab, CalendarTabsProps, CalendarView } from './types'\n\nfunction TabCount({ value }: { value: number }) {\n return <span className=\"text-xs font-medium text-muted-foreground\">({value})</span>\n}\n\nexport function CalendarTabs({ tab, counts, view, onTabChange, onViewChange }: CalendarTabsProps) {\n const t = useT()\n\n return (\n <Tabs\n value={tab}\n onValueChange={(value) => onTabChange(value as CalendarTab)}\n variant=\"underline\"\n >\n <div className=\"flex flex-wrap items-stretch justify-between gap-x-3 gap-y-2\">\n <div className=\"min-w-0 max-w-full overflow-x-auto\">\n <TabsList className=\"shrink-0\">\n <TabsTrigger value=\"all\" leading={<LayoutGrid className=\"size-4\" />}>\n {t('customers.calendar.tabs.all', 'All Scheduled')}\n </TabsTrigger>\n <TabsTrigger value=\"meetings\" leading={<List className=\"size-4\" />}>\n {t('customers.calendar.tabs.meetings', 'Meetings')} <TabCount value={counts.meetings} />\n </TabsTrigger>\n <TabsTrigger value=\"events\" leading={<Clock className=\"size-4\" />}>\n {t('customers.calendar.tabs.events', 'Events')} <TabCount value={counts.events} />\n </TabsTrigger>\n </TabsList>\n </div>\n <div className=\"flex min-w-0 flex-1 items-center justify-end border-b border-input\">\n <SegmentedControl\n value={view}\n onValueChange={(value) => onViewChange(value as CalendarView)}\n aria-label={t('customers.calendar.views.label', 'Calendar view')}\n >\n <SegmentedControlItem value=\"day\">\n {t('customers.calendar.views.day', 'Day')}\n </SegmentedControlItem>\n <SegmentedControlItem value=\"week\">\n {t('customers.calendar.views.week', 'Week')}\n </SegmentedControlItem>\n <SegmentedControlItem value=\"month\">\n {t('customers.calendar.views.month', 'Month')}\n </SegmentedControlItem>\n <SegmentedControlItem value=\"agenda\">\n {t('customers.calendar.views.agenda', 'Agenda')}\n </SegmentedControlItem>\n </SegmentedControl>\n </div>\n </div>\n </Tabs>\n )\n}\n"],
5
- "mappings": ";AAaS,SAeqC,KAfrC;AAVT,SAAS,OAAO,YAAY,YAAY;AACxC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,MAAM,UAAU,mBAAmB;AAC5C,SAAS,YAAY;AAGrB,SAAS,SAAS,EAAE,MAAM,GAAsB;AAC9C,SAAO,qBAAC,UAAK,WAAU,6CAA4C;AAAA;AAAA,IAAE;AAAA,IAAM;AAAA,KAAC;AAC9E;AAEO,SAAS,aAAa,EAAE,KAAK,QAAQ,MAAM,aAAa,aAAa,GAAsB;AAChG,QAAM,IAAI,KAAK;AAEf,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,MACP,eAAe,CAAC,UAAU,YAAY,KAAoB;AAAA,MAC1D,SAAQ;AAAA,MAER,+BAAC,SAAI,WAAU,gEACb;AAAA,4BAAC,SAAI,WAAU,sCACb,+BAAC,YAAS,WAAU,YAClB;AAAA,8BAAC,eAAY,OAAM,OAAM,SAAS,oBAAC,cAAW,WAAU,UAAS,GAC9D,YAAE,+BAA+B,eAAe,GACnD;AAAA,UACA,qBAAC,eAAY,OAAM,YAAW,SAAS,oBAAC,QAAK,WAAU,UAAS,GAC7D;AAAA,cAAE,oCAAoC,UAAU;AAAA,YAAE;AAAA,YAAC,oBAAC,YAAS,OAAO,OAAO,UAAU;AAAA,aACxF;AAAA,UACA,qBAAC,eAAY,OAAM,UAAS,SAAS,oBAAC,SAAM,WAAU,UAAS,GAC5D;AAAA,cAAE,kCAAkC,QAAQ;AAAA,YAAE;AAAA,YAAC,oBAAC,YAAS,OAAO,OAAO,QAAQ;AAAA,aAClF;AAAA,WACF,GACF;AAAA,QACA,oBAAC,SAAI,WAAU,sEACb;AAAA,UAAC;AAAA;AAAA,YACC,OAAO;AAAA,YACP,eAAe,CAAC,UAAU,aAAa,KAAqB;AAAA,YAC5D,cAAY,EAAE,kCAAkC,eAAe;AAAA,YAE/D;AAAA,kCAAC,wBAAqB,OAAM,OACzB,YAAE,gCAAgC,KAAK,GAC1C;AAAA,cACA,oBAAC,wBAAqB,OAAM,QACzB,YAAE,iCAAiC,MAAM,GAC5C;AAAA,cACA,oBAAC,wBAAqB,OAAM,SACzB,YAAE,kCAAkC,OAAO,GAC9C;AAAA,cACA,oBAAC,wBAAqB,OAAM,UACzB,YAAE,mCAAmC,QAAQ,GAChD;AAAA;AAAA;AAAA,QACF,GACF;AAAA,SACF;AAAA;AAAA,EACF;AAEJ;",
4
+ "sourcesContent": ["\"use client\"\n\nimport * as React from 'react'\nimport { Clock, LayoutGrid, List } from 'lucide-react'\nimport {\n SegmentedControl,\n SegmentedControlItem,\n} from '@open-mercato/ui/primitives/segmented-control'\nimport { Tabs, TabsList, TabsTrigger } from '@open-mercato/ui/primitives/tabs'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport type { CalendarTab, CalendarTabsProps, CalendarView } from './types'\n\nfunction TabCount({ value }: { value: number }) {\n return <span className=\"text-xs font-medium text-muted-foreground\">({value})</span>\n}\n\nexport function CalendarTabs({ tab, counts, view, onTabChange, onViewChange }: CalendarTabsProps) {\n const t = useT()\n\n return (\n <Tabs\n value={tab}\n onValueChange={(value) => onTabChange(value as CalendarTab)}\n variant=\"underline\"\n >\n <div className=\"flex flex-wrap items-stretch justify-between gap-x-3 gap-y-2\">\n <div className=\"min-w-0 max-w-full overflow-x-auto scrollbar-hide [mask-image:linear-gradient(to_right,black_calc(100%-1.5rem),transparent)] sm:[mask-image:none]\">\n <TabsList className=\"shrink-0\">\n <TabsTrigger value=\"all\" leading={<LayoutGrid className=\"size-4\" />}>\n {t('customers.calendar.tabs.all', 'All Scheduled')}\n </TabsTrigger>\n <TabsTrigger value=\"meetings\" leading={<List className=\"size-4\" />}>\n {t('customers.calendar.tabs.meetings', 'Meetings')} <TabCount value={counts.meetings} />\n </TabsTrigger>\n <TabsTrigger value=\"events\" leading={<Clock className=\"size-4\" />}>\n {t('customers.calendar.tabs.events', 'Events')} <TabCount value={counts.events} />\n </TabsTrigger>\n </TabsList>\n </div>\n <div className=\"flex min-w-0 flex-1 items-center justify-end border-b border-input\">\n <SegmentedControl\n value={view}\n onValueChange={(value) => onViewChange(value as CalendarView)}\n aria-label={t('customers.calendar.views.label', 'Calendar view')}\n >\n <SegmentedControlItem value=\"day\">\n {t('customers.calendar.views.day', 'Day')}\n </SegmentedControlItem>\n <SegmentedControlItem value=\"week\">\n {t('customers.calendar.views.week', 'Week')}\n </SegmentedControlItem>\n <SegmentedControlItem value=\"month\">\n {t('customers.calendar.views.month', 'Month')}\n </SegmentedControlItem>\n <SegmentedControlItem value=\"agenda\">\n {t('customers.calendar.views.agenda', 'Agenda')}\n </SegmentedControlItem>\n </SegmentedControl>\n </div>\n </div>\n </Tabs>\n )\n}\n"],
5
+ "mappings": ";AAaS,SAeqC,KAfrC;AAVT,SAAS,OAAO,YAAY,YAAY;AACxC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,MAAM,UAAU,mBAAmB;AAC5C,SAAS,YAAY;AAGrB,SAAS,SAAS,EAAE,MAAM,GAAsB;AAC9C,SAAO,qBAAC,UAAK,WAAU,6CAA4C;AAAA;AAAA,IAAE;AAAA,IAAM;AAAA,KAAC;AAC9E;AAEO,SAAS,aAAa,EAAE,KAAK,QAAQ,MAAM,aAAa,aAAa,GAAsB;AAChG,QAAM,IAAI,KAAK;AAEf,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,MACP,eAAe,CAAC,UAAU,YAAY,KAAoB;AAAA,MAC1D,SAAQ;AAAA,MAER,+BAAC,SAAI,WAAU,gEACb;AAAA,4BAAC,SAAI,WAAU,qJACb,+BAAC,YAAS,WAAU,YAClB;AAAA,8BAAC,eAAY,OAAM,OAAM,SAAS,oBAAC,cAAW,WAAU,UAAS,GAC9D,YAAE,+BAA+B,eAAe,GACnD;AAAA,UACA,qBAAC,eAAY,OAAM,YAAW,SAAS,oBAAC,QAAK,WAAU,UAAS,GAC7D;AAAA,cAAE,oCAAoC,UAAU;AAAA,YAAE;AAAA,YAAC,oBAAC,YAAS,OAAO,OAAO,UAAU;AAAA,aACxF;AAAA,UACA,qBAAC,eAAY,OAAM,UAAS,SAAS,oBAAC,SAAM,WAAU,UAAS,GAC5D;AAAA,cAAE,kCAAkC,QAAQ;AAAA,YAAE;AAAA,YAAC,oBAAC,YAAS,OAAO,OAAO,QAAQ;AAAA,aAClF;AAAA,WACF,GACF;AAAA,QACA,oBAAC,SAAI,WAAU,sEACb;AAAA,UAAC;AAAA;AAAA,YACC,OAAO;AAAA,YACP,eAAe,CAAC,UAAU,aAAa,KAAqB;AAAA,YAC5D,cAAY,EAAE,kCAAkC,eAAe;AAAA,YAE/D;AAAA,kCAAC,wBAAqB,OAAM,OACzB,YAAE,gCAAgC,KAAK,GAC1C;AAAA,cACA,oBAAC,wBAAqB,OAAM,QACzB,YAAE,iCAAiC,MAAM,GAC5C;AAAA,cACA,oBAAC,wBAAqB,OAAM,SACzB,YAAE,kCAAkC,OAAO,GAC9C;AAAA,cACA,oBAAC,wBAAqB,OAAM,UACzB,YAAE,mCAAmC,QAAQ,GAChD;AAAA;AAAA;AAAA,QACF,GACF;AAAA,SACF;AAAA;AAAA,EACF;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -34,6 +34,7 @@ import { mapCrudServerErrorToFormErrors } from "@open-mercato/ui/backend/utils/s
34
34
  import { useT } from "@open-mercato/shared/lib/i18n/context";
35
35
  import { useConfirmDialog } from "@open-mercato/ui/backend/confirm-dialog";
36
36
  import { cn } from "@open-mercato/shared/lib/utils";
37
+ import { ContactEmailDisplay } from "@open-mercato/core/modules/sales/components/ContactEmailDisplay";
37
38
  import { DocumentCustomerCard } from "@open-mercato/core/modules/sales/components/DocumentCustomerCard";
38
39
  import { SalesDocumentAddressesSection } from "@open-mercato/core/modules/sales/components/documents/AddressesSection";
39
40
  import { SalesDocumentItemsSection } from "@open-mercato/core/modules/sales/components/documents/ItemsSection";
@@ -3252,23 +3253,7 @@ function SalesDocumentDetailPage({
3252
3253
  }
3253
3254
  ];
3254
3255
  const renderEmailDisplay = React.useCallback(
3255
- ({ value, emptyLabel }) => {
3256
- const emailValue = typeof value === "string" ? value.trim() : "";
3257
- if (!emailValue.length) {
3258
- return /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: emptyLabel });
3259
- }
3260
- return /* @__PURE__ */ jsxs(
3261
- "a",
3262
- {
3263
- className: "inline-flex items-center gap-2 text-sm text-primary hover:text-primary/80 hover:underline",
3264
- href: `mailto:${emailValue}`,
3265
- children: [
3266
- /* @__PURE__ */ jsx(Mail, { className: "h-4 w-4", "aria-hidden": true }),
3267
- /* @__PURE__ */ jsx("span", { className: "truncate", children: emailValue })
3268
- ]
3269
- }
3270
- );
3271
- },
3256
+ ({ value, emptyLabel }) => /* @__PURE__ */ jsx(ContactEmailDisplay, { value, emptyLabel }),
3272
3257
  []
3273
3258
  );
3274
3259
  const tabInjectionSpotId = React.useMemo(() => `sales.document.detail.${kind}:tabs`, [kind]);