@univerjs/design 1.0.0-beta.1 → 1.0.0-beta.2

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 (84) hide show
  1. package/lib/cjs/index.js +124 -40
  2. package/lib/cjs/locale/ar-SA.js +3 -0
  3. package/lib/cjs/locale/ca-ES.js +3 -0
  4. package/lib/cjs/locale/de-DE.js +3 -0
  5. package/lib/cjs/locale/en-US.js +3 -0
  6. package/lib/cjs/locale/es-ES.js +3 -0
  7. package/lib/cjs/locale/fa-IR.js +3 -0
  8. package/lib/cjs/locale/fr-FR.js +3 -0
  9. package/lib/cjs/locale/id-ID.js +3 -0
  10. package/lib/cjs/locale/it-IT.js +3 -0
  11. package/lib/cjs/locale/ja-JP.js +3 -0
  12. package/lib/cjs/locale/ko-KR.js +3 -0
  13. package/lib/cjs/locale/pl-PL.js +3 -0
  14. package/lib/cjs/locale/pt-BR.js +3 -0
  15. package/lib/cjs/locale/ru-RU.js +3 -0
  16. package/lib/cjs/locale/sk-SK.js +3 -0
  17. package/lib/cjs/locale/vi-VN.js +3 -0
  18. package/lib/cjs/locale/zh-CN.js +3 -0
  19. package/lib/cjs/locale/zh-HK.js +3 -0
  20. package/lib/cjs/locale/zh-TW.js +3 -0
  21. package/lib/es/index.js +124 -40
  22. package/lib/es/locale/ar-SA.js +3 -0
  23. package/lib/es/locale/ca-ES.js +3 -0
  24. package/lib/es/locale/de-DE.js +3 -0
  25. package/lib/es/locale/en-US.js +3 -0
  26. package/lib/es/locale/es-ES.js +3 -0
  27. package/lib/es/locale/fa-IR.js +3 -0
  28. package/lib/es/locale/fr-FR.js +3 -0
  29. package/lib/es/locale/id-ID.js +3 -0
  30. package/lib/es/locale/it-IT.js +3 -0
  31. package/lib/es/locale/ja-JP.js +3 -0
  32. package/lib/es/locale/ko-KR.js +3 -0
  33. package/lib/es/locale/pl-PL.js +3 -0
  34. package/lib/es/locale/pt-BR.js +3 -0
  35. package/lib/es/locale/ru-RU.js +3 -0
  36. package/lib/es/locale/sk-SK.js +3 -0
  37. package/lib/es/locale/vi-VN.js +3 -0
  38. package/lib/es/locale/zh-CN.js +3 -0
  39. package/lib/es/locale/zh-HK.js +3 -0
  40. package/lib/es/locale/zh-TW.js +3 -0
  41. package/lib/index.css +75 -2
  42. package/lib/index.js +124 -40
  43. package/lib/locale/ar-SA.js +3 -0
  44. package/lib/locale/ca-ES.js +3 -0
  45. package/lib/locale/de-DE.js +3 -0
  46. package/lib/locale/en-US.js +3 -0
  47. package/lib/locale/es-ES.js +3 -0
  48. package/lib/locale/fa-IR.js +3 -0
  49. package/lib/locale/fr-FR.js +3 -0
  50. package/lib/locale/id-ID.js +3 -0
  51. package/lib/locale/it-IT.js +3 -0
  52. package/lib/locale/ja-JP.js +3 -0
  53. package/lib/locale/ko-KR.js +3 -0
  54. package/lib/locale/pl-PL.js +3 -0
  55. package/lib/locale/pt-BR.js +3 -0
  56. package/lib/locale/ru-RU.js +3 -0
  57. package/lib/locale/sk-SK.js +3 -0
  58. package/lib/locale/vi-VN.js +3 -0
  59. package/lib/locale/zh-CN.js +3 -0
  60. package/lib/locale/zh-HK.js +3 -0
  61. package/lib/locale/zh-TW.js +3 -0
  62. package/lib/types/components/pager/Pager.d.ts +2 -0
  63. package/lib/types/locale/en-US.d.ts +3 -0
  64. package/lib/umd/index.js +20 -17
  65. package/lib/umd/locale/ar-SA.js +1 -1
  66. package/lib/umd/locale/ca-ES.js +1 -1
  67. package/lib/umd/locale/de-DE.js +1 -1
  68. package/lib/umd/locale/en-US.js +1 -1
  69. package/lib/umd/locale/es-ES.js +1 -1
  70. package/lib/umd/locale/fa-IR.js +1 -1
  71. package/lib/umd/locale/fr-FR.js +1 -1
  72. package/lib/umd/locale/id-ID.js +1 -1
  73. package/lib/umd/locale/it-IT.js +1 -1
  74. package/lib/umd/locale/ja-JP.js +1 -1
  75. package/lib/umd/locale/ko-KR.js +1 -1
  76. package/lib/umd/locale/pl-PL.js +1 -1
  77. package/lib/umd/locale/pt-BR.js +1 -1
  78. package/lib/umd/locale/ru-RU.js +1 -1
  79. package/lib/umd/locale/sk-SK.js +1 -1
  80. package/lib/umd/locale/vi-VN.js +1 -1
  81. package/lib/umd/locale/zh-CN.js +1 -1
  82. package/lib/umd/locale/zh-HK.js +1 -1
  83. package/lib/umd/locale/zh-TW.js +1 -1
  84. package/package.json +3 -3
package/lib/es/index.js CHANGED
@@ -2500,9 +2500,12 @@ const FormDualColumnLayout = (props) => {
2500
2500
  * limitations under the License.
2501
2501
  */
2502
2502
  function Pager(props) {
2503
- const { className, value: current = 0, total: count = 0, loop, text: propText, onChange } = props;
2503
+ const { className, value: current = 0, total: count = 0, loop, text: propText, previousButtonAriaLabel, nextButtonAriaLabel, onChange } = props;
2504
+ const { locale } = useContext(ConfigContext);
2504
2505
  const text = propText ?? `${current}/${count}`;
2505
2506
  const hasValue = count > 0;
2507
+ const previousButtonDisabled = !loop && current <= 1;
2508
+ const nextButtonDisabled = !loop && current >= count;
2506
2509
  const onClickLeftArrow = () => {
2507
2510
  if (current === 1) {
2508
2511
  if (loop) onChange === null || onChange === void 0 || onChange(count);
@@ -2519,23 +2522,33 @@ function Pager(props) {
2519
2522
  children: hasValue ? /* @__PURE__ */ jsxs(Fragment, { children: [
2520
2523
  /* @__PURE__ */ jsx("button", {
2521
2524
  "data-u-comp": "pager-left-arrow",
2522
- className: "univer-inline-flex univer-size-4 univer-cursor-pointer univer-items-center univer-rounded univer-border-none univer-bg-transparent univer-p-0 univer-text-current hover:univer-bg-gray-50 dark:hover:!univer-bg-gray-600",
2525
+ className: "univer-inline-flex univer-size-6 univer-cursor-pointer univer-items-center univer-rounded univer-border-none univer-bg-transparent univer-p-0 univer-text-current hover:univer-bg-gray-50 focus-visible:univer-outline-none focus-visible:univer-ring-2 focus-visible:univer-ring-primary-500 disabled:univer-cursor-default disabled:univer-opacity-40 dark:hover:!univer-bg-gray-600",
2523
2526
  type: "button",
2524
- role: "button",
2527
+ "aria-label": previousButtonAriaLabel ?? (locale === null || locale === void 0 ? void 0 : locale.Accessibility.previous) ?? "Previous",
2528
+ disabled: previousButtonDisabled,
2525
2529
  onClick: onClickLeftArrow,
2526
- children: /* @__PURE__ */ jsx(MoreLeftIcon, { className: "rtl:univer-rotate-180" })
2530
+ children: /* @__PURE__ */ jsx(MoreLeftIcon, {
2531
+ className: "rtl:univer-rotate-180",
2532
+ "aria-hidden": "true"
2533
+ })
2527
2534
  }),
2528
2535
  /* @__PURE__ */ jsx("span", {
2529
2536
  className: "univer-mx-1",
2537
+ "aria-live": "polite",
2538
+ "aria-atomic": "true",
2530
2539
  children: text
2531
2540
  }),
2532
2541
  /* @__PURE__ */ jsx("button", {
2533
2542
  "data-u-comp": "pager-right-arrow",
2534
- className: "univer-inline-flex univer-size-4 univer-cursor-pointer univer-items-center univer-rounded univer-border-none univer-bg-transparent univer-p-0 univer-text-current hover:univer-bg-gray-50 dark:hover:!univer-bg-gray-600",
2543
+ className: "univer-inline-flex univer-size-6 univer-cursor-pointer univer-items-center univer-rounded univer-border-none univer-bg-transparent univer-p-0 univer-text-current hover:univer-bg-gray-50 focus-visible:univer-outline-none focus-visible:univer-ring-2 focus-visible:univer-ring-primary-500 disabled:univer-cursor-default disabled:univer-opacity-40 dark:hover:!univer-bg-gray-600",
2535
2544
  type: "button",
2536
- role: "button",
2545
+ "aria-label": nextButtonAriaLabel ?? (locale === null || locale === void 0 ? void 0 : locale.Accessibility.next) ?? "Next",
2546
+ disabled: nextButtonDisabled,
2537
2547
  onClick: onClickRightArrow,
2538
- children: /* @__PURE__ */ jsx(MoreRightIcon, { className: "rtl:univer-rotate-180" })
2548
+ children: /* @__PURE__ */ jsx(MoreRightIcon, {
2549
+ className: "rtl:univer-rotate-180",
2550
+ "aria-hidden": "true"
2551
+ })
2539
2552
  })
2540
2553
  ] }) : /* @__PURE__ */ jsx("div", {
2541
2554
  className: "univer-mx-1",
@@ -2561,40 +2574,83 @@ function Pager(props) {
2561
2574
  * See the License for the specific language governing permissions and
2562
2575
  * limitations under the License.
2563
2576
  */
2564
- const buttonClassName = `
2565
- univer-flex univer-cursor-pointer univer-items-center univer-justify-center univer-border-none
2566
- univer-bg-transparent univer-p-0 univer-text-current
2567
- hover:univer-text-gray-0
2577
+ const toolbarButtonClassName = `
2578
+ !univer-border-transparent !univer-bg-transparent !univer-text-gray-300
2579
+ hover:!univer-bg-gray-600 hover:!univer-text-gray-0
2580
+ focus-visible:!univer-outline-none focus-visible:!univer-ring-2 focus-visible:!univer-ring-gray-0
2581
+ `;
2582
+ const focusableElementSelector = `
2583
+ button:not([disabled]), [href], input:not([disabled]), select:not([disabled]),
2584
+ textarea:not([disabled]), [tabindex]:not([tabindex="-1"])
2568
2585
  `;
2569
2586
  function Gallery(props) {
2587
+ var _locale$Accessibility;
2570
2588
  const { className, images, open, onOpenChange } = props;
2571
- const [isVisible, setIsVisible] = useState(false);
2589
+ const [isVisible, setIsVisible] = useState(Boolean(open));
2572
2590
  const [activeImageIndex, setActiveImageIndex] = useState(0);
2573
2591
  const [zoomLevel, setZoomLevel] = useState(1);
2574
2592
  const { direction, locale } = useContext(ConfigContext);
2575
2593
  const dialogRef = useRef(null);
2594
+ const closeButtonRef = useRef(null);
2595
+ const previouslyFocusedElementRef = useRef(null);
2576
2596
  const activeImage = images[activeImageIndex];
2577
2597
  const hasPagination = images.length > 1;
2598
+ const imageLabel = (locale === null || locale === void 0 || (_locale$Accessibility = locale.Accessibility.image) === null || _locale$Accessibility === void 0 ? void 0 : _locale$Accessibility.replace("{0}", String(activeImageIndex + 1)).replace("{1}", String(images.length))) ?? `Image ${activeImageIndex + 1} of ${images.length}`;
2578
2599
  useEffect(() => {
2579
- if (open && dialogRef.current) dialogRef.current.focus();
2600
+ const timer = setTimeout(() => {
2601
+ var _previouslyFocusedEle;
2602
+ setIsVisible(Boolean(open));
2603
+ if (!open && ((_previouslyFocusedEle = previouslyFocusedElementRef.current) === null || _previouslyFocusedEle === void 0 ? void 0 : _previouslyFocusedEle.isConnected)) previouslyFocusedElementRef.current.focus();
2604
+ if (!open) previouslyFocusedElementRef.current = null;
2605
+ }, open ? 0 : 150);
2606
+ return () => clearTimeout(timer);
2580
2607
  }, [open]);
2581
2608
  useEffect(() => {
2609
+ var _closeButtonRef$curre;
2582
2610
  if (!open) return;
2583
- const handler = (e) => {
2584
- if (e.key === "Escape") onOpenChange === null || onOpenChange === void 0 || onOpenChange(false);
2611
+ previouslyFocusedElementRef.current = document.activeElement instanceof HTMLElement ? document.activeElement : null;
2612
+ (_closeButtonRef$curre = closeButtonRef.current) === null || _closeButtonRef$curre === void 0 || _closeButtonRef$curre.focus();
2613
+ }, [open]);
2614
+ useEffect(() => {
2615
+ if (!open && !isVisible) return;
2616
+ const handler = (event) => {
2617
+ if (event.key === "Escape" && open) {
2618
+ event.preventDefault();
2619
+ event.stopPropagation();
2620
+ onOpenChange === null || onOpenChange === void 0 || onOpenChange(false);
2621
+ return;
2622
+ }
2623
+ if (event.key !== "Tab" || !dialogRef.current) return;
2624
+ const focusableElements = Array.from(dialogRef.current.querySelectorAll(focusableElementSelector));
2625
+ if (focusableElements.length === 0) {
2626
+ event.preventDefault();
2627
+ dialogRef.current.focus();
2628
+ return;
2629
+ }
2630
+ const firstElement = focusableElements[0];
2631
+ const lastElement = focusableElements[focusableElements.length - 1];
2632
+ const activeElement = document.activeElement;
2633
+ if (event.shiftKey && (activeElement === firstElement || !dialogRef.current.contains(activeElement))) {
2634
+ event.preventDefault();
2635
+ lastElement.focus();
2636
+ } else if (!event.shiftKey && (activeElement === lastElement || !dialogRef.current.contains(activeElement))) {
2637
+ event.preventDefault();
2638
+ firstElement.focus();
2639
+ }
2585
2640
  };
2586
2641
  window.addEventListener("keydown", handler);
2587
2642
  return () => window.removeEventListener("keydown", handler);
2588
- }, [open, onOpenChange]);
2643
+ }, [
2644
+ isVisible,
2645
+ onOpenChange,
2646
+ open
2647
+ ]);
2589
2648
  useEffect(() => {
2590
- if (open) setIsVisible(true);
2591
- else {
2592
- const timer = setTimeout(() => {
2593
- setIsVisible(false);
2594
- }, 150);
2595
- return () => clearTimeout(timer);
2596
- }
2597
- }, [open]);
2649
+ return () => {
2650
+ var _previouslyFocusedEle2;
2651
+ if ((_previouslyFocusedEle2 = previouslyFocusedElementRef.current) === null || _previouslyFocusedEle2 === void 0 ? void 0 : _previouslyFocusedEle2.isConnected) previouslyFocusedElementRef.current.focus();
2652
+ };
2653
+ }, []);
2598
2654
  useEffect(() => {
2599
2655
  if (!open) return;
2600
2656
  const handleWheel = (e) => {
@@ -2613,17 +2669,17 @@ function Gallery(props) {
2613
2669
  setZoomLevel(1);
2614
2670
  return;
2615
2671
  }
2616
- const newZoomLevel = zoomLevel + ratio;
2617
- if (newZoomLevel < .5) return;
2618
- if (newZoomLevel > 2) return;
2619
- setZoomLevel(newZoomLevel);
2672
+ setZoomLevel((previousZoomLevel) => Math.min(Math.max(.5, previousZoomLevel + ratio), 2));
2673
+ }
2674
+ function handleClose() {
2675
+ onOpenChange === null || onOpenChange === void 0 || onOpenChange(false);
2620
2676
  }
2621
2677
  return createPortal(/* @__PURE__ */ jsxs("div", {
2622
2678
  "data-u-comp": "gallery",
2623
2679
  dir: direction,
2624
2680
  role: "dialog",
2625
2681
  "aria-modal": "true",
2626
- "aria-label": locale === null || locale === void 0 ? void 0 : locale.Accessibility.imageGallery,
2682
+ "aria-label": (locale === null || locale === void 0 ? void 0 : locale.Accessibility.imageGallery) ?? "Image gallery",
2627
2683
  tabIndex: -1,
2628
2684
  ref: dialogRef,
2629
2685
  className: clsx("univer-fixed univer-inset-0 univer-z-[1080] univer-flex univer-h-screen univer-w-screen univer-select-none univer-items-center univer-justify-center", {
@@ -2634,7 +2690,18 @@ function Gallery(props) {
2634
2690
  /* @__PURE__ */ jsx("div", {
2635
2691
  className: "univer-absolute univer-inset-0 univer-size-full univer-bg-gray-900 univer-opacity-80",
2636
2692
  "aria-hidden": "true",
2637
- onClick: () => onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(false)
2693
+ onClick: handleClose
2694
+ }),
2695
+ /* @__PURE__ */ jsx(Button, {
2696
+ ref: closeButtonRef,
2697
+ "data-u-comp": "gallery-close",
2698
+ type: "button",
2699
+ variant: "ghost",
2700
+ size: "icon",
2701
+ "aria-label": (locale === null || locale === void 0 ? void 0 : locale.Accessibility.close) ?? "Close",
2702
+ className: "univer-absolute univer-right-4 univer-top-4 univer-z-10 univer-size-10 univer-rounded-full !univer-border-gray-500 !univer-bg-gray-800 !univer-text-gray-0 hover:!univer-bg-gray-700 focus-visible:!univer-outline-none focus-visible:!univer-ring-2 focus-visible:!univer-ring-gray-0 rtl:univer-left-4 rtl:univer-right-auto",
2703
+ onClick: handleClose,
2704
+ children: /* @__PURE__ */ jsx(CloseIcon, { "aria-hidden": "true" })
2638
2705
  }),
2639
2706
  /* @__PURE__ */ jsx("div", {
2640
2707
  className: "univer-relative univer-flex univer-w-fit univer-items-center univer-justify-center",
@@ -2642,10 +2709,16 @@ function Gallery(props) {
2642
2709
  className: "univer-h-full univer-w-full univer-object-contain univer-transition-transform univer-duration-300 univer-ease-out",
2643
2710
  style: { transform: `scale(${zoomLevel})` },
2644
2711
  src: activeImage,
2645
- alt: locale === null || locale === void 0 ? void 0 : locale.Accessibility.image.replace("{0}", String(activeImageIndex + 1)).replace("{1}", String(images.length)),
2712
+ alt: imageLabel,
2646
2713
  draggable: false
2647
2714
  })
2648
2715
  }),
2716
+ /* @__PURE__ */ jsx("span", {
2717
+ className: "univer-sr-only",
2718
+ "aria-live": "polite",
2719
+ "aria-atomic": "true",
2720
+ children: imageLabel
2721
+ }),
2649
2722
  /* @__PURE__ */ jsxs("footer", {
2650
2723
  className: "univer-absolute univer-bottom-6 univer-left-1/2 univer-flex -univer-translate-x-1/2 univer-items-center univer-gap-3 univer-rounded-full univer-bg-gray-800 univer-px-6 univer-py-3 univer-text-gray-400 rtl:univer-flex-row-reverse",
2651
2724
  children: [
@@ -2653,26 +2726,37 @@ function Gallery(props) {
2653
2726
  className: "!univer-text-gray-400 [&_[data-u-comp=pager-left-arrow]:hover]:!univer-bg-gray-600 [&_[data-u-comp=pager-right-arrow]:hover]:!univer-bg-gray-600",
2654
2727
  value: activeImageIndex + 1,
2655
2728
  total: images.length,
2729
+ previousButtonAriaLabel: (locale === null || locale === void 0 ? void 0 : locale.Accessibility.previous) ?? "Previous",
2730
+ nextButtonAriaLabel: (locale === null || locale === void 0 ? void 0 : locale.Accessibility.next) ?? "Next",
2656
2731
  onChange: (value) => setActiveImageIndex(value - 1)
2657
2732
  }),
2658
- /* @__PURE__ */ jsx("button", {
2733
+ /* @__PURE__ */ jsx(Button, {
2659
2734
  type: "button",
2660
- "aria-label": locale === null || locale === void 0 ? void 0 : locale.Accessibility.zoomIn,
2661
- className: buttonClassName,
2735
+ variant: "ghost",
2736
+ size: "icon",
2737
+ "aria-label": (locale === null || locale === void 0 ? void 0 : locale.Accessibility.zoomIn) ?? "Zoom in",
2738
+ className: toolbarButtonClassName,
2739
+ disabled: zoomLevel >= 2,
2662
2740
  onClick: () => handleToggleZoom(.25),
2663
2741
  children: /* @__PURE__ */ jsx(ZoomInIcon, { "aria-hidden": "true" })
2664
2742
  }),
2665
- /* @__PURE__ */ jsx("button", {
2743
+ /* @__PURE__ */ jsx(Button, {
2666
2744
  type: "button",
2667
- "aria-label": locale === null || locale === void 0 ? void 0 : locale.Accessibility.zoomOut,
2668
- className: buttonClassName,
2745
+ variant: "ghost",
2746
+ size: "icon",
2747
+ "aria-label": (locale === null || locale === void 0 ? void 0 : locale.Accessibility.zoomOut) ?? "Zoom out",
2748
+ className: toolbarButtonClassName,
2749
+ disabled: zoomLevel <= .5,
2669
2750
  onClick: () => handleToggleZoom(-.25),
2670
2751
  children: /* @__PURE__ */ jsx(ZoomOutIcon, { "aria-hidden": "true" })
2671
2752
  }),
2672
- /* @__PURE__ */ jsx("button", {
2753
+ /* @__PURE__ */ jsx(Button, {
2673
2754
  type: "button",
2674
- "aria-label": locale === null || locale === void 0 ? void 0 : locale.Accessibility.resetZoom,
2675
- className: buttonClassName,
2755
+ variant: "ghost",
2756
+ size: "icon",
2757
+ "aria-label": (locale === null || locale === void 0 ? void 0 : locale.Accessibility.resetZoom) ?? "Reset zoom",
2758
+ className: toolbarButtonClassName,
2759
+ disabled: zoomLevel === 1,
2676
2760
  onClick: () => handleToggleZoom("reset"),
2677
2761
  children: /* @__PURE__ */ jsx(OneToOneIcon, { "aria-hidden": "true" })
2678
2762
  })
@@ -2,6 +2,9 @@
2
2
  const locale = { design: {
3
3
  Accessibility: {
4
4
  closeBadge: "إغلاق الشارة",
5
+ close: "إغلاق",
6
+ previous: "السابق",
7
+ next: "التالي",
5
8
  imageGallery: "معرض الصور",
6
9
  image: "الصورة {0} من {1}",
7
10
  zoomIn: "تكبير",
@@ -2,6 +2,9 @@
2
2
  const locale = { design: {
3
3
  Accessibility: {
4
4
  closeBadge: "Tanca la insígnia",
5
+ close: "Tanca",
6
+ previous: "Anterior",
7
+ next: "Següent",
5
8
  imageGallery: "Galeria d’imatges",
6
9
  image: "Imatge {0} de {1}",
7
10
  zoomIn: "Apropa",
@@ -2,6 +2,9 @@
2
2
  const locale = { design: {
3
3
  Accessibility: {
4
4
  closeBadge: "Badge schließen",
5
+ close: "Schließen",
6
+ previous: "Zurück",
7
+ next: "Weiter",
5
8
  imageGallery: "Bildergalerie",
6
9
  image: "Bild {0} von {1}",
7
10
  zoomIn: "Vergrößern",
@@ -17,6 +17,9 @@
17
17
  const locale = { design: {
18
18
  Accessibility: {
19
19
  closeBadge: "Close badge",
20
+ close: "Close",
21
+ previous: "Previous",
22
+ next: "Next",
20
23
  imageGallery: "Image gallery",
21
24
  image: "Image {0} of {1}",
22
25
  zoomIn: "Zoom in",
@@ -2,6 +2,9 @@
2
2
  const locale = { design: {
3
3
  Accessibility: {
4
4
  closeBadge: "Cerrar insignia",
5
+ close: "Cerrar",
6
+ previous: "Anterior",
7
+ next: "Siguiente",
5
8
  imageGallery: "Galería de imágenes",
6
9
  image: "Imagen {0} de {1}",
7
10
  zoomIn: "Acercar",
@@ -2,6 +2,9 @@
2
2
  const locale = { design: {
3
3
  Accessibility: {
4
4
  closeBadge: "بستن نشان",
5
+ close: "بستن",
6
+ previous: "قبلی",
7
+ next: "بعدی",
5
8
  imageGallery: "گالری تصاویر",
6
9
  image: "تصویر {0} از {1}",
7
10
  zoomIn: "بزرگ‌نمایی",
@@ -2,6 +2,9 @@
2
2
  const locale = { design: {
3
3
  Accessibility: {
4
4
  closeBadge: "Fermer le badge",
5
+ close: "Fermer",
6
+ previous: "Précédent",
7
+ next: "Suivant",
5
8
  imageGallery: "Galerie d’images",
6
9
  image: "Image {0} sur {1}",
7
10
  zoomIn: "Zoom avant",
@@ -2,6 +2,9 @@
2
2
  const locale = { design: {
3
3
  Accessibility: {
4
4
  closeBadge: "Tutup lencana",
5
+ close: "Tutup",
6
+ previous: "Sebelumnya",
7
+ next: "Berikutnya",
5
8
  imageGallery: "Galeri gambar",
6
9
  image: "Gambar {0} dari {1}",
7
10
  zoomIn: "Perbesar",
@@ -2,6 +2,9 @@
2
2
  const locale = { design: {
3
3
  Accessibility: {
4
4
  closeBadge: "Chiudi badge",
5
+ close: "Chiudi",
6
+ previous: "Precedente",
7
+ next: "Successivo",
5
8
  imageGallery: "Galleria immagini",
6
9
  image: "Immagine {0} di {1}",
7
10
  zoomIn: "Ingrandisci",
@@ -2,6 +2,9 @@
2
2
  const locale = { design: {
3
3
  Accessibility: {
4
4
  closeBadge: "バッジを閉じる",
5
+ close: "閉じる",
6
+ previous: "前へ",
7
+ next: "次へ",
5
8
  imageGallery: "画像ギャラリー",
6
9
  image: "画像 {0}/{1}",
7
10
  zoomIn: "拡大",
@@ -2,6 +2,9 @@
2
2
  const locale = { design: {
3
3
  Accessibility: {
4
4
  closeBadge: "배지 닫기",
5
+ close: "닫기",
6
+ previous: "이전",
7
+ next: "다음",
5
8
  imageGallery: "이미지 갤러리",
6
9
  image: "이미지 {0}/{1}",
7
10
  zoomIn: "확대",
@@ -2,6 +2,9 @@
2
2
  const locale = { design: {
3
3
  Accessibility: {
4
4
  closeBadge: "Zamknij plakietkę",
5
+ close: "Zamknij",
6
+ previous: "Poprzedni",
7
+ next: "Następny",
5
8
  imageGallery: "Galeria obrazów",
6
9
  image: "Obraz {0} z {1}",
7
10
  zoomIn: "Powiększ",
@@ -2,6 +2,9 @@
2
2
  const locale = { design: {
3
3
  Accessibility: {
4
4
  closeBadge: "Fechar selo",
5
+ close: "Fechar",
6
+ previous: "Anterior",
7
+ next: "Próximo",
5
8
  imageGallery: "Galeria de imagens",
6
9
  image: "Imagem {0} de {1}",
7
10
  zoomIn: "Ampliar",
@@ -2,6 +2,9 @@
2
2
  const locale = { design: {
3
3
  Accessibility: {
4
4
  closeBadge: "Закрыть метку",
5
+ close: "Закрыть",
6
+ previous: "Предыдущее",
7
+ next: "Следующее",
5
8
  imageGallery: "Галерея изображений",
6
9
  image: "Изображение {0} из {1}",
7
10
  zoomIn: "Увеличить",
@@ -2,6 +2,9 @@
2
2
  const locale = { design: {
3
3
  Accessibility: {
4
4
  closeBadge: "Zavrieť odznak",
5
+ close: "Zavrieť",
6
+ previous: "Predchádzajúci",
7
+ next: "Nasledujúci",
5
8
  imageGallery: "Galéria obrázkov",
6
9
  image: "Obrázok {0} z {1}",
7
10
  zoomIn: "Priblížiť",
@@ -2,6 +2,9 @@
2
2
  const locale = { design: {
3
3
  Accessibility: {
4
4
  closeBadge: "Đóng huy hiệu",
5
+ close: "Đóng",
6
+ previous: "Trước",
7
+ next: "Tiếp theo",
5
8
  imageGallery: "Thư viện ảnh",
6
9
  image: "Ảnh {0} trên {1}",
7
10
  zoomIn: "Phóng to",
@@ -2,6 +2,9 @@
2
2
  const locale = { design: {
3
3
  Accessibility: {
4
4
  closeBadge: "关闭徽章",
5
+ close: "关闭",
6
+ previous: "上一个",
7
+ next: "下一个",
5
8
  imageGallery: "图片库",
6
9
  image: "第 {0} 张图片,共 {1} 张",
7
10
  zoomIn: "放大",
@@ -2,6 +2,9 @@
2
2
  const locale = { design: {
3
3
  Accessibility: {
4
4
  closeBadge: "關閉徽章",
5
+ close: "關閉",
6
+ previous: "上一個",
7
+ next: "下一個",
5
8
  imageGallery: "圖片庫",
6
9
  image: "第 {0} 張圖片,共 {1} 張",
7
10
  zoomIn: "放大",
@@ -2,6 +2,9 @@
2
2
  const locale = { design: {
3
3
  Accessibility: {
4
4
  closeBadge: "關閉徽章",
5
+ close: "關閉",
6
+ previous: "上一個",
7
+ next: "下一個",
5
8
  imageGallery: "圖片庫",
6
9
  image: "第 {0} 張圖片,共 {1} 張",
7
10
  zoomIn: "放大",
package/lib/index.css CHANGED
@@ -314,6 +314,11 @@
314
314
  height: 0;
315
315
  }
316
316
 
317
+ .univer-size-10 {
318
+ width: 2.5rem;
319
+ height: 2.5rem;
320
+ }
321
+
317
322
  .univer-size-2 {
318
323
  width: .5rem;
319
324
  height: .5rem;
@@ -1044,6 +1049,14 @@
1044
1049
  border-color: var(--univer-gray-200) !important;
1045
1050
  }
1046
1051
 
1052
+ .\!univer-border-gray-500 {
1053
+ border-color: var(--univer-gray-500) !important;
1054
+ }
1055
+
1056
+ .\!univer-border-transparent {
1057
+ border-color: #0000 !important;
1058
+ }
1059
+
1047
1060
  .univer-border-gray-0 {
1048
1061
  border-color: var(--univer-gray-0);
1049
1062
  }
@@ -1092,10 +1105,18 @@
1092
1105
  background-color: var(--univer-gray-600) !important;
1093
1106
  }
1094
1107
 
1108
+ .\!univer-bg-gray-800 {
1109
+ background-color: var(--univer-gray-800) !important;
1110
+ }
1111
+
1095
1112
  .\!univer-bg-primary-600 {
1096
1113
  background-color: var(--univer-primary-600) !important;
1097
1114
  }
1098
1115
 
1116
+ .\!univer-bg-transparent {
1117
+ background-color: #0000 !important;
1118
+ }
1119
+
1099
1120
  .univer-bg-\[\#e8eefc\] {
1100
1121
  --univer-tw-bg-opacity: 1;
1101
1122
  background-color: #e8eefc;
@@ -1482,6 +1503,10 @@
1482
1503
  color: var(--univer-gray-0) !important;
1483
1504
  }
1484
1505
 
1506
+ .\!univer-text-gray-300 {
1507
+ color: var(--univer-gray-300) !important;
1508
+ }
1509
+
1485
1510
  .\!univer-text-gray-400 {
1486
1511
  color: var(--univer-gray-400) !important;
1487
1512
  }
@@ -2096,6 +2121,14 @@
2096
2121
  border-color: #0000;
2097
2122
  }
2098
2123
 
2124
+ .hover\:\!univer-bg-gray-600:hover {
2125
+ background-color: var(--univer-gray-600) !important;
2126
+ }
2127
+
2128
+ .hover\:\!univer-bg-gray-700:hover {
2129
+ background-color: var(--univer-gray-700) !important;
2130
+ }
2131
+
2099
2132
  .hover\:univer-bg-gray-100:hover {
2100
2133
  background-color: var(--univer-gray-100);
2101
2134
  }
@@ -2116,8 +2149,8 @@
2116
2149
  background-color: var(--univer-red-400);
2117
2150
  }
2118
2151
 
2119
- .hover\:univer-text-gray-0:hover {
2120
- color: var(--univer-gray-0);
2152
+ .hover\:\!univer-text-gray-0:hover {
2153
+ color: var(--univer-gray-0) !important;
2121
2154
  }
2122
2155
 
2123
2156
  .hover\:univer-text-gray-500:hover {
@@ -2180,6 +2213,38 @@
2180
2213
  background-color: var(--univer-red-50);
2181
2214
  }
2182
2215
 
2216
+ .focus-visible\:\!univer-outline-none:focus-visible {
2217
+ outline-offset: 2px !important;
2218
+ outline: 2px solid #0000 !important;
2219
+ }
2220
+
2221
+ .focus-visible\:univer-outline-none:focus-visible {
2222
+ outline-offset: 2px;
2223
+ outline: 2px solid #0000;
2224
+ }
2225
+
2226
+ .focus-visible\:\!univer-ring-2:focus-visible {
2227
+ --univer-tw-ring-offset-shadow: var(--univer-tw-ring-inset) 0 0 0 var(--univer-tw-ring-offset-width) var(--univer-tw-ring-offset-color) !important;
2228
+ --univer-tw-ring-shadow: var(--univer-tw-ring-inset) 0 0 0 calc(2px + var(--univer-tw-ring-offset-width)) var(--univer-tw-ring-color) !important;
2229
+ box-shadow: var(--univer-tw-ring-offset-shadow), var(--univer-tw-ring-shadow), 0 0 #0000 !important;
2230
+ box-shadow: var(--univer-tw-ring-offset-shadow), var(--univer-tw-ring-shadow), var(--univer-tw-shadow, 0 0 #0000) !important;
2231
+ }
2232
+
2233
+ .focus-visible\:univer-ring-2:focus-visible {
2234
+ --univer-tw-ring-offset-shadow: var(--univer-tw-ring-inset) 0 0 0 var(--univer-tw-ring-offset-width) var(--univer-tw-ring-offset-color);
2235
+ --univer-tw-ring-shadow: var(--univer-tw-ring-inset) 0 0 0 calc(2px + var(--univer-tw-ring-offset-width)) var(--univer-tw-ring-color);
2236
+ box-shadow: var(--univer-tw-ring-offset-shadow), var(--univer-tw-ring-shadow), 0 0 #0000;
2237
+ box-shadow: var(--univer-tw-ring-offset-shadow), var(--univer-tw-ring-shadow), var(--univer-tw-shadow, 0 0 #0000);
2238
+ }
2239
+
2240
+ .focus-visible\:\!univer-ring-gray-0:focus-visible {
2241
+ --univer-tw-ring-color: var(--univer-gray-0) !important;
2242
+ }
2243
+
2244
+ .focus-visible\:univer-ring-primary-500:focus-visible {
2245
+ --univer-tw-ring-color: var(--univer-primary-500);
2246
+ }
2247
+
2183
2248
  .active\:univer-border-red-600:active {
2184
2249
  border-color: var(--univer-red-600);
2185
2250
  }
@@ -2204,10 +2269,18 @@
2204
2269
  pointer-events: none;
2205
2270
  }
2206
2271
 
2272
+ .disabled\:univer-cursor-default:disabled {
2273
+ cursor: default;
2274
+ }
2275
+
2207
2276
  .disabled\:univer-cursor-not-allowed:disabled {
2208
2277
  cursor: not-allowed;
2209
2278
  }
2210
2279
 
2280
+ .disabled\:univer-opacity-40:disabled {
2281
+ opacity: .4;
2282
+ }
2283
+
2211
2284
  .disabled\:univer-opacity-50:disabled {
2212
2285
  opacity: .5;
2213
2286
  }