@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.
Files changed (196) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/generated/entities.ids.generated.js +1 -0
  3. package/dist/generated/entities.ids.generated.js.map +2 -2
  4. package/dist/modules/auth/backend/settings/page.js +14 -9
  5. package/dist/modules/auth/backend/settings/page.js.map +2 -2
  6. package/dist/modules/customers/cli.js +17 -7
  7. package/dist/modules/customers/cli.js.map +2 -2
  8. package/dist/modules/customers/components/detail/ScheduleActivityDialog.js +229 -216
  9. package/dist/modules/customers/components/detail/ScheduleActivityDialog.js.map +2 -2
  10. package/dist/modules/customers/search.js +50 -29
  11. package/dist/modules/customers/search.js.map +2 -2
  12. package/dist/modules/data_sync/api/mappings/[id]/route.js +22 -9
  13. package/dist/modules/data_sync/api/mappings/[id]/route.js.map +2 -2
  14. package/dist/modules/data_sync/api/mappings/route.js +13 -4
  15. package/dist/modules/data_sync/api/mappings/route.js.map +2 -2
  16. package/dist/modules/data_sync/api/options.js +7 -2
  17. package/dist/modules/data_sync/api/options.js.map +2 -2
  18. package/dist/modules/data_sync/api/run.js +7 -2
  19. package/dist/modules/data_sync/api/run.js.map +2 -2
  20. package/dist/modules/data_sync/api/runs/[id]/cancel.js +8 -3
  21. package/dist/modules/data_sync/api/runs/[id]/cancel.js.map +2 -2
  22. package/dist/modules/data_sync/api/runs/[id]/retry.js +7 -2
  23. package/dist/modules/data_sync/api/runs/[id]/retry.js.map +2 -2
  24. package/dist/modules/data_sync/api/runs/[id]/route.js +8 -3
  25. package/dist/modules/data_sync/api/runs/[id]/route.js.map +2 -2
  26. package/dist/modules/data_sync/api/runs.js +7 -2
  27. package/dist/modules/data_sync/api/runs.js.map +2 -2
  28. package/dist/modules/data_sync/api/schedules/[id]/route.js +19 -6
  29. package/dist/modules/data_sync/api/schedules/[id]/route.js.map +2 -2
  30. package/dist/modules/data_sync/api/schedules/route.js +13 -4
  31. package/dist/modules/data_sync/api/schedules/route.js.map +2 -2
  32. package/dist/modules/data_sync/api/validate.js +9 -4
  33. package/dist/modules/data_sync/api/validate.js.map +2 -2
  34. package/dist/modules/design_system/acl.js +9 -0
  35. package/dist/modules/design_system/acl.js.map +7 -0
  36. package/dist/modules/design_system/backend/design-system/page.js +11 -0
  37. package/dist/modules/design_system/backend/design-system/page.js.map +7 -0
  38. package/dist/modules/design_system/backend/design-system/page.meta.js +15 -0
  39. package/dist/modules/design_system/backend/design-system/page.meta.js.map +7 -0
  40. package/dist/modules/design_system/gallery/components/CodeSnippet.js +52 -0
  41. package/dist/modules/design_system/gallery/components/CodeSnippet.js.map +7 -0
  42. package/dist/modules/design_system/gallery/components/EntryCard.js +63 -0
  43. package/dist/modules/design_system/gallery/components/EntryCard.js.map +7 -0
  44. package/dist/modules/design_system/gallery/components/GalleryShell.js +163 -0
  45. package/dist/modules/design_system/gallery/components/GalleryShell.js.map +7 -0
  46. package/dist/modules/design_system/gallery/components/VariantPreview.js +9 -0
  47. package/dist/modules/design_system/gallery/components/VariantPreview.js.map +7 -0
  48. package/dist/modules/design_system/gallery/entries/banners.js +186 -0
  49. package/dist/modules/design_system/gallery/entries/banners.js.map +7 -0
  50. package/dist/modules/design_system/gallery/entries/buttons.js +361 -0
  51. package/dist/modules/design_system/gallery/entries/buttons.js.map +7 -0
  52. package/dist/modules/design_system/gallery/entries/charts.js +457 -0
  53. package/dist/modules/design_system/gallery/entries/charts.js.map +7 -0
  54. package/dist/modules/design_system/gallery/entries/dates.js +306 -0
  55. package/dist/modules/design_system/gallery/entries/dates.js.map +7 -0
  56. package/dist/modules/design_system/gallery/entries/detail.js +358 -0
  57. package/dist/modules/design_system/gallery/entries/detail.js.map +7 -0
  58. package/dist/modules/design_system/gallery/entries/display.js +785 -0
  59. package/dist/modules/design_system/gallery/entries/display.js.map +7 -0
  60. package/dist/modules/design_system/gallery/entries/feedback.js +658 -0
  61. package/dist/modules/design_system/gallery/entries/feedback.js.map +7 -0
  62. package/dist/modules/design_system/gallery/entries/filters.js +505 -0
  63. package/dist/modules/design_system/gallery/entries/filters.js.map +7 -0
  64. package/dist/modules/design_system/gallery/entries/foundations.js +453 -0
  65. package/dist/modules/design_system/gallery/entries/foundations.js.map +7 -0
  66. package/dist/modules/design_system/gallery/entries/icons.js +140 -0
  67. package/dist/modules/design_system/gallery/entries/icons.js.map +7 -0
  68. package/dist/modules/design_system/gallery/entries/inputs.js +1217 -0
  69. package/dist/modules/design_system/gallery/entries/inputs.js.map +7 -0
  70. package/dist/modules/design_system/gallery/entries/messages.js +334 -0
  71. package/dist/modules/design_system/gallery/entries/messages.js.map +7 -0
  72. package/dist/modules/design_system/gallery/entries/navigation.js +475 -0
  73. package/dist/modules/design_system/gallery/entries/navigation.js.map +7 -0
  74. package/dist/modules/design_system/gallery/entries/notifications.js +257 -0
  75. package/dist/modules/design_system/gallery/entries/notifications.js.map +7 -0
  76. package/dist/modules/design_system/gallery/entries/overlays.js +576 -0
  77. package/dist/modules/design_system/gallery/entries/overlays.js.map +7 -0
  78. package/dist/modules/design_system/gallery/entries/scaffolding.js +378 -0
  79. package/dist/modules/design_system/gallery/entries/scaffolding.js.map +7 -0
  80. package/dist/modules/design_system/gallery/entries/schedule.js +297 -0
  81. package/dist/modules/design_system/gallery/entries/schedule.js.map +7 -0
  82. package/dist/modules/design_system/gallery/registry.js +139 -0
  83. package/dist/modules/design_system/gallery/registry.js.map +7 -0
  84. package/dist/modules/design_system/gallery/types.js +1 -0
  85. package/dist/modules/design_system/gallery/types.js.map +7 -0
  86. package/dist/modules/design_system/index.js +9 -0
  87. package/dist/modules/design_system/index.js.map +7 -0
  88. package/dist/modules/design_system/setup.js +14 -0
  89. package/dist/modules/design_system/setup.js.map +7 -0
  90. package/dist/modules/inbox_ops/search.js +15 -4
  91. package/dist/modules/inbox_ops/search.js.map +2 -2
  92. package/dist/modules/integrations/api/[id]/credentials/route.js +11 -5
  93. package/dist/modules/integrations/api/[id]/credentials/route.js.map +2 -2
  94. package/dist/modules/integrations/api/[id]/health/route.js +6 -3
  95. package/dist/modules/integrations/api/[id]/health/route.js.map +2 -2
  96. package/dist/modules/integrations/api/[id]/route.js +6 -3
  97. package/dist/modules/integrations/api/[id]/route.js.map +2 -2
  98. package/dist/modules/integrations/api/[id]/state/route.js +6 -3
  99. package/dist/modules/integrations/api/[id]/state/route.js.map +2 -2
  100. package/dist/modules/integrations/api/[id]/version/route.js +6 -3
  101. package/dist/modules/integrations/api/[id]/version/route.js.map +2 -2
  102. package/dist/modules/integrations/api/logs/route.js +6 -3
  103. package/dist/modules/integrations/api/logs/route.js.map +2 -2
  104. package/dist/modules/integrations/api/route.js +6 -3
  105. package/dist/modules/integrations/api/route.js.map +2 -2
  106. package/dist/modules/integrations/api/umes-read.js +2 -2
  107. package/dist/modules/integrations/api/umes-read.js.map +2 -2
  108. package/dist/modules/integrations/lib/organization-scope.js +2 -9
  109. package/dist/modules/integrations/lib/organization-scope.js.map +2 -2
  110. package/dist/modules/messages/search.js +10 -5
  111. package/dist/modules/messages/search.js.map +2 -2
  112. package/dist/modules/query_index/data/entities.js +2 -1
  113. package/dist/modules/query_index/data/entities.js.map +2 -2
  114. package/dist/modules/query_index/lib/engine.js +32 -50
  115. package/dist/modules/query_index/lib/engine.js.map +2 -2
  116. package/dist/modules/query_index/migrations/Migration20260731105052_query_index.js +17 -0
  117. package/dist/modules/query_index/migrations/Migration20260731105052_query_index.js.map +7 -0
  118. package/generated/entities.ids.generated.ts +1 -0
  119. package/package.json +16 -16
  120. package/src/modules/auth/backend/settings/page.tsx +17 -8
  121. package/src/modules/customers/cli.ts +17 -7
  122. package/src/modules/customers/components/detail/ScheduleActivityDialog.tsx +24 -13
  123. package/src/modules/customers/i18n/de.json +17 -0
  124. package/src/modules/customers/i18n/en.json +17 -0
  125. package/src/modules/customers/i18n/es.json +17 -0
  126. package/src/modules/customers/i18n/pl.json +17 -0
  127. package/src/modules/customers/search.ts +59 -27
  128. package/src/modules/data_sync/AGENTS.md +1 -0
  129. package/src/modules/data_sync/api/mappings/[id]/route.ts +22 -9
  130. package/src/modules/data_sync/api/mappings/route.ts +13 -4
  131. package/src/modules/data_sync/api/options.ts +7 -2
  132. package/src/modules/data_sync/api/run.ts +7 -2
  133. package/src/modules/data_sync/api/runs/[id]/cancel.ts +8 -3
  134. package/src/modules/data_sync/api/runs/[id]/retry.ts +7 -2
  135. package/src/modules/data_sync/api/runs/[id]/route.ts +8 -3
  136. package/src/modules/data_sync/api/runs.ts +7 -2
  137. package/src/modules/data_sync/api/schedules/[id]/route.ts +19 -6
  138. package/src/modules/data_sync/api/schedules/route.ts +13 -4
  139. package/src/modules/data_sync/api/validate.ts +9 -4
  140. package/src/modules/design_system/AGENTS.md +34 -0
  141. package/src/modules/design_system/acl.ts +5 -0
  142. package/src/modules/design_system/backend/design-system/page.meta.ts +11 -0
  143. package/src/modules/design_system/backend/design-system/page.tsx +14 -0
  144. package/src/modules/design_system/gallery/components/CodeSnippet.tsx +55 -0
  145. package/src/modules/design_system/gallery/components/EntryCard.tsx +95 -0
  146. package/src/modules/design_system/gallery/components/GalleryShell.tsx +206 -0
  147. package/src/modules/design_system/gallery/components/VariantPreview.tsx +15 -0
  148. package/src/modules/design_system/gallery/entries/banners.tsx +226 -0
  149. package/src/modules/design_system/gallery/entries/buttons.tsx +422 -0
  150. package/src/modules/design_system/gallery/entries/charts.tsx +518 -0
  151. package/src/modules/design_system/gallery/entries/dates.tsx +325 -0
  152. package/src/modules/design_system/gallery/entries/detail.tsx +403 -0
  153. package/src/modules/design_system/gallery/entries/display.tsx +893 -0
  154. package/src/modules/design_system/gallery/entries/feedback.tsx +746 -0
  155. package/src/modules/design_system/gallery/entries/filters.tsx +570 -0
  156. package/src/modules/design_system/gallery/entries/foundations.tsx +529 -0
  157. package/src/modules/design_system/gallery/entries/icons.tsx +168 -0
  158. package/src/modules/design_system/gallery/entries/inputs.tsx +1516 -0
  159. package/src/modules/design_system/gallery/entries/messages.tsx +339 -0
  160. package/src/modules/design_system/gallery/entries/navigation.tsx +573 -0
  161. package/src/modules/design_system/gallery/entries/notifications.tsx +285 -0
  162. package/src/modules/design_system/gallery/entries/overlays.tsx +677 -0
  163. package/src/modules/design_system/gallery/entries/scaffolding.tsx +430 -0
  164. package/src/modules/design_system/gallery/entries/schedule.tsx +307 -0
  165. package/src/modules/design_system/gallery/registry.ts +152 -0
  166. package/src/modules/design_system/gallery/types.ts +32 -0
  167. package/src/modules/design_system/i18n/.hardcoded-allowlist.json +71 -0
  168. package/src/modules/design_system/i18n/de.json +46 -0
  169. package/src/modules/design_system/i18n/en.json +46 -0
  170. package/src/modules/design_system/i18n/es.json +46 -0
  171. package/src/modules/design_system/i18n/pl.json +46 -0
  172. package/src/modules/design_system/index.ts +7 -0
  173. package/src/modules/design_system/setup.ts +12 -0
  174. package/src/modules/inbox_ops/i18n/de.json +3 -0
  175. package/src/modules/inbox_ops/i18n/en.json +3 -0
  176. package/src/modules/inbox_ops/i18n/es.json +3 -0
  177. package/src/modules/inbox_ops/i18n/pl.json +3 -0
  178. package/src/modules/inbox_ops/search.ts +20 -4
  179. package/src/modules/integrations/api/[id]/credentials/route.ts +11 -5
  180. package/src/modules/integrations/api/[id]/health/route.ts +6 -3
  181. package/src/modules/integrations/api/[id]/route.ts +6 -3
  182. package/src/modules/integrations/api/[id]/state/route.ts +6 -3
  183. package/src/modules/integrations/api/[id]/version/route.ts +6 -3
  184. package/src/modules/integrations/api/logs/route.ts +6 -3
  185. package/src/modules/integrations/api/route.ts +6 -3
  186. package/src/modules/integrations/api/umes-read.ts +2 -2
  187. package/src/modules/integrations/lib/organization-scope.ts +5 -25
  188. package/src/modules/messages/i18n/de.json +2 -0
  189. package/src/modules/messages/i18n/en.json +2 -0
  190. package/src/modules/messages/i18n/es.json +2 -0
  191. package/src/modules/messages/i18n/pl.json +2 -0
  192. package/src/modules/messages/search.ts +11 -5
  193. package/src/modules/query_index/data/entities.ts +7 -0
  194. package/src/modules/query_index/lib/engine.ts +40 -63
  195. package/src/modules/query_index/migrations/.snapshot-open-mercato.json +12 -0
  196. package/src/modules/query_index/migrations/Migration20260731105052_query_index.ts +35 -0
@@ -0,0 +1,306 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { Clock } from "lucide-react";
4
+ import { Calendar } from "@open-mercato/ui/primitives/calendar";
5
+ import { DatePicker } from "@open-mercato/ui/primitives/date-picker";
6
+ import { DateRangePicker } from "@open-mercato/ui/primitives/date-range-picker";
7
+ import {
8
+ TimePicker,
9
+ TimePickerSlot,
10
+ TimePickerDurationChip,
11
+ TimePickerStatusChip
12
+ } from "@open-mercato/ui/primitives/time-picker";
13
+ import { Button } from "@open-mercato/ui/primitives/button";
14
+ const sampleDay = new Date(2026, 5, 12);
15
+ const sampleMonth = new Date(2026, 5, 1);
16
+ const sampleRange = { start: new Date(2026, 5, 8), end: new Date(2026, 5, 19) };
17
+ function DemoCalendarSingle() {
18
+ const [selected, setSelected] = React.useState(sampleDay);
19
+ return /* @__PURE__ */ jsx(
20
+ Calendar,
21
+ {
22
+ mode: "single",
23
+ selected,
24
+ onSelect: (day) => setSelected(day),
25
+ defaultMonth: sampleMonth
26
+ }
27
+ );
28
+ }
29
+ function DemoCalendarRange() {
30
+ const [selected, setSelected] = React.useState({ from: sampleRange.start, to: sampleRange.end });
31
+ return /* @__PURE__ */ jsx(
32
+ Calendar,
33
+ {
34
+ mode: "range",
35
+ selected,
36
+ onSelect: (range) => setSelected(range),
37
+ defaultMonth: sampleMonth
38
+ }
39
+ );
40
+ }
41
+ const calendarEntry = {
42
+ id: "calendar",
43
+ title: "Calendar",
44
+ importPath: "@open-mercato/ui/primitives/calendar",
45
+ variants: [
46
+ {
47
+ id: "single",
48
+ title: "Single selection",
49
+ render: () => /* @__PURE__ */ jsx(DemoCalendarSingle, {}),
50
+ code: `import { Calendar } from '@open-mercato/ui/primitives/calendar'
51
+
52
+ const [selected, setSelected] = React.useState<Date | undefined>()
53
+
54
+ <Calendar mode="single" selected={selected} onSelect={setSelected} />`
55
+ },
56
+ {
57
+ id: "range",
58
+ title: "Range selection",
59
+ render: () => /* @__PURE__ */ jsx(DemoCalendarRange, {}),
60
+ code: `import { Calendar } from '@open-mercato/ui/primitives/calendar'
61
+
62
+ const [selected, setSelected] = React.useState<{ from?: Date; to?: Date }>()
63
+
64
+ <Calendar mode="range" selected={selected} onSelect={setSelected} />`
65
+ },
66
+ {
67
+ id: "disabled-days",
68
+ title: "Disabled days",
69
+ render: () => /* @__PURE__ */ jsx(Calendar, { defaultMonth: sampleMonth, disabled: { dayOfWeek: [0, 6] } }),
70
+ code: `import { Calendar } from '@open-mercato/ui/primitives/calendar'
71
+
72
+ <Calendar disabled={{ dayOfWeek: [0, 6] }} />`
73
+ }
74
+ ]
75
+ };
76
+ function DemoDatePicker() {
77
+ const [value, setValue] = React.useState(sampleDay);
78
+ return /* @__PURE__ */ jsx(DatePicker, { value, onChange: setValue });
79
+ }
80
+ function DemoDatePickerWithTime() {
81
+ const [value, setValue] = React.useState(new Date(2026, 5, 12, 9, 30));
82
+ return /* @__PURE__ */ jsx(DatePicker, { value, onChange: setValue, withTime: true, minuteStep: 15 });
83
+ }
84
+ function DemoDatePickerTodayClear() {
85
+ const [value, setValue] = React.useState(null);
86
+ return /* @__PURE__ */ jsx(DatePicker, { value, onChange: setValue, footer: "today-clear" });
87
+ }
88
+ const datePickerEntry = {
89
+ id: "date-picker",
90
+ title: "DatePicker",
91
+ importPath: "@open-mercato/ui/primitives/date-picker",
92
+ variants: [
93
+ {
94
+ id: "default",
95
+ title: "default (apply-cancel footer)",
96
+ render: () => /* @__PURE__ */ jsx(DemoDatePicker, {}),
97
+ code: `import { DatePicker } from '@open-mercato/ui/primitives/date-picker'
98
+
99
+ const [value, setValue] = React.useState<Date | null>(null)
100
+
101
+ <DatePicker value={value} onChange={setValue} />`
102
+ },
103
+ {
104
+ id: "with-time",
105
+ title: "withTime",
106
+ render: () => /* @__PURE__ */ jsx(DemoDatePickerWithTime, {}),
107
+ code: `import { DatePicker } from '@open-mercato/ui/primitives/date-picker'
108
+
109
+ const [value, setValue] = React.useState<Date | null>(null)
110
+
111
+ <DatePicker value={value} onChange={setValue} withTime minuteStep={15} />`
112
+ },
113
+ {
114
+ id: "today-clear-footer",
115
+ title: "footer='today-clear'",
116
+ render: () => /* @__PURE__ */ jsx(DemoDatePickerTodayClear, {}),
117
+ code: `import { DatePicker } from '@open-mercato/ui/primitives/date-picker'
118
+
119
+ const [value, setValue] = React.useState<Date | null>(null)
120
+
121
+ <DatePicker value={value} onChange={setValue} footer="today-clear" />`
122
+ },
123
+ {
124
+ id: "states",
125
+ title: "Small / disabled",
126
+ render: () => /* @__PURE__ */ jsxs(Fragment, { children: [
127
+ /* @__PURE__ */ jsx(DatePicker, { value: sampleDay, onChange: () => {
128
+ }, size: "sm" }),
129
+ /* @__PURE__ */ jsx(DatePicker, { value: sampleDay, onChange: () => {
130
+ }, disabled: true })
131
+ ] }),
132
+ code: `import { DatePicker } from '@open-mercato/ui/primitives/date-picker'
133
+
134
+ <DatePicker value={value} onChange={setValue} size="sm" />
135
+ <DatePicker value={value} onChange={setValue} disabled />`
136
+ }
137
+ ]
138
+ };
139
+ function DemoDateRangePicker() {
140
+ const [value, setValue] = React.useState(sampleRange);
141
+ return /* @__PURE__ */ jsx(DateRangePicker, { value, onChange: setValue });
142
+ }
143
+ function DemoDateRangePickerCompact() {
144
+ const [value, setValue] = React.useState(null);
145
+ return /* @__PURE__ */ jsx(
146
+ DateRangePicker,
147
+ {
148
+ value,
149
+ onChange: setValue,
150
+ showPresets: false,
151
+ numberOfMonths: 1,
152
+ size: "sm"
153
+ }
154
+ );
155
+ }
156
+ const dateRangePickerEntry = {
157
+ id: "date-range-picker",
158
+ title: "DateRangePicker",
159
+ importPath: "@open-mercato/ui/primitives/date-range-picker",
160
+ variants: [
161
+ {
162
+ id: "default",
163
+ title: "default (presets + two months)",
164
+ render: () => /* @__PURE__ */ jsx(DemoDateRangePicker, {}),
165
+ code: `import { DateRangePicker } from '@open-mercato/ui/primitives/date-range-picker'
166
+ import type { DateRange } from '@open-mercato/ui/backend/date-range'
167
+
168
+ const [value, setValue] = React.useState<DateRange | null>(null)
169
+
170
+ <DateRangePicker value={value} onChange={setValue} />`
171
+ },
172
+ {
173
+ id: "compact",
174
+ title: "Compact (no presets, one month)",
175
+ render: () => /* @__PURE__ */ jsx(DemoDateRangePickerCompact, {}),
176
+ code: `import { DateRangePicker } from '@open-mercato/ui/primitives/date-range-picker'
177
+
178
+ <DateRangePicker
179
+ value={value}
180
+ onChange={setValue}
181
+ showPresets={false}
182
+ numberOfMonths={1}
183
+ size="sm"
184
+ />`
185
+ },
186
+ {
187
+ id: "disabled",
188
+ title: "Disabled",
189
+ render: () => /* @__PURE__ */ jsx(DateRangePicker, { value: sampleRange, onChange: () => {
190
+ }, disabled: true }),
191
+ code: `import { DateRangePicker } from '@open-mercato/ui/primitives/date-range-picker'
192
+
193
+ <DateRangePicker value={value} onChange={setValue} disabled />`
194
+ }
195
+ ]
196
+ };
197
+ const sampleSlots = ["09:00", "09:30", "10:00", "10:30", "11:00", "11:30"];
198
+ function DemoTimePickerTrigger() {
199
+ return /* @__PURE__ */ jsx(
200
+ TimePicker,
201
+ {
202
+ defaultValue: "10:00",
203
+ slots: sampleSlots,
204
+ maxHeight: 200,
205
+ trigger: /* @__PURE__ */ jsx(Button, { variant: "outline", children: "Pick a time" })
206
+ }
207
+ );
208
+ }
209
+ const timePickerEntry = {
210
+ id: "time-picker",
211
+ title: "TimePicker",
212
+ importPath: "@open-mercato/ui/primitives/time-picker",
213
+ variants: [
214
+ {
215
+ id: "inline-card",
216
+ title: "Inline card",
217
+ render: () => /* @__PURE__ */ jsx(TimePicker, { defaultValue: "10:00", slots: sampleSlots, maxHeight: 160 }),
218
+ code: `import { TimePicker } from '@open-mercato/ui/primitives/time-picker'
219
+
220
+ <TimePicker
221
+ defaultValue="10:00"
222
+ slots={['09:00', '09:30', '10:00', '10:30', '11:00', '11:30']}
223
+ />`
224
+ },
225
+ {
226
+ id: "durations-statuses",
227
+ title: "Durations + statuses",
228
+ render: () => /* @__PURE__ */ jsx(
229
+ TimePicker,
230
+ {
231
+ defaultValue: "09:30",
232
+ slots: sampleSlots,
233
+ maxHeight: 140,
234
+ durations: [{ value: 15 }, { value: 30 }, { value: 60 }, { value: 90 }],
235
+ defaultActiveDuration: 30,
236
+ statuses: [{ variant: "available" }, { variant: "busy" }, { variant: "in-meeting" }],
237
+ defaultActiveStatus: "available"
238
+ }
239
+ ),
240
+ code: `import { TimePicker } from '@open-mercato/ui/primitives/time-picker'
241
+
242
+ <TimePicker
243
+ defaultValue="09:30"
244
+ slots={['09:00', '09:30', '10:00', '10:30', '11:00', '11:30']}
245
+ durations={[{ value: 15 }, { value: 30 }, { value: 60 }, { value: 90 }]}
246
+ defaultActiveDuration={30}
247
+ statuses={[{ variant: 'available' }, { variant: 'busy' }, { variant: 'in-meeting' }]}
248
+ defaultActiveStatus="available"
249
+ />`
250
+ },
251
+ {
252
+ id: "with-trigger",
253
+ title: "With trigger (popover)",
254
+ render: () => /* @__PURE__ */ jsx(DemoTimePickerTrigger, {}),
255
+ code: `import { TimePicker } from '@open-mercato/ui/primitives/time-picker'
256
+ import { Button } from '@open-mercato/ui/primitives/button'
257
+
258
+ <TimePicker
259
+ defaultValue="10:00"
260
+ slots={['09:00', '09:30', '10:00', '10:30', '11:00', '11:30']}
261
+ trigger={<Button variant="outline">Pick a time</Button>}
262
+ />`
263
+ },
264
+ {
265
+ id: "atoms",
266
+ title: "Atoms (Slot / DurationChip / StatusChip)",
267
+ render: () => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3", children: [
268
+ /* @__PURE__ */ jsxs("div", { className: "flex w-56 flex-col gap-0.5", children: [
269
+ /* @__PURE__ */ jsx(TimePickerSlot, { value: "09:30" }),
270
+ /* @__PURE__ */ jsx(TimePickerSlot, { value: "10:00", selected: true }),
271
+ /* @__PURE__ */ jsx(TimePickerSlot, { value: "10:30", disabled: true })
272
+ ] }),
273
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
274
+ /* @__PURE__ */ jsx(TimePickerDurationChip, { value: 30 }),
275
+ /* @__PURE__ */ jsx(TimePickerDurationChip, { value: 90, selected: true })
276
+ ] }),
277
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
278
+ /* @__PURE__ */ jsx(TimePickerStatusChip, { variant: "available", selected: true }),
279
+ /* @__PURE__ */ jsx(TimePickerStatusChip, { variant: "busy" }),
280
+ /* @__PURE__ */ jsx(TimePickerStatusChip, { variant: "in-meeting", icon: /* @__PURE__ */ jsx(Clock, { className: "size-3", "aria-hidden": "true" }) })
281
+ ] })
282
+ ] }),
283
+ code: `import { Clock } from 'lucide-react'
284
+ import {
285
+ TimePickerSlot,
286
+ TimePickerDurationChip,
287
+ TimePickerStatusChip,
288
+ } from '@open-mercato/ui/primitives/time-picker'
289
+
290
+ <TimePickerSlot value="10:00" selected />
291
+ <TimePickerDurationChip value={90} selected />
292
+ <TimePickerStatusChip variant="busy" />
293
+ <TimePickerStatusChip variant="in-meeting" icon={<Clock className="size-3" />} />`
294
+ }
295
+ ]
296
+ };
297
+ const entries = [
298
+ calendarEntry,
299
+ datePickerEntry,
300
+ dateRangePickerEntry,
301
+ timePickerEntry
302
+ ];
303
+ export {
304
+ entries
305
+ };
306
+ //# sourceMappingURL=dates.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/modules/design_system/gallery/entries/dates.tsx"],
4
+ "sourcesContent": ["import * as React from 'react'\nimport { Clock } from 'lucide-react'\nimport { Calendar } from '@open-mercato/ui/primitives/calendar'\nimport { DatePicker } from '@open-mercato/ui/primitives/date-picker'\nimport { DateRangePicker } from '@open-mercato/ui/primitives/date-range-picker'\nimport {\n TimePicker,\n TimePickerSlot,\n TimePickerDurationChip,\n TimePickerStatusChip,\n} from '@open-mercato/ui/primitives/time-picker'\nimport { Button } from '@open-mercato/ui/primitives/button'\nimport type { DateRange } from '@open-mercato/ui/backend/date-range'\nimport type { GalleryEntry } from '../types'\n\n// Component titles and variant names are proper nouns from the codebase and\n// are deliberately not translated. `code` MUST contain the entry's importPath\n// (enforced by the registry-integrity test) and is always reviewed alongside\n// its sibling `render`.\n\n// Fixed sample dates \u2014 previews must not depend on \"today\" so the gallery\n// renders identically on any day (the `today` highlight ring aside).\nconst sampleDay = new Date(2026, 5, 12)\nconst sampleMonth = new Date(2026, 5, 1)\nconst sampleRange: DateRange = { start: new Date(2026, 5, 8), end: new Date(2026, 5, 19) }\n\nfunction DemoCalendarSingle() {\n const [selected, setSelected] = React.useState<Date | undefined>(sampleDay)\n return (\n <Calendar\n mode=\"single\"\n selected={selected}\n onSelect={(day) => setSelected(day)}\n defaultMonth={sampleMonth}\n />\n )\n}\n\nfunction DemoCalendarRange() {\n const [selected, setSelected] = React.useState<\n { from: Date | undefined; to?: Date | undefined } | undefined\n >({ from: sampleRange.start, to: sampleRange.end })\n return (\n <Calendar\n mode=\"range\"\n selected={selected}\n onSelect={(range) => setSelected(range)}\n defaultMonth={sampleMonth}\n />\n )\n}\n\nconst calendarEntry: GalleryEntry = {\n id: 'calendar',\n title: 'Calendar',\n importPath: '@open-mercato/ui/primitives/calendar',\n variants: [\n {\n id: 'single',\n title: 'Single selection',\n render: () => <DemoCalendarSingle />,\n code: `import { Calendar } from '@open-mercato/ui/primitives/calendar'\n\nconst [selected, setSelected] = React.useState<Date | undefined>()\n\n<Calendar mode=\"single\" selected={selected} onSelect={setSelected} />`,\n },\n {\n id: 'range',\n title: 'Range selection',\n render: () => <DemoCalendarRange />,\n code: `import { Calendar } from '@open-mercato/ui/primitives/calendar'\n\nconst [selected, setSelected] = React.useState<{ from?: Date; to?: Date }>()\n\n<Calendar mode=\"range\" selected={selected} onSelect={setSelected} />`,\n },\n {\n id: 'disabled-days',\n title: 'Disabled days',\n render: () => <Calendar defaultMonth={sampleMonth} disabled={{ dayOfWeek: [0, 6] }} />,\n code: `import { Calendar } from '@open-mercato/ui/primitives/calendar'\n\n<Calendar disabled={{ dayOfWeek: [0, 6] }} />`,\n },\n ],\n}\n\nfunction DemoDatePicker() {\n const [value, setValue] = React.useState<Date | null>(sampleDay)\n return <DatePicker value={value} onChange={setValue} />\n}\n\nfunction DemoDatePickerWithTime() {\n const [value, setValue] = React.useState<Date | null>(new Date(2026, 5, 12, 9, 30))\n return <DatePicker value={value} onChange={setValue} withTime minuteStep={15} />\n}\n\nfunction DemoDatePickerTodayClear() {\n const [value, setValue] = React.useState<Date | null>(null)\n return <DatePicker value={value} onChange={setValue} footer=\"today-clear\" />\n}\n\nconst datePickerEntry: GalleryEntry = {\n id: 'date-picker',\n title: 'DatePicker',\n importPath: '@open-mercato/ui/primitives/date-picker',\n variants: [\n {\n id: 'default',\n title: 'default (apply-cancel footer)',\n render: () => <DemoDatePicker />,\n code: `import { DatePicker } from '@open-mercato/ui/primitives/date-picker'\n\nconst [value, setValue] = React.useState<Date | null>(null)\n\n<DatePicker value={value} onChange={setValue} />`,\n },\n {\n id: 'with-time',\n title: 'withTime',\n render: () => <DemoDatePickerWithTime />,\n code: `import { DatePicker } from '@open-mercato/ui/primitives/date-picker'\n\nconst [value, setValue] = React.useState<Date | null>(null)\n\n<DatePicker value={value} onChange={setValue} withTime minuteStep={15} />`,\n },\n {\n id: 'today-clear-footer',\n title: \"footer='today-clear'\",\n render: () => <DemoDatePickerTodayClear />,\n code: `import { DatePicker } from '@open-mercato/ui/primitives/date-picker'\n\nconst [value, setValue] = React.useState<Date | null>(null)\n\n<DatePicker value={value} onChange={setValue} footer=\"today-clear\" />`,\n },\n {\n id: 'states',\n title: 'Small / disabled',\n render: () => (\n <>\n <DatePicker value={sampleDay} onChange={() => {}} size=\"sm\" />\n <DatePicker value={sampleDay} onChange={() => {}} disabled />\n </>\n ),\n code: `import { DatePicker } from '@open-mercato/ui/primitives/date-picker'\n\n<DatePicker value={value} onChange={setValue} size=\"sm\" />\n<DatePicker value={value} onChange={setValue} disabled />`,\n },\n ],\n}\n\nfunction DemoDateRangePicker() {\n const [value, setValue] = React.useState<DateRange | null>(sampleRange)\n return <DateRangePicker value={value} onChange={setValue} />\n}\n\nfunction DemoDateRangePickerCompact() {\n const [value, setValue] = React.useState<DateRange | null>(null)\n return (\n <DateRangePicker\n value={value}\n onChange={setValue}\n showPresets={false}\n numberOfMonths={1}\n size=\"sm\"\n />\n )\n}\n\nconst dateRangePickerEntry: GalleryEntry = {\n id: 'date-range-picker',\n title: 'DateRangePicker',\n importPath: '@open-mercato/ui/primitives/date-range-picker',\n variants: [\n {\n id: 'default',\n title: 'default (presets + two months)',\n render: () => <DemoDateRangePicker />,\n code: `import { DateRangePicker } from '@open-mercato/ui/primitives/date-range-picker'\nimport type { DateRange } from '@open-mercato/ui/backend/date-range'\n\nconst [value, setValue] = React.useState<DateRange | null>(null)\n\n<DateRangePicker value={value} onChange={setValue} />`,\n },\n {\n id: 'compact',\n title: 'Compact (no presets, one month)',\n render: () => <DemoDateRangePickerCompact />,\n code: `import { DateRangePicker } from '@open-mercato/ui/primitives/date-range-picker'\n\n<DateRangePicker\n value={value}\n onChange={setValue}\n showPresets={false}\n numberOfMonths={1}\n size=\"sm\"\n/>`,\n },\n {\n id: 'disabled',\n title: 'Disabled',\n render: () => <DateRangePicker value={sampleRange} onChange={() => {}} disabled />,\n code: `import { DateRangePicker } from '@open-mercato/ui/primitives/date-range-picker'\n\n<DateRangePicker value={value} onChange={setValue} disabled />`,\n },\n ],\n}\n\nconst sampleSlots = ['09:00', '09:30', '10:00', '10:30', '11:00', '11:30']\n\nfunction DemoTimePickerTrigger() {\n return (\n <TimePicker\n defaultValue=\"10:00\"\n slots={sampleSlots}\n maxHeight={200}\n trigger={<Button variant=\"outline\">Pick a time</Button>}\n />\n )\n}\n\nconst timePickerEntry: GalleryEntry = {\n id: 'time-picker',\n title: 'TimePicker',\n importPath: '@open-mercato/ui/primitives/time-picker',\n variants: [\n {\n id: 'inline-card',\n title: 'Inline card',\n render: () => (\n <TimePicker defaultValue=\"10:00\" slots={sampleSlots} maxHeight={160} />\n ),\n code: `import { TimePicker } from '@open-mercato/ui/primitives/time-picker'\n\n<TimePicker\n defaultValue=\"10:00\"\n slots={['09:00', '09:30', '10:00', '10:30', '11:00', '11:30']}\n/>`,\n },\n {\n id: 'durations-statuses',\n title: 'Durations + statuses',\n render: () => (\n <TimePicker\n defaultValue=\"09:30\"\n slots={sampleSlots}\n maxHeight={140}\n durations={[{ value: 15 }, { value: 30 }, { value: 60 }, { value: 90 }]}\n defaultActiveDuration={30}\n statuses={[{ variant: 'available' }, { variant: 'busy' }, { variant: 'in-meeting' }]}\n defaultActiveStatus=\"available\"\n />\n ),\n code: `import { TimePicker } from '@open-mercato/ui/primitives/time-picker'\n\n<TimePicker\n defaultValue=\"09:30\"\n slots={['09:00', '09:30', '10:00', '10:30', '11:00', '11:30']}\n durations={[{ value: 15 }, { value: 30 }, { value: 60 }, { value: 90 }]}\n defaultActiveDuration={30}\n statuses={[{ variant: 'available' }, { variant: 'busy' }, { variant: 'in-meeting' }]}\n defaultActiveStatus=\"available\"\n/>`,\n },\n {\n id: 'with-trigger',\n title: 'With trigger (popover)',\n render: () => <DemoTimePickerTrigger />,\n code: `import { TimePicker } from '@open-mercato/ui/primitives/time-picker'\nimport { Button } from '@open-mercato/ui/primitives/button'\n\n<TimePicker\n defaultValue=\"10:00\"\n slots={['09:00', '09:30', '10:00', '10:30', '11:00', '11:30']}\n trigger={<Button variant=\"outline\">Pick a time</Button>}\n/>`,\n },\n {\n id: 'atoms',\n title: 'Atoms (Slot / DurationChip / StatusChip)',\n render: () => (\n <div className=\"flex flex-col gap-3\">\n <div className=\"flex w-56 flex-col gap-0.5\">\n <TimePickerSlot value=\"09:30\" />\n <TimePickerSlot value=\"10:00\" selected />\n <TimePickerSlot value=\"10:30\" disabled />\n </div>\n <div className=\"flex items-center gap-2\">\n <TimePickerDurationChip value={30} />\n <TimePickerDurationChip value={90} selected />\n </div>\n <div className=\"flex items-center gap-2\">\n <TimePickerStatusChip variant=\"available\" selected />\n <TimePickerStatusChip variant=\"busy\" />\n <TimePickerStatusChip variant=\"in-meeting\" icon={<Clock className=\"size-3\" aria-hidden=\"true\" />} />\n </div>\n </div>\n ),\n code: `import { Clock } from 'lucide-react'\nimport {\n TimePickerSlot,\n TimePickerDurationChip,\n TimePickerStatusChip,\n} from '@open-mercato/ui/primitives/time-picker'\n\n<TimePickerSlot value=\"10:00\" selected />\n<TimePickerDurationChip value={90} selected />\n<TimePickerStatusChip variant=\"busy\" />\n<TimePickerStatusChip variant=\"in-meeting\" icon={<Clock className=\"size-3\" />} />`,\n },\n ],\n}\n\nexport const entries: GalleryEntry[] = [\n calendarEntry,\n datePickerEntry,\n dateRangePickerEntry,\n timePickerEntry,\n]\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }