@fibery/ui-kit 4.1.0 → 4.2.0
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/CHANGELOG.md +6 -0
- package/package.json +3 -5
- package/src/antd/ant-upload.tsx +13 -13
- package/src/antd/auto-complete.tsx +10 -10
- package/src/antd/input-number.tsx +55 -45
- package/src/antd/styles.ts +28 -22
- package/src/antd/tabs.tsx +28 -28
- package/src/color-filter.ts +1 -1
- package/src/comment.tsx +2 -2
- package/src/count-badge.tsx +3 -11
- package/src/design-system/colors.ts +57 -37
- package/src/design-system/def.ts +1 -1
- package/src/dom-utils.ts +5 -12
- package/src/download-file.ts +36 -0
- package/src/dropdown-menu/index.tsx +0 -1
- package/src/file-item/file-menu-items.tsx +29 -11
- package/src/file-item/file-preview-actions.tsx +52 -11
- package/src/file-item/share-file.ts +53 -0
- package/src/file-item.tsx +9 -9
- package/src/html-styles.ts +0 -1
- package/src/icons/ast/gauge.ts +12 -0
- package/src/icons/ast/index.tsx +3 -1
- package/src/icons/ast/people-edit.ts +12 -0
- package/src/icons/react/gauge.tsx +18 -0
- package/src/icons/react/index.tsx +3 -1
- package/src/icons/react/people-edit.tsx +18 -0
- package/src/icons/svg/gauge.svg +5 -0
- package/src/icons/svg/people-edit.svg +4 -0
- package/src/images-gallery/images-gallery.tsx +0 -1
- package/src/images-gallery/slide-buttons.tsx +49 -16
- package/src/is-in-popup.ts +0 -3
- package/src/loading-sausage.tsx +3 -3
- package/src/palettes/diff-colors.test.ts +1 -1
- package/src/palettes/inspect.defs.colors.neutral-arch.test.ts +94 -26
- package/src/palettes/inspect.defs.colors.neutral-user.test.ts +94 -26
- package/src/palettes/inspect.defs.colors.warm-arch.test.ts +94 -26
- package/src/palettes/inspect.defs.colors.warm-user.test.ts +94 -26
- package/src/palettes/show-colors.test.ts +2 -1
- package/src/palettes/testkit.ts +3 -1
- package/src/popover/index.tsx +20 -11
- package/src/popover/popup-modifiers-context.ts +1 -2
- package/src/select/components/option.tsx +0 -1
- package/src/select/index.tsx +1 -0
- package/src/select/select-in-popover.tsx +1 -3
- package/src/select/select.tsx +2 -0
- package/src/thematic.tsx +0 -1
- package/src/theme-provider.test.tsx +1 -1
- package/src/theming.generated.css +110 -50
- package/src/theming.generated.ts +127 -50
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* eslint-disable max-lines */
|
|
2
1
|
import {test, expect} from "vitest";
|
|
3
2
|
|
|
4
3
|
import {withColorDiff} from "./diff-colors";
|
|
@@ -426,6 +425,14 @@ test("snapshot", () => {
|
|
|
426
425
|
"#D33E4B | hsl( 355 63% 54%) | oklch(0.59 0.18 20 )",
|
|
427
426
|
"#ED9696 | hsl( 0 71% 76%) | oklch(0.76 0.11 20 )",
|
|
428
427
|
],
|
|
428
|
+
"collectionViewBg": [
|
|
429
|
+
"#FFFBF4 | hsl( 38 100% 98%) | oklch(0.99 0.01 82 )",
|
|
430
|
+
"#201B19 | hsl( 17 12% 11%) | oklch(0.23 0.01 43 )",
|
|
431
|
+
],
|
|
432
|
+
"collectionViewBorder": [
|
|
433
|
+
"0 0 0 1px #E8E2DB99 | hsl( 32 22% 88% / 0.6 ) | oklch(0.92 0.01 72 / 0.6 )",
|
|
434
|
+
"0 0 0 1px #56504E4D | hsl( 15 5% 32% / 0.3 ) | oklch(0.44 0.01 39 / 0.3 )",
|
|
435
|
+
],
|
|
429
436
|
"colorAI": [
|
|
430
437
|
"#9B6FC1 | hsl( 272 40% 60%) | oklch(0.62 0.13 308 )",
|
|
431
438
|
"#8056A3 | hsl( 273 31% 49%) | oklch(0.53 0.12 308 )",
|
|
@@ -654,6 +661,14 @@ test("snapshot", () => {
|
|
|
654
661
|
"#FAF4EC | hsl( 34 58% 95%) | oklch(0.97 0.01 75 )",
|
|
655
662
|
"#1A1614 | hsl( 20 13% 9%) | oklch(0.2 0.01 48 )",
|
|
656
663
|
],
|
|
664
|
+
"colorBgCodeEditor": [
|
|
665
|
+
"#FFFDFA | hsl( 36 100% 99%) | oklch(0.99 0 78 )",
|
|
666
|
+
"#272321 | hsl( 20 8% 14%) | oklch(0.26 0.01 48 )",
|
|
667
|
+
],
|
|
668
|
+
"colorBgCommentHover": [
|
|
669
|
+
"#FDF6EF | hsl( 30 78% 96%) | oklch(0.98 0.01 68 )",
|
|
670
|
+
"#201B19 | hsl( 17 12% 11%) | oklch(0.23 0.01 43 )",
|
|
671
|
+
],
|
|
657
672
|
"colorBgDbTabFocus": [
|
|
658
673
|
"#E8E2DB | hsl( 32 22% 88%) | oklch(0.92 0.01 72 )",
|
|
659
674
|
"#373230 | hsl( 17 7% 20%) | oklch(0.32 0.01 43 )",
|
|
@@ -722,6 +737,10 @@ test("snapshot", () => {
|
|
|
722
737
|
"#1F1A1899 | hsl( 17 13% 11% / 0.6 ) | oklch(0.22 0.01 43 / 0.6 )",
|
|
723
738
|
"#1F1A1899 | hsl( 17 13% 11% / 0.6 ) | oklch(0.22 0.01 43 / 0.6 )",
|
|
724
739
|
],
|
|
740
|
+
"colorBgFloatingPanel": [
|
|
741
|
+
"#FFFDFA | hsl( 36 100% 99%) | oklch(0.99 0 78 )",
|
|
742
|
+
"#2D2826 | hsl( 17 8% 16%) | oklch(0.28 0.01 43 )",
|
|
743
|
+
],
|
|
725
744
|
"colorBgLaneSubtle": [
|
|
726
745
|
"#1F1A180D | hsl( 17 13% 11% / 0.05) | oklch(0.22 0.01 43 / 0.05)",
|
|
727
746
|
"#FFFDFA0D | hsl( 36 100% 99% / 0.05) | oklch(0.99 0 78 / 0.05)",
|
|
@@ -780,11 +799,11 @@ test("snapshot", () => {
|
|
|
780
799
|
],
|
|
781
800
|
"colorBgMenuItemFocus": [
|
|
782
801
|
"#E8E2DB | hsl( 32 22% 88%) | oklch(0.92 0.01 72 )",
|
|
783
|
-
"#
|
|
802
|
+
"#373230 | hsl( 17 7% 20%) | oklch(0.32 0.01 43 )",
|
|
784
803
|
],
|
|
785
804
|
"colorBgMenuItemHover": [
|
|
786
805
|
"#EDE7E0 | hsl( 32 27% 90%) | oklch(0.93 0.01 72 )",
|
|
787
|
-
"#
|
|
806
|
+
"#322D2B | hsl( 17 8% 18%) | oklch(0.3 0.01 43 )",
|
|
788
807
|
],
|
|
789
808
|
"colorBgMenuItemSelected": [
|
|
790
809
|
"#D5E9F0CC | hsl( 196 47% 89% / 0.8 ) | oklch(0.92 0.02 221 / 0.8 )",
|
|
@@ -816,15 +835,15 @@ test("snapshot", () => {
|
|
|
816
835
|
],
|
|
817
836
|
"colorBgNotificationHover": [
|
|
818
837
|
"#FAF4EC | hsl( 34 58% 95%) | oklch(0.97 0.01 75 )",
|
|
819
|
-
"#
|
|
838
|
+
"#201B19 | hsl( 17 12% 11%) | oklch(0.23 0.01 43 )",
|
|
820
839
|
],
|
|
821
840
|
"colorBgNotificationSelected": [
|
|
822
841
|
"#EEF7F9 | hsl( 191 48% 95%) | oklch(0.97 0.01 213 )",
|
|
823
|
-
"#
|
|
842
|
+
"#0D2026 | hsl( 194 49% 10%) | oklch(0.23 0.03 221 )",
|
|
824
843
|
],
|
|
825
844
|
"colorBgNotificationSelectedHover": [
|
|
826
845
|
"#E4F1F6 | hsl( 197 50% 93%) | oklch(0.95 0.02 223 )",
|
|
827
|
-
"#
|
|
846
|
+
"#082C36 | hsl( 193 74% 12%) | oklch(0.27 0.04 220 )",
|
|
828
847
|
],
|
|
829
848
|
"colorBgObjectEditorSeparator": [
|
|
830
849
|
"#1B1611 | hsl( 30 23% 9%) | oklch(0.2 0.01 67 )",
|
|
@@ -836,7 +855,7 @@ test("snapshot", () => {
|
|
|
836
855
|
],
|
|
837
856
|
"colorBgPopup": [
|
|
838
857
|
"#FFFDFA | hsl( 36 100% 99%) | oklch(0.99 0 78 )",
|
|
839
|
-
"#
|
|
858
|
+
"#272321 | hsl( 20 8% 14%) | oklch(0.26 0.01 48 )",
|
|
840
859
|
],
|
|
841
860
|
"colorBgReactionsDefault": [
|
|
842
861
|
"#FFFDFA | hsl( 36 100% 99%) | oklch(0.99 0 78 )",
|
|
@@ -855,24 +874,28 @@ test("snapshot", () => {
|
|
|
855
874
|
"#007E9F | hsl( 192 100% 31%) | oklch(0.55 0.1 224 )",
|
|
856
875
|
],
|
|
857
876
|
"colorBgRelationContainer": [
|
|
858
|
-
"#
|
|
859
|
-
"#
|
|
877
|
+
"#FFFBF4 | hsl( 38 100% 98%) | oklch(0.99 0.01 82 )",
|
|
878
|
+
"#201B19 | hsl( 17 12% 11%) | oklch(0.23 0.01 43 )",
|
|
860
879
|
],
|
|
861
880
|
"colorBgScrollFade": [
|
|
862
881
|
"#FFFDFA26 | hsl( 36 100% 99% / 0.15) | oklch(0.99 0 78 / 0.15)",
|
|
863
882
|
"#1F1A1826 | hsl( 17 13% 11% / 0.15) | oklch(0.22 0.01 43 / 0.15)",
|
|
864
883
|
],
|
|
884
|
+
"colorBgSearchPanel": [
|
|
885
|
+
"#FFFDFA | hsl( 36 100% 99%) | oklch(0.99 0 78 )",
|
|
886
|
+
"#201B19 | hsl( 17 12% 11%) | oklch(0.23 0.01 43 )",
|
|
887
|
+
],
|
|
865
888
|
"colorBgSearchRowCreateHover": [
|
|
866
889
|
"#E4F1F6 | hsl( 197 50% 93%) | oklch(0.95 0.02 223 )",
|
|
867
890
|
"#01333F | hsl( 192 97% 13%) | oklch(0.3 0.05 219 )",
|
|
868
891
|
],
|
|
869
892
|
"colorBgSearchRowHover": [
|
|
870
893
|
"#F3ECE5 | hsl( 30 37% 93%) | oklch(0.95 0.01 68 )",
|
|
871
|
-
"#
|
|
894
|
+
"#272321 | hsl( 20 8% 14%) | oklch(0.26 0.01 48 )",
|
|
872
895
|
],
|
|
873
896
|
"colorBgSegmentedControl": [
|
|
874
897
|
"#EDE7E0CC | hsl( 32 27% 90% / 0.8 ) | oklch(0.93 0.01 72 / 0.8 )",
|
|
875
|
-
"#
|
|
898
|
+
"#201B19CC | hsl( 17 12% 11% / 0.8 ) | oklch(0.23 0.01 43 / 0.8 )",
|
|
876
899
|
],
|
|
877
900
|
"colorBgSegmentedControlActive": [
|
|
878
901
|
"#FFFBF4 | hsl( 38 100% 98%) | oklch(0.99 0.01 82 )",
|
|
@@ -910,6 +933,10 @@ test("snapshot", () => {
|
|
|
910
933
|
"#FFFBF4 | hsl( 38 100% 98%) | oklch(0.99 0.01 82 )",
|
|
911
934
|
"#1A1614 | hsl( 20 13% 9%) | oklch(0.2 0.01 48 )",
|
|
912
935
|
],
|
|
936
|
+
"colorBgViewMetaItem": [
|
|
937
|
+
"#FFFDFA | hsl( 36 100% 99%) | oklch(0.99 0 78 )",
|
|
938
|
+
"#201B19 | hsl( 17 12% 11%) | oklch(0.23 0.01 43 )",
|
|
939
|
+
],
|
|
913
940
|
"colorBgWhiteboard": [
|
|
914
941
|
"#FFFDFA | hsl( 36 100% 99%) | oklch(0.99 0 78 )",
|
|
915
942
|
"#1A1614 | hsl( 20 13% 9%) | oklch(0.2 0.01 48 )",
|
|
@@ -1398,6 +1425,33 @@ test("snapshot", () => {
|
|
|
1398
1425
|
"#2E6B7E | hsl( 194 47% 34%) | oklch(0.5 0.07 221 )",
|
|
1399
1426
|
"#2E6B7E | hsl( 194 47% 34%) | oklch(0.5 0.07 221 )",
|
|
1400
1427
|
],
|
|
1428
|
+
"dbSettingsCardBg": [
|
|
1429
|
+
"#FDF6EF | hsl( 30 78% 96%) | oklch(0.98 0.01 68 )",
|
|
1430
|
+
"#201B19 | hsl( 17 12% 11%) | oklch(0.23 0.01 43 )",
|
|
1431
|
+
],
|
|
1432
|
+
"dbSettingsCardBorder": [
|
|
1433
|
+
"0 0 0 1px #E8E2DBCC | hsl( 32 22% 88% / 0.8 ) | oklch(0.92 0.01 72 / 0.8 )",
|
|
1434
|
+
"0 0 0 1px #37323099 | hsl( 17 7% 20% / 0.6 ) | oklch(0.32 0.01 43 / 0.6 )",
|
|
1435
|
+
],
|
|
1436
|
+
"dbSettingsSidebarBg": [
|
|
1437
|
+
"#FDF6EF | hsl( 30 78% 96%) | oklch(0.98 0.01 68 )",
|
|
1438
|
+
"#201B19 | hsl( 17 12% 11%) | oklch(0.23 0.01 43 )",
|
|
1439
|
+
],
|
|
1440
|
+
"dbSettingsSidebarIconBg": [
|
|
1441
|
+
"#FFFDFA | hsl( 36 100% 99%) | oklch(0.99 0 78 )",
|
|
1442
|
+
"#272321 | hsl( 20 8% 14%) | oklch(0.26 0.01 48 )",
|
|
1443
|
+
],
|
|
1444
|
+
"dbSettingsSidebarIconBorder": [
|
|
1445
|
+
[
|
|
1446
|
+
"0 1px 4px 0 #635E571A | hsl( 35 6% 36% / 0.1 ) | oklch(0.48 0.01 77 / 0.1 )",
|
|
1447
|
+
"0 0 0 0.5px #EDE7E080 | hsl( 32 27% 90% / 0.5 ) | oklch(0.93 0.01 72 / 0.5 )",
|
|
1448
|
+
],
|
|
1449
|
+
"0 0 0 1px #756F6D33 | hsl( 15 4% 44% / 0.2 ) | oklch(0.55 0.01 39 / 0.2 )",
|
|
1450
|
+
],
|
|
1451
|
+
"dbSettingsSidebarItemHover": [
|
|
1452
|
+
"#F3ECE5 | hsl( 30 37% 93%) | oklch(0.95 0.01 68 )",
|
|
1453
|
+
"#2D2826 | hsl( 17 8% 16%) | oklch(0.28 0.01 43 )",
|
|
1454
|
+
],
|
|
1401
1455
|
"disabledInversedTextColor": [
|
|
1402
1456
|
"#1F1A1840 | hsl( 17 13% 11% / 0.25) | oklch(0.22 0.01 43 / 0.25)",
|
|
1403
1457
|
"#FFFDFA40 | hsl( 36 100% 99% / 0.25) | oklch(0.99 0 78 / 0.25)",
|
|
@@ -1680,15 +1734,15 @@ test("snapshot", () => {
|
|
|
1680
1734
|
],
|
|
1681
1735
|
"inputBgColor": [
|
|
1682
1736
|
"#FFFDFA | hsl( 36 100% 99%) | oklch(0.99 0 78 )",
|
|
1683
|
-
"#
|
|
1737
|
+
"#1A1614 | hsl( 20 13% 9%) | oklch(0.2 0.01 48 )",
|
|
1684
1738
|
],
|
|
1685
1739
|
"inputBorderBlendMode": [
|
|
1686
1740
|
"multiply",
|
|
1687
1741
|
"lighten",
|
|
1688
1742
|
],
|
|
1689
1743
|
"inputBorderColor": [
|
|
1690
|
-
"0 0 0 1px #
|
|
1691
|
-
"0 0 0 1px #
|
|
1744
|
+
"0 0 0 1px #E8E2DBCC | hsl( 32 22% 88% / 0.8 ) | oklch(0.92 0.01 72 / 0.8 )",
|
|
1745
|
+
"0 0 0 1px #56504E66 | hsl( 15 5% 32% / 0.4 ) | oklch(0.44 0.01 39 / 0.4 )",
|
|
1692
1746
|
],
|
|
1693
1747
|
"inputBorderFocusColor": [
|
|
1694
1748
|
"0 0 0 1px #CCC6BF | hsl( 32 11% 77%) | oklch(0.83 0.01 72 )",
|
|
@@ -1696,7 +1750,7 @@ test("snapshot", () => {
|
|
|
1696
1750
|
],
|
|
1697
1751
|
"inputBorderHoverColor": [
|
|
1698
1752
|
"0 0 0 1px #E1DAD3 | hsl( 30 19% 85%) | oklch(0.89 0.01 68 )",
|
|
1699
|
-
"0 0 0 1px #
|
|
1753
|
+
"0 0 0 1px #413C3A | hsl( 17 6% 24%) | oklch(0.36 0.01 43 )",
|
|
1700
1754
|
],
|
|
1701
1755
|
"inputBorderWarningColor": [
|
|
1702
1756
|
"0 0 0 1px #F7D900 | hsl( 53 100% 48%) | oklch(0.88 0.18 99 )",
|
|
@@ -1711,8 +1765,8 @@ test("snapshot", () => {
|
|
|
1711
1765
|
"#3732304D | hsl( 17 7% 20% / 0.3 ) | oklch(0.32 0.01 43 / 0.3 )",
|
|
1712
1766
|
],
|
|
1713
1767
|
"inputDisabledBorderColor": [
|
|
1714
|
-
"0 0 0 1px #
|
|
1715
|
-
"0 0 0 1px #
|
|
1768
|
+
"0 0 0 1px #E8E2DB99 | hsl( 32 22% 88% / 0.6 ) | oklch(0.92 0.01 72 / 0.6 )",
|
|
1769
|
+
"0 0 0 1px #56504E4D | hsl( 15 5% 32% / 0.3 ) | oklch(0.44 0.01 39 / 0.3 )",
|
|
1716
1770
|
],
|
|
1717
1771
|
"inputErrorBorderColor": [
|
|
1718
1772
|
"0 0 0 1px #AF2436 | hsl( 352 66% 41%) | oklch(0.5 0.17 20 )",
|
|
@@ -1772,7 +1826,7 @@ test("snapshot", () => {
|
|
|
1772
1826
|
],
|
|
1773
1827
|
"mainBg": [
|
|
1774
1828
|
"#FAF4EC | hsl( 34 58% 95%) | oklch(0.97 0.01 75 )",
|
|
1775
|
-
"#
|
|
1829
|
+
"#272321 | hsl( 20 8% 14%) | oklch(0.26 0.01 48 )",
|
|
1776
1830
|
],
|
|
1777
1831
|
"mentionBgColor": [
|
|
1778
1832
|
"#E1DAD34D | hsl( 30 19% 85% / 0.3 ) | oklch(0.89 0.01 68 / 0.3 )",
|
|
@@ -1780,7 +1834,7 @@ test("snapshot", () => {
|
|
|
1780
1834
|
],
|
|
1781
1835
|
"menuBg": [
|
|
1782
1836
|
"#FAF4EC | hsl( 34 58% 95%) | oklch(0.97 0.01 75 )",
|
|
1783
|
-
"#
|
|
1837
|
+
"#272321 | hsl( 20 8% 14%) | oklch(0.26 0.01 48 )",
|
|
1784
1838
|
],
|
|
1785
1839
|
"menuIconColor": [
|
|
1786
1840
|
"#1B1611B3 | hsl( 30 23% 9% / 0.7 ) | oklch(0.2 0.01 67 / 0.7 )",
|
|
@@ -1914,6 +1968,10 @@ test("snapshot", () => {
|
|
|
1914
1968
|
"#FFFDFA | hsl( 36 100% 99%) | oklch(0.99 0 78 )",
|
|
1915
1969
|
"#1A1614 | hsl( 20 13% 9%) | oklch(0.2 0.01 48 )",
|
|
1916
1970
|
],
|
|
1971
|
+
"panelBorder": [
|
|
1972
|
+
"0 0 0 1px #CCC6BF33 | hsl( 32 11% 77% / 0.2 ) | oklch(0.83 0.01 72 / 0.2 )",
|
|
1973
|
+
"0 0 0 1px #56504E33 | hsl( 15 5% 32% / 0.2 ) | oklch(0.44 0.01 39 / 0.2 )",
|
|
1974
|
+
],
|
|
1917
1975
|
"panelContentBg": [
|
|
1918
1976
|
"#FDF6EF | hsl( 30 78% 96%) | oklch(0.98 0.01 68 )",
|
|
1919
1977
|
"#1A1614 | hsl( 20 13% 9%) | oklch(0.2 0.01 48 )",
|
|
@@ -2056,27 +2114,27 @@ test("snapshot", () => {
|
|
|
2056
2114
|
],
|
|
2057
2115
|
"shadowCardDefault": [
|
|
2058
2116
|
[
|
|
2059
|
-
"0 0 0 1px #
|
|
2117
|
+
"0 0 0 1px #E8E2DBCC | hsl( 32 22% 88% / 0.8 ) | oklch(0.92 0.01 72 / 0.8 )",
|
|
2060
2118
|
"0 1px 4px 0 #1B16110D | hsl( 30 23% 9% / 0.05) | oklch(0.2 0.01 67 / 0.05)",
|
|
2061
2119
|
],
|
|
2062
2120
|
[
|
|
2063
|
-
"0 0 0 1px #
|
|
2121
|
+
"0 0 0 1px #56504E66 | hsl( 15 5% 32% / 0.4 ) | oklch(0.44 0.01 39 / 0.4 )",
|
|
2064
2122
|
"0 1px 4px 0 #1B16111A | hsl( 30 23% 9% / 0.1 ) | oklch(0.2 0.01 67 / 0.1 )",
|
|
2065
2123
|
],
|
|
2066
2124
|
],
|
|
2067
2125
|
"shadowCardHover": [
|
|
2068
2126
|
[
|
|
2069
|
-
"0 0 0 1px #
|
|
2127
|
+
"0 0 0 1px #E8E2DBCC | hsl( 32 22% 88% / 0.8 ) | oklch(0.92 0.01 72 / 0.8 )",
|
|
2070
2128
|
"0 2px 6px 0 #1B16110D | hsl( 30 23% 9% / 0.05) | oklch(0.2 0.01 67 / 0.05)",
|
|
2071
2129
|
],
|
|
2072
2130
|
[
|
|
2073
|
-
"0 0 0 1px #
|
|
2131
|
+
"0 0 0 1px #56504E66 | hsl( 15 5% 32% / 0.4 ) | oklch(0.44 0.01 39 / 0.4 )",
|
|
2074
2132
|
"0 2px 6px 0 #1B16111A | hsl( 30 23% 9% / 0.1 ) | oklch(0.2 0.01 67 / 0.1 )",
|
|
2075
2133
|
],
|
|
2076
2134
|
],
|
|
2077
2135
|
"shadowCardInset": [
|
|
2078
|
-
"inset 0 0 0 1px #
|
|
2079
|
-
"inset 0 0 0 1px #
|
|
2136
|
+
"inset 0 0 0 1px #E8E2DBCC | hsl( 32 22% 88% / 0.8 ) | oklch(0.92 0.01 72 / 0.8 )",
|
|
2137
|
+
"inset 0 0 0 1px #56504E66 | hsl( 15 5% 32% / 0.4 ) | oklch(0.44 0.01 39 / 0.4 )",
|
|
2080
2138
|
],
|
|
2081
2139
|
"shadowEntityBoxDefault": [
|
|
2082
2140
|
"0 2px 4px 0 #1B16110D | hsl( 30 23% 9% / 0.05) | oklch(0.2 0.01 67 / 0.05)",
|
|
@@ -2090,6 +2148,16 @@ test("snapshot", () => {
|
|
|
2090
2148
|
"0 4px 8px 0 #1B16111A | hsl( 30 23% 9% / 0.1 ) | oklch(0.2 0.01 67 / 0.1 )",
|
|
2091
2149
|
"0 4px 8px 0 #1A16141A | hsl( 20 13% 9% / 0.1 ) | oklch(0.2 0.01 48 / 0.1 )",
|
|
2092
2150
|
],
|
|
2151
|
+
"shadowFloatingPanel": [
|
|
2152
|
+
[
|
|
2153
|
+
"0 0 0 1px #7D777026 | hsl( 32 5% 46% / 0.15) | oklch(0.57 0.01 72 / 0.15)",
|
|
2154
|
+
"0 3px 12px 0 #635E5726 | hsl( 35 6% 36% / 0.15) | oklch(0.48 0.01 77 / 0.15)",
|
|
2155
|
+
],
|
|
2156
|
+
[
|
|
2157
|
+
"0 0 0 1px #373230 | hsl( 17 7% 20%) | oklch(0.32 0.01 43 )",
|
|
2158
|
+
"0 3px 12px 0 #1A161480 | hsl( 20 13% 9% / 0.5 ) | oklch(0.2 0.01 48 / 0.5 )",
|
|
2159
|
+
],
|
|
2160
|
+
],
|
|
2093
2161
|
"shadowMenuHeaderAvatar": [
|
|
2094
2162
|
[
|
|
2095
2163
|
"0 1px 4px 0 #635E571A | hsl( 35 6% 36% / 0.1 ) | oklch(0.48 0.01 77 / 0.1 )",
|
|
@@ -2193,7 +2261,7 @@ test("snapshot", () => {
|
|
|
2193
2261
|
],
|
|
2194
2262
|
"surfaceElevationS": [
|
|
2195
2263
|
"0 2px 4px 0 #0000000D | hsl(none 0% 0% / 0.05) | oklch(0 0 none / 0.05)",
|
|
2196
|
-
"0 2px 4px 0 #
|
|
2264
|
+
"0 2px 4px 0 #1A16140D | hsl( 20 13% 9% / 0.05) | oklch(0.2 0.01 48 / 0.05)",
|
|
2197
2265
|
],
|
|
2198
2266
|
"swatchDefault": [
|
|
2199
2267
|
"#1FBED3 | hsl( 187 74% 47%) | oklch(0.74 0.12 209 )",
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// @ts-ignore node out of frontend scope, mixed types/node-present and absent usages
|
|
4
4
|
import {inspect} from "node:util";
|
|
5
5
|
|
|
6
|
+
import {isRecord} from "@fibery/helpers/src/_";
|
|
6
7
|
import {test} from "vitest";
|
|
7
8
|
|
|
8
9
|
import {backgrounds, type ColorDef, darkFromLight, sections, stickers} from "../canvas-colors";
|
|
@@ -55,7 +56,7 @@ function walk(buckets: Buckets, path: string, value: unknown) {
|
|
|
55
56
|
});
|
|
56
57
|
return;
|
|
57
58
|
}
|
|
58
|
-
if (value
|
|
59
|
+
if (isRecord(value)) {
|
|
59
60
|
for (const [k, v] of Object.entries(value)) {
|
|
60
61
|
walk(buckets, `${path}.${k}`, v);
|
|
61
62
|
}
|
package/src/palettes/testkit.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import {isRecord} from "@fibery/helpers/src/_";
|
|
2
|
+
|
|
1
3
|
import {calcLc} from "../apca";
|
|
2
4
|
import {backgrounds, type ColorDef, sections, stickers} from "../canvas-colors";
|
|
3
5
|
import {inspectColor, type Opts} from "../color-inspect";
|
|
@@ -96,7 +98,7 @@ export function deepMapColors<T>(value: T, opts?: Opts): T {
|
|
|
96
98
|
return value.map((v) => deepMapColors(v, opts)) as T;
|
|
97
99
|
}
|
|
98
100
|
|
|
99
|
-
if (
|
|
101
|
+
if (isRecord(value)) {
|
|
100
102
|
const entries = Object.entries(value);
|
|
101
103
|
const keyFrom = makeKeyFrom(entries);
|
|
102
104
|
return Object.fromEntries(entries.map(([k, v]) => [keyFrom(k), deepMapColors(v, opts)])) as T;
|
package/src/popover/index.tsx
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import {truthy} from "@fibery/helpers/src/_";
|
|
2
2
|
import {composeEventHandlers} from "@fibery/react/src/compose-event-handlers";
|
|
3
3
|
import {createContext} from "@fibery/react/src/create-context";
|
|
4
|
-
// oxlint-disable max-lines
|
|
5
4
|
import {stopPropagation} from "@fibery/react/src/stop-propagation";
|
|
6
5
|
import {composeRefs, useComposedRefs} from "@fibery/react/src/use-composed-refs";
|
|
7
6
|
import {useControllableState} from "@fibery/react/src/use-controllable-state";
|
|
@@ -23,8 +22,10 @@ import {
|
|
|
23
22
|
useEffect,
|
|
24
23
|
useId,
|
|
25
24
|
useImperativeHandle,
|
|
25
|
+
useLayoutEffect,
|
|
26
26
|
useMemo,
|
|
27
27
|
useRef,
|
|
28
|
+
useState,
|
|
28
29
|
} from "react";
|
|
29
30
|
import {createPortal} from "react-dom";
|
|
30
31
|
import {usePopper} from "react-popper";
|
|
@@ -74,7 +75,7 @@ type PopoverRootProps = {
|
|
|
74
75
|
onClose?: (event: Event) => unknown;
|
|
75
76
|
};
|
|
76
77
|
|
|
77
|
-
const
|
|
78
|
+
const PopoverRoot = (props: PopoverRootProps) => {
|
|
78
79
|
const {children, open, disabled = false, onOpenChange, onOpen, onClose, ...rest} = props;
|
|
79
80
|
const contentId = useId();
|
|
80
81
|
|
|
@@ -135,7 +136,7 @@ const Root = (props: PopoverRootProps) => {
|
|
|
135
136
|
return <PopoverProvider value={contextValue}>{children}</PopoverProvider>;
|
|
136
137
|
};
|
|
137
138
|
|
|
138
|
-
const
|
|
139
|
+
const PopoverBackdrop = ({className}: {className?: string}) => {
|
|
139
140
|
return (
|
|
140
141
|
<div
|
|
141
142
|
id={"popup-backdrop"}
|
|
@@ -153,14 +154,22 @@ const Backdrop = ({className}: {className?: string}) => {
|
|
|
153
154
|
};
|
|
154
155
|
|
|
155
156
|
type PopoverPortalProps = {
|
|
156
|
-
|
|
157
|
+
/** Portal target element. Defaults to document.body, same as Radix Portal. */
|
|
158
|
+
container?: HTMLElement;
|
|
157
159
|
children: ReactNode;
|
|
158
160
|
};
|
|
159
161
|
|
|
160
|
-
const
|
|
162
|
+
const PopoverPortal = ({container: containerProp, children}: PopoverPortalProps) => {
|
|
161
163
|
const popupModifiers = usePopupModifiers();
|
|
162
|
-
|
|
163
|
-
|
|
164
|
+
// Render nothing until mounted so that importing/rendering the popover never
|
|
165
|
+
// touches the DOM during SSR or hydration (same trick as Radix Portal).
|
|
166
|
+
const [mounted, setMounted] = useState(false);
|
|
167
|
+
useLayoutEffect(() => setMounted(true), []);
|
|
168
|
+
|
|
169
|
+
const container =
|
|
170
|
+
containerProp ?? (mounted ? (popupModifiers.getPopupContainer?.() ?? globalThis?.document?.body) : null);
|
|
171
|
+
|
|
172
|
+
return container ? createPortal(children, container) : null;
|
|
164
173
|
};
|
|
165
174
|
|
|
166
175
|
type PopoverTriggerProps = {
|
|
@@ -171,7 +180,7 @@ type PopoverTriggerProps = {
|
|
|
171
180
|
triggerEvent?: "mousedown" | "click";
|
|
172
181
|
} & React.ComponentPropsWithoutRef<"div">;
|
|
173
182
|
|
|
174
|
-
const
|
|
183
|
+
const PopoverTrigger = forwardRef<HTMLDivElement, PopoverTriggerProps>((props, ref) => {
|
|
175
184
|
const {asChild = false, reference, children, triggerEvent = "mousedown", onMouseDown, onClick, ...rest} = props;
|
|
176
185
|
const {contentId, setTriggerElement, disabled, open, onOpen, onClose} = usePopoverContext();
|
|
177
186
|
|
|
@@ -275,7 +284,7 @@ type PopoverContentProps = {
|
|
|
275
284
|
|
|
276
285
|
export type ContentRef = {update: (() => Promise<unknown>) | null};
|
|
277
286
|
|
|
278
|
-
const
|
|
287
|
+
const PopoverContent = forwardRef<ContentRef, PopoverContentProps>((props, ref) => {
|
|
279
288
|
const {
|
|
280
289
|
children,
|
|
281
290
|
placement,
|
|
@@ -466,7 +475,7 @@ const Content = forwardRef<ContentRef, PopoverContentProps>((props, ref) => {
|
|
|
466
475
|
|
|
467
476
|
return (
|
|
468
477
|
<ThemeProvider portal>
|
|
469
|
-
{renderBackdrop && <
|
|
478
|
+
{renderBackdrop && <PopoverBackdrop className={backdropClassName} />}
|
|
470
479
|
<FocusScope
|
|
471
480
|
asChild
|
|
472
481
|
loop
|
|
@@ -511,7 +520,7 @@ const Content = forwardRef<ContentRef, PopoverContentProps>((props, ref) => {
|
|
|
511
520
|
);
|
|
512
521
|
});
|
|
513
522
|
|
|
514
|
-
const Popover = {Root, Trigger, Portal, Content};
|
|
523
|
+
const Popover = {Root: PopoverRoot, Trigger: PopoverTrigger, Portal: PopoverPortal, Content: PopoverContent};
|
|
515
524
|
|
|
516
525
|
export {createPopper, Popover};
|
|
517
526
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import {createContext} from "@fibery/react/src/create-context";
|
|
2
2
|
import type {Modifier} from "react-popper";
|
|
3
3
|
|
|
4
|
-
import {getPopupContainerElement} from "../dom-utils";
|
|
5
4
|
import type {$TSFixMe} from "../tsfixme";
|
|
6
5
|
import type {PopoverContentProps} from "./index";
|
|
7
6
|
|
|
@@ -10,4 +9,4 @@ export const [PopupModifiersProvider, usePopupModifiers] = createContext<{
|
|
|
10
9
|
additionalModifiers?: Array<Partial<Modifier<$TSFixMe, $TSFixMe>>>;
|
|
11
10
|
preventOverflowOptions?: PopoverContentProps["preventOverflowOptions"];
|
|
12
11
|
flipOptions?: PopoverContentProps["flipOptions"];
|
|
13
|
-
}>("PopupModifiersProvider", {getPopupContainer:
|
|
12
|
+
}>("PopupModifiersProvider", {getPopupContainer: () => document.body});
|
|
@@ -99,7 +99,6 @@ export function Option<Option, IsMulti extends boolean = false, Group extends Gr
|
|
|
99
99
|
* This makes this option component fast.
|
|
100
100
|
* Excluding onMouseOver, onMouseMove makes ReactSelect not rerender the whole list on option hover
|
|
101
101
|
*/
|
|
102
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
103
102
|
const {onMouseOver, onMouseMove, ...truncatedInnerProps} = rest.innerProps;
|
|
104
103
|
const props = Object.assign(rest, {innerProps: truncatedInnerProps});
|
|
105
104
|
return <OptionSlow {...props}>{children}</OptionSlow>;
|
package/src/select/index.tsx
CHANGED
|
@@ -71,7 +71,6 @@ type Props<T, U extends boolean, V extends GroupBase<T>> = {
|
|
|
71
71
|
selectStyles?: StylesConfig<T, U, V>;
|
|
72
72
|
onMenuOpen?: () => void;
|
|
73
73
|
onMenuClose?: () => void | boolean;
|
|
74
|
-
getPopupContainer?: () => HTMLElement;
|
|
75
74
|
onSelectKeyDown?: React.KeyboardEventHandler<HTMLDivElement>;
|
|
76
75
|
otherSelectProps?: Record<string, unknown>;
|
|
77
76
|
popoverPlacement?: Placement;
|
|
@@ -117,7 +116,6 @@ function SelectInPopoverInner<T, U extends boolean, V extends GroupBase<T>>(
|
|
|
117
116
|
onChange,
|
|
118
117
|
onMenuOpen,
|
|
119
118
|
onMenuClose,
|
|
120
|
-
getPopupContainer,
|
|
121
119
|
onSelectKeyDown,
|
|
122
120
|
otherSelectProps,
|
|
123
121
|
popoverPlacement = "bottom-start",
|
|
@@ -199,7 +197,7 @@ function SelectInPopoverInner<T, U extends boolean, V extends GroupBase<T>>(
|
|
|
199
197
|
<Popover.Trigger ref={setTriggerElement} asChild triggerEvent="click">
|
|
200
198
|
{trigger}
|
|
201
199
|
</Popover.Trigger>
|
|
202
|
-
<Wrap with={Popover.Portal} if={renderInPortal}
|
|
200
|
+
<Wrap with={Popover.Portal} if={renderInPortal}>
|
|
203
201
|
<Popover.Content
|
|
204
202
|
supportMobile
|
|
205
203
|
title={title}
|
package/src/select/select.tsx
CHANGED
|
@@ -10,6 +10,7 @@ import type {
|
|
|
10
10
|
MenuProps,
|
|
11
11
|
MultiValue,
|
|
12
12
|
MultiValueProps,
|
|
13
|
+
MultiValueRemoveProps,
|
|
13
14
|
OnChangeValue,
|
|
14
15
|
OptionProps,
|
|
15
16
|
OptionsOrGroups,
|
|
@@ -44,6 +45,7 @@ export type {
|
|
|
44
45
|
ControlProps,
|
|
45
46
|
MultiValue,
|
|
46
47
|
MultiValueProps,
|
|
48
|
+
MultiValueRemoveProps,
|
|
47
49
|
OnChangeValue,
|
|
48
50
|
OptionProps,
|
|
49
51
|
OptionsOrGroups,
|
package/src/thematic.tsx
CHANGED