@squadbase/vantage 0.6.1-dev2.5f947f1 → 0.6.2-dev1.31accb1
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/dist/add-DY4AXANK.js +6 -0
- package/dist/add-DY4AXANK.js.map +1 -0
- package/dist/{build-O5TVNH4E.js → build-TVKFIVFQ.js} +8 -8
- package/dist/{build-O5TVNH4E.js.map → build-TVKFIVFQ.js.map} +1 -1
- package/dist/{check-WFBEDHDR.js → check-3KHZXZMQ.js} +6 -6
- package/dist/{check-WFBEDHDR.js.map → check-3KHZXZMQ.js.map} +1 -1
- package/dist/{chunk-LSRMRIXA.js → chunk-AG6RZ2RR.js} +1004 -23
- package/dist/chunk-AG6RZ2RR.js.map +1 -0
- package/dist/{chunk-KLEIVDUV.js → chunk-CEXAQQ5W.js} +150 -11
- package/dist/chunk-CEXAQQ5W.js.map +1 -0
- package/dist/{chunk-JGRMRXXZ.js → chunk-JKLLFVEU.js} +3 -3
- package/dist/{chunk-JGRMRXXZ.js.map → chunk-JKLLFVEU.js.map} +1 -1
- package/dist/{chunk-EP6JHXSR.js → chunk-LMUACBMA.js} +3 -3
- package/dist/{chunk-EP6JHXSR.js.map → chunk-LMUACBMA.js.map} +1 -1
- package/dist/{chunk-RPZAALCX.js → chunk-OB6UBJXF.js} +153 -153
- package/dist/{chunk-RPZAALCX.js.map → chunk-OB6UBJXF.js.map} +1 -1
- package/dist/{chunk-BCE22JSM.js → chunk-P7W4LR3Z.js} +32 -13
- package/dist/chunk-P7W4LR3Z.js.map +1 -0
- package/dist/{chunk-3G43C6OL.js → chunk-QI3XQKHS.js} +39 -3
- package/dist/chunk-QI3XQKHS.js.map +1 -0
- package/dist/{chunk-QDZA5JSL.js → chunk-U2M6HGKQ.js} +3 -3
- package/dist/{chunk-QDZA5JSL.js.map → chunk-U2M6HGKQ.js.map} +1 -1
- package/dist/{chunk-T3FLAGI6.js → chunk-VA776YE5.js} +3 -3
- package/dist/{chunk-T3FLAGI6.js.map → chunk-VA776YE5.js.map} +1 -1
- package/dist/cli.js +14 -11
- package/dist/cli.js.map +1 -1
- package/dist/components/index.d.ts +223 -1
- package/dist/components/index.js +2 -2
- package/dist/{dev-NZRLOQCL.js → dev-GDKATCC7.js} +22 -11
- package/dist/dev-GDKATCC7.js.map +1 -0
- package/dist/doc/index.js +2 -0
- package/dist/doc/index.js.map +1 -1
- package/dist/{docs-ZGDJUHJI.js → docs-EJJ3BECT.js} +3 -3
- package/dist/{docs-ZGDJUHJI.js.map → docs-EJJ3BECT.js.map} +1 -1
- package/dist/{doctor-VFKEMR54.js → doctor-WQXPXP6K.js} +7 -7
- package/dist/doctor-WQXPXP6K.js.map +1 -0
- package/dist/{preview-QDCIVVSR.js → preview-OGMCNQUO.js} +12 -4
- package/dist/preview-OGMCNQUO.js.map +1 -0
- package/dist/{routes-RHP5FVGD.js → routes-MWBWWOJ2.js} +5 -5
- package/dist/{routes-RHP5FVGD.js.map → routes-MWBWWOJ2.js.map} +1 -1
- package/dist/{search-RFBELGY7.js → search-6Y422SV6.js} +3 -3
- package/dist/{search-RFBELGY7.js.map → search-6Y422SV6.js.map} +1 -1
- package/dist/slide/index.js +61 -15
- package/dist/slide/index.js.map +1 -1
- package/dist/table/index.js +6 -5
- package/dist/table/index.js.map +1 -1
- package/dist/ui/index.d.ts +140 -10
- package/dist/ui/index.js +1405 -63
- package/dist/ui/index.js.map +1 -1
- package/dist/{upgrade-GF2P67M6.js → upgrade-HCANX4GQ.js} +6 -6
- package/dist/{upgrade-GF2P67M6.js.map → upgrade-HCANX4GQ.js.map} +1 -1
- package/dist/vite/index.js +3 -3
- package/docs/en/changelog.md +24 -0
- package/docs/en/cli-reference.md +30 -0
- package/docs/en/parts/page-shell.md +1 -1
- package/docs/index.json +291 -61
- package/docs/ja/changelog.md +50 -0
- package/docs/ja/cli-reference.md +29 -0
- package/docs/ja/components.md +33 -89
- package/docs/ja/page-types/csv.md +83 -0
- package/docs/ja/page-types/doc.md +83 -0
- package/docs/ja/page-types/excel.md +82 -0
- package/docs/ja/page-types/slide.md +132 -0
- package/docs/ja/page-types.md +47 -0
- package/docs/ja/parts/area-chart.md +61 -0
- package/docs/ja/parts/bar-chart.md +69 -0
- package/docs/ja/parts/bar-list.md +35 -0
- package/docs/ja/parts/category-bar.md +36 -0
- package/docs/ja/parts/donut-chart.md +47 -0
- package/docs/ja/parts/echart.md +3 -0
- package/docs/ja/parts/line-chart.md +58 -0
- package/docs/ja/parts/page-shell.md +1 -1
- package/docs/ja/parts/progress-circle.md +34 -0
- package/docs/ja/parts/sparkline.md +1 -1
- package/docs/ja/parts/tracker.md +32 -0
- package/docs/ja/routing.md +8 -86
- package/docs/ja/ui/alert-dialog.md +41 -0
- package/docs/ja/ui/avatar.md +31 -0
- package/docs/ja/ui/combobox.md +74 -0
- package/docs/ja/ui/drawer.md +41 -0
- package/docs/ja/ui/field.md +42 -0
- package/docs/ja/ui/hover-card.md +21 -0
- package/docs/ja/ui/kbd.md +16 -0
- package/docs/ja/ui/pagination.md +36 -0
- package/docs/ja/ui/radio-group.md +21 -0
- package/docs/ja/ui/toast.md +46 -0
- package/docs/ja/ui-and-theming.md +14 -7
- package/package.json +18 -12
- package/registry/ui/accordion.tsx +74 -0
- package/registry/ui/alert-dialog.tsx +189 -0
- package/registry/ui/alert.tsx +78 -0
- package/registry/ui/app-shell.tsx +281 -0
- package/registry/ui/area-chart.tsx +1015 -0
- package/registry/ui/avatar.tsx +110 -0
- package/registry/ui/badge.tsx +54 -0
- package/registry/ui/bar-chart.tsx +1013 -0
- package/registry/ui/bar-list.tsx +302 -0
- package/registry/ui/breadcrumb.tsx +126 -0
- package/registry/ui/button.tsx +60 -0
- package/registry/ui/calendar.tsx +221 -0
- package/registry/ui/card.tsx +105 -0
- package/registry/ui/category-bar.tsx +281 -0
- package/registry/ui/checkbox.tsx +28 -0
- package/registry/ui/collapsible.tsx +21 -0
- package/registry/ui/combobox.tsx +310 -0
- package/registry/ui/command.tsx +196 -0
- package/registry/ui/dashboard-card.tsx +174 -0
- package/registry/ui/data-table.tsx +16 -91
- package/registry/ui/date-range-picker.tsx +209 -0
- package/registry/ui/dialog.tsx +159 -0
- package/registry/ui/donut-chart.tsx +1004 -0
- package/registry/ui/drawer.tsx +229 -0
- package/registry/ui/dropdown-menu.tsx +272 -0
- package/registry/ui/echart.tsx +486 -0
- package/registry/ui/field.tsx +240 -0
- package/registry/ui/filter-bar.tsx +365 -0
- package/registry/ui/funnel-steps.tsx +274 -0
- package/registry/ui/hover-card.tsx +52 -0
- package/registry/ui/input-group.tsx +158 -0
- package/registry/ui/input.tsx +22 -0
- package/registry/ui/kbd.tsx +28 -0
- package/registry/ui/label.tsx +20 -0
- package/registry/ui/line-chart.tsx +1007 -0
- package/registry/ui/metric-value.tsx +54 -0
- package/registry/ui/multi-select.tsx +226 -0
- package/registry/ui/page-shell.tsx +227 -0
- package/registry/ui/pagination.tsx +138 -0
- package/registry/ui/placeholder.tsx +30 -0
- package/registry/ui/popover.tsx +90 -0
- package/registry/ui/progress-circle.tsx +272 -0
- package/registry/ui/progress.tsx +83 -0
- package/registry/ui/radio-group.tsx +39 -0
- package/registry/ui/scroll-area.tsx +55 -0
- package/registry/ui/searchable-select.tsx +209 -0
- package/registry/ui/section-header.tsx +41 -0
- package/registry/ui/segmented-control.tsx +71 -0
- package/registry/ui/select.tsx +253 -0
- package/registry/ui/separator.tsx +25 -0
- package/registry/ui/sheet.tsx +137 -0
- package/registry/ui/sidebar.tsx +723 -0
- package/registry/ui/skeleton.tsx +15 -0
- package/registry/ui/slider.tsx +54 -0
- package/registry/ui/sparkline.tsx +155 -0
- package/registry/ui/spinner.tsx +12 -0
- package/registry/ui/states.tsx +61 -0
- package/registry/ui/status-badge.tsx +79 -0
- package/registry/ui/switch.tsx +32 -0
- package/registry/ui/table.tsx +116 -0
- package/registry/ui/tabs.tsx +82 -0
- package/registry/ui/textarea.tsx +20 -0
- package/registry/ui/toast.tsx +250 -0
- package/registry/ui/toggle-group.tsx +89 -0
- package/registry/ui/toggle.tsx +45 -0
- package/registry/ui/tooltip.tsx +66 -0
- package/registry/ui/tracker.tsx +236 -0
- package/registry/ui/trend-indicator.tsx +62 -0
- package/skills/vantage-add-feature/SKILL.md +9 -7
- package/skills/vantage-design/SKILL.md +3 -1
- package/skills/vantage-design/references/format.md +1 -1
- package/skills/vantage-pitfalls/SKILL.md +5 -1
- package/skills/vantage-slide/SKILL.md +17 -0
- package/templates/AGENTS.md +10 -1
- package/templates/agents/api.md +29 -0
- package/templates/agents/csv.md +2 -1
- package/templates/agents/doc.md +4 -3
- package/templates/agents/page.md +22 -8
- package/templates/agents/slide.md +13 -1
- package/templates/agents/xlsx.md +2 -1
- package/theme.css +15 -1
- package/dist/add-EISGSZAH.js +0 -6
- package/dist/add-EISGSZAH.js.map +0 -1
- package/dist/chunk-3G43C6OL.js.map +0 -1
- package/dist/chunk-BCE22JSM.js.map +0 -1
- package/dist/chunk-KLEIVDUV.js.map +0 -1
- package/dist/chunk-LSRMRIXA.js.map +0 -1
- package/dist/dev-NZRLOQCL.js.map +0 -1
- package/dist/doctor-VFKEMR54.js.map +0 -1
- package/dist/preview-QDCIVVSR.js.map +0 -1
package/dist/slide/index.js
CHANGED
|
@@ -380,6 +380,41 @@ function isForwardKey(e) {
|
|
|
380
380
|
function isBackwardKey(e) {
|
|
381
381
|
return e.key === "ArrowLeft" || e.key === "ArrowUp" || e.key === "PageUp";
|
|
382
382
|
}
|
|
383
|
+
|
|
384
|
+
// src/slide/messages.ts
|
|
385
|
+
var MESSAGES_JA = {
|
|
386
|
+
previousSlide: "\u524D\u306E\u30B9\u30E9\u30A4\u30C9",
|
|
387
|
+
nextSlide: "\u6B21\u306E\u30B9\u30E9\u30A4\u30C9",
|
|
388
|
+
slideList: "\u30B9\u30E9\u30A4\u30C9\u4E00\u89A7",
|
|
389
|
+
closeSlideList: "\u30B9\u30E9\u30A4\u30C9\u4E00\u89A7\u3092\u9589\u3058\u308B (L)",
|
|
390
|
+
openSlideList: "\u30B9\u30E9\u30A4\u30C9\u4E00\u89A7\u3092\u958B\u304F (L)",
|
|
391
|
+
fullscreen: "\u5168\u753B\u9762\u8868\u793A (F)",
|
|
392
|
+
exitFullscreen: "\u5168\u753B\u9762\u8868\u793A\u3092\u7D42\u4E86 (F)",
|
|
393
|
+
exportToPowerPoint: "PowerPoint \u3068\u3057\u3066\u66F8\u304D\u51FA\u3059",
|
|
394
|
+
slideNumber: (n) => `\u30B9\u30E9\u30A4\u30C9 ${n}`
|
|
395
|
+
};
|
|
396
|
+
var MESSAGES_EN = {
|
|
397
|
+
previousSlide: "Previous slide",
|
|
398
|
+
nextSlide: "Next slide",
|
|
399
|
+
slideList: "Slide list",
|
|
400
|
+
closeSlideList: "Close slide list (L)",
|
|
401
|
+
openSlideList: "Open slide list (L)",
|
|
402
|
+
fullscreen: "Fullscreen (F)",
|
|
403
|
+
exitFullscreen: "Exit fullscreen (F)",
|
|
404
|
+
exportToPowerPoint: "Export to PowerPoint",
|
|
405
|
+
slideNumber: (n) => `Slide ${n}`
|
|
406
|
+
};
|
|
407
|
+
function detectLanguage() {
|
|
408
|
+
if (typeof document === "undefined") return "ja";
|
|
409
|
+
const lang = document.documentElement.lang;
|
|
410
|
+
if (!lang) return "ja";
|
|
411
|
+
if (lang.toLowerCase().startsWith("en")) return "en";
|
|
412
|
+
return "ja";
|
|
413
|
+
}
|
|
414
|
+
function getSlideMessages() {
|
|
415
|
+
const lang = detectLanguage();
|
|
416
|
+
return lang === "en" ? MESSAGES_EN : MESSAGES_JA;
|
|
417
|
+
}
|
|
383
418
|
var THUMB_WIDTH = 176;
|
|
384
419
|
var THUMB_HEIGHT = Math.round(THUMB_WIDTH * CANVAS_HEIGHT / CANVAS_WIDTH);
|
|
385
420
|
var NUMBER_COLUMN = 20;
|
|
@@ -400,6 +435,7 @@ var ITEM_BUTTON = {
|
|
|
400
435
|
};
|
|
401
436
|
function SlideRail({ slides, index, onSelect, themeVars }) {
|
|
402
437
|
const listRef = useRef(null);
|
|
438
|
+
const messages = useMemo(() => getSlideMessages(), []);
|
|
403
439
|
useEffect(() => {
|
|
404
440
|
const item = listRef.current?.children[index];
|
|
405
441
|
item?.scrollIntoView({ block: "nearest" });
|
|
@@ -408,7 +444,7 @@ function SlideRail({ slides, index, onSelect, themeVars }) {
|
|
|
408
444
|
"div",
|
|
409
445
|
{
|
|
410
446
|
"data-slide-chrome": "",
|
|
411
|
-
"aria-label":
|
|
447
|
+
"aria-label": messages.slideList,
|
|
412
448
|
style: {
|
|
413
449
|
flex: "0 0 auto",
|
|
414
450
|
width: RAIL_WIDTH,
|
|
@@ -452,7 +488,7 @@ function SlideRail({ slides, index, onSelect, themeVars }) {
|
|
|
452
488
|
style: ITEM_BUTTON,
|
|
453
489
|
onClick: () => onSelect(i),
|
|
454
490
|
"aria-current": active ? "true" : void 0,
|
|
455
|
-
"aria-label":
|
|
491
|
+
"aria-label": messages.slideNumber(i + 1),
|
|
456
492
|
children: [
|
|
457
493
|
/* @__PURE__ */ jsx(
|
|
458
494
|
"span",
|
|
@@ -523,6 +559,7 @@ function SlideToolbar({
|
|
|
523
559
|
onPrev,
|
|
524
560
|
onNext,
|
|
525
561
|
onFullscreen,
|
|
562
|
+
canFullscreen,
|
|
526
563
|
onExport,
|
|
527
564
|
exportProgress,
|
|
528
565
|
railOpen,
|
|
@@ -531,6 +568,7 @@ function SlideToolbar({
|
|
|
531
568
|
}) {
|
|
532
569
|
const [hovered, setHovered] = useState(false);
|
|
533
570
|
const busy = exportProgress !== null && exportProgress.phase !== "done";
|
|
571
|
+
const messages = useMemo(() => getSlideMessages(), []);
|
|
534
572
|
return /* @__PURE__ */ jsxs(
|
|
535
573
|
"div",
|
|
536
574
|
{
|
|
@@ -556,36 +594,36 @@ function SlideToolbar({
|
|
|
556
594
|
userSelect: "none"
|
|
557
595
|
},
|
|
558
596
|
children: [
|
|
559
|
-
/* @__PURE__ */ jsx("button", { type: "button", style: BUTTON, onClick: onPrev, "aria-label":
|
|
597
|
+
/* @__PURE__ */ jsx("button", { type: "button", style: BUTTON, onClick: onPrev, "aria-label": messages.previousSlide, children: /* @__PURE__ */ jsx(ChevronLeftIcon, { size: 16, "aria-hidden": "true" }) }),
|
|
560
598
|
/* @__PURE__ */ jsxs("span", { style: { padding: "0 8px", fontSize: 13, fontVariantNumeric: "tabular-nums" }, children: [
|
|
561
599
|
current,
|
|
562
600
|
" / ",
|
|
563
601
|
total
|
|
564
602
|
] }),
|
|
565
|
-
/* @__PURE__ */ jsx("button", { type: "button", style: BUTTON, onClick: onNext, "aria-label":
|
|
603
|
+
/* @__PURE__ */ jsx("button", { type: "button", style: BUTTON, onClick: onNext, "aria-label": messages.nextSlide, children: /* @__PURE__ */ jsx(ChevronRightIcon, { size: 16, "aria-hidden": "true" }) }),
|
|
566
604
|
isFullscreen ? null : /* @__PURE__ */ jsx(
|
|
567
605
|
"button",
|
|
568
606
|
{
|
|
569
607
|
type: "button",
|
|
570
608
|
style: BUTTON,
|
|
571
609
|
onClick: onToggleRail,
|
|
572
|
-
"aria-label": railOpen ?
|
|
573
|
-
title: railOpen ?
|
|
610
|
+
"aria-label": railOpen ? messages.closeSlideList : messages.openSlideList,
|
|
611
|
+
title: railOpen ? messages.closeSlideList : messages.openSlideList,
|
|
574
612
|
"aria-pressed": railOpen,
|
|
575
613
|
children: railOpen ? /* @__PURE__ */ jsx(PanelLeftCloseIcon, { size: 16, "aria-hidden": "true" }) : /* @__PURE__ */ jsx(PanelLeftOpenIcon, { size: 16, "aria-hidden": "true" })
|
|
576
614
|
}
|
|
577
615
|
),
|
|
578
|
-
/* @__PURE__ */ jsx(
|
|
616
|
+
canFullscreen ? /* @__PURE__ */ jsx(
|
|
579
617
|
"button",
|
|
580
618
|
{
|
|
581
619
|
type: "button",
|
|
582
620
|
style: BUTTON,
|
|
583
621
|
onClick: onFullscreen,
|
|
584
|
-
"aria-label": isFullscreen ?
|
|
585
|
-
title: isFullscreen ?
|
|
622
|
+
"aria-label": isFullscreen ? messages.exitFullscreen : messages.fullscreen,
|
|
623
|
+
title: isFullscreen ? messages.exitFullscreen : messages.fullscreen,
|
|
586
624
|
children: isFullscreen ? /* @__PURE__ */ jsx(MinimizeIcon, { size: 16, "aria-hidden": "true" }) : /* @__PURE__ */ jsx(MaximizeIcon, { size: 16, "aria-hidden": "true" })
|
|
587
625
|
}
|
|
588
|
-
),
|
|
626
|
+
) : null,
|
|
589
627
|
/* @__PURE__ */ jsxs(
|
|
590
628
|
"button",
|
|
591
629
|
{
|
|
@@ -593,8 +631,8 @@ function SlideToolbar({
|
|
|
593
631
|
style: { ...BUTTON, opacity: busy ? 0.6 : 1, cursor: busy ? "progress" : "pointer" },
|
|
594
632
|
onClick: onExport,
|
|
595
633
|
disabled: busy,
|
|
596
|
-
"aria-label":
|
|
597
|
-
title:
|
|
634
|
+
"aria-label": messages.exportToPowerPoint,
|
|
635
|
+
title: messages.exportToPowerPoint,
|
|
598
636
|
children: [
|
|
599
637
|
/* @__PURE__ */ jsx(DownloadIcon, { size: 16, "aria-hidden": "true" }),
|
|
600
638
|
busy ? /* @__PURE__ */ jsxs("span", { children: [
|
|
@@ -1376,6 +1414,10 @@ function collectSlides(children) {
|
|
|
1376
1414
|
}
|
|
1377
1415
|
return { slides, transitions };
|
|
1378
1416
|
}
|
|
1417
|
+
function fullscreenEnabled() {
|
|
1418
|
+
if (typeof document === "undefined") return false;
|
|
1419
|
+
return document.fullscreenEnabled === true;
|
|
1420
|
+
}
|
|
1379
1421
|
function defaultExportName() {
|
|
1380
1422
|
if (typeof window === "undefined") return "slides";
|
|
1381
1423
|
const parts = window.location.pathname.split("/").filter(Boolean);
|
|
@@ -1396,6 +1438,7 @@ function SlideDeck({
|
|
|
1396
1438
|
const index = Math.min(Math.max(Math.floor(page) - 1, 0), Math.max(total - 1, 0));
|
|
1397
1439
|
const [railOpen, setRailOpen] = useSearchState("rail", rail);
|
|
1398
1440
|
const [isFullscreen, setIsFullscreen] = useState(false);
|
|
1441
|
+
const [canFullscreen] = useState(fullscreenEnabled);
|
|
1399
1442
|
const [entryDirection, setEntryDirection] = useState("jump");
|
|
1400
1443
|
const [exporting, setExporting] = useState(null);
|
|
1401
1444
|
const stepControllerRef = useRef(null);
|
|
@@ -1421,9 +1464,11 @@ function SlideDeck({
|
|
|
1421
1464
|
const toggleRail = useCallback(() => setRailOpen((open) => !open), [setRailOpen]);
|
|
1422
1465
|
const toggleFullscreen = useCallback(() => {
|
|
1423
1466
|
const el = viewportRef.current;
|
|
1424
|
-
if (!el) return;
|
|
1425
|
-
if (document.fullscreenElement)
|
|
1426
|
-
|
|
1467
|
+
if (!el || !fullscreenEnabled()) return;
|
|
1468
|
+
if (document.fullscreenElement) document.exitFullscreen().catch(() => {
|
|
1469
|
+
});
|
|
1470
|
+
else el.requestFullscreen?.().catch(() => {
|
|
1471
|
+
});
|
|
1427
1472
|
}, []);
|
|
1428
1473
|
useEffect(() => {
|
|
1429
1474
|
const onChange = () => setIsFullscreen(document.fullscreenElement === viewportRef.current);
|
|
@@ -1541,6 +1586,7 @@ function SlideDeck({
|
|
|
1541
1586
|
onPrev: goPrev,
|
|
1542
1587
|
onNext: goNext,
|
|
1543
1588
|
onFullscreen: toggleFullscreen,
|
|
1589
|
+
canFullscreen,
|
|
1544
1590
|
onExport,
|
|
1545
1591
|
exportProgress: exporting,
|
|
1546
1592
|
railOpen,
|