@open-mercato/core 0.6.7-develop.6785.1.1dd7cfac55 → 0.6.7-develop.6795.1.8a3f27921c
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/.turbo/turbo-build.log +1 -1
- package/dist/generated/entities.ids.generated.js +1 -0
- package/dist/generated/entities.ids.generated.js.map +2 -2
- package/dist/modules/auth/backend/settings/page.js +14 -9
- package/dist/modules/auth/backend/settings/page.js.map +2 -2
- package/dist/modules/customers/cli.js +17 -7
- package/dist/modules/customers/cli.js.map +2 -2
- package/dist/modules/customers/components/detail/ScheduleActivityDialog.js +229 -216
- package/dist/modules/customers/components/detail/ScheduleActivityDialog.js.map +2 -2
- package/dist/modules/customers/search.js +50 -29
- package/dist/modules/customers/search.js.map +2 -2
- package/dist/modules/data_sync/api/mappings/[id]/route.js +22 -9
- package/dist/modules/data_sync/api/mappings/[id]/route.js.map +2 -2
- package/dist/modules/data_sync/api/mappings/route.js +13 -4
- package/dist/modules/data_sync/api/mappings/route.js.map +2 -2
- package/dist/modules/data_sync/api/options.js +7 -2
- package/dist/modules/data_sync/api/options.js.map +2 -2
- package/dist/modules/data_sync/api/run.js +7 -2
- package/dist/modules/data_sync/api/run.js.map +2 -2
- package/dist/modules/data_sync/api/runs/[id]/cancel.js +8 -3
- package/dist/modules/data_sync/api/runs/[id]/cancel.js.map +2 -2
- package/dist/modules/data_sync/api/runs/[id]/retry.js +7 -2
- package/dist/modules/data_sync/api/runs/[id]/retry.js.map +2 -2
- package/dist/modules/data_sync/api/runs/[id]/route.js +8 -3
- package/dist/modules/data_sync/api/runs/[id]/route.js.map +2 -2
- package/dist/modules/data_sync/api/runs.js +7 -2
- package/dist/modules/data_sync/api/runs.js.map +2 -2
- package/dist/modules/data_sync/api/schedules/[id]/route.js +19 -6
- package/dist/modules/data_sync/api/schedules/[id]/route.js.map +2 -2
- package/dist/modules/data_sync/api/schedules/route.js +13 -4
- package/dist/modules/data_sync/api/schedules/route.js.map +2 -2
- package/dist/modules/data_sync/api/validate.js +9 -4
- package/dist/modules/data_sync/api/validate.js.map +2 -2
- package/dist/modules/design_system/acl.js +9 -0
- package/dist/modules/design_system/acl.js.map +7 -0
- package/dist/modules/design_system/backend/design-system/page.js +11 -0
- package/dist/modules/design_system/backend/design-system/page.js.map +7 -0
- package/dist/modules/design_system/backend/design-system/page.meta.js +15 -0
- package/dist/modules/design_system/backend/design-system/page.meta.js.map +7 -0
- package/dist/modules/design_system/gallery/components/CodeSnippet.js +52 -0
- package/dist/modules/design_system/gallery/components/CodeSnippet.js.map +7 -0
- package/dist/modules/design_system/gallery/components/EntryCard.js +63 -0
- package/dist/modules/design_system/gallery/components/EntryCard.js.map +7 -0
- package/dist/modules/design_system/gallery/components/GalleryShell.js +163 -0
- package/dist/modules/design_system/gallery/components/GalleryShell.js.map +7 -0
- package/dist/modules/design_system/gallery/components/VariantPreview.js +9 -0
- package/dist/modules/design_system/gallery/components/VariantPreview.js.map +7 -0
- package/dist/modules/design_system/gallery/entries/banners.js +186 -0
- package/dist/modules/design_system/gallery/entries/banners.js.map +7 -0
- package/dist/modules/design_system/gallery/entries/buttons.js +361 -0
- package/dist/modules/design_system/gallery/entries/buttons.js.map +7 -0
- package/dist/modules/design_system/gallery/entries/charts.js +457 -0
- package/dist/modules/design_system/gallery/entries/charts.js.map +7 -0
- package/dist/modules/design_system/gallery/entries/dates.js +306 -0
- package/dist/modules/design_system/gallery/entries/dates.js.map +7 -0
- package/dist/modules/design_system/gallery/entries/detail.js +358 -0
- package/dist/modules/design_system/gallery/entries/detail.js.map +7 -0
- package/dist/modules/design_system/gallery/entries/display.js +785 -0
- package/dist/modules/design_system/gallery/entries/display.js.map +7 -0
- package/dist/modules/design_system/gallery/entries/feedback.js +658 -0
- package/dist/modules/design_system/gallery/entries/feedback.js.map +7 -0
- package/dist/modules/design_system/gallery/entries/filters.js +505 -0
- package/dist/modules/design_system/gallery/entries/filters.js.map +7 -0
- package/dist/modules/design_system/gallery/entries/foundations.js +453 -0
- package/dist/modules/design_system/gallery/entries/foundations.js.map +7 -0
- package/dist/modules/design_system/gallery/entries/icons.js +140 -0
- package/dist/modules/design_system/gallery/entries/icons.js.map +7 -0
- package/dist/modules/design_system/gallery/entries/inputs.js +1217 -0
- package/dist/modules/design_system/gallery/entries/inputs.js.map +7 -0
- package/dist/modules/design_system/gallery/entries/messages.js +334 -0
- package/dist/modules/design_system/gallery/entries/messages.js.map +7 -0
- package/dist/modules/design_system/gallery/entries/navigation.js +475 -0
- package/dist/modules/design_system/gallery/entries/navigation.js.map +7 -0
- package/dist/modules/design_system/gallery/entries/notifications.js +257 -0
- package/dist/modules/design_system/gallery/entries/notifications.js.map +7 -0
- package/dist/modules/design_system/gallery/entries/overlays.js +576 -0
- package/dist/modules/design_system/gallery/entries/overlays.js.map +7 -0
- package/dist/modules/design_system/gallery/entries/scaffolding.js +378 -0
- package/dist/modules/design_system/gallery/entries/scaffolding.js.map +7 -0
- package/dist/modules/design_system/gallery/entries/schedule.js +297 -0
- package/dist/modules/design_system/gallery/entries/schedule.js.map +7 -0
- package/dist/modules/design_system/gallery/registry.js +139 -0
- package/dist/modules/design_system/gallery/registry.js.map +7 -0
- package/dist/modules/design_system/gallery/types.js +1 -0
- package/dist/modules/design_system/gallery/types.js.map +7 -0
- package/dist/modules/design_system/index.js +9 -0
- package/dist/modules/design_system/index.js.map +7 -0
- package/dist/modules/design_system/setup.js +14 -0
- package/dist/modules/design_system/setup.js.map +7 -0
- package/dist/modules/inbox_ops/search.js +15 -4
- package/dist/modules/inbox_ops/search.js.map +2 -2
- package/dist/modules/integrations/api/[id]/credentials/route.js +11 -5
- package/dist/modules/integrations/api/[id]/credentials/route.js.map +2 -2
- package/dist/modules/integrations/api/[id]/health/route.js +6 -3
- package/dist/modules/integrations/api/[id]/health/route.js.map +2 -2
- package/dist/modules/integrations/api/[id]/route.js +6 -3
- package/dist/modules/integrations/api/[id]/route.js.map +2 -2
- package/dist/modules/integrations/api/[id]/state/route.js +6 -3
- package/dist/modules/integrations/api/[id]/state/route.js.map +2 -2
- package/dist/modules/integrations/api/[id]/version/route.js +6 -3
- package/dist/modules/integrations/api/[id]/version/route.js.map +2 -2
- package/dist/modules/integrations/api/logs/route.js +6 -3
- package/dist/modules/integrations/api/logs/route.js.map +2 -2
- package/dist/modules/integrations/api/route.js +6 -3
- package/dist/modules/integrations/api/route.js.map +2 -2
- package/dist/modules/integrations/api/umes-read.js +2 -2
- package/dist/modules/integrations/api/umes-read.js.map +2 -2
- package/dist/modules/integrations/lib/organization-scope.js +2 -9
- package/dist/modules/integrations/lib/organization-scope.js.map +2 -2
- package/dist/modules/messages/search.js +10 -5
- package/dist/modules/messages/search.js.map +2 -2
- package/dist/modules/query_index/data/entities.js +2 -1
- package/dist/modules/query_index/data/entities.js.map +2 -2
- package/dist/modules/query_index/lib/engine.js +32 -50
- package/dist/modules/query_index/lib/engine.js.map +2 -2
- package/dist/modules/query_index/migrations/Migration20260731105052_query_index.js +17 -0
- package/dist/modules/query_index/migrations/Migration20260731105052_query_index.js.map +7 -0
- package/generated/entities.ids.generated.ts +1 -0
- package/package.json +16 -16
- package/src/modules/auth/backend/settings/page.tsx +17 -8
- package/src/modules/customers/cli.ts +17 -7
- package/src/modules/customers/components/detail/ScheduleActivityDialog.tsx +24 -13
- package/src/modules/customers/i18n/de.json +17 -0
- package/src/modules/customers/i18n/en.json +17 -0
- package/src/modules/customers/i18n/es.json +17 -0
- package/src/modules/customers/i18n/pl.json +17 -0
- package/src/modules/customers/search.ts +59 -27
- package/src/modules/data_sync/AGENTS.md +1 -0
- package/src/modules/data_sync/api/mappings/[id]/route.ts +22 -9
- package/src/modules/data_sync/api/mappings/route.ts +13 -4
- package/src/modules/data_sync/api/options.ts +7 -2
- package/src/modules/data_sync/api/run.ts +7 -2
- package/src/modules/data_sync/api/runs/[id]/cancel.ts +8 -3
- package/src/modules/data_sync/api/runs/[id]/retry.ts +7 -2
- package/src/modules/data_sync/api/runs/[id]/route.ts +8 -3
- package/src/modules/data_sync/api/runs.ts +7 -2
- package/src/modules/data_sync/api/schedules/[id]/route.ts +19 -6
- package/src/modules/data_sync/api/schedules/route.ts +13 -4
- package/src/modules/data_sync/api/validate.ts +9 -4
- package/src/modules/design_system/AGENTS.md +34 -0
- package/src/modules/design_system/acl.ts +5 -0
- package/src/modules/design_system/backend/design-system/page.meta.ts +11 -0
- package/src/modules/design_system/backend/design-system/page.tsx +14 -0
- package/src/modules/design_system/gallery/components/CodeSnippet.tsx +55 -0
- package/src/modules/design_system/gallery/components/EntryCard.tsx +95 -0
- package/src/modules/design_system/gallery/components/GalleryShell.tsx +206 -0
- package/src/modules/design_system/gallery/components/VariantPreview.tsx +15 -0
- package/src/modules/design_system/gallery/entries/banners.tsx +226 -0
- package/src/modules/design_system/gallery/entries/buttons.tsx +422 -0
- package/src/modules/design_system/gallery/entries/charts.tsx +518 -0
- package/src/modules/design_system/gallery/entries/dates.tsx +325 -0
- package/src/modules/design_system/gallery/entries/detail.tsx +403 -0
- package/src/modules/design_system/gallery/entries/display.tsx +893 -0
- package/src/modules/design_system/gallery/entries/feedback.tsx +746 -0
- package/src/modules/design_system/gallery/entries/filters.tsx +570 -0
- package/src/modules/design_system/gallery/entries/foundations.tsx +529 -0
- package/src/modules/design_system/gallery/entries/icons.tsx +168 -0
- package/src/modules/design_system/gallery/entries/inputs.tsx +1516 -0
- package/src/modules/design_system/gallery/entries/messages.tsx +339 -0
- package/src/modules/design_system/gallery/entries/navigation.tsx +573 -0
- package/src/modules/design_system/gallery/entries/notifications.tsx +285 -0
- package/src/modules/design_system/gallery/entries/overlays.tsx +677 -0
- package/src/modules/design_system/gallery/entries/scaffolding.tsx +430 -0
- package/src/modules/design_system/gallery/entries/schedule.tsx +307 -0
- package/src/modules/design_system/gallery/registry.ts +152 -0
- package/src/modules/design_system/gallery/types.ts +32 -0
- package/src/modules/design_system/i18n/.hardcoded-allowlist.json +71 -0
- package/src/modules/design_system/i18n/de.json +46 -0
- package/src/modules/design_system/i18n/en.json +46 -0
- package/src/modules/design_system/i18n/es.json +46 -0
- package/src/modules/design_system/i18n/pl.json +46 -0
- package/src/modules/design_system/index.ts +7 -0
- package/src/modules/design_system/setup.ts +12 -0
- package/src/modules/inbox_ops/i18n/de.json +3 -0
- package/src/modules/inbox_ops/i18n/en.json +3 -0
- package/src/modules/inbox_ops/i18n/es.json +3 -0
- package/src/modules/inbox_ops/i18n/pl.json +3 -0
- package/src/modules/inbox_ops/search.ts +20 -4
- package/src/modules/integrations/api/[id]/credentials/route.ts +11 -5
- package/src/modules/integrations/api/[id]/health/route.ts +6 -3
- package/src/modules/integrations/api/[id]/route.ts +6 -3
- package/src/modules/integrations/api/[id]/state/route.ts +6 -3
- package/src/modules/integrations/api/[id]/version/route.ts +6 -3
- package/src/modules/integrations/api/logs/route.ts +6 -3
- package/src/modules/integrations/api/route.ts +6 -3
- package/src/modules/integrations/api/umes-read.ts +2 -2
- package/src/modules/integrations/lib/organization-scope.ts +5 -25
- package/src/modules/messages/i18n/de.json +2 -0
- package/src/modules/messages/i18n/en.json +2 -0
- package/src/modules/messages/i18n/es.json +2 -0
- package/src/modules/messages/i18n/pl.json +2 -0
- package/src/modules/messages/search.ts +11 -5
- package/src/modules/query_index/data/entities.ts +7 -0
- package/src/modules/query_index/lib/engine.ts +40 -63
- package/src/modules/query_index/migrations/.snapshot-open-mercato.json +12 -0
- package/src/modules/query_index/migrations/Migration20260731105052_query_index.ts +35 -0
|
@@ -0,0 +1,573 @@
|
|
|
1
|
+
import * as React from 'react'
|
|
2
|
+
import { CreditCard, LayoutGrid, Settings, ShoppingCart, Truck } from 'lucide-react'
|
|
3
|
+
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@open-mercato/ui/primitives/tabs'
|
|
4
|
+
import {
|
|
5
|
+
Breadcrumb,
|
|
6
|
+
BreadcrumbEllipsis,
|
|
7
|
+
BreadcrumbItem,
|
|
8
|
+
BreadcrumbLink,
|
|
9
|
+
BreadcrumbList,
|
|
10
|
+
BreadcrumbPage,
|
|
11
|
+
BreadcrumbSeparator,
|
|
12
|
+
} from '@open-mercato/ui/primitives/breadcrumb'
|
|
13
|
+
import { Pagination } from '@open-mercato/ui/primitives/pagination'
|
|
14
|
+
import {
|
|
15
|
+
SegmentedControl,
|
|
16
|
+
SegmentedControlItem,
|
|
17
|
+
} from '@open-mercato/ui/primitives/segmented-control'
|
|
18
|
+
import {
|
|
19
|
+
Accordion,
|
|
20
|
+
AccordionContent,
|
|
21
|
+
AccordionItem,
|
|
22
|
+
AccordionTrigger,
|
|
23
|
+
} from '@open-mercato/ui/primitives/accordion'
|
|
24
|
+
import type { GalleryEntry } from '../types'
|
|
25
|
+
|
|
26
|
+
// Component titles and variant names are proper nouns from the codebase and
|
|
27
|
+
// are deliberately not translated. `code` MUST contain the entry's importPath
|
|
28
|
+
// (enforced by the registry-integrity test) and is always reviewed alongside
|
|
29
|
+
// its sibling `render`.
|
|
30
|
+
|
|
31
|
+
// Pagination is a controlled component — these small wrappers own the page
|
|
32
|
+
// state so the preview stays interactive without polluting the entry shape.
|
|
33
|
+
|
|
34
|
+
function PaginationBasicDemo() {
|
|
35
|
+
const [page, setPage] = React.useState(2)
|
|
36
|
+
const [pageSize, setPageSize] = React.useState(25)
|
|
37
|
+
return (
|
|
38
|
+
<Pagination
|
|
39
|
+
page={page}
|
|
40
|
+
pageSize={pageSize}
|
|
41
|
+
total={400}
|
|
42
|
+
onPageChange={setPage}
|
|
43
|
+
onPageSizeChange={setPageSize}
|
|
44
|
+
/>
|
|
45
|
+
)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function PaginationCompactDemo() {
|
|
49
|
+
const [page, setPage] = React.useState(1)
|
|
50
|
+
return (
|
|
51
|
+
<Pagination
|
|
52
|
+
page={page}
|
|
53
|
+
pageSize={20}
|
|
54
|
+
total={120}
|
|
55
|
+
onPageChange={setPage}
|
|
56
|
+
showFirstLast={false}
|
|
57
|
+
showPageSize={false}
|
|
58
|
+
/>
|
|
59
|
+
)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const tabsEntry: GalleryEntry = {
|
|
63
|
+
id: 'tabs',
|
|
64
|
+
title: 'Tabs',
|
|
65
|
+
importPath: '@open-mercato/ui/primitives/tabs',
|
|
66
|
+
usage: {
|
|
67
|
+
do: [
|
|
68
|
+
'variant="underline" is the canon for page-level tab strips; pill only for small embedded switchers.',
|
|
69
|
+
'TabsList always carries an aria-label; use count and leading to add context to triggers.',
|
|
70
|
+
],
|
|
71
|
+
dont: ['No hand-rolled tab strips from buttons and border classes — lint flags raw tab lists.'],
|
|
72
|
+
},
|
|
73
|
+
docsAnchor: '#tabs',
|
|
74
|
+
figmaNodeId: '553:734',
|
|
75
|
+
variants: [
|
|
76
|
+
{
|
|
77
|
+
id: 'underline',
|
|
78
|
+
title: 'underline',
|
|
79
|
+
// Underline is the DS canon for page-level tab strips — flat rail
|
|
80
|
+
// with an accent underline, per-tab `leading` icon and `count` badge.
|
|
81
|
+
render: () => (
|
|
82
|
+
<Tabs defaultValue="orders" variant="underline" className="w-full">
|
|
83
|
+
<TabsList aria-label="Customer sections">
|
|
84
|
+
<TabsTrigger value="overview" leading={<LayoutGrid className="size-4" />}>
|
|
85
|
+
Overview
|
|
86
|
+
</TabsTrigger>
|
|
87
|
+
<TabsTrigger value="orders" leading={<ShoppingCart className="size-4" />} count={12}>
|
|
88
|
+
Orders
|
|
89
|
+
</TabsTrigger>
|
|
90
|
+
<TabsTrigger value="settings" leading={<Settings className="size-4" />}>
|
|
91
|
+
Settings
|
|
92
|
+
</TabsTrigger>
|
|
93
|
+
</TabsList>
|
|
94
|
+
<TabsContent value="overview">
|
|
95
|
+
<p className="text-sm text-muted-foreground">Customer overview panel.</p>
|
|
96
|
+
</TabsContent>
|
|
97
|
+
<TabsContent value="orders">
|
|
98
|
+
<p className="text-sm text-muted-foreground">12 orders in the last 30 days.</p>
|
|
99
|
+
</TabsContent>
|
|
100
|
+
<TabsContent value="settings">
|
|
101
|
+
<p className="text-sm text-muted-foreground">Notification and access settings.</p>
|
|
102
|
+
</TabsContent>
|
|
103
|
+
</Tabs>
|
|
104
|
+
),
|
|
105
|
+
code: `import { LayoutGrid, Settings, ShoppingCart } from 'lucide-react'
|
|
106
|
+
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@open-mercato/ui/primitives/tabs'
|
|
107
|
+
|
|
108
|
+
<Tabs defaultValue="orders" variant="underline">
|
|
109
|
+
<TabsList aria-label="Customer sections">
|
|
110
|
+
<TabsTrigger value="overview" leading={<LayoutGrid className="size-4" />}>Overview</TabsTrigger>
|
|
111
|
+
<TabsTrigger value="orders" leading={<ShoppingCart className="size-4" />} count={12}>Orders</TabsTrigger>
|
|
112
|
+
<TabsTrigger value="settings" leading={<Settings className="size-4" />}>Settings</TabsTrigger>
|
|
113
|
+
</TabsList>
|
|
114
|
+
<TabsContent value="overview">…</TabsContent>
|
|
115
|
+
<TabsContent value="orders">…</TabsContent>
|
|
116
|
+
<TabsContent value="settings">…</TabsContent>
|
|
117
|
+
</Tabs>`,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
id: 'pill',
|
|
121
|
+
title: 'pill (default)',
|
|
122
|
+
render: () => (
|
|
123
|
+
<Tabs defaultValue="preview">
|
|
124
|
+
<TabsList aria-label="Editor view">
|
|
125
|
+
<TabsTrigger value="preview">Preview</TabsTrigger>
|
|
126
|
+
<TabsTrigger value="code">Code</TabsTrigger>
|
|
127
|
+
<TabsTrigger value="logs">Logs</TabsTrigger>
|
|
128
|
+
</TabsList>
|
|
129
|
+
<TabsContent value="preview">
|
|
130
|
+
<p className="text-sm text-muted-foreground">Rendered preview.</p>
|
|
131
|
+
</TabsContent>
|
|
132
|
+
<TabsContent value="code">
|
|
133
|
+
<p className="text-sm text-muted-foreground">Source code panel.</p>
|
|
134
|
+
</TabsContent>
|
|
135
|
+
<TabsContent value="logs">
|
|
136
|
+
<p className="text-sm text-muted-foreground">Runtime logs panel.</p>
|
|
137
|
+
</TabsContent>
|
|
138
|
+
</Tabs>
|
|
139
|
+
),
|
|
140
|
+
code: `import { Tabs, TabsContent, TabsList, TabsTrigger } from '@open-mercato/ui/primitives/tabs'
|
|
141
|
+
|
|
142
|
+
<Tabs defaultValue="preview">
|
|
143
|
+
<TabsList aria-label="Editor view">
|
|
144
|
+
<TabsTrigger value="preview">Preview</TabsTrigger>
|
|
145
|
+
<TabsTrigger value="code">Code</TabsTrigger>
|
|
146
|
+
<TabsTrigger value="logs">Logs</TabsTrigger>
|
|
147
|
+
</TabsList>
|
|
148
|
+
<TabsContent value="preview">…</TabsContent>
|
|
149
|
+
<TabsContent value="code">…</TabsContent>
|
|
150
|
+
<TabsContent value="logs">…</TabsContent>
|
|
151
|
+
</Tabs>`,
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
id: 'pill-vertical',
|
|
155
|
+
title: 'pill, vertical',
|
|
156
|
+
render: () => (
|
|
157
|
+
<Tabs defaultValue="profile" orientation="vertical" className="w-full">
|
|
158
|
+
<TabsList aria-label="Account settings">
|
|
159
|
+
<TabsTrigger value="profile">Profile</TabsTrigger>
|
|
160
|
+
<TabsTrigger value="billing">Billing</TabsTrigger>
|
|
161
|
+
<TabsTrigger value="security">Security</TabsTrigger>
|
|
162
|
+
</TabsList>
|
|
163
|
+
<TabsContent value="profile">
|
|
164
|
+
<p className="text-sm text-muted-foreground">Profile settings panel.</p>
|
|
165
|
+
</TabsContent>
|
|
166
|
+
<TabsContent value="billing">
|
|
167
|
+
<p className="text-sm text-muted-foreground">Billing settings panel.</p>
|
|
168
|
+
</TabsContent>
|
|
169
|
+
<TabsContent value="security">
|
|
170
|
+
<p className="text-sm text-muted-foreground">Security settings panel.</p>
|
|
171
|
+
</TabsContent>
|
|
172
|
+
</Tabs>
|
|
173
|
+
),
|
|
174
|
+
code: `import { Tabs, TabsContent, TabsList, TabsTrigger } from '@open-mercato/ui/primitives/tabs'
|
|
175
|
+
|
|
176
|
+
<Tabs defaultValue="profile" orientation="vertical">
|
|
177
|
+
<TabsList aria-label="Account settings">
|
|
178
|
+
<TabsTrigger value="profile">Profile</TabsTrigger>
|
|
179
|
+
<TabsTrigger value="billing">Billing</TabsTrigger>
|
|
180
|
+
<TabsTrigger value="security">Security</TabsTrigger>
|
|
181
|
+
</TabsList>
|
|
182
|
+
<TabsContent value="profile">…</TabsContent>
|
|
183
|
+
<TabsContent value="billing">…</TabsContent>
|
|
184
|
+
<TabsContent value="security">…</TabsContent>
|
|
185
|
+
</Tabs>`,
|
|
186
|
+
},
|
|
187
|
+
],
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
const breadcrumbEntry: GalleryEntry = {
|
|
191
|
+
id: 'breadcrumb',
|
|
192
|
+
title: 'Breadcrumb',
|
|
193
|
+
importPath: '@open-mercato/ui/primitives/breadcrumb',
|
|
194
|
+
docsAnchor: '#breadcrumb',
|
|
195
|
+
variants: [
|
|
196
|
+
{
|
|
197
|
+
id: 'slash',
|
|
198
|
+
title: 'slash (default)',
|
|
199
|
+
render: () => (
|
|
200
|
+
<Breadcrumb>
|
|
201
|
+
<BreadcrumbList>
|
|
202
|
+
<BreadcrumbItem>
|
|
203
|
+
<BreadcrumbLink href="#gallery-entry-breadcrumb">Dashboard</BreadcrumbLink>
|
|
204
|
+
</BreadcrumbItem>
|
|
205
|
+
<BreadcrumbSeparator />
|
|
206
|
+
<BreadcrumbItem>
|
|
207
|
+
<BreadcrumbLink href="#gallery-entry-breadcrumb">Products</BreadcrumbLink>
|
|
208
|
+
</BreadcrumbItem>
|
|
209
|
+
<BreadcrumbSeparator />
|
|
210
|
+
<BreadcrumbItem>
|
|
211
|
+
<BreadcrumbPage>Winter catalog</BreadcrumbPage>
|
|
212
|
+
</BreadcrumbItem>
|
|
213
|
+
</BreadcrumbList>
|
|
214
|
+
</Breadcrumb>
|
|
215
|
+
),
|
|
216
|
+
code: `import {
|
|
217
|
+
Breadcrumb,
|
|
218
|
+
BreadcrumbItem,
|
|
219
|
+
BreadcrumbLink,
|
|
220
|
+
BreadcrumbList,
|
|
221
|
+
BreadcrumbPage,
|
|
222
|
+
BreadcrumbSeparator,
|
|
223
|
+
} from '@open-mercato/ui/primitives/breadcrumb'
|
|
224
|
+
|
|
225
|
+
<Breadcrumb>
|
|
226
|
+
<BreadcrumbList>
|
|
227
|
+
<BreadcrumbItem>
|
|
228
|
+
<BreadcrumbLink href="/backend">Dashboard</BreadcrumbLink>
|
|
229
|
+
</BreadcrumbItem>
|
|
230
|
+
<BreadcrumbSeparator />
|
|
231
|
+
<BreadcrumbItem>
|
|
232
|
+
<BreadcrumbLink href="/backend/products">Products</BreadcrumbLink>
|
|
233
|
+
</BreadcrumbItem>
|
|
234
|
+
<BreadcrumbSeparator />
|
|
235
|
+
<BreadcrumbItem>
|
|
236
|
+
<BreadcrumbPage>Winter catalog</BreadcrumbPage>
|
|
237
|
+
</BreadcrumbItem>
|
|
238
|
+
</BreadcrumbList>
|
|
239
|
+
</Breadcrumb>`,
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
id: 'arrow',
|
|
243
|
+
title: 'arrow divider',
|
|
244
|
+
render: () => (
|
|
245
|
+
<Breadcrumb divider="arrow">
|
|
246
|
+
<BreadcrumbList>
|
|
247
|
+
<BreadcrumbItem>
|
|
248
|
+
<BreadcrumbLink href="#gallery-entry-breadcrumb">Orders</BreadcrumbLink>
|
|
249
|
+
</BreadcrumbItem>
|
|
250
|
+
<BreadcrumbSeparator />
|
|
251
|
+
<BreadcrumbItem>
|
|
252
|
+
<BreadcrumbLink href="#gallery-entry-breadcrumb">#20418</BreadcrumbLink>
|
|
253
|
+
</BreadcrumbItem>
|
|
254
|
+
<BreadcrumbSeparator />
|
|
255
|
+
<BreadcrumbItem>
|
|
256
|
+
<BreadcrumbPage>Shipment</BreadcrumbPage>
|
|
257
|
+
</BreadcrumbItem>
|
|
258
|
+
</BreadcrumbList>
|
|
259
|
+
</Breadcrumb>
|
|
260
|
+
),
|
|
261
|
+
code: `import {
|
|
262
|
+
Breadcrumb,
|
|
263
|
+
BreadcrumbItem,
|
|
264
|
+
BreadcrumbLink,
|
|
265
|
+
BreadcrumbList,
|
|
266
|
+
BreadcrumbPage,
|
|
267
|
+
BreadcrumbSeparator,
|
|
268
|
+
} from '@open-mercato/ui/primitives/breadcrumb'
|
|
269
|
+
|
|
270
|
+
<Breadcrumb divider="arrow">
|
|
271
|
+
<BreadcrumbList>
|
|
272
|
+
<BreadcrumbItem>
|
|
273
|
+
<BreadcrumbLink href="/backend/orders">Orders</BreadcrumbLink>
|
|
274
|
+
</BreadcrumbItem>
|
|
275
|
+
<BreadcrumbSeparator />
|
|
276
|
+
<BreadcrumbItem>
|
|
277
|
+
<BreadcrumbLink href="/backend/orders/20418">#20418</BreadcrumbLink>
|
|
278
|
+
</BreadcrumbItem>
|
|
279
|
+
<BreadcrumbSeparator />
|
|
280
|
+
<BreadcrumbItem>
|
|
281
|
+
<BreadcrumbPage>Shipment</BreadcrumbPage>
|
|
282
|
+
</BreadcrumbItem>
|
|
283
|
+
</BreadcrumbList>
|
|
284
|
+
</Breadcrumb>`,
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
id: 'ellipsis',
|
|
288
|
+
title: 'collapsed (ellipsis)',
|
|
289
|
+
render: () => (
|
|
290
|
+
<Breadcrumb>
|
|
291
|
+
<BreadcrumbList>
|
|
292
|
+
<BreadcrumbItem>
|
|
293
|
+
<BreadcrumbLink href="#gallery-entry-breadcrumb">Dashboard</BreadcrumbLink>
|
|
294
|
+
</BreadcrumbItem>
|
|
295
|
+
<BreadcrumbSeparator />
|
|
296
|
+
<BreadcrumbItem>
|
|
297
|
+
<BreadcrumbEllipsis />
|
|
298
|
+
</BreadcrumbItem>
|
|
299
|
+
<BreadcrumbSeparator />
|
|
300
|
+
<BreadcrumbItem>
|
|
301
|
+
<BreadcrumbLink href="#gallery-entry-breadcrumb">Attributes</BreadcrumbLink>
|
|
302
|
+
</BreadcrumbItem>
|
|
303
|
+
<BreadcrumbSeparator />
|
|
304
|
+
<BreadcrumbItem>
|
|
305
|
+
<BreadcrumbPage>Color</BreadcrumbPage>
|
|
306
|
+
</BreadcrumbItem>
|
|
307
|
+
</BreadcrumbList>
|
|
308
|
+
</Breadcrumb>
|
|
309
|
+
),
|
|
310
|
+
code: `import {
|
|
311
|
+
Breadcrumb,
|
|
312
|
+
BreadcrumbEllipsis,
|
|
313
|
+
BreadcrumbItem,
|
|
314
|
+
BreadcrumbLink,
|
|
315
|
+
BreadcrumbList,
|
|
316
|
+
BreadcrumbPage,
|
|
317
|
+
BreadcrumbSeparator,
|
|
318
|
+
} from '@open-mercato/ui/primitives/breadcrumb'
|
|
319
|
+
|
|
320
|
+
<Breadcrumb>
|
|
321
|
+
<BreadcrumbList>
|
|
322
|
+
<BreadcrumbItem>
|
|
323
|
+
<BreadcrumbLink href="/backend">Dashboard</BreadcrumbLink>
|
|
324
|
+
</BreadcrumbItem>
|
|
325
|
+
<BreadcrumbSeparator />
|
|
326
|
+
<BreadcrumbItem>
|
|
327
|
+
<BreadcrumbEllipsis />
|
|
328
|
+
</BreadcrumbItem>
|
|
329
|
+
<BreadcrumbSeparator />
|
|
330
|
+
<BreadcrumbItem>
|
|
331
|
+
<BreadcrumbLink href="/backend/products/attributes">Attributes</BreadcrumbLink>
|
|
332
|
+
</BreadcrumbItem>
|
|
333
|
+
<BreadcrumbSeparator />
|
|
334
|
+
<BreadcrumbItem>
|
|
335
|
+
<BreadcrumbPage>Color</BreadcrumbPage>
|
|
336
|
+
</BreadcrumbItem>
|
|
337
|
+
</BreadcrumbList>
|
|
338
|
+
</Breadcrumb>`,
|
|
339
|
+
},
|
|
340
|
+
],
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
const paginationEntry: GalleryEntry = {
|
|
344
|
+
id: 'pagination',
|
|
345
|
+
title: 'Pagination',
|
|
346
|
+
importPath: '@open-mercato/ui/primitives/pagination',
|
|
347
|
+
docsAnchor: '#pagination',
|
|
348
|
+
variants: [
|
|
349
|
+
{
|
|
350
|
+
id: 'basic',
|
|
351
|
+
title: 'Basic',
|
|
352
|
+
render: () => <PaginationBasicDemo />,
|
|
353
|
+
code: `import * as React from 'react'
|
|
354
|
+
import { Pagination } from '@open-mercato/ui/primitives/pagination'
|
|
355
|
+
|
|
356
|
+
const [page, setPage] = React.useState(2)
|
|
357
|
+
const [pageSize, setPageSize] = React.useState(25)
|
|
358
|
+
|
|
359
|
+
<Pagination
|
|
360
|
+
page={page}
|
|
361
|
+
pageSize={pageSize}
|
|
362
|
+
total={400}
|
|
363
|
+
onPageChange={setPage}
|
|
364
|
+
onPageSizeChange={setPageSize}
|
|
365
|
+
/>`,
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
id: 'compact',
|
|
369
|
+
title: 'Compact',
|
|
370
|
+
render: () => <PaginationCompactDemo />,
|
|
371
|
+
code: `import * as React from 'react'
|
|
372
|
+
import { Pagination } from '@open-mercato/ui/primitives/pagination'
|
|
373
|
+
|
|
374
|
+
const [page, setPage] = React.useState(1)
|
|
375
|
+
|
|
376
|
+
<Pagination
|
|
377
|
+
page={page}
|
|
378
|
+
pageSize={20}
|
|
379
|
+
total={120}
|
|
380
|
+
onPageChange={setPage}
|
|
381
|
+
showFirstLast={false}
|
|
382
|
+
showPageSize={false}
|
|
383
|
+
/>`,
|
|
384
|
+
},
|
|
385
|
+
],
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
const segmentedControlEntry: GalleryEntry = {
|
|
389
|
+
id: 'segmented-control',
|
|
390
|
+
title: 'SegmentedControl',
|
|
391
|
+
importPath: '@open-mercato/ui/primitives/segmented-control',
|
|
392
|
+
docsAnchor: '#segmentedcontrol',
|
|
393
|
+
variants: [
|
|
394
|
+
{
|
|
395
|
+
id: 'default',
|
|
396
|
+
title: 'default',
|
|
397
|
+
render: () => (
|
|
398
|
+
<SegmentedControl defaultValue="all" aria-label="View filter">
|
|
399
|
+
<SegmentedControlItem value="all">All</SegmentedControlItem>
|
|
400
|
+
<SegmentedControlItem value="active">Active</SegmentedControlItem>
|
|
401
|
+
<SegmentedControlItem value="archived">Archived</SegmentedControlItem>
|
|
402
|
+
</SegmentedControl>
|
|
403
|
+
),
|
|
404
|
+
code: `import { SegmentedControl, SegmentedControlItem } from '@open-mercato/ui/primitives/segmented-control'
|
|
405
|
+
|
|
406
|
+
<SegmentedControl defaultValue="all" aria-label="View filter">
|
|
407
|
+
<SegmentedControlItem value="all">All</SegmentedControlItem>
|
|
408
|
+
<SegmentedControlItem value="active">Active</SegmentedControlItem>
|
|
409
|
+
<SegmentedControlItem value="archived">Archived</SegmentedControlItem>
|
|
410
|
+
</SegmentedControl>`,
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
id: 'small',
|
|
414
|
+
title: 'Small',
|
|
415
|
+
render: () => (
|
|
416
|
+
<SegmentedControl size="sm" defaultValue="30d" aria-label="Chart period">
|
|
417
|
+
<SegmentedControlItem value="7d">7d</SegmentedControlItem>
|
|
418
|
+
<SegmentedControlItem value="30d">30d</SegmentedControlItem>
|
|
419
|
+
<SegmentedControlItem value="90d">90d</SegmentedControlItem>
|
|
420
|
+
<SegmentedControlItem value="1y">1y</SegmentedControlItem>
|
|
421
|
+
</SegmentedControl>
|
|
422
|
+
),
|
|
423
|
+
code: `import { SegmentedControl, SegmentedControlItem } from '@open-mercato/ui/primitives/segmented-control'
|
|
424
|
+
|
|
425
|
+
<SegmentedControl size="sm" defaultValue="30d" aria-label="Chart period">
|
|
426
|
+
<SegmentedControlItem value="7d">7d</SegmentedControlItem>
|
|
427
|
+
<SegmentedControlItem value="30d">30d</SegmentedControlItem>
|
|
428
|
+
<SegmentedControlItem value="90d">90d</SegmentedControlItem>
|
|
429
|
+
<SegmentedControlItem value="1y">1y</SegmentedControlItem>
|
|
430
|
+
</SegmentedControl>`,
|
|
431
|
+
},
|
|
432
|
+
{
|
|
433
|
+
id: 'disabled',
|
|
434
|
+
title: 'Disabled',
|
|
435
|
+
render: () => (
|
|
436
|
+
<SegmentedControl defaultValue="list" disabled aria-label="Layout">
|
|
437
|
+
<SegmentedControlItem value="list">List</SegmentedControlItem>
|
|
438
|
+
<SegmentedControlItem value="grid">Grid</SegmentedControlItem>
|
|
439
|
+
</SegmentedControl>
|
|
440
|
+
),
|
|
441
|
+
code: `import { SegmentedControl, SegmentedControlItem } from '@open-mercato/ui/primitives/segmented-control'
|
|
442
|
+
|
|
443
|
+
<SegmentedControl defaultValue="list" disabled aria-label="Layout">
|
|
444
|
+
<SegmentedControlItem value="list">List</SegmentedControlItem>
|
|
445
|
+
<SegmentedControlItem value="grid">Grid</SegmentedControlItem>
|
|
446
|
+
</SegmentedControl>`,
|
|
447
|
+
},
|
|
448
|
+
],
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
const accordionEntry: GalleryEntry = {
|
|
452
|
+
id: 'accordion',
|
|
453
|
+
title: 'Accordion',
|
|
454
|
+
importPath: '@open-mercato/ui/primitives/accordion',
|
|
455
|
+
docsAnchor: '#accordion',
|
|
456
|
+
variants: [
|
|
457
|
+
{
|
|
458
|
+
id: 'card',
|
|
459
|
+
title: 'card (default)',
|
|
460
|
+
render: () => (
|
|
461
|
+
<Accordion type="single" collapsible defaultValue="shipping" className="w-full space-y-2">
|
|
462
|
+
<AccordionItem value="shipping">
|
|
463
|
+
<AccordionTrigger>Shipping and delivery</AccordionTrigger>
|
|
464
|
+
<AccordionContent>
|
|
465
|
+
Orders placed before 2 PM ship the same business day from the nearest warehouse.
|
|
466
|
+
</AccordionContent>
|
|
467
|
+
</AccordionItem>
|
|
468
|
+
<AccordionItem value="returns">
|
|
469
|
+
<AccordionTrigger>Returns</AccordionTrigger>
|
|
470
|
+
<AccordionContent>
|
|
471
|
+
Items can be returned within 30 days of delivery in their original packaging.
|
|
472
|
+
</AccordionContent>
|
|
473
|
+
</AccordionItem>
|
|
474
|
+
<AccordionItem value="payments">
|
|
475
|
+
<AccordionTrigger>Payment methods</AccordionTrigger>
|
|
476
|
+
<AccordionContent>
|
|
477
|
+
We accept cards, bank transfer, and deferred payment for verified B2B accounts.
|
|
478
|
+
</AccordionContent>
|
|
479
|
+
</AccordionItem>
|
|
480
|
+
</Accordion>
|
|
481
|
+
),
|
|
482
|
+
code: `import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@open-mercato/ui/primitives/accordion'
|
|
483
|
+
|
|
484
|
+
<Accordion type="single" collapsible defaultValue="shipping" className="w-full space-y-2">
|
|
485
|
+
<AccordionItem value="shipping">
|
|
486
|
+
<AccordionTrigger>Shipping and delivery</AccordionTrigger>
|
|
487
|
+
<AccordionContent>Orders placed before 2 PM ship the same business day.</AccordionContent>
|
|
488
|
+
</AccordionItem>
|
|
489
|
+
<AccordionItem value="returns">
|
|
490
|
+
<AccordionTrigger>Returns</AccordionTrigger>
|
|
491
|
+
<AccordionContent>Items can be returned within 30 days of delivery.</AccordionContent>
|
|
492
|
+
</AccordionItem>
|
|
493
|
+
<AccordionItem value="payments">
|
|
494
|
+
<AccordionTrigger>Payment methods</AccordionTrigger>
|
|
495
|
+
<AccordionContent>We accept cards, bank transfer, and deferred payment.</AccordionContent>
|
|
496
|
+
</AccordionItem>
|
|
497
|
+
</Accordion>`,
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
id: 'left-icon',
|
|
501
|
+
title: 'With leftIcon',
|
|
502
|
+
render: () => (
|
|
503
|
+
<Accordion type="single" collapsible className="w-full space-y-2">
|
|
504
|
+
<AccordionItem value="shipping">
|
|
505
|
+
<AccordionTrigger leftIcon={<Truck />}>How fast is shipping?</AccordionTrigger>
|
|
506
|
+
<AccordionContent>
|
|
507
|
+
Same-day dispatch on weekdays; delivery typically takes 1–3 business days.
|
|
508
|
+
</AccordionContent>
|
|
509
|
+
</AccordionItem>
|
|
510
|
+
<AccordionItem value="billing">
|
|
511
|
+
<AccordionTrigger leftIcon={<CreditCard />}>When am I charged?</AccordionTrigger>
|
|
512
|
+
<AccordionContent>
|
|
513
|
+
Your card is charged when the order ships, never at checkout.
|
|
514
|
+
</AccordionContent>
|
|
515
|
+
</AccordionItem>
|
|
516
|
+
</Accordion>
|
|
517
|
+
),
|
|
518
|
+
code: `import { CreditCard, Truck } from 'lucide-react'
|
|
519
|
+
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@open-mercato/ui/primitives/accordion'
|
|
520
|
+
|
|
521
|
+
<Accordion type="single" collapsible className="w-full space-y-2">
|
|
522
|
+
<AccordionItem value="shipping">
|
|
523
|
+
<AccordionTrigger leftIcon={<Truck />}>How fast is shipping?</AccordionTrigger>
|
|
524
|
+
<AccordionContent>Same-day dispatch on weekdays.</AccordionContent>
|
|
525
|
+
</AccordionItem>
|
|
526
|
+
<AccordionItem value="billing">
|
|
527
|
+
<AccordionTrigger leftIcon={<CreditCard />}>When am I charged?</AccordionTrigger>
|
|
528
|
+
<AccordionContent>Your card is charged when the order ships.</AccordionContent>
|
|
529
|
+
</AccordionItem>
|
|
530
|
+
</Accordion>`,
|
|
531
|
+
},
|
|
532
|
+
{
|
|
533
|
+
id: 'chevron',
|
|
534
|
+
title: 'Chevron indicator',
|
|
535
|
+
render: () => (
|
|
536
|
+
<Accordion type="multiple" className="w-full space-y-2">
|
|
537
|
+
<AccordionItem value="general">
|
|
538
|
+
<AccordionTrigger triggerIcon="chevron">General</AccordionTrigger>
|
|
539
|
+
<AccordionContent>
|
|
540
|
+
Store name, contact details, and default locale for the storefront.
|
|
541
|
+
</AccordionContent>
|
|
542
|
+
</AccordionItem>
|
|
543
|
+
<AccordionItem value="advanced">
|
|
544
|
+
<AccordionTrigger triggerIcon="chevron">Advanced</AccordionTrigger>
|
|
545
|
+
<AccordionContent>
|
|
546
|
+
Webhooks, API keys, and other developer-facing configuration.
|
|
547
|
+
</AccordionContent>
|
|
548
|
+
</AccordionItem>
|
|
549
|
+
</Accordion>
|
|
550
|
+
),
|
|
551
|
+
code: `import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@open-mercato/ui/primitives/accordion'
|
|
552
|
+
|
|
553
|
+
<Accordion type="multiple" className="w-full space-y-2">
|
|
554
|
+
<AccordionItem value="general">
|
|
555
|
+
<AccordionTrigger triggerIcon="chevron">General</AccordionTrigger>
|
|
556
|
+
<AccordionContent>Store name, contact details, and default locale.</AccordionContent>
|
|
557
|
+
</AccordionItem>
|
|
558
|
+
<AccordionItem value="advanced">
|
|
559
|
+
<AccordionTrigger triggerIcon="chevron">Advanced</AccordionTrigger>
|
|
560
|
+
<AccordionContent>Webhooks, API keys, and developer configuration.</AccordionContent>
|
|
561
|
+
</AccordionItem>
|
|
562
|
+
</Accordion>`,
|
|
563
|
+
},
|
|
564
|
+
],
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
export const entries: GalleryEntry[] = [
|
|
568
|
+
tabsEntry,
|
|
569
|
+
breadcrumbEntry,
|
|
570
|
+
paginationEntry,
|
|
571
|
+
segmentedControlEntry,
|
|
572
|
+
accordionEntry,
|
|
573
|
+
]
|