profile-pane 3.2.1 → 3.2.2-test.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.
Files changed (241) hide show
  1. package/README.md +50 -0
  2. package/lib/303.profile-pane.js +1362 -0
  3. package/lib/303.profile-pane.js.map +1 -0
  4. package/lib/303.profile-pane.min.js +2 -0
  5. package/lib/303.profile-pane.min.js.map +1 -0
  6. package/lib/ProfileView.css +1090 -0
  7. package/lib/ProfileView.d.ts +2 -1
  8. package/lib/ProfileView.d.ts.map +1 -1
  9. package/lib/ProfileView.js +64 -36
  10. package/lib/buttonsHelper.d.ts +1 -1
  11. package/lib/buttonsHelper.d.ts.map +1 -1
  12. package/lib/buttonsHelper.js +2 -1
  13. package/lib/editProfilePane/EditCVCard.js +1 -1
  14. package/lib/editProfilePane/EditCommunitiesCard.js +1 -1
  15. package/lib/editProfilePane/EditFriendsCard.js +1 -1
  16. package/lib/editProfilePane/EditProfileView.d.ts +1 -1
  17. package/lib/editProfilePane/EditProfileView.d.ts.map +1 -1
  18. package/lib/editProfilePane/EditProfileView.js +4 -5
  19. package/lib/editProfilePane/editProfilePresenter.d.ts.map +1 -1
  20. package/lib/editProfilePane/editProfilePresenter.js +5 -4
  21. package/lib/icons-svg/profileIcons.d.ts +1 -1
  22. package/lib/icons-svg/profileIcons.d.ts.map +1 -1
  23. package/lib/icons-svg/profileIcons.js +9 -17
  24. package/lib/index.d.ts +1 -8
  25. package/lib/index.d.ts.map +1 -1
  26. package/lib/index.js +74 -40
  27. package/lib/ontology/otherPreferencesForm.ttl +32 -0
  28. package/lib/ontology/resumeForm.ttl +349 -0
  29. package/lib/ontology/socialMedia.ttl +433 -0
  30. package/lib/profile-pane.js +32266 -13247
  31. package/lib/profile-pane.js.map +1 -1
  32. package/lib/profile-pane.min.js +2315 -935
  33. package/lib/profile-pane.min.js.map +1 -1
  34. package/lib/rdfFormsHelper.d.ts +13 -1
  35. package/lib/rdfFormsHelper.d.ts.map +1 -1
  36. package/lib/rdfFormsHelper.js +13 -1
  37. package/lib/sections/bio/BioEditDialog.d.ts.map +1 -1
  38. package/lib/sections/bio/BioEditDialog.js +7 -7
  39. package/lib/sections/bio/BioSection.css +300 -0
  40. package/lib/sections/bio/BioSection.d.ts +3 -2
  41. package/lib/sections/bio/BioSection.d.ts.map +1 -1
  42. package/lib/sections/bio/BioSection.js +26 -19
  43. package/lib/sections/bio/mutations.d.ts.map +1 -1
  44. package/lib/sections/bio/mutations.js +14 -3
  45. package/lib/sections/contactInfo/ContactInfoEditDialog.css +354 -0
  46. package/lib/sections/contactInfo/ContactInfoEditDialog.d.ts +3 -1
  47. package/lib/sections/contactInfo/ContactInfoEditDialog.d.ts.map +1 -1
  48. package/lib/sections/contactInfo/ContactInfoEditDialog.js +183 -98
  49. package/lib/sections/contactInfo/ContactInfoSection.css +125 -0
  50. package/lib/sections/contactInfo/ContactInfoSection.d.ts +2 -0
  51. package/lib/sections/contactInfo/ContactInfoSection.d.ts.map +1 -1
  52. package/lib/sections/contactInfo/ContactInfoSection.js +64 -41
  53. package/lib/sections/contactInfo/mutations.d.ts.map +1 -1
  54. package/lib/sections/contactInfo/mutations.js +51 -16
  55. package/lib/sections/education/EducationEditDialog.d.ts +3 -1
  56. package/lib/sections/education/EducationEditDialog.d.ts.map +1 -1
  57. package/lib/sections/education/EducationEditDialog.js +170 -92
  58. package/lib/sections/education/EducationSection.css +133 -0
  59. package/lib/sections/education/EducationSection.d.ts +3 -2
  60. package/lib/sections/education/EducationSection.d.ts.map +1 -1
  61. package/lib/sections/education/EducationSection.js +32 -25
  62. package/lib/sections/education/mutations.d.ts.map +1 -1
  63. package/lib/sections/education/mutations.js +14 -3
  64. package/lib/sections/heading/HeadingEditDialog.d.ts +4 -1
  65. package/lib/sections/heading/HeadingEditDialog.d.ts.map +1 -1
  66. package/lib/sections/heading/HeadingEditDialog.js +287 -162
  67. package/lib/sections/heading/HeadingSection.css +862 -0
  68. package/lib/sections/heading/HeadingSection.d.ts +3 -2
  69. package/lib/sections/heading/HeadingSection.d.ts.map +1 -1
  70. package/lib/sections/heading/HeadingSection.js +63 -32
  71. package/lib/sections/heading/imageHelpers.d.ts +1 -0
  72. package/lib/sections/heading/imageHelpers.d.ts.map +1 -1
  73. package/lib/sections/heading/imageHelpers.js +40 -1
  74. package/lib/sections/heading/mutations.d.ts.map +1 -1
  75. package/lib/sections/heading/mutations.js +86 -23
  76. package/lib/sections/heading/selectors.d.ts.map +1 -1
  77. package/lib/sections/heading/selectors.js +14 -3
  78. package/lib/sections/heading/types.d.ts +1 -2
  79. package/lib/sections/heading/types.d.ts.map +1 -1
  80. package/lib/sections/languages/LanguageEditDialog.d.ts +3 -1
  81. package/lib/sections/languages/LanguageEditDialog.d.ts.map +1 -1
  82. package/lib/sections/languages/LanguageEditDialog.js +202 -119
  83. package/lib/sections/languages/LanguageSection.css +53 -0
  84. package/lib/sections/languages/LanguageSection.d.ts +2 -0
  85. package/lib/sections/languages/LanguageSection.d.ts.map +1 -1
  86. package/lib/sections/languages/LanguageSection.js +42 -31
  87. package/lib/sections/languages/mutations.d.ts.map +1 -1
  88. package/lib/sections/languages/mutations.js +60 -161
  89. package/lib/sections/languages/selectors.d.ts.map +1 -1
  90. package/lib/sections/languages/selectors.js +1 -2
  91. package/lib/sections/projects/ProjectEditDialog.d.ts +2 -1
  92. package/lib/sections/projects/ProjectEditDialog.d.ts.map +1 -1
  93. package/lib/sections/projects/ProjectEditDialog.js +13 -24
  94. package/lib/sections/projects/ProjectSection.css +368 -0
  95. package/lib/sections/projects/ProjectSection.d.ts +2 -1
  96. package/lib/sections/projects/ProjectSection.d.ts.map +1 -1
  97. package/lib/sections/projects/ProjectSection.js +116 -34
  98. package/lib/sections/projects/mutations.d.ts.map +1 -1
  99. package/lib/sections/projects/mutations.js +109 -132
  100. package/lib/sections/projects/selectors.d.ts.map +1 -1
  101. package/lib/sections/projects/selectors.js +4 -45
  102. package/lib/{QRCodeCard.d.ts → sections/qrcode/QRCodeCard.d.ts} +2 -1
  103. package/lib/sections/qrcode/QRCodeCard.d.ts.map +1 -0
  104. package/lib/{QRCodeCard.js → sections/qrcode/QRCodeCard.js} +59 -11
  105. package/lib/sections/qrcode/QRCodeSection.css +108 -0
  106. package/lib/sections/qrcode/QRCodeSection.d.ts +4 -0
  107. package/lib/sections/qrcode/QRCodeSection.d.ts.map +1 -0
  108. package/lib/sections/qrcode/QRCodeSection.js +17 -0
  109. package/lib/sections/resume/ResumeEditDialog.d.ts +10 -1
  110. package/lib/sections/resume/ResumeEditDialog.d.ts.map +1 -1
  111. package/lib/sections/resume/ResumeEditDialog.js +531 -149
  112. package/lib/sections/resume/ResumeSection.css +350 -0
  113. package/lib/sections/resume/ResumeSection.d.ts +3 -2
  114. package/lib/sections/resume/ResumeSection.d.ts.map +1 -1
  115. package/lib/sections/resume/ResumeSection.js +78 -49
  116. package/lib/sections/resume/mutations.d.ts.map +1 -1
  117. package/lib/sections/resume/mutations.js +17 -3
  118. package/lib/sections/resume/selectors.d.ts.map +1 -1
  119. package/lib/sections/resume/selectors.js +1 -0
  120. package/lib/sections/resume/types.d.ts +1 -0
  121. package/lib/sections/resume/types.d.ts.map +1 -1
  122. package/lib/sections/shared/collapsibleSection.d.ts.map +1 -1
  123. package/lib/sections/shared/collapsibleSection.js +1 -0
  124. package/lib/sections/shared/phoneCountries.d.ts +1 -1
  125. package/lib/sections/shared/phoneCountries.d.ts.map +1 -1
  126. package/lib/sections/shared/phoneCountries.js +2 -2
  127. package/lib/sections/shared/projectCommunityNodes.d.ts +6 -0
  128. package/lib/sections/shared/projectCommunityNodes.d.ts.map +1 -0
  129. package/lib/sections/shared/projectCommunityNodes.js +56 -0
  130. package/lib/sections/shared/rdfMutationHelpers.d.ts +35 -2
  131. package/lib/sections/shared/rdfMutationHelpers.d.ts.map +1 -1
  132. package/lib/sections/shared/rdfMutationHelpers.js +290 -14
  133. package/lib/sections/shared/sectionCardHelpers.d.ts.map +1 -1
  134. package/lib/sections/shared/sectionCardHelpers.js +80 -11
  135. package/lib/sections/shared/types.d.ts +24 -0
  136. package/lib/sections/shared/types.d.ts.map +1 -1
  137. package/lib/sections/skills/SkillsEditDialog.d.ts +3 -1
  138. package/lib/sections/skills/SkillsEditDialog.d.ts.map +1 -1
  139. package/lib/sections/skills/SkillsEditDialog.js +136 -115
  140. package/lib/sections/skills/SkillsSection.css +173 -0
  141. package/lib/sections/skills/SkillsSection.d.ts +2 -0
  142. package/lib/sections/skills/SkillsSection.d.ts.map +1 -1
  143. package/lib/sections/skills/SkillsSection.js +107 -47
  144. package/lib/sections/skills/mutations.d.ts.map +1 -1
  145. package/lib/sections/skills/mutations.js +25 -21
  146. package/lib/sections/skills/selectors.d.ts.map +1 -1
  147. package/lib/sections/skills/selectors.js +5 -3
  148. package/lib/sections/social/SocialEditDialog.d.ts +3 -1
  149. package/lib/sections/social/SocialEditDialog.d.ts.map +1 -1
  150. package/lib/sections/social/SocialEditDialog.js +170 -62
  151. package/lib/sections/social/SocialSection.css +194 -0
  152. package/lib/sections/social/SocialSection.d.ts +4 -3
  153. package/lib/sections/social/SocialSection.d.ts.map +1 -1
  154. package/lib/sections/social/SocialSection.js +59 -43
  155. package/lib/sections/social/mutations.d.ts.map +1 -1
  156. package/lib/sections/social/mutations.js +23 -132
  157. package/lib/specialButtons/AddMeToYourFriends.css +54 -0
  158. package/lib/specialButtons/addContact/AddMeToYourContacts.css +1118 -0
  159. package/lib/specialButtons/addContact/ContactCreationDialog.d.ts +10 -0
  160. package/lib/specialButtons/addContact/ContactCreationDialog.d.ts.map +1 -0
  161. package/lib/specialButtons/addContact/ContactCreationDialog.js +1123 -0
  162. package/lib/specialButtons/addContact/addMeToYourContacts.d.ts +16 -0
  163. package/lib/specialButtons/addContact/addMeToYourContacts.d.ts.map +1 -0
  164. package/lib/specialButtons/addContact/addMeToYourContacts.js +136 -0
  165. package/lib/specialButtons/addContact/contactsErrors.d.ts +8 -0
  166. package/lib/specialButtons/addContact/contactsErrors.d.ts.map +1 -0
  167. package/lib/specialButtons/addContact/contactsErrors.js +106 -0
  168. package/lib/specialButtons/addContact/contactsTypes.d.ts +43 -0
  169. package/lib/specialButtons/addContact/contactsTypes.d.ts.map +1 -0
  170. package/lib/specialButtons/addContact/contactsTypes.js +5 -0
  171. package/lib/specialButtons/addContact/helpers.d.ts +7 -0
  172. package/lib/specialButtons/addContact/helpers.d.ts.map +1 -0
  173. package/lib/specialButtons/addContact/helpers.js +103 -0
  174. package/lib/specialButtons/addContact/mutations.d.ts +16 -0
  175. package/lib/specialButtons/addContact/mutations.d.ts.map +1 -0
  176. package/lib/specialButtons/addContact/mutations.js +300 -0
  177. package/lib/specialButtons/addContact/selectors.d.ts +10 -0
  178. package/lib/specialButtons/addContact/selectors.d.ts.map +1 -0
  179. package/lib/specialButtons/addContact/selectors.js +163 -0
  180. package/lib/{addMeToYourFriends.d.ts → specialButtons/addMeToYourFriends.d.ts} +6 -4
  181. package/lib/specialButtons/addMeToYourFriends.d.ts.map +1 -0
  182. package/lib/{addMeToYourFriends.js → specialButtons/addMeToYourFriends.js} +46 -11
  183. package/lib/styles/CollapsibleSection.css +519 -0
  184. package/lib/styles/EditDialogs.css +506 -686
  185. package/lib/styles/EditDialogs.responsive.css +989 -0
  186. package/lib/texts/buttonTexts.d.ts +9 -0
  187. package/lib/texts/buttonTexts.d.ts.map +1 -0
  188. package/lib/texts/buttonTexts.js +14 -0
  189. package/lib/texts/dialogTexts.d.ts +14 -0
  190. package/lib/texts/dialogTexts.d.ts.map +1 -0
  191. package/lib/texts/dialogTexts.js +19 -0
  192. package/lib/texts/messageTexts.d.ts +42 -0
  193. package/lib/texts/messageTexts.d.ts.map +1 -0
  194. package/lib/texts/messageTexts.js +47 -0
  195. package/lib/texts/profileTexts.d.ts +14 -0
  196. package/lib/texts/profileTexts.d.ts.map +1 -0
  197. package/lib/texts/profileTexts.js +19 -0
  198. package/lib/texts/qrCodeTexts.d.ts +2 -0
  199. package/lib/texts/qrCodeTexts.d.ts.map +1 -0
  200. package/lib/texts/qrCodeTexts.js +7 -0
  201. package/lib/texts.d.ts +5 -60
  202. package/lib/texts.d.ts.map +1 -1
  203. package/lib/texts.js +55 -70
  204. package/lib/ui/dialog.css +233 -0
  205. package/lib/ui/dialog.d.ts +15 -1
  206. package/lib/ui/dialog.d.ts.map +1 -1
  207. package/lib/ui/dialog.js +245 -45
  208. package/lib/ui/dialog.responsive.css +195 -0
  209. package/lib/ui/errors.d.ts.map +1 -1
  210. package/lib/ui/errors.js +2 -1
  211. package/lib/ui/spinner.d.ts +3 -0
  212. package/lib/ui/spinner.d.ts.map +1 -0
  213. package/lib/ui/spinner.js +13 -0
  214. package/lib/utils/debug.d.ts +5 -0
  215. package/lib/utils/debug.d.ts.map +1 -0
  216. package/lib/utils/debug.js +23 -0
  217. package/lib/utils/errorDisplay.d.ts +2 -0
  218. package/lib/utils/errorDisplay.d.ts.map +1 -0
  219. package/lib/utils/errorDisplay.js +19 -0
  220. package/package.json +32 -25
  221. package/lib/ChatWithMe.d.ts +0 -7
  222. package/lib/ChatWithMe.d.ts.map +0 -1
  223. package/lib/ChatWithMe.js +0 -90
  224. package/lib/QRCodeCard.d.ts.map +0 -1
  225. package/lib/addMeToYourFriends.d.ts.map +0 -1
  226. package/lib/sections/heading/camera.d.ts +0 -19
  227. package/lib/sections/heading/camera.d.ts.map +0 -1
  228. package/lib/sections/heading/camera.js +0 -199
  229. package/lib/styles/BioSection.css +0 -77
  230. package/lib/styles/CVCard.css +0 -142
  231. package/lib/styles/ChatWithMe.css +0 -6
  232. package/lib/styles/ContactInfoEditDialog.css +0 -153
  233. package/lib/styles/EducationCard.css +0 -103
  234. package/lib/styles/HeadingSection.css +0 -309
  235. package/lib/styles/ProfileCard.css +0 -66
  236. package/lib/styles/ProfileView.css +0 -65
  237. package/lib/styles/ProjectsCard.css +0 -206
  238. package/lib/styles/QRCodeCard.css +0 -43
  239. package/lib/styles/SocialCard.css +0 -89
  240. package/lib/styles/dialog.css +0 -209
  241. package/lib/styles/utilities.css +0 -740
@@ -0,0 +1,1118 @@
1
+ /* Launch button */
2
+ .profile-contacts-button__section {
3
+ width: 100%;
4
+ min-width: 0;
5
+ display: grid;
6
+ }
7
+
8
+ #add-to-contacts-button-container {
9
+ position: relative;
10
+ overflow: visible;
11
+ }
12
+
13
+ #add-to-contacts-button-container solid-ui-button.profile__btn-contacts {
14
+ --profile-contacts-button-border-default: var(--dialog-cancel-button-border, var(--gray-300, #D1D5DC));
15
+ --profile-contacts-button-background-default: transparent;
16
+ --profile-contacts-button-text-default: var(--dialog-cancel-button-text, var(--gray-800, #1E2939));
17
+ --profile-contacts-button-border-hover: var(--dialog-cancel-button-hover-border, var(--blue-900, #083575));
18
+ --profile-contacts-button-background-hover: var(--dialog-cancel-button-hover-background, var(--blue-900, #083575));
19
+ --profile-contacts-button-text-hover: var(--dialog-cancel-button-hover-text, var(--color-text-on-action, var(--white, #FFF)));
20
+ --button-padding-sm: var(--spacing-sm, 0.9375rem) var(--spacing-md, 1.25rem);
21
+ --button-font-size-sm: var(--font-size-md, 1rem);
22
+ --button-font-weight: var(--font-weight-normal, normal);
23
+ --button-border-radius: var(--border-radius-base);
24
+ --button-transition: all 0.3s ease-in-out;
25
+ --button-focus-outline: var(--focus-indicator-width) solid var(--color-primary);
26
+ --button-focus-outline-offset: var(--outline-offset-sm);
27
+ --button-focus-box-shadow: var(--box-shadow-focus-accessible, 0 0 0 var(--focus-ring-width) var(--color-focus-gap, var(--white, #FFF)), 0 0 0 calc(var(--focus-ring-width) + var(--focus-indicator-width)) var(--color-primary-alpha, rgba(124, 77, 255, 0.2)));
28
+ --button-border: var(--profile-contacts-button-border-default);
29
+ --button-background: var(--profile-contacts-button-background-default);
30
+ --button-text: var(--profile-contacts-button-text-default);
31
+ --button-hover-border: var(--profile-contacts-button-border-hover);
32
+ --button-hover-background: var(--profile-contacts-button-background-hover);
33
+ --button-hover-text: var(--profile-contacts-button-text-hover);
34
+ color: var(--button-text);
35
+ }
36
+
37
+ html[data-theme="dark"] #add-to-contacts-button-container solid-ui-button.profile__btn-contacts {
38
+ --profile-contacts-button-border-default: var(--dialog-cancel-button-border, var(--gray-300, #D1D5DC));
39
+ }
40
+
41
+ #add-to-contacts-button-container .profile__btn-contacts-label {
42
+ color: currentColor;
43
+ font-size: inherit;
44
+ font-weight: inherit;
45
+ line-height: 1;
46
+ }
47
+
48
+ #add-to-contacts-button-container .profile__btn-contacts-icon {
49
+ width: var(--icon-xxxs, 0.75rem);
50
+ height: var(--icon-xxxs, 0.75rem);
51
+ margin-right: var(--spacing-xxs, 0.3125rem);
52
+ flex-shrink: 0;
53
+ }
54
+
55
+ #add-to-contacts-button-container .profile__btn-contacts-icon svg {
56
+ width: var(--icon-xxxs, 0.75rem);
57
+ height: var(--icon-xxxs, 0.75rem);
58
+ display: block;
59
+ }
60
+
61
+ #add-to-contacts-button-container .profile__btn-contacts-icon path {
62
+ fill: currentColor;
63
+ }
64
+
65
+ #add-to-contacts-button-container solid-ui-button.profile__btn-contacts:hover .profile__btn-contacts-label,
66
+ #add-to-contacts-button-container solid-ui-button.profile__btn-contacts:focus-visible .profile__btn-contacts-label {
67
+ color: currentColor;
68
+ }
69
+
70
+ #add-to-contacts-button-container solid-ui-button.profile__btn-contacts:hover .profile__btn-contacts-icon path,
71
+ #add-to-contacts-button-container solid-ui-button.profile__btn-contacts:focus-visible .profile__btn-contacts-icon path {
72
+ fill: currentColor;
73
+ }
74
+
75
+ #add-to-contacts-button-container solid-ui-button.profile__btn-contacts[disabled],
76
+ #add-to-contacts-button-container solid-ui-button.profile__btn-contacts[aria-disabled="true"] {
77
+ --profile-contacts-button-border-default: var(--dialog-cancel-button-border, var(--gray-300, #D1D5DC));
78
+ --profile-contacts-button-background-default: transparent;
79
+ --profile-contacts-button-text-default: var(--dialog-cancel-button-text, var(--gray-800, #1E2939));
80
+ --profile-contacts-button-border-hover: var(--dialog-cancel-button-hover-border, var(--blue-900, #083575));
81
+ --profile-contacts-button-background-hover: var(--dialog-cancel-button-hover-background, var(--blue-900, #083575));
82
+ --profile-contacts-button-text-hover: var(--dialog-cancel-button-hover-text, var(--color-text-on-action, var(--white, #FFF)));
83
+ opacity: 1;
84
+ }
85
+
86
+ /* Main dialog shell */
87
+ .contacts-dialog__content {
88
+ --contacts-dialog-action-width: 10.8rem;
89
+ --contacts-dialog-list-width: 20rem;
90
+ --contacts-dialog-panel-width: 20.75rem;
91
+ --contacts-dialog-mobile-popup-max-width: calc(92vw - 5px);
92
+ --contacts-dialog-panel-border: var(--color-border-lighter, var(--slate-200, #E2E8F0));
93
+ --contacts-dialog-panel-background: var(--color-background, #F8F9FB);
94
+ --contacts-dialog-panel-header-background: var(--color-surface-overlay-header, var(--slate-50, #F8FAFC));
95
+ --contacts-dialog-panel-body-background: var(--color-card-bg, #FFF);
96
+ --contacts-dialog-panel-padding-inline: calc(var(--spacing-lg, 1.5625rem) + var(--spacing-xxs, 0.3125rem));
97
+ --contacts-dialog-inner-footer-padding: var(--spacing-sm, 0.9375rem) var(--spacing-lg, 1.5625rem);
98
+ --contacts-dialog-inner-footer-padding-mobile: var(--spacing-xs, 0.75rem) var(--spacing-sm, 0.9375rem);
99
+ background: transparent;
100
+ border-radius: 0;
101
+ box-shadow: none;
102
+ max-height: none;
103
+ min-width: 0;
104
+ }
105
+
106
+ .contacts-dialog__frame {
107
+ min-width: 0;
108
+ background: transparent;
109
+ border-radius: 0;
110
+ max-height: none;
111
+ overflow: visible;
112
+ }
113
+
114
+ .contacts-dialog__main {
115
+ width: 100%;
116
+ min-width: 0;
117
+ padding: var(--spacing-sm, 0.938rem);
118
+ box-sizing: border-box;
119
+ }
120
+
121
+ .contacts-dialog__creation {
122
+ width: 100%;
123
+ min-width: 0;
124
+ border-radius: 0;
125
+ background: transparent;
126
+ box-sizing: border-box;
127
+ padding: 0;
128
+ gap: 0;
129
+ }
130
+
131
+ .contacts-dialog__description {
132
+ padding: var(--spacing-xs, 0.75rem);
133
+ background: transparent;
134
+ color: var(--color-text-secondary, var(--gray-600, #4A5565));
135
+ font-size: var(--font-size-sm, 0.875rem);
136
+ font-weight: var(--font-weight-regular, 400);
137
+ }
138
+
139
+ .contacts-dialog__body {
140
+ min-width: 0;
141
+ margin-top: var(--spacing-lg, 1.5625rem);
142
+ overflow: auto;
143
+ }
144
+
145
+ .contacts-dialog__footer {
146
+ display: flex;
147
+ justify-content: flex-end;
148
+ align-items: center;
149
+ gap: var(--spacing-sm, 0.938rem);
150
+ width: auto;
151
+ min-width: 0;
152
+ padding: var(--spacing-md, 1.25rem) var(--contacts-dialog-panel-padding-inline);
153
+ border-top: var(--border-width-sm, 0.1rem) solid var(--contacts-dialog-panel-border);
154
+ background: var(--color-surface-tertiary, var(--gray-50, #F9FAFB));
155
+ box-sizing: border-box;
156
+ }
157
+
158
+ .contacts-dialog__footer > solid-ui-button {
159
+ width: var(--contacts-dialog-action-width);
160
+ }
161
+
162
+ /* Shared button tokens */
163
+ solid-ui-button.contacts-dialog__action-button {
164
+ --button-font-size-md: var(--font-size-sm, 0.875rem);
165
+ --button-font-weight: var(--font-weight-md, 500);
166
+ --button-background: var(--color-card-bg, var(--white, #FFF));
167
+ --button-text: var(--color-text-control, var(--slate-700, #314158));
168
+ --button-border: transparent;
169
+ --button-border-width: 0;
170
+ --button-border-radius: var(--border-radius-base);
171
+ --button-transition: all 0.3s ease-in-out;
172
+ --button-hover-background: var(--color-surface-accent-subtle, var(--lavender-300, #e6dcff));
173
+ --button-hover-border: transparent;
174
+ --button-hover-text: var(--color-text-accent-subtle, var(--color-text-control, var(--slate-700, #314158)));
175
+ --button-hover-box-shadow: none;
176
+ --button-active-transform: none;
177
+ --button-active-box-shadow: none;
178
+ --button-focus-outline: 3px solid var(--color-primary);
179
+ --button-focus-outline-offset: 2px;
180
+ --button-focus-box-shadow: var(--box-shadow-focus-accessible, 0 0 0 var(--focus-ring-width) var(--color-background), 0 0 0 calc(var(--focus-ring-width) + var(--focus-indicator-width)) var(--color-primary-alpha));
181
+ }
182
+
183
+ solid-ui-button.contacts-dialog__action-button--primary {
184
+ --button-height-md: 0;
185
+ --button-background: var(--color-primary, #7C4DFF) !important;
186
+ --button-text: var(--color-text-on-action, var(--white, #FFF)) !important;
187
+ --button-border-width: 0.8px;
188
+ --button-border: var(--color-primary, #7C4DFF) !important;
189
+ --button-font-size-md: var(--font-size-md, 1rem);
190
+ --button-font-weight: var(--font-weight-bold, 600);
191
+ --button-line-height: 1;
192
+ --button-padding-md: 0.85rem 1rem;
193
+ --button-hover-background: color-mix(in srgb, var(--color-primary, #7C4DFF) 85%, var(--black, #000)) !important;
194
+ --button-hover-text: var(--color-text-on-action, var(--white, #FFF)) !important;
195
+ --button-hover-border: var(--color-primary, #7C4DFF) !important;
196
+ --button-hover-box-shadow: var(--box-shadow-hover, 0 2px 4px rgba(124, 77, 255, 0.2));
197
+ --button-active-box-shadow: var(--box-shadow-active, 0 1px 2px rgba(124, 77, 255, 0.2));
198
+ }
199
+
200
+ solid-ui-button.contacts-dialog__action-button[disabled],
201
+ solid-ui-button.contacts-dialog__action-button[aria-disabled="true"] {
202
+ cursor: not-allowed;
203
+ opacity: 0.55;
204
+ --button-box-shadow: none !important;
205
+ --button-hover-box-shadow: none !important;
206
+ --button-active-box-shadow: none !important;
207
+ --button-active-transform: none;
208
+ }
209
+
210
+ solid-ui-button.contacts-dialog__action-button--primary[disabled],
211
+ solid-ui-button.contacts-dialog__action-button--primary[aria-disabled="true"] {
212
+ --button-background: color-mix(in srgb, var(--color-primary, #7C4DFF) 60%, var(--color-card-bg, var(--white, #FFF))) !important;
213
+ --button-border-width: 0.8px;
214
+ --button-border: color-mix(in srgb, var(--color-primary, #7C4DFF) 60%, var(--color-card-bg, var(--white, #FFF))) !important;
215
+ --button-text: var(--color-text-on-action, var(--white, #FFF)) !important;
216
+ }
217
+
218
+ solid-ui-button.contacts-dialog__confirm {
219
+ --button-padding-md: var(--spacing-sm) var(--spacing-md);
220
+ --button-font-size-md: var(--font-size-md, 1rem);
221
+ --button-font-weight: var(--font-weight-md, 500);
222
+ --button-line-height: 1;
223
+ --button-active-box-shadow: none;
224
+ }
225
+
226
+ solid-ui-button.contacts-dialog__cancel {
227
+ --button-padding-md: var(--spacing-sm) var(--spacing-md);
228
+ --button-font-size-md: var(--font-size-md, 1rem);
229
+ --button-font-weight: var(--font-weight-normal, normal);
230
+ --button-background: var(--dialog-cancel-button-background, transparent);
231
+ --button-text: var(--dialog-cancel-button-text, var(--gray-800, #1E2939));
232
+ --button-border: var(--dialog-cancel-button-border, var(--gray-300, #D1D5DC));
233
+ --button-border-radius: var(--border-radius-base);
234
+ --button-transition: all 0.3s ease-in-out;
235
+ --button-hover-background: var(--dialog-cancel-button-hover-background, var(--blue-900, #083575)) !important;
236
+ --button-hover-text: var(--dialog-cancel-button-hover-text, var(--color-text-on-action, var(--white, #FFF)));
237
+ --button-hover-border: var(--dialog-cancel-button-hover-border, var(--blue-900, #083575));
238
+ --button-hover-box-shadow: none;
239
+ --button-active-transform: none;
240
+ --button-active-box-shadow: none;
241
+ --button-focus-outline: var(--focus-indicator-width) solid var(--color-primary);
242
+ --button-focus-outline-offset: var(--outline-offset-sm);
243
+ --button-focus-box-shadow: var(--box-shadow-focus-accessible, 0 0 0 var(--focus-ring-width) var(--color-focus-gap, var(--white, #FFF)), 0 0 0 calc(var(--focus-ring-width) + var(--focus-indicator-width)) var(--color-primary-alpha, rgba(124, 77, 255, 0.2)));
244
+ }
245
+
246
+ solid-ui-button.contacts-dialog__cancel:hover::part(button),
247
+ solid-ui-button.contacts-dialog__cancel:focus-visible::part(button),
248
+ solid-ui-button.contacts-dialog__cancel:focus-within::part(button) {
249
+ background: var(--dialog-cancel-button-hover-background, var(--blue-900, #083575));
250
+ border-color: var(--dialog-cancel-button-hover-border, var(--blue-900, #083575));
251
+ color: var(--dialog-cancel-button-hover-text, var(--color-text-on-action, var(--white, #FFF)));
252
+ }
253
+
254
+ solid-ui-button.contacts-dialog__cancel--footer {
255
+ width: var(--contacts-dialog-action-width);
256
+ min-width: var(--contacts-dialog-action-width);
257
+ max-width: var(--contacts-dialog-action-width);
258
+ inline-size: var(--contacts-dialog-action-width);
259
+ align-self: auto;
260
+ }
261
+
262
+ .contacts-dialog__submit-contact {
263
+ width: var(--contacts-dialog-action-width) !important;
264
+ min-width: var(--contacts-dialog-action-width);
265
+ max-width: var(--contacts-dialog-action-width);
266
+ inline-size: var(--contacts-dialog-action-width);
267
+ flex: 0 0 var(--contacts-dialog-action-width);
268
+ align-self: flex-end;
269
+ line-height: 1;
270
+ }
271
+
272
+ .contacts-dialog__address-submit {
273
+ width: fit-content;
274
+ min-width: fit-content;
275
+ max-width: fit-content;
276
+ inline-size: fit-content;
277
+ flex: 0 0 auto;
278
+ align-self: auto;
279
+ margin: 0 0 0 auto;
280
+ white-space: nowrap;
281
+ }
282
+
283
+ .contacts-dialog__group-submit {
284
+ width: fit-content;
285
+ min-width: fit-content;
286
+ max-width: fit-content;
287
+ inline-size: fit-content;
288
+ flex: 0 0 auto;
289
+ align-self: auto;
290
+ margin: 0 0 0 auto;
291
+ white-space: nowrap;
292
+ }
293
+
294
+ .contacts-dialog__uri-submit {
295
+ width: fit-content;
296
+ min-width: fit-content;
297
+ max-width: fit-content;
298
+ inline-size: fit-content;
299
+ flex: 0 0 auto;
300
+ align-self: auto;
301
+ margin: 0 0 0 auto;
302
+ line-height: 1;
303
+ white-space: nowrap;
304
+ }
305
+
306
+ .contacts-dialog__uri-submit::part(button),
307
+ .contacts-dialog__address-submit::part(button) {
308
+ width: auto;
309
+ min-width: 0;
310
+ }
311
+
312
+ /* Selection layout */
313
+ .contacts-dialog__details {
314
+ width: 100%;
315
+ min-width: 0;
316
+ min-height: 0;
317
+ border-radius: 0;
318
+ justify-content: flex-start;
319
+ align-items: flex-start;
320
+ box-sizing: border-box;
321
+ gap: var(--spacing-sm, 0.938rem);
322
+ padding: 0;
323
+ overflow-x: auto;
324
+ overflow-y: auto;
325
+ background: transparent;
326
+ }
327
+
328
+ .contacts-dialog__address-book-list {
329
+ flex: 0 0 15rem;
330
+ width: 100%;
331
+ max-width: 16rem;
332
+ min-width: 240px;
333
+ display: flex;
334
+ flex-direction: column;
335
+ gap: 1px;
336
+ box-sizing: border-box;
337
+ }
338
+
339
+ .contacts-dialog__group-list {
340
+ width: auto;
341
+ max-width: 14rem;
342
+ min-width: 12.5rem;
343
+ box-sizing: border-box;
344
+ gap: 1px;
345
+ }
346
+
347
+ .contacts-dialog__column-title {
348
+ margin: 0 0 0.35rem;
349
+ padding-bottom: 0.35rem;
350
+ border-bottom: var(--border-width-sm, 0.1rem) solid var(--color-border-lighter, var(--slate-200, #E2E8F0));
351
+ color: var(--color-text-subheading, var(--gray-900, #101828));
352
+ font-size: var(--font-size-lg, 1.125rem);
353
+ }
354
+
355
+ #addressbook-list > solid-ui-button#contacts-create-addressbook-button,
356
+ #addressbook-list > solid-ui-button#contacts-addressbook-uri-entry-button,
357
+ #group-list > solid-ui-button#contacts-create-group-button {
358
+ width: 100% !important;
359
+ min-width: 100% !important;
360
+ max-width: 100% !important;
361
+ inline-size: 100% !important;
362
+ }
363
+
364
+ solid-ui-button.contacts-dialog__list-button {
365
+ flex-shrink: 0;
366
+ width: 100%;
367
+ -webkit-tap-highlight-color: transparent;
368
+ --button-height-sm: 0;
369
+ --button-padding-sm: 0.85rem 1rem;
370
+ --button-font-size-sm: var(--font-size-sm, 0.875rem);
371
+ --button-font-weight: var(--font-weight-md, 500);
372
+ --button-border-width: 0;
373
+ --button-border-radius: var(--border-radius-md, 0.5rem);
374
+ --button-selected-background: var(--color-surface-accent-subtle, var(--lavender-300, #e6dcff)) !important;
375
+ --button-selected-text: var(--color-text-accent-subtle, var(--color-text-control, var(--slate-700, #314158)));
376
+ --button-selected-border: transparent;
377
+ --button-box-shadow: none !important;
378
+ --button-hover-background: var(--color-surface-accent-subtle, var(--lavender-300, #e6dcff)) !important;
379
+ --button-hover-text: var(--color-text-accent-subtle, var(--color-text-control, var(--slate-700, #314158)));
380
+ --button-hover-border: transparent;
381
+ --button-hover-box-shadow: none !important;
382
+ --button-active-transform: none;
383
+ --button-active-box-shadow: none !important;
384
+ --button-focus-outline: none;
385
+ --button-focus-box-shadow: none !important;
386
+ }
387
+
388
+ /* Inline panel shells */
389
+ .contacts-dialog__inline-panel-region {
390
+ display: none;
391
+ min-width: 0;
392
+ order: 3;
393
+ }
394
+
395
+ .contacts-dialog__inline-panel-region--active {
396
+ display: block;
397
+ min-width: 0;
398
+ width: min(100%, var(--contacts-dialog-panel-width)) !important;
399
+ max-width: var(--contacts-dialog-panel-width) !important;
400
+ align-self: flex-start;
401
+ order: 3;
402
+ }
403
+
404
+ .contacts-dialog__inline-panel.contacts-dialog__popup {
405
+ position: static;
406
+ inset: auto;
407
+ transform: none;
408
+ min-width: 0;
409
+ width: 100% !important;
410
+ max-width: 100% !important;
411
+ max-height: none;
412
+ margin: 0;
413
+ margin-right: 0;
414
+ overflow: visible;
415
+ box-shadow: none;
416
+ border-left: 1px solid var(--contacts-dialog-panel-border);
417
+ }
418
+
419
+ .contacts-dialog__address-form,
420
+ .contacts-dialog__group-form,
421
+ .contacts-dialog__uri-entry {
422
+ padding: 0 !important;
423
+ gap: 0;
424
+ box-sizing: border-box;
425
+ border-radius: var(--border-radius-base);
426
+ }
427
+
428
+ .contacts-dialog__address-form {
429
+ width: 100% !important;
430
+ max-width: 100% !important;
431
+ align-items: stretch;
432
+ border: 1px solid var(--contacts-dialog-panel-border);
433
+ background: var(--contacts-dialog-panel-background);
434
+ }
435
+
436
+ .contacts-dialog__group-form {
437
+ border: none;
438
+ border-left: 1px solid var(--contacts-dialog-panel-border);
439
+ border-radius: 0;
440
+ background: var(--contacts-dialog-panel-background);
441
+ }
442
+
443
+ .contacts-dialog__uri-entry {
444
+ width: 100% !important;
445
+ max-width: 100% !important;
446
+ min-width: 0;
447
+ align-self: flex-start;
448
+ border: 1px solid var(--contacts-dialog-panel-border);
449
+ background: var(--contacts-dialog-panel-background);
450
+ }
451
+
452
+ .contacts-dialog__uri-entry-form {
453
+ width: 100%;
454
+ max-width: 100%;
455
+ min-width: 0;
456
+ align-items: stretch;
457
+ box-sizing: border-box;
458
+ gap: 0;
459
+ background: var(--color-card-bg, #FFF);
460
+ }
461
+
462
+ /* Popup chrome */
463
+ .contacts-dialog__header {
464
+ display: flex;
465
+ align-items: center;
466
+ justify-content: space-between;
467
+ gap: var(--spacing-sm, 0.938rem);
468
+ width: 100%;
469
+ min-width: 0;
470
+ box-sizing: border-box;
471
+ }
472
+
473
+ .contacts-dialog__title {
474
+ margin: 0;
475
+ min-width: 0;
476
+ flex: 1 1 auto;
477
+ line-height: 1.3;
478
+ font-size: var(--font-size-md);
479
+ color: var(--color-text-subheading, var(--gray-900, #101828));
480
+ }
481
+
482
+ .contacts-dialog__popup .contacts-dialog__header {
483
+ border-bottom: var(--border-width-sm, 0.1rem) solid var(--color-border-lighter, var(--slate-200, #E2E8F0));
484
+ }
485
+
486
+ .contacts-dialog__address-form .contacts-dialog__header,
487
+ .contacts-dialog__group-form .contacts-dialog__header,
488
+ .contacts-dialog__uri-entry .contacts-dialog__header {
489
+ margin-bottom: 0;
490
+ padding: var(--spacing-md, 1.25rem) var(--spacing-lg, 1.5625rem);
491
+ border-bottom: var(--border-width-sm, 0.1rem) solid var(--contacts-dialog-panel-border);
492
+ background: var(--contacts-dialog-panel-header-background);
493
+ }
494
+
495
+ solid-ui-button.contacts-dialog__close {
496
+ flex: 0 0 auto;
497
+ align-self: flex-start;
498
+ min-inline-size: var(--icon-base, 2rem);
499
+ --button-height-sm: var(--icon-base, 2rem);
500
+ --button-width-sm: var(--icon-base, 2rem);
501
+ --button-padding-sm: 0;
502
+ --button-background: transparent;
503
+ --button-border-width: 0;
504
+ --button-border: transparent;
505
+ --button-border-radius: 999px;
506
+ --button-text: var(--color-text);
507
+ --button-box-shadow: none;
508
+ --button-hover-background: rgba(0, 0, 0, 0.04);
509
+ --button-hover-border: transparent;
510
+ --button-hover-text: var(--color-primary);
511
+ --button-hover-box-shadow: none;
512
+ --button-active-box-shadow: none;
513
+ --button-active-transform: none;
514
+ --button-icon-size-sm: var(--icon-xxs, 1rem);
515
+ }
516
+
517
+ solid-ui-button.contacts-dialog__close:focus-visible::part(button) {
518
+ outline: var(--focus-indicator-width) solid var(--color-primary);
519
+ outline-offset: var(--outline-offset-sm);
520
+ box-shadow: var(--box-shadow-focus-accessible, 0 0 0 var(--focus-ring-width) var(--color-background), 0 0 0 calc(var(--focus-ring-width) + var(--focus-indicator-width)) var(--color-primary-alpha));
521
+ }
522
+
523
+ .contacts-dialog__popup-body {
524
+ min-width: 0;
525
+ gap: var(--spacing-base, 0.5rem);
526
+ }
527
+
528
+ .contacts-dialog__address-form .contacts-dialog__popup-body,
529
+ .contacts-dialog__group-form .contacts-dialog__popup-body,
530
+ .contacts-dialog__uri-entry .contacts-dialog__popup-body {
531
+ padding: var(--spacing-lg, 1.5625rem);
532
+ box-sizing: border-box;
533
+ background: var(--contacts-dialog-panel-body-background);
534
+ }
535
+
536
+ .contacts-dialog__popup .input {
537
+ width: 100%;
538
+ max-width: 100%;
539
+ min-height: var(--min-touch-target, 44px);
540
+ height: var(--min-touch-target, 44px);
541
+ border-radius: var(--border-radius-base, 0.3125rem);
542
+ border: 1px solid var(--color-border-button-hover, var(--gray-400, #99A1AF));
543
+ background: var(--color-card-bg, var(--white, #FFF));
544
+ color: var(--color-text-subheading, var(--gray-900, #101828));
545
+ font-size: var(--font-size-sm, 0.875rem);
546
+ font-weight: var(--font-weight-medium, 500);
547
+ padding: var(--spacing-2xs, 0.625rem);
548
+ box-sizing: border-box;
549
+ margin-bottom: var(--spacing-base, 0.5rem);
550
+ }
551
+
552
+ .contacts-dialog__address-form .input,
553
+ .contacts-dialog__group-form .input,
554
+ .contacts-dialog__uri-entry .input {
555
+ margin-bottom: 0;
556
+ }
557
+
558
+ .contacts-dialog__uri-input {
559
+ width: 100%;
560
+ max-width: 100%;
561
+ min-width: 0;
562
+ display: block;
563
+ flex: 1 1 auto;
564
+ align-self: stretch;
565
+ box-sizing: border-box;
566
+ }
567
+
568
+ .contacts-dialog__popup-footer {
569
+ display: flex;
570
+ justify-content: flex-end;
571
+ align-items: center;
572
+ width: 100%;
573
+ min-width: 0;
574
+ align-self: stretch;
575
+ box-sizing: border-box;
576
+ gap: var(--spacing-md);
577
+ margin-top: 1rem;
578
+ padding-top: 1rem;
579
+ border-top: var(--border-width-sm, 0.1rem) solid var(--contacts-dialog-panel-border);
580
+ background: var(--color-surface-tertiary, var(--gray-50, #F9FAFB));
581
+ }
582
+
583
+ .contacts-dialog__address-form .contacts-dialog__popup-footer,
584
+ .contacts-dialog__group-form .contacts-dialog__popup-footer,
585
+ .contacts-dialog__uri-entry .contacts-dialog__popup-footer {
586
+ margin-top: 0;
587
+ gap: var(--spacing-sm, 0.9375rem);
588
+ padding: var(--contacts-dialog-inner-footer-padding);
589
+ }
590
+
591
+ .contacts-dialog__address-form .contacts-dialog__popup-footer,
592
+ .contacts-dialog__uri-entry-form .contacts-dialog__popup-footer {
593
+ justify-content: flex-end;
594
+ }
595
+
596
+ .contacts-dialog__popup-footer > solid-ui-button.contacts-dialog__confirm,
597
+ .contacts-dialog__popup-footer > solid-ui-button.contacts-dialog__cancel {
598
+ width: var(--contacts-dialog-action-width);
599
+ min-width: var(--contacts-dialog-action-width);
600
+ max-width: var(--contacts-dialog-action-width);
601
+ inline-size: var(--contacts-dialog-action-width);
602
+ }
603
+
604
+ /* Validation and feedback */
605
+ .contacts-dialog__validation {
606
+ display: none;
607
+ width: calc(100% - 0.5rem);
608
+ max-width: calc(100% - 0.5rem);
609
+ margin: 0 auto;
610
+ padding-right: 0.25rem;
611
+ padding-left: 0.25rem;
612
+ align-self: stretch;
613
+ box-sizing: border-box;
614
+ color: var(--red-600, #B00020);
615
+ font-size: var(--font-size-sm, 0.875rem);
616
+ white-space: normal;
617
+ overflow-wrap: anywhere;
618
+ word-break: break-word;
619
+ text-align: left;
620
+ }
621
+
622
+ .contacts-dialog__validation--visible {
623
+ display: block;
624
+ }
625
+
626
+ .contacts-dialog__error,
627
+ .contacts-dialog__error[role='alert'] {
628
+ position: relative;
629
+ z-index: 3;
630
+ display: none;
631
+ width: 100%;
632
+ align-self: stretch;
633
+ margin: 0;
634
+ padding: 0;
635
+ border: 1px solid var(--dialog-error-border, var(--pink-700, #ff98b3));
636
+ border-radius: var(--border-radius-base);
637
+ background: var(--dialog-error-background, var(--pink-500, #ffdde6));
638
+ background-color: var(--dialog-error-background, var(--pink-500, #ffdde6));
639
+ color: var(--dialog-error-text, var(--red-600, #B00020));
640
+ text-align: center;
641
+ }
642
+
643
+ .contacts-dialog__error--visible {
644
+ display: flex !important;
645
+ flex-direction: row;
646
+ justify-content: center;
647
+ }
648
+
649
+ solid-ui-button.contacts-dialog__error-close {
650
+ position: absolute;
651
+ top: var(--spacing-xxxs, 0.2rem);
652
+ right: var(--spacing-xxxs, 0.2rem);
653
+ z-index: 4;
654
+ --button-height-sm: 0;
655
+ --button-padding-sm: 0;
656
+ --button-font-size-sm: var(--font-size-sm);
657
+ --button-background: transparent;
658
+ --button-border: transparent;
659
+ --button-border-width: 0;
660
+ --button-border-radius: 0;
661
+ --button-text: var(--dialog-error-text, var(--red-600, #B00020));
662
+ --button-hover-background: transparent;
663
+ --button-hover-border: transparent;
664
+ --button-hover-text: var(--dialog-error-text, var(--red-600, #B00020));
665
+ --button-line-height: 1;
666
+ --button-active-transform: none;
667
+ --button-box-shadow: none;
668
+ --button-hover-box-shadow: none;
669
+ --button-active-box-shadow: none;
670
+ }
671
+
672
+ /* Overlays and confirmation popups */
673
+ .contacts-dialog__popup-overlay {
674
+ position: absolute;
675
+ inset: 0;
676
+ z-index: 8;
677
+ background: color-mix(in srgb, var(--black, #000) 50%, transparent);
678
+ }
679
+
680
+ .contacts-dialog__popup {
681
+ position: absolute;
682
+ top: 50%;
683
+ left: 50%;
684
+ z-index: 10;
685
+ width: min(calc(24rem - 5px), calc(100% - 1rem - 5px));
686
+ max-width: calc(100% - 1rem - 5px);
687
+ max-height: min(calc(100% - 1rem - 5px), calc(100vh - 6rem - 5px));
688
+ padding: 1rem;
689
+ box-sizing: border-box;
690
+ overflow: auto;
691
+ overflow-x: hidden;
692
+ transform: translate(-50%, -50%);
693
+ border-radius: var(--border-radius-base);
694
+ background: var(--color-surface-overlay, var(--white, #FFF)) !important;
695
+ color: var(--color-text-overlay, var(--gray-800, #1E2939));
696
+ box-shadow: var(--box-shadow-overlay, 0 4px 24px rgba(0, 0, 0, 0.2));
697
+ }
698
+
699
+ .contacts-dialog__shared-confirm-form {
700
+ display: flex;
701
+ flex-direction: column;
702
+ }
703
+
704
+ .contacts-dialog__shared-confirm-message {
705
+ margin: 0;
706
+ color: var(--color-text-overlay, var(--gray-800, #1E2939));
707
+ }
708
+
709
+ .contacts-dialog__shared-confirm-name {
710
+ font-weight: var(--font-weight-bold, 600);
711
+ }
712
+
713
+ .contacts-dialog__contact-exists {
714
+ position: absolute;
715
+ top: 50%;
716
+ left: 50%;
717
+ z-index: 10;
718
+ width: min(90vw, 20rem);
719
+ padding: 1rem;
720
+ transform: translate(-50%, -50%);
721
+ border-radius: var(--border-radius-base);
722
+ background: var(--color-surface-overlay, var(--white, #FFF));
723
+ color: var(--color-text-overlay, var(--gray-800, #1E2939));
724
+ box-shadow: var(--box-shadow-modal, 0 2px 10px rgba(0, 0, 0, 0.3));
725
+ align-items: center;
726
+ gap: var(--spacing-md, 1rem);
727
+ text-wrap: pretty;
728
+ }
729
+
730
+ .contacts-dialog__contact-exists .contacts-dialog__popup-footer {
731
+ width: 100%;
732
+ justify-content: center;
733
+ gap: var(--spacing-2xs, 0.625rem);
734
+ margin-top: var(--spacing-base, 0.5rem);
735
+ padding-top: 0;
736
+ border-top: none;
737
+ background: transparent;
738
+ }
739
+
740
+ .contacts-dialog__contact-exists .contacts-dialog__confirm,
741
+ .contacts-dialog__contact-exists .contacts-dialog__cancel {
742
+ width: auto;
743
+ min-width: 6rem;
744
+ flex: 0 0 auto;
745
+ margin: 0;
746
+ white-space: nowrap;
747
+ }
748
+
749
+ /* Responsive overrides */
750
+
751
+ /* Explicit mobile layout mode uses the same values as the small-screen rules,
752
+ but plain CSS still needs a separate block because `data-layout` is not a media query. */
753
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__frame {
754
+ max-height: none;
755
+ overflow: visible;
756
+ }
757
+
758
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__body {
759
+ padding-bottom: 0;
760
+ overflow: visible;
761
+ }
762
+
763
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__footer {
764
+ flex-direction: row;
765
+ align-items: center;
766
+ justify-content: flex-end;
767
+ gap: var(--spacing-sm, 0.9375rem);
768
+ width: 100%;
769
+ }
770
+
771
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__footer > solid-ui-button {
772
+ flex: 1 0 0;
773
+ width: auto;
774
+ min-width: 0;
775
+ max-width: none;
776
+ inline-size: auto;
777
+ --button-font-size-md: var(--font-size-md, 1rem);
778
+ }
779
+
780
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__popup {
781
+ max-width: var(--contacts-dialog-mobile-popup-max-width);
782
+ max-height: 78vh;
783
+ padding: 0.85rem;
784
+ }
785
+
786
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__address-form {
787
+ width: min(100%, var(--contacts-dialog-panel-width)) !important;
788
+ max-width: min(100%, var(--contacts-dialog-panel-width)) !important;
789
+ margin-inline: auto;
790
+ padding: 0 !important;
791
+ }
792
+
793
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__inline-panel-region {
794
+ min-width: 0;
795
+ width: min(100%, var(--contacts-dialog-list-width)) !important;
796
+ max-width: min(100%, var(--contacts-dialog-list-width)) !important;
797
+ margin-inline: auto;
798
+ }
799
+
800
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__inline-panel-region--active {
801
+ width: min(100%, var(--contacts-dialog-panel-width)) !important;
802
+ max-width: min(100%, var(--contacts-dialog-panel-width)) !important;
803
+ }
804
+
805
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__address-form .contacts-dialog__header,
806
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__group-form .contacts-dialog__header,
807
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__uri-entry .contacts-dialog__header {
808
+ padding: var(--spacing-sm, 0.9375rem);
809
+ }
810
+
811
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__address-form .contacts-dialog__popup-body,
812
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__group-form .contacts-dialog__popup-body,
813
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__uri-entry .contacts-dialog__popup-body {
814
+ gap: var(--spacing-base, 0.5rem);
815
+ padding: var(--spacing-sm, 0.9375rem) var(--spacing-sm, 0.9375rem) var(--spacing-lg, 1.5625rem) var(--spacing-sm, 0.9375rem);
816
+ }
817
+
818
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__address-form .input {
819
+ min-height: 2.5rem;
820
+ height: 2.5rem;
821
+ margin-bottom: 0.375rem;
822
+ padding: var(--spacing-base, 0.5rem);
823
+ }
824
+
825
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__uri-entry .contacts-dialog__popup-footer,
826
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__address-form .contacts-dialog__popup-footer {
827
+ justify-content: flex-end;
828
+ gap: var(--spacing-sm, 0.9375rem);
829
+ padding: var(--contacts-dialog-inner-footer-padding-mobile);
830
+ }
831
+
832
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__group-form .contacts-dialog__popup-footer {
833
+ justify-content: center;
834
+ gap: var(--spacing-sm, 0.9375rem);
835
+ padding: var(--contacts-dialog-inner-footer-padding-mobile);
836
+ }
837
+
838
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__uri-entry .contacts-dialog__popup-footer > solid-ui-button,
839
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__address-form .contacts-dialog__popup-footer > solid-ui-button {
840
+ flex: 1 0 0;
841
+ width: auto !important;
842
+ min-width: 0 !important;
843
+ max-width: none !important;
844
+ inline-size: auto !important;
845
+ --button-font-size-md: var(--font-size-md, 1rem);
846
+ }
847
+
848
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__uri-submit,
849
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__address-submit,
850
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__submit-contact,
851
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__cancel--footer {
852
+ flex: 1 0 0 !important;
853
+ width: auto !important;
854
+ min-width: 0 !important;
855
+ max-width: none !important;
856
+ inline-size: auto !important;
857
+ margin-left: 0 !important;
858
+ margin-right: 0 !important;
859
+ align-self: auto;
860
+ display: inline-flex;
861
+ justify-content: center;
862
+ align-items: center;
863
+ text-align: center;
864
+ }
865
+
866
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__group-form .contacts-dialog__popup-footer > solid-ui-button.contacts-dialog__group-submit {
867
+ flex: 0 0 auto;
868
+ width: fit-content;
869
+ min-width: fit-content;
870
+ max-width: fit-content;
871
+ inline-size: fit-content;
872
+ margin: 0 auto;
873
+ align-self: auto;
874
+ display: inline-flex;
875
+ justify-content: center;
876
+ align-items: center;
877
+ }
878
+
879
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__details {
880
+ width: 100% !important;
881
+ min-width: 0;
882
+ max-height: none;
883
+ padding: var(--spacing-base, 0.5rem) var(--spacing-base, 0.5rem) 0;
884
+ overflow-y: visible;
885
+ }
886
+
887
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__address-book-list,
888
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__group-list {
889
+ min-width: 0;
890
+ width: min(100%, var(--contacts-dialog-list-width)) !important;
891
+ max-width: min(100%, var(--contacts-dialog-list-width)) !important;
892
+ margin-inline: auto;
893
+ }
894
+
895
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__inline-panel.contacts-dialog__popup,
896
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__group-form,
897
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .contacts-dialog__uri-entry {
898
+ width: min(100%, var(--contacts-dialog-panel-width)) !important;
899
+ max-width: min(100%, var(--contacts-dialog-panel-width)) !important;
900
+ margin-inline: auto !important;
901
+ align-self: center;
902
+ }
903
+
904
+ @media (max-width: 576px) {
905
+ .contacts-dialog__frame {
906
+ max-height: none;
907
+ overflow: visible;
908
+ }
909
+
910
+ .contacts-dialog__body {
911
+ padding-bottom: 0;
912
+ overflow: visible;
913
+ }
914
+
915
+ .contacts-dialog__footer {
916
+ flex-direction: row;
917
+ align-items: center;
918
+ justify-content: flex-end;
919
+ gap: var(--spacing-sm, 0.9375rem);
920
+ width: 100%;
921
+ }
922
+
923
+ .contacts-dialog__footer > solid-ui-button {
924
+ flex: 1 0 0;
925
+ width: auto;
926
+ min-width: 0;
927
+ max-width: none;
928
+ inline-size: auto;
929
+ --button-font-size-md: var(--font-size-md, 1rem);
930
+ }
931
+
932
+ .contacts-dialog__popup {
933
+ max-width: var(--contacts-dialog-mobile-popup-max-width);
934
+ max-height: 78vh;
935
+ padding: 0.85rem;
936
+ }
937
+
938
+ .contacts-dialog__address-form {
939
+ width: min(100%, var(--contacts-dialog-panel-width)) !important;
940
+ max-width: min(100%, var(--contacts-dialog-panel-width)) !important;
941
+ margin-inline: auto;
942
+ padding: 0 !important;
943
+ }
944
+
945
+ .contacts-dialog__inline-panel-region {
946
+ min-width: 0;
947
+ width: min(100%, var(--contacts-dialog-list-width)) !important;
948
+ max-width: min(100%, var(--contacts-dialog-list-width)) !important;
949
+ margin-inline: auto;
950
+ }
951
+
952
+ .contacts-dialog__inline-panel-region--active {
953
+ width: min(100%, var(--contacts-dialog-panel-width)) !important;
954
+ max-width: min(100%, var(--contacts-dialog-panel-width)) !important;
955
+ }
956
+
957
+ .contacts-dialog__address-form .contacts-dialog__header,
958
+ .contacts-dialog__group-form .contacts-dialog__header,
959
+ .contacts-dialog__uri-entry .contacts-dialog__header {
960
+ padding: var(--spacing-sm, 0.9375rem);
961
+ }
962
+
963
+ .contacts-dialog__address-form .contacts-dialog__popup-body,
964
+ .contacts-dialog__group-form .contacts-dialog__popup-body,
965
+ .contacts-dialog__uri-entry .contacts-dialog__popup-body {
966
+ gap: var(--spacing-base, 0.5rem);
967
+ padding: var(--spacing-sm, 0.9375rem) var(--spacing-sm, 0.9375rem) var(--spacing-lg, 1.5625rem) var(--spacing-sm, 0.9375rem);
968
+ }
969
+
970
+ .contacts-dialog__address-form .input {
971
+ min-height: 2.5rem;
972
+ height: 2.5rem;
973
+ margin-bottom: 0.375rem;
974
+ padding: var(--spacing-base, 0.5rem);
975
+ }
976
+
977
+ .contacts-dialog__uri-entry .contacts-dialog__popup-footer,
978
+ .contacts-dialog__address-form .contacts-dialog__popup-footer {
979
+ justify-content: flex-end;
980
+ gap: var(--spacing-sm, 0.9375rem);
981
+ padding: var(--contacts-dialog-inner-footer-padding-mobile);
982
+ }
983
+
984
+ .contacts-dialog__group-form .contacts-dialog__popup-footer {
985
+ justify-content: center;
986
+ gap: var(--spacing-sm, 0.9375rem);
987
+ padding: var(--contacts-dialog-inner-footer-padding-mobile);
988
+ }
989
+
990
+ .contacts-dialog__uri-entry .contacts-dialog__popup-footer > solid-ui-button,
991
+ .contacts-dialog__address-form .contacts-dialog__popup-footer > solid-ui-button {
992
+ flex: 1 0 0;
993
+ width: auto !important;
994
+ min-width: 0 !important;
995
+ max-width: none !important;
996
+ inline-size: auto !important;
997
+ --button-font-size-md: var(--font-size-md, 1rem);
998
+ }
999
+
1000
+ .contacts-dialog__uri-submit,
1001
+ .contacts-dialog__address-submit,
1002
+ .contacts-dialog__submit-contact,
1003
+ .contacts-dialog__cancel--footer {
1004
+ flex: 1 0 0 !important;
1005
+ width: auto !important;
1006
+ min-width: 0 !important;
1007
+ max-width: none !important;
1008
+ inline-size: auto !important;
1009
+ margin-left: 0 !important;
1010
+ margin-right: 0 !important;
1011
+ align-self: auto;
1012
+ display: inline-flex;
1013
+ justify-content: center;
1014
+ align-items: center;
1015
+ text-align: center;
1016
+ }
1017
+
1018
+ .contacts-dialog__group-form .contacts-dialog__popup-footer > solid-ui-button.contacts-dialog__group-submit {
1019
+ flex: 0 0 auto;
1020
+ width: fit-content;
1021
+ min-width: fit-content;
1022
+ max-width: fit-content;
1023
+ inline-size: fit-content;
1024
+ margin: 0 auto;
1025
+ align-self: auto;
1026
+ display: inline-flex;
1027
+ justify-content: center;
1028
+ align-items: center;
1029
+ }
1030
+
1031
+ .contacts-dialog__details {
1032
+ width: 100% !important;
1033
+ min-width: 0;
1034
+ max-height: none;
1035
+ padding: var(--spacing-base, 0.5rem) var(--spacing-base, 0.5rem) 0;
1036
+ overflow-y: visible;
1037
+ }
1038
+
1039
+ .contacts-dialog__address-book-list,
1040
+ .contacts-dialog__group-list {
1041
+ min-width: 0;
1042
+ width: min(100%, var(--contacts-dialog-list-width)) !important;
1043
+ max-width: min(100%, var(--contacts-dialog-list-width)) !important;
1044
+ margin-inline: auto;
1045
+ }
1046
+
1047
+ .contacts-dialog__inline-panel.contacts-dialog__popup,
1048
+ .contacts-dialog__group-form,
1049
+ .contacts-dialog__uri-entry {
1050
+ width: min(100%, var(--contacts-dialog-panel-width)) !important;
1051
+ max-width: min(100%, var(--contacts-dialog-panel-width)) !important;
1052
+ margin-inline: auto !important;
1053
+ align-self: center;
1054
+ }
1055
+ }
1056
+
1057
+ /* Tablet and stacked panel layout */
1058
+ @media (max-width: 900px) {
1059
+ .contacts-dialog__frame {
1060
+ max-height: none;
1061
+ overflow: visible;
1062
+ }
1063
+
1064
+ .contacts-dialog__body {
1065
+ padding-bottom: 0;
1066
+ overflow: visible;
1067
+ }
1068
+
1069
+ .contacts-dialog__details {
1070
+ flex-direction: column !important;
1071
+ align-items: stretch !important;
1072
+ width: 100% !important;
1073
+ max-height: none;
1074
+ gap: var(--spacing-base, 0.5rem);
1075
+ padding-bottom: 0;
1076
+ overflow-y: visible;
1077
+ overflow-x: hidden;
1078
+ }
1079
+
1080
+ .contacts-dialog__inline-panel-region,
1081
+ .contacts-dialog__inline-panel-region--active,
1082
+ .contacts-dialog__address-book-list,
1083
+ .contacts-dialog__group-list {
1084
+ width: min(100%, var(--contacts-dialog-list-width)) !important;
1085
+ max-width: min(100%, var(--contacts-dialog-list-width)) !important;
1086
+ min-width: 0;
1087
+ margin-inline: auto;
1088
+ align-self: center;
1089
+ }
1090
+
1091
+ .contacts-dialog__address-book-list {
1092
+ padding-bottom: var(--spacing-base, 0.5rem);
1093
+ border-bottom: var(--border-width-sm, 0.1rem) solid var(--color-border-lighter, var(--slate-200, #E2E8F0));
1094
+ }
1095
+
1096
+ .contacts-dialog__inline-panel.contacts-dialog__popup,
1097
+ .contacts-dialog__address-form,
1098
+ .contacts-dialog__group-form,
1099
+ .contacts-dialog__uri-entry {
1100
+ width: min(100%, var(--contacts-dialog-panel-width)) !important;
1101
+ max-width: min(100%, var(--contacts-dialog-panel-width)) !important;
1102
+ min-width: 0;
1103
+ margin-inline: auto;
1104
+ align-self: center;
1105
+ }
1106
+
1107
+ .contacts-dialog__creation .contacts-dialog__submit-contact {
1108
+ width: auto;
1109
+ min-width: 0;
1110
+ margin-left: 0;
1111
+ margin-right: 0;
1112
+ align-self: auto;
1113
+ display: inline-flex;
1114
+ justify-content: center;
1115
+ align-items: center;
1116
+ text-align: center;
1117
+ }
1118
+ }