profile-pane 3.2.3-1 → 3.2.3-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/lib/ProfileView.css +73 -236
  2. package/lib/ProfileView.d.ts +2 -1
  3. package/lib/ProfileView.d.ts.map +1 -1
  4. package/lib/ProfileView.js +19 -18
  5. package/lib/index.d.ts.map +1 -1
  6. package/lib/index.js +35 -35
  7. package/lib/profile-pane.js +16896 -25053
  8. package/lib/profile-pane.js.map +1 -1
  9. package/lib/profile-pane.min.js +826 -1185
  10. package/lib/profile-pane.min.js.map +1 -1
  11. package/lib/sections/bio/BioSection.css +16 -123
  12. package/lib/sections/bio/BioSection.d.ts +2 -2
  13. package/lib/sections/bio/BioSection.d.ts.map +1 -1
  14. package/lib/sections/bio/BioSection.js +23 -32
  15. package/lib/sections/contactInfo/ContactInfoEditDialog.css +33 -66
  16. package/lib/sections/contactInfo/ContactInfoEditDialog.d.ts.map +1 -1
  17. package/lib/sections/contactInfo/ContactInfoEditDialog.js +15 -39
  18. package/lib/sections/contactInfo/ContactInfoSection.css +7 -7
  19. package/lib/sections/contactInfo/ContactInfoSection.d.ts +2 -2
  20. package/lib/sections/contactInfo/ContactInfoSection.d.ts.map +1 -1
  21. package/lib/sections/contactInfo/ContactInfoSection.js +34 -49
  22. package/lib/sections/education/EducationSection.d.ts +1 -1
  23. package/lib/sections/education/EducationSection.d.ts.map +1 -1
  24. package/lib/sections/education/EducationSection.js +2 -3
  25. package/lib/sections/heading/HeadingEditDialog.d.ts.map +1 -1
  26. package/lib/sections/heading/HeadingEditDialog.js +1 -9
  27. package/lib/sections/heading/HeadingSection.css +122 -346
  28. package/lib/sections/heading/HeadingSection.d.ts +2 -3
  29. package/lib/sections/heading/HeadingSection.d.ts.map +1 -1
  30. package/lib/sections/heading/HeadingSection.js +13 -19
  31. package/lib/sections/languages/LanguageEditDialog.d.ts.map +1 -1
  32. package/lib/sections/languages/LanguageEditDialog.js +7 -8
  33. package/lib/sections/languages/LanguageSection.css +6 -6
  34. package/lib/sections/languages/LanguageSection.d.ts +2 -2
  35. package/lib/sections/languages/LanguageSection.d.ts.map +1 -1
  36. package/lib/sections/languages/LanguageSection.js +33 -49
  37. package/lib/sections/projects/ProjectEditDialog.d.ts +0 -1
  38. package/lib/sections/projects/ProjectEditDialog.d.ts.map +1 -1
  39. package/lib/sections/projects/ProjectEditDialog.js +2 -6
  40. package/lib/sections/projects/ProjectSection.css +36 -94
  41. package/lib/sections/projects/ProjectSection.d.ts +2 -2
  42. package/lib/sections/projects/ProjectSection.d.ts.map +1 -1
  43. package/lib/sections/projects/ProjectSection.js +28 -49
  44. package/lib/sections/resume/ResumeEditDialog.d.ts +0 -1
  45. package/lib/sections/resume/ResumeEditDialog.d.ts.map +1 -1
  46. package/lib/sections/resume/ResumeEditDialog.js +20 -40
  47. package/lib/sections/resume/ResumeSection.css +51 -133
  48. package/lib/sections/resume/ResumeSection.d.ts +3 -3
  49. package/lib/sections/resume/ResumeSection.d.ts.map +1 -1
  50. package/lib/sections/resume/ResumeSection.js +28 -42
  51. package/lib/sections/shared/sectionCardHelpers.js +15 -15
  52. package/lib/sections/skills/SkillsEditDialog.d.ts.map +1 -1
  53. package/lib/sections/skills/SkillsEditDialog.js +1 -3
  54. package/lib/sections/skills/SkillsSection.css +20 -67
  55. package/lib/sections/skills/SkillsSection.d.ts +2 -2
  56. package/lib/sections/skills/SkillsSection.d.ts.map +1 -1
  57. package/lib/sections/skills/SkillsSection.js +36 -55
  58. package/lib/sections/social/SocialEditDialog.d.ts.map +1 -1
  59. package/lib/sections/social/SocialEditDialog.js +4 -9
  60. package/lib/sections/social/SocialSection.css +19 -70
  61. package/lib/sections/social/SocialSection.d.ts +2 -2
  62. package/lib/sections/social/SocialSection.d.ts.map +1 -1
  63. package/lib/sections/social/SocialSection.js +37 -61
  64. package/lib/specialButtons/addMeToYourFriends.d.ts.map +1 -1
  65. package/lib/specialButtons/addMeToYourFriends.js +0 -2
  66. package/lib/styles/CollapsibleSection.css +39 -223
  67. package/lib/styles/EditDialogs.css +90 -284
  68. package/lib/styles/EditDialogs.responsive.css +72 -147
  69. package/lib/types.d.ts +1 -0
  70. package/lib/types.d.ts.map +1 -1
  71. package/lib/ui/dialog.css +18 -89
  72. package/lib/ui/dialog.d.ts.map +1 -1
  73. package/lib/ui/dialog.js +5 -9
  74. package/lib/ui/dialog.responsive.css +31 -34
  75. package/lib/ui/responsiveActionButton.d.ts +19 -0
  76. package/lib/ui/responsiveActionButton.d.ts.map +1 -0
  77. package/lib/ui/responsiveActionButton.js +34 -0
  78. package/lib/utils/resize.d.ts +2 -0
  79. package/lib/utils/resize.d.ts.map +1 -0
  80. package/lib/utils/resize.js +40 -0
  81. package/package.json +11 -13
  82. package/lib/303.profile-pane.js +0 -1362
  83. package/lib/303.profile-pane.js.map +0 -1
  84. package/lib/303.profile-pane.min.js +0 -2
  85. package/lib/303.profile-pane.min.js.map +0 -1
  86. package/lib/specialButtons/addContact/AddMeToYourContacts.css +0 -1118
  87. package/lib/specialButtons/addContact/ContactCreationDialog.d.ts +0 -10
  88. package/lib/specialButtons/addContact/ContactCreationDialog.d.ts.map +0 -1
  89. package/lib/specialButtons/addContact/ContactCreationDialog.js +0 -1123
  90. package/lib/specialButtons/addContact/addMeToYourContacts.d.ts +0 -16
  91. package/lib/specialButtons/addContact/addMeToYourContacts.d.ts.map +0 -1
  92. package/lib/specialButtons/addContact/addMeToYourContacts.js +0 -136
  93. package/lib/specialButtons/addContact/contactsErrors.d.ts +0 -8
  94. package/lib/specialButtons/addContact/contactsErrors.d.ts.map +0 -1
  95. package/lib/specialButtons/addContact/contactsErrors.js +0 -106
  96. package/lib/specialButtons/addContact/contactsTypes.d.ts +0 -43
  97. package/lib/specialButtons/addContact/contactsTypes.d.ts.map +0 -1
  98. package/lib/specialButtons/addContact/contactsTypes.js +0 -5
  99. package/lib/specialButtons/addContact/helpers.d.ts +0 -7
  100. package/lib/specialButtons/addContact/helpers.d.ts.map +0 -1
  101. package/lib/specialButtons/addContact/helpers.js +0 -103
  102. package/lib/specialButtons/addContact/mutations.d.ts +0 -16
  103. package/lib/specialButtons/addContact/mutations.d.ts.map +0 -1
  104. package/lib/specialButtons/addContact/mutations.js +0 -300
  105. package/lib/specialButtons/addContact/selectors.d.ts +0 -10
  106. package/lib/specialButtons/addContact/selectors.d.ts.map +0 -1
  107. package/lib/specialButtons/addContact/selectors.js +0 -163
package/lib/ui/dialog.css CHANGED
@@ -4,14 +4,14 @@
4
4
  /* dialog host */
5
5
  #profile-modal {
6
6
  --profile-modal-backdrop: var(--overlay-bg-muted, rgba(0, 0, 0, 0.5));
7
- --profile-modal-panel-inline-padding: var(--spacing-lg, 1.5625rem);
8
- --profile-modal-panel-block-padding: var(--spacing-md, 1.25rem);
9
- --profile-modal-compact-padding: var(--spacing-sm, 0.9375rem);
10
- --profile-modal-button-gap: var(--spacing-sm, 0.938rem);
11
- --profile-modal-error-padding: var(--spacing-xs, 0.75rem);
12
- --profile-modal-panel-width: min(37.5rem, calc(100vw - 2rem));
13
- --profile-modal-panel-max-width: 37.5rem;
14
- --profile-modal-panel-max-height: calc(100dvh - 2rem);
7
+ --profile-modal-panel-inline-padding: 25px;
8
+ --profile-modal-panel-block-padding: 20px;
9
+ --profile-modal-compact-padding: 15px;
10
+ --profile-modal-button-gap: 15px;
11
+ --profile-modal-error-padding: 12px;
12
+ --profile-modal-panel-width: min(600px, calc(100vw - 32px));
13
+ --profile-modal-panel-max-width: 600px;
14
+ --profile-modal-panel-max-height: calc(100dvh - 32px);
15
15
  margin: 0;
16
16
  padding: 0;
17
17
  border: none;
@@ -29,7 +29,7 @@
29
29
  overscroll-behavior: contain;
30
30
  padding-top: env(safe-area-inset-top);
31
31
  padding-right: 0;
32
- padding-bottom: max(var(--spacing-lg, 1.5625rem), env(safe-area-inset-bottom));
32
+ padding-bottom: max(25px, env(safe-area-inset-bottom));
33
33
  padding-left: 0;
34
34
  }
35
35
 
@@ -48,7 +48,7 @@
48
48
  grid-template-rows: auto minmax(0, 1fr) auto auto;
49
49
  margin: 0;
50
50
  background: var(--color-background);
51
- border-radius: var(--border-radius-base);
51
+ border-radius: 5px;
52
52
  max-width: var(--profile-modal-panel-max-width);
53
53
  width: var(--profile-modal-panel-width);
54
54
  max-height: var(--profile-modal-panel-max-height);
@@ -63,9 +63,9 @@
63
63
  min-width: 0;
64
64
  padding: var(--profile-modal-panel-block-padding) var(--profile-modal-panel-inline-padding);
65
65
  box-sizing: border-box;
66
- border-radius: var(--border-radius-base, 0.3125rem) var(--border-radius-base, 0.3125rem) 0 0;
67
- border-bottom: var(--border-width-sm, 0.1rem) solid var(--color-border-lighter, var(--slate-200, #E2E8F0));
68
- background: var(--color-surface-overlay-header, var(--slate-50, #F8FAFC));
66
+ border-radius: 5px 5px 0 0;
67
+ border-bottom: 1px solid var(--solid-ui-color-slate-200, #E2E8F0);
68
+ background: var(--solid-ui-color-slate-50, #F8FAFC);
69
69
  }
70
70
 
71
71
  #profile-modal .modal #modal-desc {
@@ -79,7 +79,7 @@
79
79
  }
80
80
 
81
81
  #profile-modal .modal #modal-desc:has(> .profile__edit-form--projects) {
82
- padding: var(--spacing-2xs, 0.625rem) var(--profile-modal-panel-inline-padding);
82
+ padding: 10px var(--profile-modal-panel-inline-padding);
83
83
  }
84
84
 
85
85
  #profile-modal .modal #modal-desc:has(> #contacts-addressbook-picker-dialog) {
@@ -89,7 +89,7 @@
89
89
  #profile-modal #modal-desc > .profile__edit-form--projects {
90
90
  display: flex;
91
91
  flex-direction: column;
92
- gap: var(--spacing-2xs, 0.625rem);
92
+ gap: 10px;
93
93
  }
94
94
 
95
95
  #profile-modal .modal #modal-title {
@@ -97,59 +97,11 @@
97
97
  color: var(--color-text-subheading, var(--gray-900, #101828));
98
98
  }
99
99
 
100
- #profile-modal .modal #modal-header-action > solid-ui-button[aria-label="Close dialog"] {
101
- --button-height-sm: var(--icon-base, 2rem);
102
- --button-width-sm: var(--icon-base, 2rem);
103
- --button-padding-sm: 0;
104
- --button-background: transparent;
105
- --button-border-width: 0;
106
- --button-border: transparent;
107
- --button-text: var(--color-text);
108
- --button-border-radius: 999px;
109
- --button-box-shadow: none;
110
- --button-hover-background: rgba(0, 0, 0, 0.04);
111
- --button-hover-border: transparent;
112
- --button-hover-text: var(--color-primary);
113
- --button-hover-box-shadow: none;
114
- --button-active-box-shadow: none;
115
- --button-active-transform: none;
116
- --button-icon-size-sm: var(--icon-xxs, 1rem);
117
- }
118
-
119
- #profile-modal .modal #modal-header-action > solid-ui-button[aria-label="Close dialog"]:hover {
120
- --button-hover-background: rgba(0, 0, 0, 0.04);
121
- --button-hover-border: transparent;
122
- --button-hover-text: var(--color-primary);
123
- }
124
-
125
- #profile-modal .modal #modal-header-action > solid-ui-button[aria-label="Close dialog"]:focus-visible::part(button) {
126
- outline: var(--focus-indicator-width) solid var(--color-primary);
127
- outline-offset: var(--outline-offset-sm);
128
- 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));
129
- }
130
-
131
100
  #profile-modal .modal:has(#modal-desc > .profile__edit-form--projects) #modal-header-action,
132
101
  #profile-modal .modal:has(#modal-desc > .profile__edit-form--contact-info) #modal-header-action {
133
102
  display: none;
134
103
  }
135
104
 
136
- #profile-modal .modal solid-ui-button.modal__header-action-button {
137
- --button-height-sm: 0;
138
- --button-padding-sm: var(--spacing-xxs);
139
- --button-background: transparent;
140
- --button-border-width: 0;
141
- --button-border: transparent;
142
- --button-font-weight: var(--font-weight-md, 500);
143
- --button-text: var(--color-primary);
144
- --button-hover-background: transparent;
145
- --button-hover-border: transparent;
146
- --button-hover-text: var(--color-primary);
147
- }
148
-
149
- #profile-modal .modal solid-ui-button.modal__header-action-button:hover::part(button) {
150
- text-decoration: underline;
151
- }
152
-
153
105
  /* button container: center buttons horizontally (uses id in markup) */
154
106
  #profile-modal #modal-buttons {
155
107
  width: 100%;
@@ -158,7 +110,7 @@
158
110
  gap: var(--profile-modal-button-gap);
159
111
  align-self: stretch;
160
112
  box-sizing: border-box;
161
- border-top: var(--border-width-sm, 0.1rem) solid var(--color-border-lighter, var(--slate-200, #E2E8F0));
113
+ border-top: 1px solid var(--solid-ui-color-slate-200, #E2E8F0);
162
114
  background: var(--color-surface-tertiary, var(--gray-50, #F9FAFB));
163
115
  }
164
116
 
@@ -170,37 +122,14 @@
170
122
  width: 10.8rem;
171
123
  }
172
124
 
173
- #profile-modal #modal-buttons solid-ui-button[data-dialog-primary='true'] {
174
- --button-font-size-md: var(--font-size-md, 1rem);
175
- }
176
-
177
- #profile-modal #modal-buttons solid-ui-button[data-cancel='true'] {
178
- --button-font-weight: var(--font-weight-normal, normal);
179
- --button-text: var(--dialog-cancel-button-text, var(--gray-800, #1E2939));
180
- --button-border: var(--dialog-cancel-button-border, var(--gray-300, #D1D5DC));
181
- --button-background: var(--dialog-cancel-button-background, transparent);
182
- --button-hover-background: var(--dialog-cancel-button-hover-background, var(--blue-900, #083575));
183
- --button-hover-border: var(--dialog-cancel-button-hover-border, var(--blue-900, #083575));
184
- --button-hover-text: var(--dialog-cancel-button-hover-text, var(--color-text-on-action, var(--white, #FFF)));
185
- --button-font-size-md: var(--font-size-md, 1rem);
186
- }
187
-
188
- #profile-modal #modal-buttons solid-ui-button[data-cancel='true']:hover::part(button),
189
- #profile-modal #modal-buttons solid-ui-button[data-cancel='true']:focus-visible::part(button),
190
- #profile-modal #modal-buttons solid-ui-button[data-cancel='true']:focus-within::part(button) {
191
- background: var(--dialog-cancel-button-hover-background, var(--blue-900, #083575));
192
- border-color: var(--dialog-cancel-button-hover-border, var(--blue-900, #083575));
193
- color: var(--dialog-cancel-button-hover-text, var(--color-text-on-action, var(--white, #FFF)));
194
- }
195
-
196
125
  #profile-modal .modal__error-section {
197
126
  margin-top: var(--spacing-sm);
198
127
  margin-bottom: 0;
199
128
  padding: var(--profile-modal-error-padding);
200
129
  border: 1px solid var(--dialog-error-border, var(--pink-700, #ff98b3));
201
- border-radius: var(--border-radius-base);
130
+ border-radius: 5px;
202
131
  background: var(--dialog-error-background, var(--pink-500, #ffdde6));
203
- color: var(--dialog-error-text, var(--red-600, #B00020));
132
+ color: var(--solid-ui-color-error, #B00020);
204
133
  text-align: center;
205
134
  white-space: pre-wrap;
206
135
  overflow-wrap: anywhere;
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/ui/dialog.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAA;AACrB,OAAO,4BAA4B,CAAA;AA+FnC,KAAK,iBAAiB,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAA;AAShD,KAAK,kBAAkB,GACnB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CACrC,CAAA;AAYL,KAAK,mBAAmB,GAAG,WAAW,GAAG;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;CAC/B,CAAA;AAyBD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,UAAU,GAAG,mBAAmB,GAAG,IAAI,CAEtF;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,UAAU,GAAG,mBAAmB,GAAG,IAAI,CAExF;AAuRD,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED,wBAAgB,WAAW,CAAE,OAAO,EAAE,MAAM,EAAE,KAAK,QAAgB,EAAE,GAAG,EAAE,QAAQ,8BAOjF;AAwCD,wBAAgB,0BAA0B,CAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,SAAmB,GAAG,IAAI,CAGlH;AAED,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,QAAQ,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,sBAAsB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAC1D,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IACxD,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAA;CAC7C,CAAA;AAED,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAK/C,wBAAgB,eAAe,CAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAoFlG"}
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/ui/dialog.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAA;AACrB,OAAO,4BAA4B,CAAA;AA+FnC,KAAK,iBAAiB,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAA;AAShD,KAAK,kBAAkB,GACnB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CACrC,CAAA;AAYL,KAAK,mBAAmB,GAAG,WAAW,GAAG;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;CAC/B,CAAA;AAyBD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,UAAU,GAAG,mBAAmB,GAAG,IAAI,CAEtF;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,UAAU,GAAG,mBAAmB,GAAG,IAAI,CAExF;AAiRD,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED,wBAAgB,WAAW,CAAE,OAAO,EAAE,MAAM,EAAE,KAAK,QAAgB,EAAE,GAAG,EAAE,QAAQ,8BAOjF;AAwCD,wBAAgB,0BAA0B,CAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,SAAmB,GAAG,IAAI,CAGlH;AAED,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,QAAQ,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,sBAAsB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAC1D,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IACxD,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAA;CAC7C,CAAA;AAED,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAK/C,wBAAgB,eAAe,CAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAsFlG"}
package/lib/ui/dialog.js CHANGED
@@ -280,9 +280,7 @@ function openModal({
280
280
  };
281
281
  if (resolvedHeaderAction.type === 'close') {
282
282
  const closeButton = dom.createElement('solid-ui-button');
283
- closeButton.setAttribute('type', 'button');
284
- closeButton.setAttribute('variant', 'icon');
285
- closeButton.setAttribute('size', 'sm');
283
+ closeButton.setAttribute('variant', 'ghost');
286
284
  closeButton.setAttribute('aria-label', 'Close dialog');
287
285
  const iconSlot = dom.createElement('span');
288
286
  iconSlot.setAttribute('slot', 'icon');
@@ -292,10 +290,8 @@ function openModal({
292
290
  elements.headerAction.appendChild(closeButton);
293
291
  } else if (resolvedHeaderAction.type === 'button') {
294
292
  const actionButton = dom.createElement('solid-ui-button');
295
- actionButton.setAttribute('type', 'button');
296
- actionButton.setAttribute('variant', 'secondary');
297
- actionButton.setAttribute('size', 'sm');
298
- actionButton.className = resolvedHeaderAction.className || 'modal__header-action-button profile__action-button profile-action-text flex-center';
293
+ actionButton.setAttribute('variant', 'tertiary');
294
+ actionButton.className = resolvedHeaderAction.className || '';
299
295
  actionButton.textContent = resolvedHeaderAction.label;
300
296
  actionButton.setAttribute('label', resolvedHeaderAction.label);
301
297
  actionButton.setAttribute('aria-label', resolvedHeaderAction.ariaLabel || resolvedHeaderAction.label);
@@ -308,9 +304,7 @@ function openModal({
308
304
  }
309
305
  buttons.forEach(btn => {
310
306
  const b = dom.createElement('solid-ui-button');
311
- b.setAttribute('type', 'button');
312
307
  b.setAttribute('label', btn.label);
313
- b.setAttribute('size', 'md');
314
308
  b.setAttribute('variant', btn.primary ? 'primary' : 'secondary');
315
309
  b.textContent = btn.label;
316
310
  if (btn.primary) {
@@ -405,6 +399,8 @@ function openInputDialog(options) {
405
399
  const submitProxy = options.dom.createElement('button');
406
400
  submitProxy.type = 'submit';
407
401
  submitProxy.hidden = true;
402
+ submitProxy.style.display = 'none';
403
+ submitProxy.setAttribute('aria-hidden', 'true');
408
404
  submitProxy.tabIndex = -1;
409
405
  options.form.appendChild(submitProxy);
410
406
  const handleSubmit = event => {
@@ -2,15 +2,15 @@
2
2
 
3
3
  #profile-modal .modal:has(.profile-edit-dialog__social-account-select[popup-open]) #modal-desc,
4
4
  #profile-modal .modal:has(#modal-desc > .profile__edit-form solid-ui-combobox:focus-within) #modal-desc {
5
- padding-bottom: calc(var(--profile-modal-panel-inline-padding) + 1.875rem);
5
+ padding-bottom: calc(var(--profile-modal-panel-inline-padding) + 30px);
6
6
  }
7
7
 
8
8
  @media (max-width: 576px) {
9
9
  #profile-modal {
10
- --profile-modal-panel-max-height: calc(100dvh - 4 * var(--spacing-sm));
10
+ --profile-modal-panel-max-height: calc(100dvh - 4 * 15px);
11
11
  padding-top: env(safe-area-inset-top);
12
12
  padding-right: 0;
13
- padding-bottom: max(var(--spacing-sm), env(safe-area-inset-bottom));
13
+ padding-bottom: max(15px, env(safe-area-inset-bottom));
14
14
  padding-left: 0;
15
15
  place-items: center;
16
16
  }
@@ -20,7 +20,7 @@
20
20
  max-width: var(--profile-modal-panel-max-width);
21
21
  min-width: 0;
22
22
  padding: 0;
23
- border-radius: var(--border-radius-base);
23
+ border-radius: 5px;
24
24
  overscroll-behavior: contain;
25
25
  justify-self: center;
26
26
  align-self: center;
@@ -28,27 +28,27 @@
28
28
  }
29
29
 
30
30
  #profile-modal .modal .modal-header {
31
- gap: var(--spacing-lg, 1.5625rem);
32
- padding: var(--spacing-sm, 0.938rem);
31
+ gap: 25px;
32
+ padding: 15px;
33
33
  }
34
34
 
35
35
  #profile-modal .modal #modal-title {
36
- font-size: var(--font-size-lg, 1.125rem);
37
- line-height: var(--line-height-tight, 1.4);
36
+ font-size: var(--solid-ui-font-size-lg, 1.125rem);
37
+ line-height: 1.4;
38
38
  }
39
39
 
40
40
  #profile-modal .modal #modal-desc {
41
- padding: var(--spacing-sm, 0.938rem) var(--spacing-sm, 0.938rem) var(--spacing-lg, 1.5625rem);
41
+ padding: 15px 15px 25px;
42
42
  }
43
43
 
44
44
  #profile-modal .modal #modal-desc:has(> .profile__edit-form--projects) {
45
- padding: var(--spacing-sm, 0.938rem) var(--spacing-sm, 0.938rem) var(--spacing-lg, 1.5625rem);
45
+ padding: 15px 15px 25px;
46
46
  }
47
47
 
48
48
  #profile-modal #modal-desc > .profile__edit-form--bio {
49
49
  display: flex;
50
50
  flex-direction: column;
51
- gap: var(--spacing-md, 1.25rem);
51
+ gap: 20px;
52
52
  }
53
53
 
54
54
  #profile-modal #modal-buttons {
@@ -64,15 +64,14 @@
64
64
  flex: 1 0 0;
65
65
  width: auto;
66
66
  min-width: 0;
67
- --button-font-size-md: var(--font-size-md, 1rem);
68
67
  }
69
68
  }
70
69
 
71
70
  html[data-layout='mobile'] #profile-modal {
72
- --profile-modal-panel-max-height: calc(100dvh - 4 * var(--spacing-sm));
71
+ --profile-modal-panel-max-height: calc(100dvh - 4 * 15px);
73
72
  padding-top: env(safe-area-inset-top);
74
73
  padding-right: 0;
75
- padding-bottom: max(var(--spacing-sm), env(safe-area-inset-bottom));
74
+ padding-bottom: max(15px, env(safe-area-inset-bottom));
76
75
  padding-left: 0;
77
76
  place-items: center;
78
77
  }
@@ -84,7 +83,7 @@ html[data-layout='mobile'] #profile-modal .modal {
84
83
  max-width: var(--profile-modal-panel-max-width);
85
84
  min-width: 0;
86
85
  padding: 0;
87
- border-radius: var(--border-radius-base);
86
+ border-radius: 5px;
88
87
  overscroll-behavior: contain;
89
88
  justify-self: center;
90
89
  align-self: center;
@@ -92,27 +91,27 @@ html[data-layout='mobile'] #profile-modal .modal {
92
91
  }
93
92
 
94
93
  html[data-layout='mobile'] #profile-modal .modal .modal-header {
95
- gap: var(--spacing-lg, 1.5625rem);
96
- padding: var(--spacing-sm, 0.938rem);
94
+ gap: 25px;
95
+ padding: 15px;
97
96
  }
98
97
 
99
98
  html[data-layout='mobile'] #profile-modal .modal #modal-title {
100
- font-size: var(--font-size-lg, 1.125rem);
101
- line-height: var(--line-height-tight, 1.4);
99
+ font-size: var(--solid-ui-font-size-lg, 1.125rem);
100
+ line-height: 1.4;
102
101
  }
103
102
 
104
103
  html[data-layout='mobile'] #profile-modal .modal #modal-desc {
105
- padding: var(--spacing-sm, 0.938rem) var(--spacing-sm, 0.938rem) var(--spacing-lg, 1.5625rem);
104
+ padding: 15px 15px 25px;
106
105
  }
107
106
 
108
107
  html[data-layout='mobile'] #profile-modal .modal #modal-desc:has(> .profile__edit-form--projects) {
109
- padding: var(--spacing-sm, 0.938rem) var(--spacing-sm, 0.938rem) var(--spacing-lg, 1.5625rem);
108
+ padding: 10px 15px 25px;
110
109
  }
111
110
 
112
111
  html[data-layout='mobile'] #profile-modal #modal-desc > .profile__edit-form--bio {
113
112
  display: flex;
114
113
  flex-direction: column;
115
- gap: var(--spacing-md, 1.25rem);
114
+ gap: 20px;
116
115
  }
117
116
 
118
117
  html[data-layout='mobile'] #profile-modal #modal-buttons {
@@ -128,15 +127,14 @@ html[data-layout='mobile'] #profile-modal #modal-buttons > solid-ui-button {
128
127
  flex: 1 0 0;
129
128
  width: auto;
130
129
  min-width: 0;
131
- --button-font-size-md: var(--font-size-md, 1rem);
132
130
  }
133
131
 
134
132
  @container profile-pane (max-width: 576px) {
135
133
  #profile-modal {
136
- --profile-modal-panel-max-height: calc(100dvh - 4 * var(--spacing-sm));
134
+ --profile-modal-panel-max-height: calc(100dvh - 4 * 15px);
137
135
  padding-top: env(safe-area-inset-top);
138
136
  padding-right: 0;
139
- padding-bottom: max(var(--spacing-sm), env(safe-area-inset-bottom));
137
+ padding-bottom: max(15px, env(safe-area-inset-bottom));
140
138
  padding-left: 0;
141
139
  place-items: center;
142
140
  }
@@ -146,7 +144,7 @@ html[data-layout='mobile'] #profile-modal #modal-buttons > solid-ui-button {
146
144
  max-width: var(--profile-modal-panel-max-width);
147
145
  min-width: 0;
148
146
  padding: 0;
149
- border-radius: var(--border-radius-base);
147
+ border-radius: 5px;
150
148
  overscroll-behavior: contain;
151
149
  justify-self: center;
152
150
  align-self: center;
@@ -154,27 +152,27 @@ html[data-layout='mobile'] #profile-modal #modal-buttons > solid-ui-button {
154
152
  }
155
153
 
156
154
  #profile-modal .modal .modal-header {
157
- gap: var(--spacing-lg, 1.5625rem);
158
- padding: var(--spacing-sm, 0.938rem);
155
+ gap: 25px;
156
+ padding: 15px;
159
157
  }
160
158
 
161
159
  #profile-modal .modal #modal-title {
162
- font-size: var(--font-size-lg, 1.125rem);
163
- line-height: var(--line-height-tight, 1.4);
160
+ font-size: var(--solid-ui-font-size-lg, 1.125rem);
161
+ line-height: 1.4;
164
162
  }
165
163
 
166
164
  #profile-modal .modal #modal-desc {
167
- padding: var(--spacing-sm, 0.938rem) var(--spacing-sm, 0.938rem) var(--spacing-lg, 1.5625rem);
165
+ padding: 15px 15px 25px;
168
166
  }
169
167
 
170
168
  #profile-modal .modal #modal-desc:has(> .profile__edit-form--projects) {
171
- padding: var(--spacing-sm, 0.938rem) var(--spacing-sm, 0.938rem) var(--spacing-lg, 1.5625rem);
169
+ padding: 10px 15px 25px;
172
170
  }
173
171
 
174
172
  #profile-modal #modal-desc > .profile__edit-form--bio {
175
173
  display: flex;
176
174
  flex-direction: column;
177
- gap: var(--spacing-md, 1.25rem);
175
+ gap: 20px;
178
176
  }
179
177
 
180
178
  #profile-modal #modal-buttons {
@@ -190,6 +188,5 @@ html[data-layout='mobile'] #profile-modal #modal-buttons > solid-ui-button {
190
188
  flex: 1 0 0;
191
189
  width: auto;
192
190
  min-width: 0;
193
- --button-font-size-md: var(--font-size-md, 1rem);
194
191
  }
195
192
  }
@@ -0,0 +1,19 @@
1
+ import { nothing, TemplateResult } from 'lit-html';
2
+ import 'solid-ui/components/button';
3
+ import { Layout } from '../types';
4
+ type ResponsiveActionButtonOptions = {
5
+ layout?: Layout;
6
+ className: string;
7
+ ariaLabel: string;
8
+ variant?: {
9
+ desktop: string;
10
+ mobile: string;
11
+ };
12
+ onClick: (event: Event) => void;
13
+ desktopIcon?: TemplateResult | typeof nothing;
14
+ desktopLabel?: string;
15
+ mobileIcon?: TemplateResult | typeof nothing;
16
+ };
17
+ export declare function renderResponsiveActionButton({ layout, className, ariaLabel, variant, onClick, desktopIcon, desktopLabel, mobileIcon }: ResponsiveActionButtonOptions): TemplateResult;
18
+ export {};
19
+ //# sourceMappingURL=responsiveActionButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responsiveActionButton.d.ts","sourceRoot":"","sources":["../../src/ui/responsiveActionButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACxD,OAAO,4BAA4B,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,KAAK,6BAA6B,GAAG;IACnC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE;QACR,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;IACD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAC/B,WAAW,CAAC,EAAE,cAAc,GAAG,OAAO,OAAO,CAAA;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,cAAc,GAAG,OAAO,OAAO,CAAA;CAC7C,CAAA;AAED,wBAAgB,4BAA4B,CAAC,EAC3C,MAAkB,EAClB,SAAS,EACT,SAAS,EACT,OAGC,EACD,OAAO,EACP,WAAqB,EACrB,YAAY,EACZ,UAAoB,EACrB,EAAE,6BAA6B,GAAG,cAAc,CAahD"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.renderResponsiveActionButton = renderResponsiveActionButton;
7
+ var _litHtml = require("lit-html");
8
+ require("solid-ui/components/button");
9
+ function renderResponsiveActionButton({
10
+ layout = 'desktop',
11
+ className,
12
+ ariaLabel,
13
+ variant = {
14
+ desktop: 'tertiary',
15
+ mobile: 'ghost'
16
+ },
17
+ onClick,
18
+ desktopIcon = _litHtml.nothing,
19
+ desktopLabel,
20
+ mobileIcon = _litHtml.nothing
21
+ }) {
22
+ return (0, _litHtml.html)`
23
+ <solid-ui-button
24
+ variant=${layout === 'desktop' ? variant.desktop : variant.mobile}
25
+ class=${className}
26
+ aria-label=${ariaLabel}
27
+ @click=${onClick}
28
+ >
29
+ ${layout === 'desktop' ? desktopIcon : _litHtml.nothing}
30
+ ${layout === 'desktop' && desktopLabel ? (0, _litHtml.html)`<span class="profile-section-collapsible__action-label">${desktopLabel}</span>` : _litHtml.nothing}
31
+ ${layout === 'mobile' ? mobileIcon : _litHtml.nothing}
32
+ </solid-ui-button>
33
+ `;
34
+ }
@@ -0,0 +1,2 @@
1
+ export declare function createResizeDrivenSync(update: () => void, observedElements: Array<HTMLElement | null | undefined>): () => void;
2
+ //# sourceMappingURL=resize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resize.d.ts","sourceRoot":"","sources":["../../src/utils/resize.ts"],"names":[],"mappings":"AAAA,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,IAAI,EAClB,gBAAgB,EAAE,KAAK,CAAC,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC,GACtD,MAAM,IAAI,CA0CZ"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createResizeDrivenSync = createResizeDrivenSync;
7
+ function createResizeDrivenSync(update, observedElements) {
8
+ let animationFrameId = 0;
9
+ const scheduleUpdate = () => {
10
+ if (animationFrameId !== 0) {
11
+ return;
12
+ }
13
+ animationFrameId = window.requestAnimationFrame(() => {
14
+ animationFrameId = 0;
15
+ update();
16
+ });
17
+ };
18
+ update();
19
+ if (typeof ResizeObserver === 'undefined') {
20
+ window.addEventListener('resize', scheduleUpdate);
21
+ return () => {
22
+ if (animationFrameId !== 0) {
23
+ window.cancelAnimationFrame(animationFrameId);
24
+ }
25
+ window.removeEventListener('resize', scheduleUpdate);
26
+ };
27
+ }
28
+ const resizeObserver = new ResizeObserver(scheduleUpdate);
29
+ for (const observedElement of observedElements) {
30
+ if (observedElement) {
31
+ resizeObserver.observe(observedElement);
32
+ }
33
+ }
34
+ return () => {
35
+ if (animationFrameId !== 0) {
36
+ window.cancelAnimationFrame(animationFrameId);
37
+ }
38
+ resizeObserver.disconnect();
39
+ };
40
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "profile-pane",
3
- "version": "3.2.3-1",
3
+ "version": "3.2.3-2",
4
4
  "description": "A SolidOS compatible pane to display a personal profile page",
5
5
  "sideEffects": [
6
6
  "*.css"
@@ -19,15 +19,13 @@
19
19
  ],
20
20
  "scripts": {
21
21
  "clean": "rm -rf lib",
22
- "build": "npm run clean && npm run typecheck && npm run build-dist && npm run build-js",
22
+ "build": "npm run clean && npm run typecheck && npm run build-js && npm run build-dist",
23
23
  "build-js": "babel src --out-dir lib --extensions '.ts' --copy-files && tsc --emitDeclarationOnly",
24
24
  "build-dist": "webpack --progress",
25
25
  "dev": "sh -c 'npm run watch & npm run start'",
26
- "watch": "sh -c 'npm run watch:solid-ui & npm run watch-js & npm run watch-styles & npm run watch-dist & wait'",
27
- "watch:workspace": "sh -c 'npm run watch-js & npm run watch-styles & npm run watch-dist & wait'",
28
- "watch:solid-ui": "sh -c 'cd ../solid-ui && npm run watch'",
26
+ "watch": "sh -c 'npm run watch-js & npm run watch-dist & wait'",
27
+ "watch:workspace": "sh -c 'npm run watch-js & npm run watch-dist & wait'",
29
28
  "watch-js": "babel src --out-dir lib --extensions '.ts' --copy-files --watch",
30
- "watch-styles": "node scripts/watch-styles.mjs",
31
29
  "watch-dist": "webpack --watch",
32
30
  "lint": "eslint",
33
31
  "lint-fix": "eslint --fix",
@@ -56,7 +54,7 @@
56
54
  "dependencies": {
57
55
  "@solid-data-modules/contacts-rdflib": "^0.7.1",
58
56
  "lit-html": "^3.3.3",
59
- "pane-registry": "3.1.2-0",
57
+ "pane-registry": "3.1.2-1",
60
58
  "patch-package": "^8.0.1",
61
59
  "qrcode": "^1.5.4",
62
60
  "validate-color": "^2.2.4"
@@ -74,6 +72,7 @@
74
72
  "@testing-library/dom": "^10.4.1",
75
73
  "@testing-library/jest-dom": "^6.9.1",
76
74
  "@types/jest": "^30.0.0",
75
+ "@types/node": "^24.13.2",
77
76
  "@typescript-eslint/eslint-plugin": "^8.59.3",
78
77
  "@typescript-eslint/parser": "^8.59.3",
79
78
  "axe-core": "^4.11.4",
@@ -82,7 +81,6 @@
82
81
  "babel-plugin-inline-import": "^3.0.0",
83
82
  "babel-plugin-transform-import-meta": "^2.3.3",
84
83
  "chat-pane": "3.0.4-1",
85
- "contacts-pane": "3.2.1-2",
86
84
  "copy-webpack-plugin": "^14.0.0",
87
85
  "css-loader": "^7.1.4",
88
86
  "eslint": "^9.39.4",
@@ -92,13 +90,14 @@
92
90
  "jest-fetch-mock": "^3.0.3",
93
91
  "jsdom": "^29.1.1",
94
92
  "node-polyfill-webpack-plugin": "^4.1.0",
95
- "rdflib": "2.3.9",
96
- "solid-logic": "4.0.8-0",
97
- "solid-ui": "3.1.3-5",
93
+ "rdflib": "2.4.0",
94
+ "solid-logic": "4.0.8-1",
95
+ "solid-ui": "3.1.3-9",
98
96
  "style-loader": "^4.0.0",
99
97
  "terser-webpack-plugin": "^5.6.0",
100
98
  "ts-loader": "^9.5.7",
101
99
  "typescript": "^6.0.3",
100
+ "undici-types": "^7.18.2",
102
101
  "webpack": "^5.106.2",
103
102
  "webpack-cli": "^7.0.2",
104
103
  "webpack-dev-server": "^5.2.4"
@@ -108,7 +107,6 @@
108
107
  "solid-logic",
109
108
  "solid-ui",
110
109
  "pane-registry",
111
- "chat-pane",
112
- "contacts-pane"
110
+ "chat-pane"
113
111
  ]
114
112
  }