@pine-ds/core 3.12.0 → 3.12.1

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 (231) hide show
  1. package/components/index2.js +1 -1
  2. package/components/index2.js.map +1 -1
  3. package/components/pds-alert.js +1 -1
  4. package/components/pds-alert.js.map +1 -1
  5. package/components/pds-avatar.js +3 -3
  6. package/components/pds-avatar.js.map +1 -1
  7. package/components/pds-checkbox2.js +1 -1
  8. package/components/pds-checkbox2.js.map +1 -1
  9. package/components/pds-copytext.js +1 -1
  10. package/components/pds-copytext.js.map +1 -1
  11. package/components/pds-input.js +1 -1
  12. package/components/pds-input.js.map +1 -1
  13. package/components/pds-modal-content.js +3 -19
  14. package/components/pds-modal-content.js.map +1 -1
  15. package/dist/cjs/{index-BIrlTMGo.js → index-CMeuo765.js} +3 -3
  16. package/dist/cjs/index-CMeuo765.js.map +1 -0
  17. package/dist/cjs/loader.cjs.js +1 -1
  18. package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
  19. package/dist/cjs/pds-alert.cjs.entry.js +1 -1
  20. package/dist/cjs/pds-alert.entry.cjs.js.map +1 -1
  21. package/dist/cjs/pds-avatar.cjs.entry.js +4 -4
  22. package/dist/cjs/pds-avatar.entry.cjs.js.map +1 -1
  23. package/dist/cjs/pds-button.cjs.entry.js +1 -1
  24. package/dist/cjs/pds-checkbox.cjs.entry.js +2 -2
  25. package/dist/cjs/pds-checkbox.entry.cjs.js.map +1 -1
  26. package/dist/cjs/pds-chip.cjs.entry.js +1 -1
  27. package/dist/cjs/pds-copytext.cjs.entry.js +2 -2
  28. package/dist/cjs/pds-copytext.entry.cjs.js.map +1 -1
  29. package/dist/cjs/pds-filter.cjs.entry.js +1 -1
  30. package/dist/cjs/pds-input.cjs.entry.js +2 -2
  31. package/dist/cjs/pds-input.entry.cjs.js.map +1 -1
  32. package/dist/cjs/pds-link.cjs.entry.js +1 -1
  33. package/dist/cjs/pds-modal-content.cjs.entry.js +2 -18
  34. package/dist/cjs/pds-modal-content.entry.cjs.js.map +1 -1
  35. package/dist/cjs/pds-radio-group.cjs.entry.js +1 -1
  36. package/dist/cjs/pds-radio.cjs.entry.js +1 -1
  37. package/dist/cjs/pds-select.cjs.entry.js +1 -1
  38. package/dist/cjs/pds-sortable-item.cjs.entry.js +1 -1
  39. package/dist/cjs/pds-switch.cjs.entry.js +1 -1
  40. package/dist/cjs/pds-table-head-cell.cjs.entry.js +1 -1
  41. package/dist/cjs/pds-textarea.cjs.entry.js +1 -1
  42. package/dist/cjs/pine-core.cjs.js +1 -1
  43. package/dist/collection/components/pds-alert/pds-alert.tokens.css +10 -0
  44. package/dist/collection/components/pds-avatar/pds-avatar.css +1 -1
  45. package/dist/collection/components/pds-avatar/pds-avatar.js +2 -2
  46. package/dist/collection/components/pds-avatar/pds-avatar.js.map +1 -1
  47. package/dist/collection/components/pds-checkbox/pds-checkbox.css +1 -2
  48. package/dist/collection/components/pds-copytext/pds-copytext.css +1 -1
  49. package/dist/collection/components/pds-input/pds-input.css +1 -1
  50. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +3 -19
  51. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js.map +1 -1
  52. package/dist/docs.json +2 -2
  53. package/dist/esm/{index-CShvJnsl.js → index-xbb79yLt.js} +3 -3
  54. package/dist/esm/index-xbb79yLt.js.map +1 -0
  55. package/dist/esm/loader.js +1 -1
  56. package/dist/esm/pds-accordion.entry.js +1 -1
  57. package/dist/esm/pds-alert.entry.js +1 -1
  58. package/dist/esm/pds-alert.entry.js.map +1 -1
  59. package/dist/esm/pds-avatar.entry.js +4 -4
  60. package/dist/esm/pds-avatar.entry.js.map +1 -1
  61. package/dist/esm/pds-button.entry.js +1 -1
  62. package/dist/esm/pds-checkbox.entry.js +2 -2
  63. package/dist/esm/pds-checkbox.entry.js.map +1 -1
  64. package/dist/esm/pds-chip.entry.js +1 -1
  65. package/dist/esm/pds-copytext.entry.js +2 -2
  66. package/dist/esm/pds-copytext.entry.js.map +1 -1
  67. package/dist/esm/pds-filter.entry.js +1 -1
  68. package/dist/esm/pds-input.entry.js +2 -2
  69. package/dist/esm/pds-input.entry.js.map +1 -1
  70. package/dist/esm/pds-link.entry.js +1 -1
  71. package/dist/esm/pds-modal-content.entry.js +2 -18
  72. package/dist/esm/pds-modal-content.entry.js.map +1 -1
  73. package/dist/esm/pds-radio-group.entry.js +1 -1
  74. package/dist/esm/pds-radio.entry.js +1 -1
  75. package/dist/esm/pds-select.entry.js +1 -1
  76. package/dist/esm/pds-sortable-item.entry.js +1 -1
  77. package/dist/esm/pds-switch.entry.js +1 -1
  78. package/dist/esm/pds-table-head-cell.entry.js +1 -1
  79. package/dist/esm/pds-textarea.entry.js +1 -1
  80. package/dist/esm/pine-core.js +1 -1
  81. package/dist/esm-es5/{index-CShvJnsl.js → index-xbb79yLt.js} +1 -1
  82. package/dist/esm-es5/index-xbb79yLt.js.map +1 -0
  83. package/dist/esm-es5/loader.js +1 -1
  84. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  85. package/dist/esm-es5/pds-alert.entry.js +1 -1
  86. package/dist/esm-es5/pds-alert.entry.js.map +1 -1
  87. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  88. package/dist/esm-es5/pds-avatar.entry.js.map +1 -1
  89. package/dist/esm-es5/pds-button.entry.js +1 -1
  90. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  91. package/dist/esm-es5/pds-checkbox.entry.js.map +1 -1
  92. package/dist/esm-es5/pds-chip.entry.js +1 -1
  93. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  94. package/dist/esm-es5/pds-copytext.entry.js.map +1 -1
  95. package/dist/esm-es5/pds-filter.entry.js +1 -1
  96. package/dist/esm-es5/pds-input.entry.js +1 -1
  97. package/dist/esm-es5/pds-input.entry.js.map +1 -1
  98. package/dist/esm-es5/pds-link.entry.js +1 -1
  99. package/dist/esm-es5/pds-modal-content.entry.js +1 -1
  100. package/dist/esm-es5/pds-modal-content.entry.js.map +1 -1
  101. package/dist/esm-es5/pds-radio-group.entry.js +1 -1
  102. package/dist/esm-es5/pds-radio.entry.js +1 -1
  103. package/dist/esm-es5/pds-select.entry.js +1 -1
  104. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  105. package/dist/esm-es5/pds-switch.entry.js +1 -1
  106. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  107. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  108. package/dist/esm-es5/pine-core.js +1 -1
  109. package/dist/pine-core/{p-CsVpJw_i.system.js.map → p--gPqixhD.system.js.map} +1 -1
  110. package/dist/pine-core/{p-847fc77b.system.entry.js → p-11d69ad5.system.entry.js} +2 -2
  111. package/dist/pine-core/p-1282026f.entry.js +2 -0
  112. package/dist/pine-core/{p-be647b2a.entry.js.map → p-1282026f.entry.js.map} +1 -1
  113. package/dist/pine-core/{p-b64407a4.entry.js → p-15202869.entry.js} +2 -2
  114. package/dist/pine-core/{p-cd564179.entry.js → p-15650db8.entry.js} +2 -2
  115. package/dist/pine-core/{p-9998c2a0.entry.js → p-1daf66d1.entry.js} +2 -2
  116. package/dist/pine-core/{p-e6b39ec1.entry.js → p-233a6680.entry.js} +2 -2
  117. package/dist/pine-core/p-36ad78b5.system.entry.js +2 -0
  118. package/dist/pine-core/{p-cf910e8b.system.entry.js.map → p-36ad78b5.system.entry.js.map} +1 -1
  119. package/dist/pine-core/p-3f0a6a75.system.entry.js +2 -0
  120. package/dist/pine-core/p-3f0a6a75.system.entry.js.map +1 -0
  121. package/dist/pine-core/{p-dba5ca37.system.entry.js → p-3fd0f8a9.system.entry.js} +2 -2
  122. package/dist/pine-core/{p-0398f6e3.entry.js → p-41cc9270.entry.js} +2 -2
  123. package/dist/pine-core/p-426e90cb.entry.js +2 -0
  124. package/dist/pine-core/p-426e90cb.entry.js.map +1 -0
  125. package/dist/pine-core/{p-80017aa5.entry.js → p-46e5a568.entry.js} +2 -2
  126. package/dist/pine-core/{p-1f5ed7bb.system.entry.js → p-6150fb43.system.entry.js} +2 -2
  127. package/dist/pine-core/{p-e837b577.entry.js → p-66597ea5.entry.js} +2 -2
  128. package/dist/pine-core/{p-a226ecdb.system.entry.js → p-6bc81a5b.system.entry.js} +2 -2
  129. package/dist/pine-core/{p-670b1551.system.entry.js → p-6c3299f9.system.entry.js} +2 -2
  130. package/dist/pine-core/{p-670b1551.system.entry.js.map → p-6c3299f9.system.entry.js.map} +1 -1
  131. package/dist/pine-core/{p-428a96f9.entry.js → p-6cba6806.entry.js} +2 -2
  132. package/dist/pine-core/{p-03209958.system.entry.js → p-732e2564.system.entry.js} +2 -2
  133. package/dist/pine-core/{p-58fa5c8f.entry.js → p-8d6fa6f7.entry.js} +2 -2
  134. package/dist/pine-core/{p-91954848.entry.js → p-95f2782c.entry.js} +2 -2
  135. package/dist/pine-core/{p-91954848.entry.js.map → p-95f2782c.entry.js.map} +1 -1
  136. package/dist/pine-core/p-96be2d57.entry.js +2 -0
  137. package/dist/pine-core/{p-8007f4de.entry.js.map → p-96be2d57.entry.js.map} +1 -1
  138. package/dist/pine-core/{p-e08503a7.entry.js → p-9ddf4f1f.entry.js} +2 -2
  139. package/dist/pine-core/{p-e08503a7.entry.js.map → p-9ddf4f1f.entry.js.map} +1 -1
  140. package/dist/pine-core/{p-dfcdd55d.system.entry.js → p-9f53eb94.system.entry.js} +2 -2
  141. package/dist/pine-core/{p-Bp1qn6CS.system.js.map → p-B81sAPMq.system.js.map} +1 -1
  142. package/dist/pine-core/p-B8OHXU49.system.js.map +1 -0
  143. package/dist/pine-core/p-C9T6sYau.system.js.map +1 -0
  144. package/dist/pine-core/{p-BjRES1T-.system.js.map → p-CGo2P4Fr.system.js.map} +1 -1
  145. package/dist/pine-core/{p-e50YjICS.system.js → p-CKzDRRgx.system.js} +1 -1
  146. package/dist/pine-core/p-CKzDRRgx.system.js.map +1 -0
  147. package/dist/pine-core/{p-CJJ3xfku.system.js.map → p-CWaidsBR.system.js.map} +1 -1
  148. package/dist/pine-core/p-CXGuX44q.system.js.map +1 -0
  149. package/dist/pine-core/{p-D2aexWnE.system.js.map → p-Ch7MRoFE.system.js.map} +1 -1
  150. package/dist/pine-core/p-ChiYqN-p.system.js.map +1 -0
  151. package/dist/pine-core/{p-Drfvoxcd.system.js.map → p-CiqRCskL.system.js.map} +1 -1
  152. package/dist/pine-core/{p-D8bibuWO.system.js.map → p-CoF_9_BM.system.js.map} +1 -1
  153. package/dist/pine-core/{p-BK-Kji1Y.system.js.map → p-DB45WSlG.system.js.map} +1 -1
  154. package/dist/pine-core/{p-PAmjcE4m.system.js.map → p-DC2NZwtk.system.js.map} +1 -1
  155. package/dist/pine-core/p-JAVnELnm.system.js +1 -1
  156. package/dist/pine-core/{p-D_LvnDUT.system.js.map → p-Ma8AuMzD.system.js.map} +1 -1
  157. package/dist/pine-core/{p-BQImnLWy.system.js.map → p-WhfStK1C.system.js.map} +1 -1
  158. package/dist/pine-core/{p-5b2b3e8a.entry.js → p-a08b60ae.entry.js} +2 -2
  159. package/dist/pine-core/{p-bd53ca9a.system.entry.js → p-a4d094da.system.entry.js} +2 -2
  160. package/dist/pine-core/{p-934229d8.entry.js → p-ac050f83.entry.js} +2 -2
  161. package/dist/pine-core/{p-65db991d.entry.js → p-b02936d2.entry.js} +2 -2
  162. package/dist/pine-core/{p-04a7b66c.system.entry.js → p-c03e2c5d.system.entry.js} +2 -2
  163. package/dist/pine-core/p-c2d17093.system.entry.js +2 -0
  164. package/dist/pine-core/{p-3a231ae4.system.entry.js.map → p-c2d17093.system.entry.js.map} +1 -1
  165. package/dist/pine-core/{p-6ace63a3.system.entry.js → p-cd335ec2.system.entry.js} +2 -2
  166. package/dist/pine-core/{p-0869fe00.entry.js → p-d5731a05.entry.js} +2 -2
  167. package/dist/pine-core/{p-c9f97ccb.system.entry.js → p-dad604e4.system.entry.js} +2 -2
  168. package/dist/pine-core/{p-676f1f32.system.entry.js → p-e31ea2ae.system.entry.js} +2 -2
  169. package/dist/pine-core/{p-94788439.system.entry.js → p-e5bc22b6.system.entry.js} +2 -2
  170. package/dist/pine-core/{p-C56crVDC.system.js.map → p-eHySdsWM.system.js.map} +1 -1
  171. package/dist/pine-core/{p-7ccd2fd6.system.entry.js → p-f9ef2f74.system.entry.js} +2 -2
  172. package/dist/pine-core/{p-c08ab042.system.entry.js → p-ff182316.system.entry.js} +2 -2
  173. package/dist/pine-core/{p-c08ab042.system.entry.js.map → p-ff182316.system.entry.js.map} +1 -1
  174. package/dist/pine-core/{p-B1wJrRWz.system.js.map → p-s-tFgs4I.system.js.map} +1 -1
  175. package/dist/pine-core/p-uv97KtT8.system.js.map +1 -0
  176. package/dist/pine-core/{p-CShvJnsl.js → p-xbb79yLt.js} +1 -1
  177. package/dist/pine-core/p-xbb79yLt.js.map +1 -0
  178. package/dist/pine-core/pds-alert.entry.esm.js.map +1 -1
  179. package/dist/pine-core/pds-avatar.entry.esm.js.map +1 -1
  180. package/dist/pine-core/pds-checkbox.entry.esm.js.map +1 -1
  181. package/dist/pine-core/pds-copytext.entry.esm.js.map +1 -1
  182. package/dist/pine-core/pds-input.entry.esm.js.map +1 -1
  183. package/dist/pine-core/pds-modal-content.entry.esm.js.map +1 -1
  184. package/dist/pine-core/pine-core.esm.js +1 -1
  185. package/hydrate/index.js +11 -27
  186. package/hydrate/index.mjs +11 -27
  187. package/package.json +9 -9
  188. package/dist/cjs/index-BIrlTMGo.js.map +0 -1
  189. package/dist/esm/index-CShvJnsl.js.map +0 -1
  190. package/dist/esm-es5/index-CShvJnsl.js.map +0 -1
  191. package/dist/pine-core/p-227d5375.entry.js +0 -2
  192. package/dist/pine-core/p-227d5375.entry.js.map +0 -1
  193. package/dist/pine-core/p-3a231ae4.system.entry.js +0 -2
  194. package/dist/pine-core/p-8007f4de.entry.js +0 -2
  195. package/dist/pine-core/p-BZj284A2.system.js.map +0 -1
  196. package/dist/pine-core/p-CShvJnsl.js.map +0 -1
  197. package/dist/pine-core/p-CgF-S6vZ.system.js.map +0 -1
  198. package/dist/pine-core/p-CrjhL65U.system.js.map +0 -1
  199. package/dist/pine-core/p-DBdgdjLr.system.js.map +0 -1
  200. package/dist/pine-core/p-a54f4dfd.system.entry.js +0 -2
  201. package/dist/pine-core/p-a54f4dfd.system.entry.js.map +0 -1
  202. package/dist/pine-core/p-be647b2a.entry.js +0 -2
  203. package/dist/pine-core/p-cf910e8b.system.entry.js +0 -2
  204. package/dist/pine-core/p-e50YjICS.system.js.map +0 -1
  205. package/dist/pine-core/p-ejoWgOZK.system.js.map +0 -1
  206. /package/dist/pine-core/{p-847fc77b.system.entry.js.map → p-11d69ad5.system.entry.js.map} +0 -0
  207. /package/dist/pine-core/{p-b64407a4.entry.js.map → p-15202869.entry.js.map} +0 -0
  208. /package/dist/pine-core/{p-cd564179.entry.js.map → p-15650db8.entry.js.map} +0 -0
  209. /package/dist/pine-core/{p-9998c2a0.entry.js.map → p-1daf66d1.entry.js.map} +0 -0
  210. /package/dist/pine-core/{p-e6b39ec1.entry.js.map → p-233a6680.entry.js.map} +0 -0
  211. /package/dist/pine-core/{p-dba5ca37.system.entry.js.map → p-3fd0f8a9.system.entry.js.map} +0 -0
  212. /package/dist/pine-core/{p-0398f6e3.entry.js.map → p-41cc9270.entry.js.map} +0 -0
  213. /package/dist/pine-core/{p-80017aa5.entry.js.map → p-46e5a568.entry.js.map} +0 -0
  214. /package/dist/pine-core/{p-1f5ed7bb.system.entry.js.map → p-6150fb43.system.entry.js.map} +0 -0
  215. /package/dist/pine-core/{p-e837b577.entry.js.map → p-66597ea5.entry.js.map} +0 -0
  216. /package/dist/pine-core/{p-a226ecdb.system.entry.js.map → p-6bc81a5b.system.entry.js.map} +0 -0
  217. /package/dist/pine-core/{p-428a96f9.entry.js.map → p-6cba6806.entry.js.map} +0 -0
  218. /package/dist/pine-core/{p-03209958.system.entry.js.map → p-732e2564.system.entry.js.map} +0 -0
  219. /package/dist/pine-core/{p-58fa5c8f.entry.js.map → p-8d6fa6f7.entry.js.map} +0 -0
  220. /package/dist/pine-core/{p-dfcdd55d.system.entry.js.map → p-9f53eb94.system.entry.js.map} +0 -0
  221. /package/dist/pine-core/{p-5b2b3e8a.entry.js.map → p-a08b60ae.entry.js.map} +0 -0
  222. /package/dist/pine-core/{p-bd53ca9a.system.entry.js.map → p-a4d094da.system.entry.js.map} +0 -0
  223. /package/dist/pine-core/{p-934229d8.entry.js.map → p-ac050f83.entry.js.map} +0 -0
  224. /package/dist/pine-core/{p-65db991d.entry.js.map → p-b02936d2.entry.js.map} +0 -0
  225. /package/dist/pine-core/{p-04a7b66c.system.entry.js.map → p-c03e2c5d.system.entry.js.map} +0 -0
  226. /package/dist/pine-core/{p-6ace63a3.system.entry.js.map → p-cd335ec2.system.entry.js.map} +0 -0
  227. /package/dist/pine-core/{p-0869fe00.entry.js.map → p-d5731a05.entry.js.map} +0 -0
  228. /package/dist/pine-core/{p-c9f97ccb.system.entry.js.map → p-dad604e4.system.entry.js.map} +0 -0
  229. /package/dist/pine-core/{p-676f1f32.system.entry.js.map → p-e31ea2ae.system.entry.js.map} +0 -0
  230. /package/dist/pine-core/{p-94788439.system.entry.js.map → p-e5bc22b6.system.entry.js.map} +0 -0
  231. /package/dist/pine-core/{p-7ccd2fd6.system.entry.js.map → p-f9ef2f74.system.entry.js.map} +0 -0
@@ -34,7 +34,6 @@ const PdsModalContent$1 = /*@__PURE__*/ proxyCustomElement(class PdsModalContent
34
34
  if (!this.userSetBorder) {
35
35
  setTimeout(() => {
36
36
  // The scroll happens on the component element itself (this.el), not the inner div
37
- console.log('Setting up scroll listener on component element:', this.el);
38
37
  this.el.addEventListener('scroll', this.handleScroll.bind(this));
39
38
  // Initial border update after everything is set up
40
39
  setTimeout(() => this.updateBorders(), 100);
@@ -55,7 +54,6 @@ const PdsModalContent$1 = /*@__PURE__*/ proxyCustomElement(class PdsModalContent
55
54
  * Handle scroll events
56
55
  */
57
56
  handleScroll() {
58
- console.log('Scroll event fired!');
59
57
  this.updateBorders();
60
58
  }
61
59
  /**
@@ -99,35 +97,21 @@ const PdsModalContent$1 = /*@__PURE__*/ proxyCustomElement(class PdsModalContent
99
97
  const tolerance = 3;
100
98
  const isAtTop = scrollTop <= tolerance;
101
99
  const isAtBottom = scrollBottom >= scrollHeight - tolerance;
102
- // Debug logging (can be removed later)
103
- console.log('Border Debug:', {
104
- scrollTop,
105
- scrollHeight,
106
- clientHeight,
107
- scrollBottom,
108
- isAtTop,
109
- isAtBottom,
110
- currentBorder: this.border
111
- });
112
100
  if (isAtTop && isAtBottom) {
113
101
  // Content fits exactly, no borders needed
114
102
  this.border = 'none';
115
- console.log('Content fits exactly, no borders needed');
116
103
  }
117
104
  else if (isAtTop && !isAtBottom) {
118
105
  // At top, show bottom border only
119
106
  this.border = 'bottom';
120
- console.log('At top, show bottom border only');
121
107
  }
122
108
  else if (!isAtTop && isAtBottom) {
123
109
  // At bottom, show top border only
124
110
  this.border = 'top';
125
- console.log('At bottom, show top border only');
126
111
  }
127
112
  else {
128
113
  // In middle, show both borders
129
114
  this.border = 'both';
130
- console.log('In middle, show both borders');
131
115
  }
132
116
  }
133
117
  /**
@@ -196,15 +180,15 @@ const PdsModalContent$1 = /*@__PURE__*/ proxyCustomElement(class PdsModalContent
196
180
  render() {
197
181
  // Only apply max-height style if it's not 'none'
198
182
  const styleObj = this.contentMaxHeight !== 'none' ? { maxHeight: this.contentMaxHeight } : {};
199
- return (h(Host, { key: '11f1dba4ecce4a2dbf5afcd484a545a68559b0dd' }, h("div", { key: '09af48c8b62dbd0f0b418e9b15175fd9f4409636', class: {
183
+ return (h(Host, { key: 'fae42c1fc151e4855cd2c731802c15851473be79' }, h("div", { key: 'feb61d6a7227d8113b931df6280358cd9b4fe583', class: {
200
184
  'pds-modal-content': true,
201
185
  [`pds-modal-content--border-${this.border}`]: true
202
- }, style: styleObj, tabindex: "-1" }, h("slot", { key: 'd738f5346e407ca6a5d92ff81d10387f7edc03bf' }))));
186
+ }, style: styleObj, tabindex: "-1" }, h("slot", { key: '1c9e55ecd1ad353699e5a4590ee04c9005719f6d' }))));
203
187
  }
204
188
  get el() { return this; }
205
189
  static get style() { return pdsModalContentCss; }
206
190
  }, [260, "pds-modal-content", {
207
- "border": [513],
191
+ "border": [1537],
208
192
  "contentMaxHeight": [32]
209
193
  }]);
210
194
  function defineCustomElement$1() {
@@ -1 +1 @@
1
- {"file":"pds-modal-content.js","mappings":"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","names":["PdsModalContent","__stencil_proxyCustomElement"],"sources":["src/components/pds-modal/pds-modal-content/pds-modal-content.scss?tag=pds-modal-content","src/components/pds-modal/pds-modal-content/pds-modal-content.tsx"],"sourcesContent":["pds-modal-content {\n display: block;\n flex: 1 1 auto;\n width: 100%;\n\n &:has(.pds-modal-content.pds-modal-content--border-none) {\n border: 0;\n }\n\n &:has(.pds-modal-content.pds-modal-content--border-both) {\n border-block-end: 1px solid var(--pine-color-border-subtle);\n border-block-start: 1px solid var(--pine-color-border-subtle);\n }\n\n &:has(.pds-modal-content.pds-modal-content--border-top) {\n border-block-start: 1px solid var(--pine-color-border-subtle);\n }\n\n &:has(.pds-modal-content.pds-modal-content--border-bottom) {\n border-block-end: 1px solid var(--pine-color-border-subtle);\n }\n}\n\n.pds-modal-content {\n display: block;\n flex: 1 1 auto;\n // Max height is set via inline styles based on header and footer heights\n min-height: 0;\n width: 100%;\n\n}\n","import { Component, h, Host, Prop, Element, State } from '@stencil/core';\n\n@Component({\n tag: 'pds-modal-content',\n styleUrl: 'pds-modal-content.scss',\n})\nexport class PdsModalContent {\n\n @Element() el: HTMLPdsModalContentElement;\n\n /**\n * The border style for the content area. When not explicitly set, automatically determined based on scroll state.\n * @default 'none'\n */\n @Prop({ reflect: true }) border: 'none' | 'both' | 'top' | 'bottom' = 'none';\n\n @State() contentMaxHeight: string = 'none';\n\n /**\n * Tracks whether the border prop was explicitly set by the user\n */\n private userSetBorder = false;\n\n componentWillLoad() {\n // Check if border was explicitly set via attribute or property\n const borderAttr = this.el.getAttribute('border');\n const hasBorderAttribute = borderAttr !== null;\n\n // If border attribute exists or border prop is not the default, user set it\n this.userSetBorder = hasBorderAttribute || this.border !== 'none';\n }\n\n componentDidLoad() {\n this.calculateMaxHeight();\n\n // Set up resize listener\n window.addEventListener('resize', this.handleResize.bind(this));\n\n // Only set up scroll listener for border updates if borders are managed automatically\n if (!this.userSetBorder) {\n setTimeout(() => {\n // The scroll happens on the component element itself (this.el), not the inner div\n console.log('Setting up scroll listener on component element:', this.el);\n this.el.addEventListener('scroll', this.handleScroll.bind(this));\n // Initial border update after everything is set up\n setTimeout(() => this.updateBorders(), 100);\n }, 100);\n }\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.handleResize.bind(this));\n\n // Clean up scroll listener only if it was set up\n if (!this.userSetBorder) {\n this.el.removeEventListener('scroll', this.handleScroll.bind(this));\n }\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n }\n\n /**\n * Handle scroll events\n */\n private handleScroll() {\n console.log('Scroll event fired!');\n this.updateBorders();\n }\n\n /**\n * Handle resize events\n */\n private handleResize() {\n this.calculateMaxHeight();\n // Update borders after resize as content scrollability might change\n setTimeout(() => this.updateBorders(), 50);\n }\n\n /**\n * Calculates the max-height based on header and footer heights\n */\n private mutationObserver: MutationObserver;\n\n /**\n * Updates border visibility based on scroll state (only if not user-defined)\n */\n private updateBorders() {\n // If user explicitly set a border value, don't override it\n if (this.userSetBorder) {\n return;\n }\n\n // Find the modal element (parent of this component)\n const modalElement = this.el.closest('pds-modal');\n if (!modalElement) return;\n\n // Only apply border logic if modal is scrollable\n const isModalScrollable = modalElement.scrollable !== false;\n if (!isModalScrollable) {\n this.border = 'none';\n return;\n }\n\n // The scrollable element is the component itself (this.el), not the inner div\n const scrollableElement = this.el;\n\n // Check if content is actually scrollable\n const isContentScrollable = scrollableElement.scrollHeight > scrollableElement.clientHeight;\n\n if (!isContentScrollable) {\n this.border = 'none';\n return;\n }\n\n // Determine border position based on scroll position\n const { scrollTop, scrollHeight, clientHeight } = scrollableElement;\n const scrollBottom = scrollTop + clientHeight;\n\n // More generous tolerance for scroll detection (3px instead of 1px)\n const tolerance = 3;\n const isAtTop = scrollTop <= tolerance;\n const isAtBottom = scrollBottom >= scrollHeight - tolerance;\n\n // Debug logging (can be removed later)\n console.log('Border Debug:', {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollBottom,\n isAtTop,\n isAtBottom,\n currentBorder: this.border\n });\n\n if (isAtTop && isAtBottom) {\n // Content fits exactly, no borders needed\n this.border = 'none';\n console.log('Content fits exactly, no borders needed');\n } else if (isAtTop && !isAtBottom) {\n // At top, show bottom border only\n this.border = 'bottom';\n console.log('At top, show bottom border only');\n } else if (!isAtTop && isAtBottom) {\n // At bottom, show top border only\n this.border = 'top';\n console.log('At bottom, show top border only');\n } else {\n // In middle, show both borders\n this.border = 'both';\n console.log('In middle, show both borders');\n }\n }\n\n /**\n * Calculates the max-height based on header and footer heights\n */\n private calculateMaxHeight() {\n // Find the modal element (parent of this component)\n const modalElement = this.el.closest('pds-modal');\n if (!modalElement) return;\n\n // Check if the parent modal is scrollable\n const isScrollable = modalElement.scrollable !== false;\n\n setTimeout(() => {\n // If modal is not scrollable, don't apply max-height constraints\n if (!isScrollable) {\n this.contentMaxHeight = 'none';\n const contentElement = this.el.querySelector('.pds-modal-content') as HTMLElement;\n if (contentElement) {\n contentElement.style.maxHeight = 'none';\n }\n return;\n }\n\n // Find header and footer elements\n const headerElement = modalElement.querySelector('pds-modal-header');\n const footerElement = modalElement.querySelector('pds-modal-footer');\n\n // Get header and footer heights\n const headerHeight = headerElement ? headerElement.offsetHeight : 0;\n const footerHeight = footerElement ? footerElement.offsetHeight : 0;\n\n // Set the max-height as a calculation\n if (headerHeight > 0 || footerHeight > 0) {\n // Calculate the available height by subtracting:\n // 1. Header and footer heights\n // 2. Modal padding (48px)\n // 3. Additional space for modal positioning (6vh)\n // 4. Extra adjustment for perfect fit (50px)\n const viewportAdjustment = Math.round(window.innerHeight * 0.06); // 6vh approximation\n const totalReduction = headerHeight + footerHeight + 48 + viewportAdjustment + 50;\n\n // Set the content max height\n this.contentMaxHeight = `calc(100vh - ${totalReduction}px)`;\n\n // Apply the style directly to ensure it takes effect\n const contentElement = this.el.querySelector('.pds-modal-content') as HTMLElement;\n if (contentElement) {\n contentElement.style.maxHeight = this.contentMaxHeight;\n }\n } else {\n this.contentMaxHeight = 'none'; // Default fallback\n }\n\n // Update borders after height calculations with longer delay\n setTimeout(() => this.updateBorders(), 150);\n }, 100); // Delay to ensure DOM is fully rendered\n\n // Set up mutation observer if not already done\n if (!this.mutationObserver && modalElement) {\n this.mutationObserver = new MutationObserver(() => {\n this.calculateMaxHeight();\n });\n\n // Observe changes to the modal's children\n this.mutationObserver.observe(modalElement, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['style', 'class']\n });\n }\n }\n render() {\n // Only apply max-height style if it's not 'none'\n const styleObj = this.contentMaxHeight !== 'none' ? { maxHeight: this.contentMaxHeight } : {};\n\n return (\n <Host>\n <div\n class={{\n 'pds-modal-content': true,\n [`pds-modal-content--border-${this.border}`]: true\n }}\n style={styleObj}\n tabindex=\"-1\"\n >\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"pds-modal-content.js","mappings":"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","names":["PdsModalContent","__stencil_proxyCustomElement"],"sources":["src/components/pds-modal/pds-modal-content/pds-modal-content.scss?tag=pds-modal-content","src/components/pds-modal/pds-modal-content/pds-modal-content.tsx"],"sourcesContent":["pds-modal-content {\n display: block;\n flex: 1 1 auto;\n width: 100%;\n\n &:has(.pds-modal-content.pds-modal-content--border-none) {\n border: 0;\n }\n\n &:has(.pds-modal-content.pds-modal-content--border-both) {\n border-block-end: 1px solid var(--pine-color-border-subtle);\n border-block-start: 1px solid var(--pine-color-border-subtle);\n }\n\n &:has(.pds-modal-content.pds-modal-content--border-top) {\n border-block-start: 1px solid var(--pine-color-border-subtle);\n }\n\n &:has(.pds-modal-content.pds-modal-content--border-bottom) {\n border-block-end: 1px solid var(--pine-color-border-subtle);\n }\n}\n\n.pds-modal-content {\n display: block;\n flex: 1 1 auto;\n // Max height is set via inline styles based on header and footer heights\n min-height: 0;\n width: 100%;\n\n}\n","import { Component, h, Host, Prop, Element, State } from '@stencil/core';\n\n@Component({\n tag: 'pds-modal-content',\n styleUrl: 'pds-modal-content.scss',\n})\nexport class PdsModalContent {\n\n @Element() el: HTMLPdsModalContentElement;\n\n /**\n * The border style for the content area. When not explicitly set, automatically determined based on scroll state.\n * @default 'none'\n */\n @Prop({ reflect: true, mutable: true }) border: 'none' | 'both' | 'top' | 'bottom' = 'none';\n\n @State() contentMaxHeight: string = 'none';\n\n /**\n * Tracks whether the border prop was explicitly set by the user\n */\n private userSetBorder = false;\n\n componentWillLoad() {\n // Check if border was explicitly set via attribute or property\n const borderAttr = this.el.getAttribute('border');\n const hasBorderAttribute = borderAttr !== null;\n\n // If border attribute exists or border prop is not the default, user set it\n this.userSetBorder = hasBorderAttribute || this.border !== 'none';\n }\n\n componentDidLoad() {\n this.calculateMaxHeight();\n\n // Set up resize listener\n window.addEventListener('resize', this.handleResize.bind(this));\n\n // Only set up scroll listener for border updates if borders are managed automatically\n if (!this.userSetBorder) {\n setTimeout(() => {\n // The scroll happens on the component element itself (this.el), not the inner div\n this.el.addEventListener('scroll', this.handleScroll.bind(this));\n // Initial border update after everything is set up\n setTimeout(() => this.updateBorders(), 100);\n }, 100);\n }\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.handleResize.bind(this));\n\n // Clean up scroll listener only if it was set up\n if (!this.userSetBorder) {\n this.el.removeEventListener('scroll', this.handleScroll.bind(this));\n }\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n }\n\n /**\n * Handle scroll events\n */\n private handleScroll() {\n this.updateBorders();\n }\n\n /**\n * Handle resize events\n */\n private handleResize() {\n this.calculateMaxHeight();\n // Update borders after resize as content scrollability might change\n setTimeout(() => this.updateBorders(), 50);\n }\n\n /**\n * Calculates the max-height based on header and footer heights\n */\n private mutationObserver: MutationObserver;\n\n /**\n * Updates border visibility based on scroll state (only if not user-defined)\n */\n private updateBorders() {\n // If user explicitly set a border value, don't override it\n if (this.userSetBorder) {\n return;\n }\n\n // Find the modal element (parent of this component)\n const modalElement = this.el.closest('pds-modal');\n if (!modalElement) return;\n\n // Only apply border logic if modal is scrollable\n const isModalScrollable = modalElement.scrollable !== false;\n if (!isModalScrollable) {\n this.border = 'none';\n return;\n }\n\n // The scrollable element is the component itself (this.el), not the inner div\n const scrollableElement = this.el;\n\n // Check if content is actually scrollable\n const isContentScrollable = scrollableElement.scrollHeight > scrollableElement.clientHeight;\n\n if (!isContentScrollable) {\n this.border = 'none';\n return;\n }\n\n // Determine border position based on scroll position\n const { scrollTop, scrollHeight, clientHeight } = scrollableElement;\n const scrollBottom = scrollTop + clientHeight;\n\n // More generous tolerance for scroll detection (3px instead of 1px)\n const tolerance = 3;\n const isAtTop = scrollTop <= tolerance;\n const isAtBottom = scrollBottom >= scrollHeight - tolerance;\n\n if (isAtTop && isAtBottom) {\n // Content fits exactly, no borders needed\n this.border = 'none';\n } else if (isAtTop && !isAtBottom) {\n // At top, show bottom border only\n this.border = 'bottom';\n } else if (!isAtTop && isAtBottom) {\n // At bottom, show top border only\n this.border = 'top';\n } else {\n // In middle, show both borders\n this.border = 'both';\n }\n }\n\n /**\n * Calculates the max-height based on header and footer heights\n */\n private calculateMaxHeight() {\n // Find the modal element (parent of this component)\n const modalElement = this.el.closest('pds-modal');\n if (!modalElement) return;\n\n // Check if the parent modal is scrollable\n const isScrollable = modalElement.scrollable !== false;\n\n setTimeout(() => {\n // If modal is not scrollable, don't apply max-height constraints\n if (!isScrollable) {\n this.contentMaxHeight = 'none';\n const contentElement = this.el.querySelector('.pds-modal-content') as HTMLElement;\n if (contentElement) {\n contentElement.style.maxHeight = 'none';\n }\n return;\n }\n\n // Find header and footer elements\n const headerElement = modalElement.querySelector('pds-modal-header');\n const footerElement = modalElement.querySelector('pds-modal-footer');\n\n // Get header and footer heights\n const headerHeight = headerElement ? headerElement.offsetHeight : 0;\n const footerHeight = footerElement ? footerElement.offsetHeight : 0;\n\n // Set the max-height as a calculation\n if (headerHeight > 0 || footerHeight > 0) {\n // Calculate the available height by subtracting:\n // 1. Header and footer heights\n // 2. Modal padding (48px)\n // 3. Additional space for modal positioning (6vh)\n // 4. Extra adjustment for perfect fit (50px)\n const viewportAdjustment = Math.round(window.innerHeight * 0.06); // 6vh approximation\n const totalReduction = headerHeight + footerHeight + 48 + viewportAdjustment + 50;\n\n // Set the content max height\n this.contentMaxHeight = `calc(100vh - ${totalReduction}px)`;\n\n // Apply the style directly to ensure it takes effect\n const contentElement = this.el.querySelector('.pds-modal-content') as HTMLElement;\n if (contentElement) {\n contentElement.style.maxHeight = this.contentMaxHeight;\n }\n } else {\n this.contentMaxHeight = 'none'; // Default fallback\n }\n\n // Update borders after height calculations with longer delay\n setTimeout(() => this.updateBorders(), 150);\n }, 100); // Delay to ensure DOM is fully rendered\n\n // Set up mutation observer if not already done\n if (!this.mutationObserver && modalElement) {\n this.mutationObserver = new MutationObserver(() => {\n this.calculateMaxHeight();\n });\n\n // Observe changes to the modal's children\n this.mutationObserver.observe(modalElement, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['style', 'class']\n });\n }\n }\n render() {\n // Only apply max-height style if it's not 'none'\n const styleObj = this.contentMaxHeight !== 'none' ? { maxHeight: this.contentMaxHeight } : {};\n\n return (\n <Host>\n <div\n class={{\n 'pds-modal-content': true,\n [`pds-modal-content--border-${this.border}`]: true\n }}\n style={styleObj}\n tabindex=\"-1\"\n >\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- /* pds-icons v9.11.0, ES Modules */
3
+ /* pds-icons v9.12.0, ES Modules */
4
4
 
5
5
  const addCircle = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' class='pdsicon'><path fill-rule='evenodd' d='M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18M1 12C1 5.925 5.925 1 12 1s11 4.925 11 11-4.925 11-11 11S1 18.075 1 12m11-5a1 1 0 0 1 1 1v3h3a1 1 0 1 1 0 2h-3v3a1 1 0 1 1-2 0v-3H8a1 1 0 1 1 0-2h3V8a1 1 0 0 1 1-1'/></svg>";
6
6
  const caretDown = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' class='pdsicon'><path fill-rule='evenodd' d='M5.293 8.293a1 1 0 0 1 1.414 0L12 13.586l5.293-5.293a1 1 0 1 1 1.414 1.414l-6 6a1 1 0 0 1-1.414 0l-6-6a1 1 0 0 1 0-1.414'/></svg>";
@@ -29,6 +29,6 @@ exports.remove = remove;
29
29
  exports.trash = trash;
30
30
  exports.upSmall = upSmall;
31
31
  exports.userFilled = userFilled;
32
- //# sourceMappingURL=index-BIrlTMGo.js.map
32
+ //# sourceMappingURL=index-CMeuo765.js.map
33
33
 
34
- //# sourceMappingURL=index-BIrlTMGo.js.map
34
+ //# sourceMappingURL=index-CMeuo765.js.map