@pisell/materials 1.0.1055 → 1.0.1057

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 (72) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/index.js +1 -1
  5. package/build/lowcode/meta.js +7 -7
  6. package/build/lowcode/preview.js +9 -9
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +20 -20
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +24 -24
  11. package/es/components/PisellLayouts/index.d.ts +9 -5
  12. package/es/components/PisellLayouts/index.js +5 -3
  13. package/es/components/dataSourceComponents/dataSourceSubForm/index.js +18 -5
  14. package/es/components/dataSourceComponents/dataSourceSubForm/schema-full-example.json +38 -32
  15. package/es/components/dataSourceComponents/fields/RecordListWrapper/WithMode.js +58 -26
  16. package/es/components/dataSourceComponents/fields/Tabs/Tabs.js +1 -1
  17. package/es/components/dataSourceComponents/fields/Tabs/Tabs.less +2 -1
  18. package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.d.ts +12 -0
  19. package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.js +264 -0
  20. package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.less +7 -0
  21. package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.stories.d.ts +42 -0
  22. package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.stories.js +1234 -0
  23. package/es/components/pisellFloorMapLayout/components/ItemLayer.d.ts +36 -0
  24. package/es/components/pisellFloorMapLayout/components/ItemLayer.js +121 -0
  25. package/es/components/pisellFloorMapLayout/components/ItemLayer.less +19 -0
  26. package/es/components/pisellFloorMapLayout/components/MapLayer.d.ts +23 -0
  27. package/es/components/pisellFloorMapLayout/components/MapLayer.js +74 -0
  28. package/es/components/pisellFloorMapLayout/components/MapLayer.less +7 -0
  29. package/es/components/pisellFloorMapLayout/components/ViewControls.d.ts +22 -0
  30. package/es/components/pisellFloorMapLayout/components/ViewControls.js +59 -0
  31. package/es/components/pisellFloorMapLayout/components/ViewControls.less +76 -0
  32. package/es/components/pisellFloorMapLayout/components/index.d.ts +7 -0
  33. package/es/components/pisellFloorMapLayout/components/index.js +6 -0
  34. package/es/components/pisellFloorMapLayout/index.d.ts +6 -0
  35. package/es/components/pisellFloorMapLayout/index.js +5 -0
  36. package/es/components/pisellFloorMapLayout/types.d.ts +197 -0
  37. package/es/components/pisellFloorMapLayout/types.js +1 -0
  38. package/es/components/pisellMultipleSelect/components/EditView.js +3 -3
  39. package/es/index.d.ts +4 -3
  40. package/es/index.js +1 -0
  41. package/lib/components/PisellLayouts/index.d.ts +9 -5
  42. package/lib/components/PisellLayouts/index.js +2 -0
  43. package/lib/components/dataSourceComponents/dataSourceSubForm/index.js +16 -3
  44. package/lib/components/dataSourceComponents/dataSourceSubForm/schema-full-example.json +38 -32
  45. package/lib/components/dataSourceComponents/fields/RecordListWrapper/WithMode.js +49 -21
  46. package/lib/components/dataSourceComponents/fields/Tabs/Tabs.js +1 -1
  47. package/lib/components/dataSourceComponents/fields/Tabs/Tabs.less +2 -1
  48. package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.d.ts +12 -0
  49. package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.js +257 -0
  50. package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.less +7 -0
  51. package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.stories.d.ts +42 -0
  52. package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.stories.js +755 -0
  53. package/lib/components/pisellFloorMapLayout/components/ItemLayer.d.ts +36 -0
  54. package/lib/components/pisellFloorMapLayout/components/ItemLayer.js +153 -0
  55. package/lib/components/pisellFloorMapLayout/components/ItemLayer.less +19 -0
  56. package/lib/components/pisellFloorMapLayout/components/MapLayer.d.ts +23 -0
  57. package/lib/components/pisellFloorMapLayout/components/MapLayer.js +103 -0
  58. package/lib/components/pisellFloorMapLayout/components/MapLayer.less +7 -0
  59. package/lib/components/pisellFloorMapLayout/components/ViewControls.d.ts +22 -0
  60. package/lib/components/pisellFloorMapLayout/components/ViewControls.js +89 -0
  61. package/lib/components/pisellFloorMapLayout/components/ViewControls.less +76 -0
  62. package/lib/components/pisellFloorMapLayout/components/index.d.ts +7 -0
  63. package/lib/components/pisellFloorMapLayout/components/index.js +35 -0
  64. package/lib/components/pisellFloorMapLayout/index.d.ts +6 -0
  65. package/lib/components/pisellFloorMapLayout/index.js +29 -0
  66. package/lib/components/pisellFloorMapLayout/types.d.ts +197 -0
  67. package/lib/components/pisellFloorMapLayout/types.js +17 -0
  68. package/lib/index.d.ts +4 -3
  69. package/lib/index.js +3 -0
  70. package/lowcode/data-source-form/utils.ts +3 -0
  71. package/lowcode/pisell-floor-map-layout/meta.ts +1511 -0
  72. package/package.json +4 -3
@@ -0,0 +1,1234 @@
1
+ import { useRef } from 'react';
2
+ import { Button, Space, Tabs, Avatar } from 'antd';
3
+ import { UserOutlined, ClockCircleOutlined, TeamOutlined, AuditOutlined, FieldTimeOutlined } from '@ant-design/icons';
4
+ import { PisellFloorMapLayout } from "./PisellFloorMapLayout";
5
+ // Figma 设计 token(Pisell 2.0 Component Library,node 13998:648 / 14004:1168 变量)
6
+ var FIGMA = {
7
+ white: '#FFFFFF',
8
+ gray50: '#F9FAFB',
9
+ gray100: '#F2F4F7',
10
+ gray200: '#EAECF0',
11
+ gray300: '#D0D5DD',
12
+ gray400: '#98A2B3',
13
+ gray500: '#667085',
14
+ gray700: '#344054',
15
+ gray900: '#101828',
16
+ shadowSm: '0 1px 2px rgba(16, 24, 40, 0.06), 0 1px 3px rgba(16, 24, 40, 0.1)',
17
+ fontFamily: 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
18
+ // 状态色(与图例、卡片边框及小条一致)
19
+ available: '#EAECF0',
20
+ reserved: '#9254de',
21
+ waiting: '#fa8c16',
22
+ dining: '#1890ff',
23
+ billed: '#52c41a',
24
+ availableSoon: '#f5222d',
25
+ /** 选中 Tab 背景(node 13998:648) */
26
+ tabActiveBg: '#1890ff',
27
+ /** 矩形外小条:Available 用灰,有状态用对应边框色 */
28
+ barFillAvailable: '#EAECF0',
29
+ /** 图例圆点色(Figma 14131:6266 设计 token) */
30
+ legendReserved: '#D6BBFB',
31
+ legendWaiting: '#FEC84B',
32
+ legendDining: '#84CAFF',
33
+ legendBilled: '#75E0A7',
34
+ legendAvailableSoon: '#FDA29B'
35
+ };
36
+
37
+ /**
38
+ * PisellFloorMapLayout 楼层图布局
39
+ *
40
+ * 空间布局视图:在二维平面按坐标渲染资源(桌台/房间/工位等),
41
+ * 支持缩放、平移、复位、区域定位,仅负责展示与交互。
42
+ */
43
+ var meta = {
44
+ title: 'Data Display/PisellFloorMapLayout',
45
+ component: PisellFloorMapLayout,
46
+ parameters: {
47
+ layout: 'padded',
48
+ docs: {
49
+ description: {
50
+ component: '在二维平面按坐标渲染资源,状态由外部通过 item 与 renderItem 传入。支持 itemUnit:cell(格子数)或 pixel(像素);格子模式下可用 mapLayer.gap 控制 item 间距。支持底层背景/网格、缩放/平移、内置视图控制按钮。'
51
+ }
52
+ }
53
+ },
54
+ tags: ['autodocs'],
55
+ argTypes: {
56
+ itemUnit: {
57
+ control: 'select',
58
+ options: ['cell', 'pixel'],
59
+ description: 'item 坐标与尺寸单位:cell 格子数,pixel 像素'
60
+ },
61
+ layoutMode: {
62
+ control: 'select',
63
+ options: ['free', 'grid'],
64
+ description: '布局模式'
65
+ },
66
+ enableHover: {
67
+ control: 'boolean',
68
+ description: '是否开启 hover'
69
+ }
70
+ }
71
+ };
72
+ export default meta;
73
+ /** 示例:基础格子项数据(5x4 网格) */
74
+ var defaultItems = [{
75
+ id: 'S-1',
76
+ x: 0,
77
+ y: 0
78
+ }, {
79
+ id: 'S-2',
80
+ x: 1,
81
+ y: 0
82
+ }, {
83
+ id: 'S-3',
84
+ x: 2,
85
+ y: 0
86
+ }, {
87
+ id: 'S-4',
88
+ x: 3,
89
+ y: 0
90
+ }, {
91
+ id: 'M-1',
92
+ x: 0,
93
+ y: 1
94
+ }, {
95
+ id: 'M-2',
96
+ x: 1,
97
+ y: 1
98
+ }, {
99
+ id: 'M-3',
100
+ x: 2,
101
+ y: 1
102
+ }, {
103
+ id: 'M-4',
104
+ x: 3,
105
+ y: 1
106
+ }, {
107
+ id: 'L-1',
108
+ x: 0,
109
+ y: 2
110
+ }, {
111
+ id: 'L-2',
112
+ x: 1,
113
+ y: 2
114
+ }, {
115
+ id: 'L-3',
116
+ x: 2,
117
+ y: 2
118
+ }, {
119
+ id: 'X-1',
120
+ x: 0,
121
+ y: 3
122
+ }, {
123
+ id: 'X-2',
124
+ x: 1,
125
+ y: 3
126
+ }, {
127
+ id: 'X-3',
128
+ x: 2,
129
+ y: 3
130
+ }, {
131
+ id: 'X-4',
132
+ x: 3,
133
+ y: 3
134
+ }];
135
+
136
+ /** 简单格子渲染:仅显示 id */
137
+ function renderSimpleItem(item) {
138
+ return /*#__PURE__*/React.createElement("div", {
139
+ style: {
140
+ width: '100%',
141
+ height: '100%',
142
+ display: 'flex',
143
+ alignItems: 'center',
144
+ justifyContent: 'center',
145
+ background: '#fff',
146
+ border: '4px solid #d9d9d9',
147
+ borderRadius: 4,
148
+ fontSize: 12
149
+ }
150
+ }, item.id);
151
+ }
152
+
153
+ /**
154
+ * 默认 - 纯色底 + 简单格子(格子单位,默认 item 间距 8px)
155
+ */
156
+ export var Default = {
157
+ args: {
158
+ items: defaultItems,
159
+ renderItem: function renderItem(item) {
160
+ return renderSimpleItem(item);
161
+ },
162
+ itemUnit: 'cell',
163
+ mapLayer: {
164
+ backgroundType: 'color',
165
+ backgroundColor: '#f5f5f5',
166
+ padding: 16,
167
+ gap: 8
168
+ },
169
+ zoom: {
170
+ defaultScale: 1,
171
+ min: 0.5,
172
+ max: 2
173
+ },
174
+ pan: {
175
+ enabled: false
176
+ },
177
+ enableHover: true
178
+ }
179
+ };
180
+
181
+ /**
182
+ * 显示网格线(item 间距由 mapLayer.gap 控制)
183
+ */
184
+ export var WithGrid = {
185
+ args: {
186
+ items: defaultItems,
187
+ renderItem: function renderItem(item) {
188
+ return renderSimpleItem(item);
189
+ },
190
+ itemUnit: 'cell',
191
+ mapLayer: {
192
+ backgroundType: 'color',
193
+ backgroundColor: '#fafafa',
194
+ showGrid: true,
195
+ padding: 16,
196
+ gap: 8
197
+ },
198
+ zoom: {
199
+ defaultScale: 1
200
+ },
201
+ pan: {
202
+ enabled: true
203
+ }
204
+ }
205
+ };
206
+
207
+ /**
208
+ * 开启平移 - 可拖拽画布
209
+ */
210
+ export var WithPan = {
211
+ args: {
212
+ items: defaultItems,
213
+ renderItem: function renderItem(item) {
214
+ return renderSimpleItem(item);
215
+ },
216
+ itemUnit: 'cell',
217
+ mapLayer: {
218
+ backgroundType: 'color',
219
+ backgroundColor: '#f0f5ff',
220
+ showGrid: true,
221
+ padding: 16,
222
+ gap: 8
223
+ },
224
+ zoom: {
225
+ defaultScale: 1
226
+ },
227
+ pan: {
228
+ enabled: true
229
+ },
230
+ controls: {
231
+ showZoom: true,
232
+ showReset: true,
233
+ showFitBounds: true
234
+ }
235
+ }
236
+ };
237
+
238
+ /**
239
+ * 不同形状 - 矩形、圆形、三角形;含不同格子宽高(如 rect2 为 2x1)
240
+ */
241
+ var shapeItems = [{
242
+ id: 'rect',
243
+ x: 0,
244
+ y: 0,
245
+ shape: 'rect'
246
+ }, {
247
+ id: 'circle',
248
+ x: 2,
249
+ y: 0,
250
+ shape: 'circle'
251
+ }, {
252
+ id: 'triangle',
253
+ x: 4,
254
+ y: 0,
255
+ shape: 'triangle'
256
+ }, {
257
+ id: 'rect2',
258
+ x: 0,
259
+ y: 2,
260
+ width: 2,
261
+ height: 1
262
+ }];
263
+ export var WithShapes = {
264
+ args: {
265
+ items: shapeItems,
266
+ renderItem: function renderItem(item) {
267
+ return renderSimpleItem(item);
268
+ },
269
+ itemUnit: 'cell',
270
+ mapLayer: {
271
+ backgroundType: 'color',
272
+ backgroundColor: '#f5f5f5',
273
+ showGrid: true,
274
+ padding: 16,
275
+ gap: 8
276
+ },
277
+ zoom: {
278
+ defaultScale: 1
279
+ },
280
+ pan: {
281
+ enabled: true
282
+ }
283
+ }
284
+ };
285
+
286
+ /**
287
+ * 格子单位下不同宽高 - 每个 item 可设置 width/height(格子数)
288
+ */
289
+ var variableSizeItems = [{
290
+ id: '1x1',
291
+ x: 0,
292
+ y: 0
293
+ }, {
294
+ id: '2x1',
295
+ x: 1,
296
+ y: 0,
297
+ width: 2,
298
+ height: 1
299
+ }, {
300
+ id: '1x2',
301
+ x: 3,
302
+ y: 0,
303
+ width: 1,
304
+ height: 2
305
+ }, {
306
+ id: '2x2',
307
+ x: 0,
308
+ y: 2,
309
+ width: 2,
310
+ height: 2
311
+ }, {
312
+ id: '3x1',
313
+ x: 2,
314
+ y: 2,
315
+ width: 3,
316
+ height: 1
317
+ }];
318
+ export var WithVariableSizes = {
319
+ parameters: {
320
+ docs: {
321
+ description: {
322
+ story: 'itemUnit 为 cell 时,每条数据可设置 width/height(格子数),实现不同大小的格子。'
323
+ }
324
+ }
325
+ },
326
+ args: {
327
+ items: variableSizeItems,
328
+ renderItem: function renderItem(item) {
329
+ return renderSimpleItem(item);
330
+ },
331
+ itemUnit: 'cell',
332
+ cellSize: 72,
333
+ mapLayer: {
334
+ backgroundType: 'color',
335
+ backgroundColor: '#f5f5f5',
336
+ showGrid: true,
337
+ padding: 16,
338
+ gap: 8
339
+ },
340
+ zoom: {
341
+ defaultScale: 1
342
+ },
343
+ pan: {
344
+ enabled: true
345
+ }
346
+ }
347
+ };
348
+
349
+ /**
350
+ * 像素单位 - x、y、width、height 均为像素,可任意位置与尺寸
351
+ */
352
+ var pixelItems = [{
353
+ id: 'A',
354
+ x: 20,
355
+ y: 20,
356
+ width: 100,
357
+ height: 80
358
+ }, {
359
+ id: 'B',
360
+ x: 140,
361
+ y: 20,
362
+ width: 200,
363
+ height: 80
364
+ }, {
365
+ id: 'C',
366
+ x: 20,
367
+ y: 120,
368
+ width: 80,
369
+ height: 100
370
+ }, {
371
+ id: 'D',
372
+ x: 120,
373
+ y: 120,
374
+ width: 150,
375
+ height: 120
376
+ }, {
377
+ id: 'E',
378
+ x: 290,
379
+ y: 120
380
+ } // 不写 width/height 时使用 cellSize 作为默认尺寸
381
+ ];
382
+ export var PixelUnits = {
383
+ parameters: {
384
+ docs: {
385
+ description: {
386
+ story: 'itemUnit 为 pixel 时,item 的 x、y、width、height 均为像素;不写 width/height 时以 cellSize 为默认宽高。'
387
+ }
388
+ }
389
+ },
390
+ args: {
391
+ items: pixelItems,
392
+ renderItem: function renderItem(item) {
393
+ return renderSimpleItem(item);
394
+ },
395
+ itemUnit: 'pixel',
396
+ cellSize: 64,
397
+ mapLayer: {
398
+ backgroundType: 'color',
399
+ backgroundColor: '#f5f5f5',
400
+ padding: 16
401
+ },
402
+ zoom: {
403
+ defaultScale: 1
404
+ },
405
+ pan: {
406
+ enabled: true
407
+ }
408
+ }
409
+ };
410
+
411
+ /**
412
+ * 点击与 Hover 事件
413
+ */
414
+ export var WithEvents = {
415
+ args: {
416
+ items: defaultItems.slice(0, 6),
417
+ renderItem: function renderItem(item) {
418
+ return renderSimpleItem(item);
419
+ },
420
+ itemUnit: 'cell',
421
+ mapLayer: {
422
+ backgroundType: 'color',
423
+ backgroundColor: '#f5f5f5',
424
+ padding: 16,
425
+ gap: 8
426
+ },
427
+ enableHover: true,
428
+ onItemClick: function onItemClick(item) {
429
+ console.log('click', item.id);
430
+ alert("\u70B9\u51FB\u4E86 ".concat(item.id));
431
+ },
432
+ onItemHover: function onItemHover(item) {
433
+ return console.log('hover', item.id);
434
+ },
435
+ onItemLeave: function onItemLeave(item) {
436
+ return console.log('leave', item.id);
437
+ }
438
+ }
439
+ };
440
+
441
+ /**
442
+ * Ref 调用 - 外部按钮控制缩放/复位/区域定位
443
+ */
444
+ export var WithRefControls = {
445
+ render: function WithRefControlsRender() {
446
+ var ref = useRef(null);
447
+ return /*#__PURE__*/React.createElement(Space, {
448
+ direction: "vertical",
449
+ style: {
450
+ width: '100%'
451
+ },
452
+ size: "middle"
453
+ }, /*#__PURE__*/React.createElement(Space, null, /*#__PURE__*/React.createElement(Button, {
454
+ onClick: function onClick() {
455
+ var _ref$current;
456
+ return (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.zoomIn();
457
+ }
458
+ }, "\u653E\u5927"), /*#__PURE__*/React.createElement(Button, {
459
+ onClick: function onClick() {
460
+ var _ref$current2;
461
+ return (_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.zoomOut();
462
+ }
463
+ }, "\u7F29\u5C0F"), /*#__PURE__*/React.createElement(Button, {
464
+ onClick: function onClick() {
465
+ var _ref$current3;
466
+ return (_ref$current3 = ref.current) === null || _ref$current3 === void 0 ? void 0 : _ref$current3.reset();
467
+ }
468
+ }, "\u590D\u4F4D"), /*#__PURE__*/React.createElement(Button, {
469
+ onClick: function onClick() {
470
+ var _ref$current4;
471
+ return (_ref$current4 = ref.current) === null || _ref$current4 === void 0 ? void 0 : _ref$current4.fitBounds();
472
+ }
473
+ }, "\u533A\u57DF\u5B9A\u4F4D")), /*#__PURE__*/React.createElement("div", {
474
+ style: {
475
+ height: 400
476
+ }
477
+ }, /*#__PURE__*/React.createElement(PisellFloorMapLayout, {
478
+ ref: ref,
479
+ items: defaultItems,
480
+ renderItem: function renderItem(item) {
481
+ return renderSimpleItem(item);
482
+ },
483
+ itemUnit: "cell",
484
+ mapLayer: {
485
+ backgroundType: 'color',
486
+ backgroundColor: '#fafafa',
487
+ showGrid: true,
488
+ padding: 16,
489
+ gap: 8
490
+ },
491
+ zoom: {
492
+ defaultScale: 1
493
+ },
494
+ pan: {
495
+ enabled: true
496
+ },
497
+ style: {
498
+ height: 400
499
+ }
500
+ })));
501
+ }
502
+ };
503
+
504
+ /**
505
+ * 自定义控制按钮显隐
506
+ */
507
+ export var ControlsHidden = {
508
+ args: {
509
+ items: defaultItems.slice(0, 4),
510
+ renderItem: function renderItem(item) {
511
+ return renderSimpleItem(item);
512
+ },
513
+ itemUnit: 'cell',
514
+ mapLayer: {
515
+ backgroundType: 'color',
516
+ backgroundColor: '#f5f5f5',
517
+ padding: 16,
518
+ gap: 8
519
+ },
520
+ controls: {
521
+ showZoom: false,
522
+ showReset: true,
523
+ showFitBounds: false
524
+ }
525
+ }
526
+ };
527
+
528
+ // ---------- Figma 设计稿还原(node 14004:1168)----------
529
+
530
+ /** 桌台状态:对应 Figma 中的边框颜色与图例 */
531
+
532
+ /** Figma 桌台项:在 FloorMapItemBase 上扩展状态与展示字段 */
533
+
534
+ var STATUS_BORDER = {
535
+ available: FIGMA.gray200,
536
+ reserved: FIGMA.reserved,
537
+ waiting: FIGMA.waiting,
538
+ dining: FIGMA.dining,
539
+ billed: FIGMA.billed,
540
+ availableSoon: FIGMA.availableSoon
541
+ };
542
+
543
+ /** 5 列 x 4 行(最后一行 4 格),与 Figma 设计稿一致 */
544
+ var figmaTableItems = [{
545
+ id: 'S-1',
546
+ x: 0,
547
+ y: 0,
548
+ status: 'reserved',
549
+ customerName: 'Carolino',
550
+ reserveTime: '13:00'
551
+ }, {
552
+ id: 'S-2',
553
+ x: 1,
554
+ y: 0,
555
+ status: 'available'
556
+ }, {
557
+ id: 'S-3',
558
+ x: 2,
559
+ y: 0,
560
+ status: 'availableSoon',
561
+ guests: 7,
562
+ dishes: '5/5 Dishes',
563
+ duration: '35m30s'
564
+ }, {
565
+ id: 'S-4',
566
+ x: 3,
567
+ y: 0,
568
+ status: 'available'
569
+ }, {
570
+ id: 'S-5',
571
+ x: 4,
572
+ y: 0,
573
+ status: 'available'
574
+ }, {
575
+ id: 'M-1',
576
+ x: 0,
577
+ y: 1,
578
+ status: 'available'
579
+ }, {
580
+ id: 'M-2',
581
+ x: 1,
582
+ y: 1,
583
+ status: 'available'
584
+ }, {
585
+ id: 'M-3',
586
+ x: 2,
587
+ y: 1,
588
+ status: 'waiting',
589
+ guests: 2,
590
+ dishes: '3/5 Dishes',
591
+ duration: '15m30s'
592
+ }, {
593
+ id: 'M-4',
594
+ x: 3,
595
+ y: 1,
596
+ status: 'available'
597
+ }, {
598
+ id: 'M-7',
599
+ x: 4,
600
+ y: 1,
601
+ status: 'dining',
602
+ guests: 5,
603
+ dishes: '5/5 Dishes',
604
+ duration: '5m30s'
605
+ }, {
606
+ id: 'L-1',
607
+ x: 0,
608
+ y: 2,
609
+ status: 'dining',
610
+ guests: 5,
611
+ dishes: '5/5 Dishes',
612
+ duration: '5m30s'
613
+ }, {
614
+ id: 'L-2',
615
+ x: 1,
616
+ y: 2,
617
+ status: 'billed',
618
+ guests: 5,
619
+ dishes: '5/5 Dishes',
620
+ duration: '25m30s'
621
+ }, {
622
+ id: 'L-3',
623
+ x: 2,
624
+ y: 2,
625
+ status: 'available'
626
+ }, {
627
+ id: 'X-1',
628
+ x: 3,
629
+ y: 2,
630
+ status: 'available'
631
+ }, {
632
+ id: 'L-4',
633
+ x: 4,
634
+ y: 2,
635
+ status: 'available'
636
+ }, {
637
+ id: 'X-2',
638
+ x: 0,
639
+ y: 3,
640
+ status: 'dining',
641
+ guests: 5,
642
+ dishes: '5/5 Dishes',
643
+ duration: '5m30s'
644
+ }, {
645
+ id: 'X-3',
646
+ x: 1,
647
+ y: 3,
648
+ status: 'available'
649
+ }, {
650
+ id: 'X-4',
651
+ x: 2,
652
+ y: 3,
653
+ status: 'waiting',
654
+ guests: 2,
655
+ dishes: '3/5 Dishes',
656
+ duration: '15m30s'
657
+ }, {
658
+ id: 'X-5',
659
+ x: 3,
660
+ y: 3,
661
+ status: 'available'
662
+ }];
663
+
664
+ /** Figma node 13998:648 像素布局:小格 160×160,中格 240×160,大格 250×160,XL 超大格 460×160,间距 50px */
665
+ var GAP = 50;
666
+ var SMALL_W = 160;
667
+ var MED_W = 240;
668
+ var LARGE_W = 350;
669
+ var XL_W = 460;
670
+ var H = 160;
671
+ var figma13998PixelItems = [
672
+ // Row 0: S-1, S-2, M-1, L-0(大格带内容,Figma 14000:335)
673
+ {
674
+ id: 'S-1',
675
+ x: 0,
676
+ y: 0,
677
+ width: SMALL_W,
678
+ height: H,
679
+ status: 'reserved',
680
+ customerName: 'Carolino',
681
+ reserveTime: '13:00'
682
+ }, {
683
+ id: 'S-2',
684
+ x: SMALL_W + GAP,
685
+ y: 0,
686
+ width: SMALL_W,
687
+ height: H,
688
+ status: 'available'
689
+ }, {
690
+ id: 'M-1',
691
+ x: (SMALL_W + GAP) * 2,
692
+ y: 0,
693
+ width: MED_W,
694
+ height: H,
695
+ status: 'available'
696
+ }, {
697
+ id: 'L-0',
698
+ x: (SMALL_W + GAP) * 2 + MED_W + GAP,
699
+ y: 0,
700
+ width: LARGE_W,
701
+ height: H,
702
+ status: 'dining',
703
+ guests: 4,
704
+ dishes: '5/5 Dishes',
705
+ duration: '18m20s'
706
+ }, {
707
+ id: 'M-0',
708
+ x: (SMALL_W + GAP) * 2 + MED_W + GAP + LARGE_W + GAP,
709
+ y: 0,
710
+ width: MED_W,
711
+ height: H,
712
+ status: 'available'
713
+ },
714
+ // Row 1: S-3, M-4, S-5, S-6, XL-0(第二个改成 m,最后添加 xl)
715
+ {
716
+ id: 'S-3',
717
+ x: 0,
718
+ y: H + GAP,
719
+ width: SMALL_W,
720
+ height: H,
721
+ status: 'availableSoon',
722
+ guests: 7,
723
+ dishes: '5/5 Dishes',
724
+ duration: '35m30s'
725
+ }, {
726
+ id: 'M-4',
727
+ x: SMALL_W + GAP,
728
+ y: H + GAP,
729
+ width: MED_W,
730
+ height: H,
731
+ status: 'available'
732
+ }, {
733
+ id: 'S-5',
734
+ x: SMALL_W + GAP + MED_W + GAP,
735
+ y: H + GAP,
736
+ width: SMALL_W,
737
+ height: H,
738
+ status: 'dining',
739
+ guests: 2,
740
+ dishes: '3/5 Dishes',
741
+ duration: '15m30s'
742
+ }, {
743
+ id: 'S-6',
744
+ x: SMALL_W + GAP + MED_W + GAP + SMALL_W + GAP,
745
+ y: H + GAP,
746
+ width: SMALL_W,
747
+ height: H,
748
+ status: 'reserved',
749
+ customerName: 'Alex',
750
+ reserveTime: '14:00'
751
+ }, {
752
+ id: 'XL-0',
753
+ x: (SMALL_W + GAP) * 2 + MED_W + GAP + SMALL_W + GAP,
754
+ y: H + GAP,
755
+ width: XL_W,
756
+ height: H,
757
+ status: 'available'
758
+ },
759
+ // Row 2: L-1(MED), L-2(LARGE), L-5(LARGE), S-7, S-10(S-7 紧接 L-5 右边界 + GAP,避免与 L-5 重叠)
760
+ {
761
+ id: 'L-1',
762
+ x: 0,
763
+ y: (H + GAP) * 2,
764
+ width: MED_W,
765
+ height: H,
766
+ status: 'available'
767
+ }, {
768
+ id: 'L-2',
769
+ x: MED_W + GAP,
770
+ y: (H + GAP) * 2,
771
+ width: LARGE_W,
772
+ height: H,
773
+ status: 'billed',
774
+ guests: 5,
775
+ dishes: '5/5 Dishes',
776
+ duration: '25m30s'
777
+ }, {
778
+ id: 'L-5',
779
+ x: MED_W + GAP + LARGE_W + GAP,
780
+ y: (H + GAP) * 2,
781
+ width: LARGE_W,
782
+ height: H,
783
+ status: 'available'
784
+ }, {
785
+ id: 'S-7',
786
+ x: MED_W + GAP + LARGE_W + GAP + LARGE_W + GAP,
787
+ y: (H + GAP) * 2,
788
+ width: SMALL_W,
789
+ height: H,
790
+ status: 'reserved',
791
+ customerName: 'Carolino',
792
+ reserveTime: '13:00'
793
+ }, {
794
+ id: 'S-10',
795
+ x: MED_W + GAP + LARGE_W + GAP + LARGE_W + GAP + SMALL_W + GAP,
796
+ y: (H + GAP) * 2,
797
+ width: SMALL_W,
798
+ height: H,
799
+ status: 'available'
800
+ },
801
+ // Row 3: M-3, L-3, S-8, M-5(第四格 = S-8 右边界 + GAP,避免重叠)
802
+ {
803
+ id: 'M-3',
804
+ x: 0,
805
+ y: (H + GAP) * 3,
806
+ width: MED_W,
807
+ height: H,
808
+ status: 'waiting',
809
+ guests: 2,
810
+ dishes: '3/5 Dishes',
811
+ duration: '15m30s'
812
+ }, {
813
+ id: 'L-3',
814
+ x: MED_W + GAP,
815
+ y: (H + GAP) * 3,
816
+ width: LARGE_W,
817
+ height: H,
818
+ status: 'available'
819
+ }, {
820
+ id: 'S-8',
821
+ x: MED_W + GAP + LARGE_W + GAP,
822
+ y: (H + GAP) * 3,
823
+ width: SMALL_W,
824
+ height: H,
825
+ status: 'dining',
826
+ guests: 6,
827
+ dishes: '4/5 Dishes',
828
+ duration: '24m30s'
829
+ }, {
830
+ id: 'M-5',
831
+ x: MED_W + GAP + LARGE_W + GAP + SMALL_W + GAP,
832
+ y: (H + GAP) * 3,
833
+ width: MED_W,
834
+ height: H,
835
+ status: 'available'
836
+ },
837
+ // Row 4: X-1, S-9, X-2, L-4
838
+ {
839
+ id: 'X-1',
840
+ x: 0,
841
+ y: (H + GAP) * 4,
842
+ width: LARGE_W,
843
+ height: H,
844
+ status: 'available'
845
+ }, {
846
+ id: 'S-9',
847
+ x: LARGE_W + GAP,
848
+ y: (H + GAP) * 4,
849
+ width: SMALL_W,
850
+ height: H,
851
+ status: 'available'
852
+ }, {
853
+ id: 'X-2',
854
+ x: LARGE_W + GAP + SMALL_W + GAP,
855
+ y: (H + GAP) * 4,
856
+ width: LARGE_W,
857
+ height: H,
858
+ status: 'waiting',
859
+ guests: 2,
860
+ dishes: '3/5 Dishes',
861
+ duration: '15m30s'
862
+ }, {
863
+ id: 'L-4',
864
+ x: LARGE_W + GAP + SMALL_W + GAP + LARGE_W + GAP,
865
+ y: (H + GAP) * 4,
866
+ width: LARGE_W,
867
+ height: H,
868
+ status: 'billed',
869
+ guests: 5,
870
+ dishes: '5/5 Dishes',
871
+ duration: '25m30s'
872
+ },
873
+ // Row 5: XL-1 超大格
874
+ {
875
+ id: 'XL-1',
876
+ x: 0,
877
+ y: (H + GAP) * 5,
878
+ width: XL_W,
879
+ height: H,
880
+ status: 'dining',
881
+ guests: 12,
882
+ dishes: '8/8 Dishes',
883
+ duration: '45m00s'
884
+ }];
885
+
886
+ /** 卡片内一行:左侧图标 + 文案(Figma Text sm/Regular 14/400/20) */
887
+ function FigmaCardRow(_ref) {
888
+ var icon = _ref.icon,
889
+ children = _ref.children;
890
+ return /*#__PURE__*/React.createElement("div", {
891
+ style: {
892
+ display: 'flex',
893
+ alignItems: 'center',
894
+ gap: 4,
895
+ fontFamily: FIGMA.fontFamily,
896
+ fontSize: 14,
897
+ lineHeight: '20px',
898
+ fontWeight: 400,
899
+ color: FIGMA.gray700,
900
+ flexShrink: 0,
901
+ minHeight: '20px'
902
+ }
903
+ }, /*#__PURE__*/React.createElement("span", {
904
+ style: {
905
+ flexShrink: 0,
906
+ color: FIGMA.gray400,
907
+ fontSize: 14
908
+ }
909
+ }, icon), /*#__PURE__*/React.createElement("span", {
910
+ style: {
911
+ flexShrink: 0
912
+ }
913
+ }, children));
914
+ }
915
+
916
+ /** 根据 item id 前缀得到小条数量:S=1, M=2, L=3, X=3, XL=4 */
917
+ function getBarCountFromItemId(id) {
918
+ var upper = id.toUpperCase();
919
+ if (upper.startsWith('XL-')) return 4;
920
+ if (upper.startsWith('L-') || upper.startsWith('X-')) return 3;
921
+ if (upper.startsWith('M-')) return 2;
922
+ return 1; // S- 及其他
923
+ }
924
+ var CARD_BAR_WIDTH = 80;
925
+ var CARD_BAR_HEIGHT = 12;
926
+
927
+ /** 矩形外小条:S 上下各 1 条,M 各 2 条,L 各 3 条,XL 各 4 条;单条 80×12px */
928
+ function CardBars(_ref2) {
929
+ var count = _ref2.count,
930
+ position = _ref2.position,
931
+ barColor = _ref2.barColor;
932
+ return /*#__PURE__*/React.createElement("div", {
933
+ style: {
934
+ display: 'flex',
935
+ flexDirection: 'row',
936
+ gap: 30,
937
+ justifyContent: 'center',
938
+ flexShrink: 0,
939
+ padding: position === 'top' ? '0 0 4px 0' : '4px 0 0 0'
940
+ }
941
+ }, Array.from({
942
+ length: count
943
+ }, function (_, i) {
944
+ return /*#__PURE__*/React.createElement("div", {
945
+ key: i,
946
+ style: {
947
+ width: CARD_BAR_WIDTH,
948
+ height: CARD_BAR_HEIGHT,
949
+ borderRadius: 6,
950
+ background: barColor
951
+ }
952
+ });
953
+ }));
954
+ }
955
+ function renderFigmaTableCard(item) {
956
+ var _item$status, _item$customerName, _item$reserveTime;
957
+ var status = (_item$status = item.status) !== null && _item$status !== void 0 ? _item$status : 'available';
958
+ var borderColor = STATUS_BORDER[status];
959
+ var isAvailable = status === 'available';
960
+ return /*#__PURE__*/React.createElement("div", {
961
+ className: "figma-table-card",
962
+ style: {
963
+ width: '100%',
964
+ height: '100%',
965
+ boxSizing: 'border-box',
966
+ display: 'flex',
967
+ flexDirection: 'column',
968
+ justifyContent: 'flex-start',
969
+ gap: 0,
970
+ fontFamily: FIGMA.fontFamily,
971
+ overflow: 'hidden'
972
+ }
973
+ }, /*#__PURE__*/React.createElement(CardBars, {
974
+ count: getBarCountFromItemId(item.id),
975
+ position: "top",
976
+ barColor: isAvailable ? FIGMA.barFillAvailable : borderColor
977
+ }), /*#__PURE__*/React.createElement("div", {
978
+ style: {
979
+ flex: 1,
980
+ minHeight: 0,
981
+ padding: 8,
982
+ boxSizing: 'border-box',
983
+ background: FIGMA.white,
984
+ border: isAvailable ? "4px solid ".concat(FIGMA.gray200) : "4px solid ".concat(borderColor),
985
+ borderRadius: 8,
986
+ boxShadow: FIGMA.shadowSm,
987
+ display: 'flex',
988
+ flexDirection: 'column',
989
+ justifyContent: isAvailable ? 'flex-start' : 'center',
990
+ alignItems: isAvailable ? 'stretch' : 'center',
991
+ gap: 4
992
+ }
993
+ }, isAvailable ?
994
+ /*#__PURE__*/
995
+ /* 空闲:仅 ID 居中 */
996
+ React.createElement("div", {
997
+ style: {
998
+ flex: 1,
999
+ display: 'flex',
1000
+ alignItems: 'center',
1001
+ justifyContent: 'center',
1002
+ minHeight: 0,
1003
+ fontWeight: 600,
1004
+ fontSize: 18,
1005
+ lineHeight: '24px',
1006
+ color: FIGMA.gray400,
1007
+ letterSpacing: 0
1008
+ }
1009
+ }, item.id) :
1010
+ /*#__PURE__*/
1011
+ /* 有内容:ID + 状态行整体居中 */
1012
+ React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
1013
+ style: {
1014
+ fontWeight: 600,
1015
+ fontSize: 18,
1016
+ lineHeight: '24px',
1017
+ color: FIGMA.gray900,
1018
+ letterSpacing: 0,
1019
+ textAlign: 'center'
1020
+ }
1021
+ }, item.id), status === 'reserved' && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FigmaCardRow, {
1022
+ icon: /*#__PURE__*/React.createElement(Avatar, {
1023
+ size: 16,
1024
+ icon: /*#__PURE__*/React.createElement(UserOutlined, null),
1025
+ style: {
1026
+ backgroundColor: FIGMA.gray200
1027
+ }
1028
+ })
1029
+ }, /*#__PURE__*/React.createElement("span", null, (_item$customerName = item.customerName) !== null && _item$customerName !== void 0 ? _item$customerName : '')), /*#__PURE__*/React.createElement(FigmaCardRow, {
1030
+ icon: /*#__PURE__*/React.createElement(ClockCircleOutlined, null)
1031
+ }, /*#__PURE__*/React.createElement("span", null, (_item$reserveTime = item.reserveTime) !== null && _item$reserveTime !== void 0 ? _item$reserveTime : ''))), (status === 'dining' || status === 'waiting' || status === 'billed' || status === 'availableSoon') && item.guests != null && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FigmaCardRow, {
1032
+ icon: /*#__PURE__*/React.createElement(TeamOutlined, null)
1033
+ }, /*#__PURE__*/React.createElement("span", null, item.guests)), item.dishes && /*#__PURE__*/React.createElement(FigmaCardRow, {
1034
+ icon: /*#__PURE__*/React.createElement(AuditOutlined, null)
1035
+ }, /*#__PURE__*/React.createElement("span", null, item.dishes)), item.duration && /*#__PURE__*/React.createElement(FigmaCardRow, {
1036
+ icon: /*#__PURE__*/React.createElement(FieldTimeOutlined, null)
1037
+ }, /*#__PURE__*/React.createElement("span", null, item.duration))))), /*#__PURE__*/React.createElement(CardBars, {
1038
+ count: getBarCountFromItemId(item.id),
1039
+ position: "bottom",
1040
+ barColor: isAvailable ? FIGMA.barFillAvailable : borderColor
1041
+ }));
1042
+ }
1043
+
1044
+ /** 图例单项:圆点 + 文案 */
1045
+ function LegendItem(_ref3) {
1046
+ var color = _ref3.color,
1047
+ label = _ref3.label,
1048
+ _ref3$fill = _ref3.fill,
1049
+ fill = _ref3$fill === void 0 ? false : _ref3$fill;
1050
+ return /*#__PURE__*/React.createElement("span", {
1051
+ style: {
1052
+ display: 'inline-flex',
1053
+ alignItems: 'center',
1054
+ gap: 6,
1055
+ fontFamily: FIGMA.fontFamily,
1056
+ fontSize: 14,
1057
+ fontWeight: 500,
1058
+ lineHeight: '20px',
1059
+ color: FIGMA.gray700
1060
+ }
1061
+ }, /*#__PURE__*/React.createElement("span", {
1062
+ style: {
1063
+ width: 8,
1064
+ height: 8,
1065
+ borderRadius: '50%',
1066
+ background: fill ? color : FIGMA.white,
1067
+ border: "4px solid ".concat(color),
1068
+ flexShrink: 0
1069
+ }
1070
+ }), label);
1071
+ }
1072
+
1073
+ /** 图例单项(Figma 14131:6266):16px 圆点,Available 白底+灰边,其余实心填色;文案 14px Medium、黑色 */
1074
+ function LegendItem14131(_ref4) {
1075
+ var color = _ref4.color,
1076
+ label = _ref4.label,
1077
+ _ref4$fill = _ref4.fill,
1078
+ fill = _ref4$fill === void 0 ? false : _ref4$fill;
1079
+ return /*#__PURE__*/React.createElement("span", {
1080
+ style: {
1081
+ display: 'inline-flex',
1082
+ alignItems: 'center',
1083
+ gap: 6,
1084
+ fontFamily: FIGMA.fontFamily,
1085
+ fontSize: 14,
1086
+ fontWeight: 500,
1087
+ lineHeight: '20px',
1088
+ color: '#000000'
1089
+ }
1090
+ }, /*#__PURE__*/React.createElement("span", {
1091
+ style: {
1092
+ width: 16,
1093
+ height: 16,
1094
+ borderRadius: '50%',
1095
+ background: fill ? color : FIGMA.white,
1096
+ border: fill ? 'none' : "1px solid ".concat(FIGMA.gray200),
1097
+ flexShrink: 0
1098
+ }
1099
+ }), label);
1100
+ }
1101
+
1102
+ /**
1103
+ * Figma 设计稿效果 - 餐厅桌台状态图(顶部 Tab + 图例参考 node 14131:6266,内容区不变)
1104
+ */
1105
+ export var FigmaDesign = {
1106
+ parameters: {
1107
+ docs: {
1108
+ description: {
1109
+ story: 'Figma node 14131:6266 还原:顶部 Tabs 灰底容器、选中白底+阴影、16px Semibold;图例 16px 圆点(Available 白底灰边/其余实心)、14px Medium 黑字、gap 12px 40px。内容区未改。'
1110
+ }
1111
+ }
1112
+ },
1113
+ render: function FigmaDesignRender() {
1114
+ return /*#__PURE__*/React.createElement("div", {
1115
+ style: {
1116
+ display: 'flex',
1117
+ flexDirection: 'column',
1118
+ gap: 20,
1119
+ background: FIGMA.gray50,
1120
+ padding: 24,
1121
+ borderRadius: 12,
1122
+ fontFamily: FIGMA.fontFamily
1123
+ }
1124
+ }, /*#__PURE__*/React.createElement("div", {
1125
+ className: "figma-story-header-14131",
1126
+ style: {
1127
+ display: 'flex',
1128
+ flexDirection: 'row',
1129
+ alignItems: 'center',
1130
+ justifyContent: 'space-between',
1131
+ flexWrap: 'nowrap',
1132
+ gap: 24
1133
+ }
1134
+ }, /*#__PURE__*/React.createElement("div", {
1135
+ className: "figma-story-tabs-wrap-14131",
1136
+ style: {
1137
+ flexShrink: 0,
1138
+ background: FIGMA.gray50,
1139
+ border: "1px solid ".concat(FIGMA.gray200),
1140
+ padding: 6,
1141
+ borderRadius: 8,
1142
+ display: 'inline-flex',
1143
+ gap: 8
1144
+ }
1145
+ }, /*#__PURE__*/React.createElement(Tabs, {
1146
+ defaultActiveKey: "main",
1147
+ size: "middle",
1148
+ style: {
1149
+ marginBottom: 0
1150
+ },
1151
+ items: [{
1152
+ key: 'main',
1153
+ label: 'Main Area'
1154
+ }, {
1155
+ key: 'secondary',
1156
+ label: 'Secondary Area'
1157
+ }, {
1158
+ key: 'vip',
1159
+ label: 'VIP Area'
1160
+ }],
1161
+ className: "figma-story-tabs figma-story-tabs-14131"
1162
+ })), /*#__PURE__*/React.createElement("div", {
1163
+ className: "figma-story-legend-14131",
1164
+ style: {
1165
+ display: 'flex',
1166
+ flexWrap: 'wrap',
1167
+ gap: '12px 40px',
1168
+ alignItems: 'center',
1169
+ justifyContent: 'flex-end',
1170
+ minWidth: 0
1171
+ }
1172
+ }, /*#__PURE__*/React.createElement(LegendItem14131, {
1173
+ color: FIGMA.gray200,
1174
+ label: "Available (4)",
1175
+ fill: false
1176
+ }), /*#__PURE__*/React.createElement(LegendItem14131, {
1177
+ color: FIGMA.legendReserved,
1178
+ label: "Reserved (2)",
1179
+ fill: true
1180
+ }), /*#__PURE__*/React.createElement(LegendItem14131, {
1181
+ color: FIGMA.legendWaiting,
1182
+ label: "Waiting (3)",
1183
+ fill: true
1184
+ }), /*#__PURE__*/React.createElement(LegendItem14131, {
1185
+ color: FIGMA.legendDining,
1186
+ label: "Dining (1)",
1187
+ fill: true
1188
+ }), /*#__PURE__*/React.createElement(LegendItem14131, {
1189
+ color: FIGMA.legendBilled,
1190
+ label: "Billed (2)",
1191
+ fill: true
1192
+ }), /*#__PURE__*/React.createElement(LegendItem14131, {
1193
+ color: FIGMA.legendAvailableSoon,
1194
+ label: "Available Soon (1)",
1195
+ fill: true
1196
+ }))), /*#__PURE__*/React.createElement("div", {
1197
+ className: "figma-story-map-wrap",
1198
+ style: {
1199
+ height: 520,
1200
+ background: FIGMA.white,
1201
+ border: "4px solid ".concat(FIGMA.gray200),
1202
+ borderRadius: 8,
1203
+ overflow: 'hidden',
1204
+ boxShadow: FIGMA.shadowSm
1205
+ }
1206
+ }, /*#__PURE__*/React.createElement(PisellFloorMapLayout, {
1207
+ className: "figma-story-map",
1208
+ items: figma13998PixelItems,
1209
+ renderItem: function renderItem(item) {
1210
+ return renderFigmaTableCard(item);
1211
+ },
1212
+ itemUnit: "pixel",
1213
+ cellSize: 64,
1214
+ mapLayer: {
1215
+ showGrid: false,
1216
+ padding: 20
1217
+ },
1218
+ zoom: {
1219
+ defaultScale: 0.8,
1220
+ min: 0.5,
1221
+ max: 2
1222
+ },
1223
+ pan: {
1224
+ enabled: true
1225
+ },
1226
+ controls: {
1227
+ showZoom: true
1228
+ },
1229
+ style: {
1230
+ height: '100%'
1231
+ }
1232
+ })), /*#__PURE__*/React.createElement("style", null, "\n .figma-story-tabs-wrap-14131 .ant-tabs-nav {\n margin: 0;\n }\n .figma-story-tabs-wrap-14131 .ant-tabs-nav-list {\n gap: 8px;\n }\n .figma-story-tabs.figma-story-tabs-14131 .ant-tabs-tab {\n font-family: ".concat(FIGMA.fontFamily, ";\n padding: 10px 14px;\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n line-height: 24px;\n color: ").concat(FIGMA.gray500, ";\n border-radius: 6px;\n }\n .figma-story-tabs.figma-story-tabs-14131 .ant-tabs-tab.ant-tabs-tab-active {\n background: ").concat(FIGMA.white, ";\n box-shadow: ").concat(FIGMA.shadowSm, ";\n }\n .figma-story-tabs.figma-story-tabs-14131 .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn {\n color: ").concat(FIGMA.gray700, ";\n }\n .figma-story-tabs.figma-story-tabs-14131 .ant-tabs-ink-bar {\n display: none;\n }\n .figma-story-tabs.figma-story-tabs-14131 .ant-tabs-nav::before {\n display: none;\n }\n .figma-story-map-wrap [class*=\"react-transform-wrapper\"],\n .figma-story-map-wrap [class*=\"react-transform-element\"] {\n overflow: visible !important;\n }\n .figma-story-map-wrap .pisell-floor-map-layout {\n overflow: visible !important;\n }\n .figma-table-card,\n .figma-table-card * {\n visibility: visible !important;\n }\n .figma-table-card {\n color: ").concat(FIGMA.gray900, ";\n }\n .figma-table-card .ant-avatar {\n flex-shrink: 0;\n }\n ")));
1233
+ }
1234
+ };