@sc-360-v2/storefront-cms-library 0.5.37 → 0.5.39

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 (92) hide show
  1. package/dist/amount-estimator.scss +1083 -1083
  2. package/dist/animation-control.scss +23 -23
  3. package/dist/badge.scss +388 -388
  4. package/dist/brand-basic-elements.scss +3 -0
  5. package/dist/builder.js +1 -1
  6. package/dist/builderLite.js +1 -1
  7. package/dist/bulk-variant-picker copy.scss +1121 -1121
  8. package/dist/bundle.scss +4 -3
  9. package/dist/bundleDetails copy.scss +1431 -1431
  10. package/dist/button copy.scss +271 -271
  11. package/dist/buy-for-tabs-container-item.scss +80 -80
  12. package/dist/cart-products-sidebar.scss +211 -211
  13. package/dist/cart-wrapper.scss +127 -127
  14. package/dist/cartGrouping.scss +89 -89
  15. package/dist/category-groups-element.scss +10 -8
  16. package/dist/category-groups-product-options.scss +215 -0
  17. package/dist/categoryDetails.scss +61 -61
  18. package/dist/categoryWidget.scss +34 -34
  19. package/dist/checkbox-radio.scss +124 -124
  20. package/dist/common-element.scss +35 -35
  21. package/dist/confirmationModal.scss +139 -139
  22. package/dist/custom-fonts.scss +100 -100
  23. package/dist/embroider-preview-element.scss +94 -94
  24. package/dist/embroider-template-1.scss +482 -482
  25. package/dist/emtpy-templates.scss +165 -165
  26. package/dist/fb-dropdown.scss +125 -125
  27. package/dist/filter-results.scss +323 -323
  28. package/dist/flex-text-editor.scss +271 -271
  29. package/dist/form-zindex-module.scss +24 -24
  30. package/dist/hotspot.scss +2 -0
  31. package/dist/icon-library.scss +74 -74
  32. package/dist/image-for-product.scss +21 -21
  33. package/dist/kitDetails.scss +5379 -0
  34. package/dist/kits.scss +299 -0
  35. package/dist/lightbox.scss +78 -78
  36. package/dist/loader.scss +37 -37
  37. package/dist/menu-item.scss +19 -19
  38. package/dist/my-wishlist.scss +17 -17
  39. package/dist/order-processing.scss +61 -61
  40. package/dist/overflow-module.scss +63 -63
  41. package/dist/past-orders.scss +975 -975
  42. package/dist/payment-methods.scss +289 -289
  43. package/dist/pickup-locations.scss +1167 -1167
  44. package/dist/position-module.scss +95 -95
  45. package/dist/prefix-list.scss +86 -86
  46. package/dist/product-actions copy.scss +2765 -2765
  47. package/dist/product-basic-elements.scss +13 -5
  48. package/dist/product-customizations.scss +149 -149
  49. package/dist/product-image copy.scss +787 -787
  50. package/dist/product-image-bundles.scss +3 -2
  51. package/dist/product-inventory.scss +1378 -1378
  52. package/dist/product-promotions.scss +2759 -2759
  53. package/dist/quota-details.scss +8 -7
  54. package/dist/quotes.scss +737 -737
  55. package/dist/repeater copy.scss +635 -635
  56. package/dist/responsive-behaviour.scss +29 -29
  57. package/dist/rfqs.scss +736 -736
  58. package/dist/scroll.scss +48 -4
  59. package/dist/shareCartSideBar.scss +254 -254
  60. package/dist/shipping-estimator.scss +41 -41
  61. package/dist/sort.scss +89 -89
  62. package/dist/static-text.scss +52 -52
  63. package/dist/stockStatus.scss +64 -64
  64. package/dist/store-locations.scss +1398 -1398
  65. package/dist/sub-category.scss +74 -74
  66. package/dist/submit-quote.scss +275 -275
  67. package/dist/tab-container-item.scss +80 -80
  68. package/dist/tab-v2.scss +583 -583
  69. package/dist/table-common.scss +506 -506
  70. package/dist/table.scss +685 -685
  71. package/dist/tabs.scss +395 -395
  72. package/dist/text-temp.scss +109 -109
  73. package/dist/toaster.scss +350 -350
  74. package/dist/toggle-button.scss +32 -32
  75. package/dist/transform-properties-module.scss +20 -20
  76. package/dist/types/builder/elements/kit-details/index.d.ts +30 -0
  77. package/dist/types/builder/elements/kits/index.d.ts +30 -0
  78. package/dist/types/builder/enums/index.d.ts +2 -0
  79. package/dist/types/builder/index.d.ts +3 -1
  80. package/dist/types/builder/tools/element-edit/bundle.d.ts +16 -1
  81. package/dist/types/builder/tools/element-edit/categoryGroups.d.ts +5 -1
  82. package/dist/types/builder/tools/element-edit/icon-list.d.ts +303 -33
  83. package/dist/types/builder/tools/element-edit/index.d.ts +3 -1
  84. package/dist/types/builder/tools/element-edit/kitDetails.d.ts +1929 -0
  85. package/dist/types/builder/tools/element-edit/kits.d.ts +595 -0
  86. package/dist/types/builder/tools/element-edit/scroll.d.ts +24 -1
  87. package/dist/user-elements copy.scss +1437 -1437
  88. package/dist/video.scss +476 -476
  89. package/dist/website.js +1 -1
  90. package/dist/widget.scss +2 -0
  91. package/dist/wishlist-overlay.scss +48 -48
  92. package/package.json +1 -1
@@ -823,4 +823,219 @@
823
823
  width: 100%;
824
824
  object-fit: cover;
825
825
  }
826
+
827
+ .embla {
828
+ width: 100%;
829
+ height: 100%;
830
+ position: relative;
831
+ display: flex;
832
+ flex-direction: column;
833
+
834
+ .embla__viewport {
835
+ width: 100%;
836
+ height: 100%;
837
+ position: relative;
838
+ display: flex;
839
+ flex-direction: column;
840
+ overflow: hidden;
841
+
842
+ .embla__container {
843
+ width: 100%;
844
+ height: 100%;
845
+ display: flex;
846
+ gap: var(
847
+ --_ctm-mob-catego-dn-pt-gd-dn-pt-os-pt-os-lt-sh-im-sg,
848
+ var(
849
+ --_ctm-tab-catego-dn-pt-gd-dn-pt-os-pt-os-lt-sh-im-sg,
850
+ var(--_ctm-catego-dn-pt-gd-dn-pt-os-pt-os-lt-sh-im-sg)
851
+ )
852
+ );
853
+
854
+ .embla__slide {
855
+ height: 100%;
856
+ }
857
+ }
858
+ }
859
+
860
+ .arrow-navigation {
861
+ display: flex;
862
+ position: absolute;
863
+ top: 50%;
864
+ left: 50%;
865
+ width: 100%;
866
+ justify-content: space-between;
867
+ transform: translate(-50%, -50%);
868
+
869
+ &[data-control-type="Bottom"] {
870
+ transform: unset;
871
+ position: static;
872
+ width: 100%;
873
+ justify-content: center;
874
+ gap: 12px;
875
+ margin-top: 10px;
876
+ }
877
+ &[data-control-type="Bottom-Overflow"] {
878
+ transform: translateX(-50%);
879
+ width: 100%;
880
+ justify-content: center;
881
+ gap: 12px;
882
+ top: unset;
883
+ bottom: 6px;
884
+ }
885
+
886
+ .left-button,
887
+ .right-button {
888
+ padding: 10px;
889
+ border-radius: 50%;
890
+ border: none;
891
+ width: var(
892
+ --_ctm-mob-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-as-aw-se,
893
+ var(
894
+ --_ctm-tab-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-as-aw-se,
895
+ var(--_ctm-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-as-aw-se)
896
+ )
897
+ );
898
+ height: var(
899
+ --_ctm-mob-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-as-aw-se,
900
+ var(
901
+ --_ctm-tab-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-as-aw-se,
902
+ var(--_ctm-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-as-aw-se)
903
+ )
904
+ );
905
+ display: flex;
906
+ align-items: center;
907
+ justify-content: center;
908
+ cursor: pointer;
909
+ outline: none;
910
+
911
+ &:disabled svg path {
912
+ stroke: rgb(192, 192, 192);
913
+ }
914
+ }
915
+ .left-button {
916
+ margin-left: 12px;
917
+ }
918
+ .right-button {
919
+ margin-right: 12px;
920
+ }
921
+
922
+ .icon {
923
+ display: flex;
924
+ svg {
925
+ width: calc(
926
+ var(
927
+ --_ctm-mob-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-as-aw-se,
928
+ var(
929
+ --_ctm-tab-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-as-aw-se,
930
+ var(--_ctm-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-as-aw-se)
931
+ )
932
+ ) *
933
+ 0.5
934
+ );
935
+ height: calc(
936
+ var(
937
+ --_ctm-mob-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-as-aw-se,
938
+ var(
939
+ --_ctm-tab-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-as-aw-se,
940
+ var(--_ctm-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-as-aw-se)
941
+ )
942
+ ) *
943
+ 0.5
944
+ );
945
+ path {
946
+ stroke: var(
947
+ --_ctm-mob-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-as-aw-cr,
948
+ var(
949
+ --_ctm-tab-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-as-aw-cr,
950
+ var(--_ctm-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-as-aw-cr)
951
+ )
952
+ );
953
+ }
954
+ }
955
+ }
956
+ }
957
+
958
+ &[data-control-type="Side"] {
959
+ display: flex;
960
+ align-self: center;
961
+ flex-direction: row;
962
+
963
+ .left-button,
964
+ .right-button {
965
+ padding: 10px;
966
+ border-radius: 50%;
967
+ border: none;
968
+ display: flex;
969
+ align-items: center;
970
+ justify-content: center;
971
+ cursor: pointer;
972
+ outline: none;
973
+ background: transparent;
974
+
975
+ svg {
976
+ width: 16px;
977
+ height: 16px;
978
+ path {
979
+ stroke: var(
980
+ --_ctm-mob-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-as-aw-cr,
981
+ var(
982
+ --_ctm-tab-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-as-aw-cr,
983
+ var(--_ctm-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-as-aw-cr, currentColor)
984
+ )
985
+ );
986
+ }
987
+ }
988
+ }
989
+
990
+ .left-button:disabled,
991
+ .right-button:disabled {
992
+ display: none;
993
+ }
994
+ }
995
+
996
+ .embla__dots {
997
+ display: flex;
998
+ flex-wrap: wrap;
999
+ justify-content: center;
1000
+ align-items: center;
1001
+ gap: 6px;
1002
+ margin-top: 16px;
1003
+
1004
+ &[data-control-type="Bottom-Overflow"] {
1005
+ position: absolute;
1006
+ bottom: 10px;
1007
+ left: 50%;
1008
+ transform: translateX(-50%);
1009
+ width: 75%;
1010
+ }
1011
+ .embla__dot {
1012
+ appearance: none;
1013
+ background-color: var(--_ctm-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-ds-or-dt-cr);
1014
+ touch-action: manipulation;
1015
+ display: inline-flex;
1016
+ text-decoration: none;
1017
+ cursor: pointer;
1018
+ border: 0;
1019
+ padding: 0;
1020
+ margin: 0;
1021
+ width: var(--_ctm-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-ds-dt-se);
1022
+ height: var(--_ctm-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-ds-dt-se);
1023
+ align-items: center;
1024
+ justify-content: center;
1025
+ border-radius: 50%;
1026
+ }
1027
+ .embla__dot:after {
1028
+ width: var(--_ctm-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-ds-dt-se);
1029
+ height: var(--_ctm-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-ds-dt-se);
1030
+ border-radius: 50%;
1031
+ display: flex;
1032
+ align-items: center;
1033
+ content: "";
1034
+ }
1035
+ .embla__dot--selected:after {
1036
+ box-shadow: inset 0 0 0 1px var(--text-body);
1037
+ background-color: var(--_ctm-catego-dn-pt-gd-dn-pt-os-pt-os-dn-pn-ds-ct-dt-cr);
1038
+ }
1039
+ }
1040
+ }
826
1041
  }
@@ -1,61 +1,61 @@
1
- @use "sass:map";
2
- @use "sass:list";
3
-
4
- $resizerId: "[data-cms-tool='cms-element-resizer']";
5
- $resizeActive: '[data-cms-element-resizer="true"]';
6
- [data-div-type="element"] {
7
- &[data-element-type="categoryDetails"] {
8
- // width: var(--_sf-con-nw-wh);
9
- width: var(
10
- --_sf-el-wh-st-mx,
11
- calc(
12
- 1% *
13
- var(
14
- --_ctm-mob-categ-ele-nw-wh-vl,
15
- var(--_ctm-tab-categ-ele-nw-wh-vl, var(--_ctm-categ-ele-nw-wh-vl))
16
- )
17
- )
18
- );
19
-
20
- height: auto;
21
- margin: var(--_ctm-categ-lt-mn, var(--_ctm-lt-mn, --_tst-lt-mn));
22
- background-color: var(
23
- --_ctm-mob-categ-dn-bd-cr,
24
- var(--_ctm-tab-categ-dn-bd-cr, var(--_ctm-categ-dn-bd-cr))
25
- );
26
- background-image: var(
27
- --_ctm-mob-categ-dn-bd-ie,
28
- var(--_ctm-tab-categ-dn-bd-ie, var(--_ctm-categ-dn-bd-ie))
29
- );
30
- background-attachment: var(
31
- --_ctm-mob-categ-dn-bd-at,
32
- var(--_ctm-tab-categ-dn-bd-at, var(--_ctm-categ-dn-bd-at))
33
- );
34
- background-position: var(
35
- --_ctm-mob-categ-dn-bd-pn,
36
- var(--_ctm-tab-categ-dn-bd-pn, var(--_ctm-categ-dn-bd-pn))
37
- );
38
- background-repeat: var(
39
- --_ctm-mob-categ-dn-bd-rt,
40
- var(--_ctm-tab-categ-dn-bd-rt, var(--_ctm-categ-dn-bd-rt))
41
- );
42
- background-size: var(
43
- --_ctm-mob-categ-dn-bd-se,
44
- var(--_ctm-tab-categ-dn-bd-se, var(--_ctm-categ-dn-bd-se))
45
- );
46
- min-height: var(--_ctm-mob-categ-lt-ht, var(--_ctm-tab-categ-lt-ht, var(--_ctm-categ-lt-ht)));
47
-
48
- // &:not(:has(#{$resizerId}#{$resizeActive})) {
49
- // min-height: 100px !important;
50
- // }
51
-
52
- & > div {
53
- &.wrapper {
54
- width: 100%;
55
- // grid-template-rows: auto !important;
56
- grid-template-columns: 100% !important;
57
- // grid-template-rows: max(var(--_ctm-pro-lt-ht), auto) !important;
58
- }
59
- }
60
- }
61
- }
1
+ @use "sass:map";
2
+ @use "sass:list";
3
+
4
+ $resizerId: "[data-cms-tool='cms-element-resizer']";
5
+ $resizeActive: '[data-cms-element-resizer="true"]';
6
+ [data-div-type="element"] {
7
+ &[data-element-type="categoryDetails"] {
8
+ // width: var(--_sf-con-nw-wh);
9
+ width: var(
10
+ --_sf-el-wh-st-mx,
11
+ calc(
12
+ 1% *
13
+ var(
14
+ --_ctm-mob-categ-ele-nw-wh-vl,
15
+ var(--_ctm-tab-categ-ele-nw-wh-vl, var(--_ctm-categ-ele-nw-wh-vl))
16
+ )
17
+ )
18
+ );
19
+
20
+ height: auto;
21
+ margin: var(--_ctm-categ-lt-mn, var(--_ctm-lt-mn, --_tst-lt-mn));
22
+ background-color: var(
23
+ --_ctm-mob-categ-dn-bd-cr,
24
+ var(--_ctm-tab-categ-dn-bd-cr, var(--_ctm-categ-dn-bd-cr))
25
+ );
26
+ background-image: var(
27
+ --_ctm-mob-categ-dn-bd-ie,
28
+ var(--_ctm-tab-categ-dn-bd-ie, var(--_ctm-categ-dn-bd-ie))
29
+ );
30
+ background-attachment: var(
31
+ --_ctm-mob-categ-dn-bd-at,
32
+ var(--_ctm-tab-categ-dn-bd-at, var(--_ctm-categ-dn-bd-at))
33
+ );
34
+ background-position: var(
35
+ --_ctm-mob-categ-dn-bd-pn,
36
+ var(--_ctm-tab-categ-dn-bd-pn, var(--_ctm-categ-dn-bd-pn))
37
+ );
38
+ background-repeat: var(
39
+ --_ctm-mob-categ-dn-bd-rt,
40
+ var(--_ctm-tab-categ-dn-bd-rt, var(--_ctm-categ-dn-bd-rt))
41
+ );
42
+ background-size: var(
43
+ --_ctm-mob-categ-dn-bd-se,
44
+ var(--_ctm-tab-categ-dn-bd-se, var(--_ctm-categ-dn-bd-se))
45
+ );
46
+ min-height: var(--_ctm-mob-categ-lt-ht, var(--_ctm-tab-categ-lt-ht, var(--_ctm-categ-lt-ht)));
47
+
48
+ // &:not(:has(#{$resizerId}#{$resizeActive})) {
49
+ // min-height: 100px !important;
50
+ // }
51
+
52
+ & > div {
53
+ &.wrapper {
54
+ width: 100%;
55
+ // grid-template-rows: auto !important;
56
+ grid-template-columns: 100% !important;
57
+ // grid-template-rows: max(var(--_ctm-pro-lt-ht), auto) !important;
58
+ }
59
+ }
60
+ }
61
+ }
@@ -1,34 +1,34 @@
1
- @use "sass:map";
2
- @use "sass:list";
3
-
4
- $resizerId: "[data-cms-tool='cms-element-resizer']";
5
- $resizeActive: '[data-cms-element-resizer="true"]';
6
- [data-div-type="element"] {
7
- &[data-element-type="categoryWidget"] {
8
- // width: var(--_sf-con-nw-wh);
9
- // width: var(--_sf-el-wh-st-mx, calc(1% * var(--_ctm-ele-nw-wh-vl, var(--_sf-nw-wh))));
10
- width: calc(
11
- 1% * var(--_ctm-mob-cate-lt-wh, var(--_ctm-tab-cate-lt-wh, var(--_ctm-cate-lt-wh, auto)))
12
- );
13
-
14
- height: auto;
15
-
16
- margin: var(--_ctm-mob-cate-lt-mn, var(--_ctm-tab-cate-lt-mn, var(--_ctm-cate-lt-mn)));
17
-
18
- background: var(
19
- --_ctm-mob-cate-dn-bd-cr,
20
- var(--_ctm-tab-cate-dn-bd-cr, var(--_ctm-cate-dn-bd-cr))
21
- );
22
-
23
- // &:not(:has(#{$resizerId}#{$resizeActive})) {
24
- // min-height: 100px !important;
25
- // }
26
-
27
- & > div {
28
- &.wrapper {
29
- width: 100%;
30
- // grid-template-rows: max(var(--_ctm-pro-lt-ht), auto) !important;
31
- }
32
- }
33
- }
34
- }
1
+ @use "sass:map";
2
+ @use "sass:list";
3
+
4
+ $resizerId: "[data-cms-tool='cms-element-resizer']";
5
+ $resizeActive: '[data-cms-element-resizer="true"]';
6
+ [data-div-type="element"] {
7
+ &[data-element-type="categoryWidget"] {
8
+ // width: var(--_sf-con-nw-wh);
9
+ // width: var(--_sf-el-wh-st-mx, calc(1% * var(--_ctm-ele-nw-wh-vl, var(--_sf-nw-wh))));
10
+ width: calc(
11
+ 1% * var(--_ctm-mob-cate-lt-wh, var(--_ctm-tab-cate-lt-wh, var(--_ctm-cate-lt-wh, auto)))
12
+ );
13
+
14
+ height: auto;
15
+
16
+ margin: var(--_ctm-mob-cate-lt-mn, var(--_ctm-tab-cate-lt-mn, var(--_ctm-cate-lt-mn)));
17
+
18
+ background: var(
19
+ --_ctm-mob-cate-dn-bd-cr,
20
+ var(--_ctm-tab-cate-dn-bd-cr, var(--_ctm-cate-dn-bd-cr))
21
+ );
22
+
23
+ // &:not(:has(#{$resizerId}#{$resizeActive})) {
24
+ // min-height: 100px !important;
25
+ // }
26
+
27
+ & > div {
28
+ &.wrapper {
29
+ width: 100%;
30
+ // grid-template-rows: max(var(--_ctm-pro-lt-ht), auto) !important;
31
+ }
32
+ }
33
+ }
34
+ }
@@ -1,124 +1,124 @@
1
- .checkbox_container {
2
- display: flex;
3
- align-items: center;
4
- gap: 8px;
5
- cursor: pointer;
6
- position: relative;
7
-
8
- &.disabled {
9
- opacity: 0.6;
10
- cursor: not-allowed;
11
- }
12
-
13
- .checkbox_input {
14
- position: absolute;
15
- opacity: 0;
16
- cursor: pointer;
17
- }
18
-
19
- .checkbox_custom {
20
- width: 16px;
21
- height: 16px;
22
- border: 2px solid #797583;
23
- border-radius: 4px; // use 50% for circle
24
- display: inline-block;
25
- position: relative;
26
- transition: all 0.2s ease;
27
- &.checkbox_grouped {
28
- margin-right: 12px;
29
- }
30
- // 🔹 minus (indeterminate) state
31
- &.checkbox_remove {
32
- background-color: var(--_primary-400);
33
- border-color: var(--_primary-400);
34
-
35
- &::after {
36
- content: "" !important;
37
- position: absolute !important;
38
- top: 50% !important;
39
- left: 50% !important;
40
- width: 8px !important;
41
- height: 1px !important;
42
- background: white !important;
43
- transform: translate(-50%, -50%) !important;
44
- }
45
- }
46
- }
47
-
48
- // checked state
49
- .checkbox_input:checked + .checkbox_custom {
50
- background-color: var(--_primary-400);
51
- border-color: var(--_primary-400);
52
-
53
- &::after {
54
- content: "";
55
- position: absolute;
56
- left: 4px;
57
- top: 0px;
58
- width: 3px;
59
- height: 7px;
60
- border: solid white;
61
- border-width: 0 2px 2px 0;
62
- transform: rotate(45deg);
63
- }
64
- }
65
-
66
- .checkbox_label {
67
- font-size: 14px;
68
- color: var(--_gray-600);
69
- }
70
- }
71
-
72
- // radio button
73
- .radio_container {
74
- display: flex;
75
- align-items: center;
76
- gap: 8px;
77
- cursor: pointer;
78
- position: relative;
79
-
80
- &.disabled {
81
- opacity: 0.6;
82
- cursor: not-allowed;
83
- }
84
-
85
- .radio_input {
86
- position: absolute;
87
- opacity: 0;
88
- cursor: pointer;
89
- }
90
-
91
- .radio_custom {
92
- width: 16px;
93
- height: 16px;
94
- border: 2px solid #999;
95
- border-radius: 50%; // round for radio
96
- display: inline-block;
97
- position: relative;
98
- transition: all 0.2s ease;
99
- }
100
-
101
- // checked state
102
- .radio_input:checked + .radio_custom {
103
- background-color: var(--_primary-400);
104
- border: 2px solid var(--_primary-400);
105
-
106
- &::after {
107
- content: "";
108
- content: "";
109
- position: absolute;
110
- top: 50%;
111
- left: 50%;
112
- width: 8px;
113
- height: 8px;
114
- border-radius: 50%;
115
- background: #fff;
116
- transform: translate(-50%, -50%);
117
- }
118
- }
119
-
120
- .radio_label {
121
- font-size: 14px;
122
- color: var(--_gray-600);
123
- }
124
- }
1
+ .checkbox_container {
2
+ display: flex;
3
+ align-items: center;
4
+ gap: 8px;
5
+ cursor: pointer;
6
+ position: relative;
7
+
8
+ &.disabled {
9
+ opacity: 0.6;
10
+ cursor: not-allowed;
11
+ }
12
+
13
+ .checkbox_input {
14
+ position: absolute;
15
+ opacity: 0;
16
+ cursor: pointer;
17
+ }
18
+
19
+ .checkbox_custom {
20
+ width: 16px;
21
+ height: 16px;
22
+ border: 2px solid #797583;
23
+ border-radius: 4px; // use 50% for circle
24
+ display: inline-block;
25
+ position: relative;
26
+ transition: all 0.2s ease;
27
+ &.checkbox_grouped {
28
+ margin-right: 12px;
29
+ }
30
+ // 🔹 minus (indeterminate) state
31
+ &.checkbox_remove {
32
+ background-color: var(--_primary-400);
33
+ border-color: var(--_primary-400);
34
+
35
+ &::after {
36
+ content: "" !important;
37
+ position: absolute !important;
38
+ top: 50% !important;
39
+ left: 50% !important;
40
+ width: 8px !important;
41
+ height: 1px !important;
42
+ background: white !important;
43
+ transform: translate(-50%, -50%) !important;
44
+ }
45
+ }
46
+ }
47
+
48
+ // checked state
49
+ .checkbox_input:checked + .checkbox_custom {
50
+ background-color: var(--_primary-400);
51
+ border-color: var(--_primary-400);
52
+
53
+ &::after {
54
+ content: "";
55
+ position: absolute;
56
+ left: 4px;
57
+ top: 0px;
58
+ width: 3px;
59
+ height: 7px;
60
+ border: solid white;
61
+ border-width: 0 2px 2px 0;
62
+ transform: rotate(45deg);
63
+ }
64
+ }
65
+
66
+ .checkbox_label {
67
+ font-size: 14px;
68
+ color: var(--_gray-600);
69
+ }
70
+ }
71
+
72
+ // radio button
73
+ .radio_container {
74
+ display: flex;
75
+ align-items: center;
76
+ gap: 8px;
77
+ cursor: pointer;
78
+ position: relative;
79
+
80
+ &.disabled {
81
+ opacity: 0.6;
82
+ cursor: not-allowed;
83
+ }
84
+
85
+ .radio_input {
86
+ position: absolute;
87
+ opacity: 0;
88
+ cursor: pointer;
89
+ }
90
+
91
+ .radio_custom {
92
+ width: 16px;
93
+ height: 16px;
94
+ border: 2px solid #999;
95
+ border-radius: 50%; // round for radio
96
+ display: inline-block;
97
+ position: relative;
98
+ transition: all 0.2s ease;
99
+ }
100
+
101
+ // checked state
102
+ .radio_input:checked + .radio_custom {
103
+ background-color: var(--_primary-400);
104
+ border: 2px solid var(--_primary-400);
105
+
106
+ &::after {
107
+ content: "";
108
+ content: "";
109
+ position: absolute;
110
+ top: 50%;
111
+ left: 50%;
112
+ width: 8px;
113
+ height: 8px;
114
+ border-radius: 50%;
115
+ background: #fff;
116
+ transform: translate(-50%, -50%);
117
+ }
118
+ }
119
+
120
+ .radio_label {
121
+ font-size: 14px;
122
+ color: var(--_gray-600);
123
+ }
124
+ }