@verbb/plugin-kit-web 2.0.22 → 2.0.23

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 (415) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/custom-elements.json +8414 -7031
  3. package/dist/chunks/{active-elements-BwpXu8Lb.js → active-elements-DM_lCHaW.js} +1 -1
  4. package/dist/chunks/{active-elements-BwpXu8Lb.js.map → active-elements-DM_lCHaW.js.map} +1 -1
  5. package/dist/chunks/{animate-with-class-CsDwYnXL.js → animate-with-class-NP-yJVt_.js} +1 -1
  6. package/dist/chunks/{animate-with-class-CsDwYnXL.js.map → animate-with-class-NP-yJVt_.js.map} +1 -1
  7. package/dist/chunks/{autoloader-dJO3tYOX.js → autoloader-DnSfHkrD.js} +3 -3
  8. package/dist/chunks/{autoloader-dJO3tYOX.js.map → autoloader-DnSfHkrD.js.map} +1 -1
  9. package/dist/chunks/{button-group-item.styles-DYmBR28a.js → button-group-item.styles-G05d0DNI.js} +1 -1
  10. package/dist/chunks/{button-group-item.styles-DYmBR28a.js.map → button-group-item.styles-G05d0DNI.js.map} +1 -1
  11. package/dist/chunks/{component-registry-D34fm8xW.js → component-registry-DoevfR-u.js} +5 -1
  12. package/dist/chunks/component-registry-DoevfR-u.js.map +1 -0
  13. package/dist/chunks/{control-aria-B2QMq4ji.js → control-aria-CzouQRZD.js} +1 -1
  14. package/dist/chunks/{control-aria-B2QMq4ji.js.map → control-aria-CzouQRZD.js.map} +1 -1
  15. package/dist/chunks/{dismissible-stack-XQUMfKO3.js → dismissible-stack-B3BgzdQb.js} +1 -1
  16. package/dist/chunks/{dismissible-stack-XQUMfKO3.js.map → dismissible-stack-B3BgzdQb.js.map} +1 -1
  17. package/dist/chunks/{field-labels-CmuAW8Cl.js → field-labels-CGSfAGf-.js} +1 -1
  18. package/dist/chunks/{field-labels-CmuAW8Cl.js.map → field-labels-CGSfAGf-.js.map} +1 -1
  19. package/dist/chunks/{focus-aa5dlv8k.js → focus-C6pY4Ym4.js} +2 -2
  20. package/dist/chunks/{focus-aa5dlv8k.js.map → focus-C6pY4Ym4.js.map} +1 -1
  21. package/dist/chunks/{form-control.styles-BQdimE5o.js → form-control.styles-BHwSsx_y.js} +1 -1
  22. package/dist/chunks/{form-control.styles-BQdimE5o.js.map → form-control.styles-BHwSsx_y.js.map} +1 -1
  23. package/dist/chunks/{has-slot-8BvCt_qo.js → has-slot-9zjTXvea.js} +1 -1
  24. package/dist/chunks/{has-slot-8BvCt_qo.js.map → has-slot-9zjTXvea.js.map} +1 -1
  25. package/dist/chunks/{icon.styles-BLTWLqYp.js → icon.styles-pNyUmVtP.js} +1 -1
  26. package/dist/chunks/{icon.styles-BLTWLqYp.js.map → icon.styles-pNyUmVtP.js.map} +1 -1
  27. package/dist/chunks/{icons-BR8JcQj2.js → icons-B8siZLOe.js} +2 -2
  28. package/dist/chunks/{icons-BR8JcQj2.js.map → icons-B8siZLOe.js.map} +1 -1
  29. package/dist/chunks/{mirror-validator-DCjNYrrx.js → mirror-validator-Cszpqlxk.js} +1 -1
  30. package/dist/chunks/{mirror-validator-DCjNYrrx.js.map → mirror-validator-Cszpqlxk.js.map} +1 -1
  31. package/dist/chunks/{option-filter-BQqr8Z21.js → option-filter-Cj5SvyzI.js} +2 -2
  32. package/dist/chunks/{option-filter-BQqr8Z21.js.map → option-filter-Cj5SvyzI.js.map} +1 -1
  33. package/dist/chunks/{overlay-lifecycle-D0pkTQyI.js → overlay-lifecycle-CAoT0LE8.js} +1 -1
  34. package/dist/chunks/{overlay-lifecycle-D0pkTQyI.js.map → overlay-lifecycle-CAoT0LE8.js.map} +1 -1
  35. package/dist/chunks/pk-alert-Cjxl6CY_.js +664 -0
  36. package/dist/chunks/pk-alert-Cjxl6CY_.js.map +1 -0
  37. package/dist/chunks/{pk-autocomplete-qy2Psvqm.js → pk-autocomplete-DA77kdTN.js} +19 -19
  38. package/dist/chunks/{pk-autocomplete-qy2Psvqm.js.map → pk-autocomplete-DA77kdTN.js.map} +1 -1
  39. package/dist/chunks/{pk-button-BrH4u4Qr.js → pk-button-DCtNLEPr.js} +6 -6
  40. package/dist/chunks/{pk-button-BrH4u4Qr.js.map → pk-button-DCtNLEPr.js.map} +1 -1
  41. package/dist/chunks/{pk-button-group-BSz5T5iS.js → pk-button-group-DBdKK_2_.js} +1 -1
  42. package/dist/chunks/{pk-button-group-BSz5T5iS.js.map → pk-button-group-DBdKK_2_.js.map} +1 -1
  43. package/dist/chunks/{pk-button-group-separator-DH3Rl24b.js → pk-button-group-separator-D0Aa0a0f.js} +1 -1
  44. package/dist/chunks/{pk-button-group-separator-DH3Rl24b.js.map → pk-button-group-separator-D0Aa0a0f.js.map} +1 -1
  45. package/dist/chunks/{pk-button-group-text-Qro_KmZb.js → pk-button-group-text-BsqEM-dB.js} +2 -2
  46. package/dist/chunks/{pk-button-group-text-Qro_KmZb.js.map → pk-button-group-text-BsqEM-dB.js.map} +1 -1
  47. package/dist/chunks/{pk-calendar-Z7Y0PjeY.js → pk-calendar-hBz1MnOu.js} +6 -6
  48. package/dist/chunks/{pk-calendar-Z7Y0PjeY.js.map → pk-calendar-hBz1MnOu.js.map} +1 -1
  49. package/dist/chunks/{pk-checkbox-13ArHSmt.js → pk-checkbox-dvHRoVbL.js} +4 -4
  50. package/dist/chunks/{pk-checkbox-13ArHSmt.js.map → pk-checkbox-dvHRoVbL.js.map} +1 -1
  51. package/dist/chunks/{pk-checkbox-select-Ckvfbu83.js → pk-checkbox-select-Cqx5ZCMq.js} +2 -2
  52. package/dist/chunks/{pk-checkbox-select-Ckvfbu83.js.map → pk-checkbox-select-Cqx5ZCMq.js.map} +1 -1
  53. package/dist/chunks/{pk-clear--mPWZP7H.js → pk-clear-LzxwxEX7.js} +1 -1
  54. package/dist/chunks/{pk-clear--mPWZP7H.js.map → pk-clear-LzxwxEX7.js.map} +1 -1
  55. package/dist/chunks/{pk-code-editor-BlG6O5qB.js → pk-code-editor-C_PqjR75.js} +4 -4
  56. package/dist/chunks/{pk-code-editor-BlG6O5qB.js.map → pk-code-editor-C_PqjR75.js.map} +1 -1
  57. package/dist/chunks/{pk-color-input-BRgQ5-vB.js → pk-color-input-4LDV0Z3W.js} +4 -4
  58. package/dist/chunks/{pk-color-input-BRgQ5-vB.js.map → pk-color-input-4LDV0Z3W.js.map} +1 -1
  59. package/dist/chunks/{pk-combobox-ag89QEX2.js → pk-combobox-BeddzAsl.js} +19 -19
  60. package/dist/chunks/{pk-combobox-ag89QEX2.js.map → pk-combobox-BeddzAsl.js.map} +1 -1
  61. package/dist/chunks/{pk-connect.styles-BhW406jt.js → pk-connect.styles-ciqZMK3B.js} +1 -1
  62. package/dist/chunks/{pk-connect.styles-BhW406jt.js.map → pk-connect.styles-ciqZMK3B.js.map} +1 -1
  63. package/dist/chunks/{pk-copy-button-BVaOLtYG.js → pk-copy-button-KegSx46o.js} +29 -8
  64. package/dist/chunks/pk-copy-button-KegSx46o.js.map +1 -0
  65. package/dist/chunks/{pk-date-picker-C2YvDPNm.js → pk-date-picker-D_JFep-Y.js} +19 -19
  66. package/dist/chunks/{pk-date-picker-C2YvDPNm.js.map → pk-date-picker-D_JFep-Y.js.map} +1 -1
  67. package/dist/chunks/{pk-dialog-VMQqLW1f.js → pk-dialog-CFU850OH.js} +8 -8
  68. package/dist/chunks/{pk-dialog-VMQqLW1f.js.map → pk-dialog-CFU850OH.js.map} +1 -1
  69. package/dist/chunks/{pk-dropdown-item-D9OaG5o-.js → pk-dropdown-item-A4P4zfVF.js} +5 -5
  70. package/dist/chunks/{pk-dropdown-item-D9OaG5o-.js.map → pk-dropdown-item-A4P4zfVF.js.map} +1 -1
  71. package/dist/chunks/{pk-dropdown-label-CRNWMWQd.js → pk-dropdown-label-PqDxMkCI.js} +1 -1
  72. package/dist/chunks/{pk-dropdown-label-CRNWMWQd.js.map → pk-dropdown-label-PqDxMkCI.js.map} +1 -1
  73. package/dist/chunks/{pk-dropdown-menu-DW1wI8xQ.js → pk-dropdown-menu-C_vasBoa.js} +9 -9
  74. package/dist/chunks/{pk-dropdown-menu-DW1wI8xQ.js.map → pk-dropdown-menu-C_vasBoa.js.map} +1 -1
  75. package/dist/chunks/{pk-editable-table-DDnu1I8Y.js → pk-editable-table-B85NhFYY.js} +18 -18
  76. package/dist/chunks/{pk-editable-table-DDnu1I8Y.js.map → pk-editable-table-B85NhFYY.js.map} +1 -1
  77. package/dist/chunks/{pk-field-UAlMq6mQ.js → pk-field-BJA2fZ6s.js} +7 -7
  78. package/dist/chunks/{pk-field-UAlMq6mQ.js.map → pk-field-BJA2fZ6s.js.map} +1 -1
  79. package/dist/chunks/{pk-form-associated-element-GxX5lbnk.js → pk-form-associated-element-MqaHdIoH.js} +2 -2
  80. package/dist/chunks/{pk-form-associated-element-GxX5lbnk.js.map → pk-form-associated-element-MqaHdIoH.js.map} +1 -1
  81. package/dist/chunks/{pk-image-browser-Bj8LhWfk.js → pk-image-browser-DLAQcjFt.js} +19 -19
  82. package/dist/chunks/{pk-image-browser-Bj8LhWfk.js.map → pk-image-browser-DLAQcjFt.js.map} +1 -1
  83. package/dist/chunks/{pk-input-BywmK5n2.js → pk-input-CiUNLTSW.js} +11 -11
  84. package/dist/chunks/{pk-input-BywmK5n2.js.map → pk-input-CiUNLTSW.js.map} +1 -1
  85. package/dist/chunks/{pk-input-group-addon-ClBkGmAw.js → pk-input-group-addon-piOznzSS.js} +1 -1
  86. package/dist/chunks/{pk-input-group-addon-ClBkGmAw.js.map → pk-input-group-addon-piOznzSS.js.map} +1 -1
  87. package/dist/chunks/{pk-input-group-button-CHQHsWd4.js → pk-input-group-button-Di2vEJLo.js} +1 -1
  88. package/dist/chunks/{pk-input-group-button-CHQHsWd4.js.map → pk-input-group-button-Di2vEJLo.js.map} +1 -1
  89. package/dist/chunks/{pk-input-group-input-oNnqMBGU.js → pk-input-group-input-CwaaEfr1.js} +1 -1
  90. package/dist/chunks/{pk-input-group-input-oNnqMBGU.js.map → pk-input-group-input-CwaaEfr1.js.map} +1 -1
  91. package/dist/chunks/{pk-input-group-BLqKPnfc.js → pk-input-group-k7WV0pQI.js} +3 -3
  92. package/dist/chunks/{pk-input-group-BLqKPnfc.js.map → pk-input-group-k7WV0pQI.js.map} +1 -1
  93. package/dist/chunks/{pk-input-group-text-HUxlXROB.js → pk-input-group-text-C0VAdy0J.js} +1 -1
  94. package/dist/chunks/{pk-input-group-text-HUxlXROB.js.map → pk-input-group-text-C0VAdy0J.js.map} +1 -1
  95. package/dist/chunks/{pk-input-group-textarea-Cl2FNuw-.js → pk-input-group-textarea-DOG1NIlE.js} +1 -1
  96. package/dist/chunks/{pk-input-group-textarea-Cl2FNuw-.js.map → pk-input-group-textarea-DOG1NIlE.js.map} +1 -1
  97. package/dist/chunks/{pk-lightswitch-VHfJizBW.js → pk-lightswitch-FH5ZxMG2.js} +7 -7
  98. package/dist/chunks/{pk-lightswitch-VHfJizBW.js.map → pk-lightswitch-FH5ZxMG2.js.map} +1 -1
  99. package/dist/chunks/{pk-option-DQZHV9jL.js → pk-option-Cx52kLmz.js} +3 -3
  100. package/dist/chunks/{pk-option-DQZHV9jL.js.map → pk-option-Cx52kLmz.js.map} +1 -1
  101. package/dist/chunks/{pk-option-group-CCzJkBFp.js → pk-option-group-CYo9Ukue.js} +2 -2
  102. package/dist/chunks/{pk-option-group-CCzJkBFp.js.map → pk-option-group-CYo9Ukue.js.map} +1 -1
  103. package/dist/chunks/{pk-popover-D3jkHfwB.js → pk-popover-209LdoPr.js} +9 -9
  104. package/dist/chunks/{pk-popover-D3jkHfwB.js.map → pk-popover-209LdoPr.js.map} +1 -1
  105. package/dist/chunks/{pk-popup-B65tZMQH.js → pk-popup-0EIt9X_W.js} +3 -3
  106. package/dist/chunks/{pk-popup-B65tZMQH.js.map → pk-popup-0EIt9X_W.js.map} +1 -1
  107. package/dist/chunks/{pk-radio-group-Dzd-3HaQ.js → pk-radio-group-CruMBeeF.js} +6 -6
  108. package/dist/chunks/{pk-radio-group-Dzd-3HaQ.js.map → pk-radio-group-CruMBeeF.js.map} +1 -1
  109. package/dist/chunks/{pk-radio-B5XkMHy3.js → pk-radio-jgj6A0Wy.js} +1 -1
  110. package/dist/chunks/{pk-radio-B5XkMHy3.js.map → pk-radio-jgj6A0Wy.js.map} +1 -1
  111. package/dist/chunks/{pk-scroll-area-CdfNxYz8.js → pk-scroll-area-BaqN798b.js} +1 -1
  112. package/dist/chunks/{pk-scroll-area-CdfNxYz8.js.map → pk-scroll-area-BaqN798b.js.map} +1 -1
  113. package/dist/chunks/{pk-select-b5S5WKc-.js → pk-select-UUH7FE4H.js} +18 -18
  114. package/dist/chunks/{pk-select-b5S5WKc-.js.map → pk-select-UUH7FE4H.js.map} +1 -1
  115. package/dist/chunks/{pk-separator-N-VyjYE6.js → pk-separator-Bcxg_GO2.js} +1 -1
  116. package/dist/chunks/{pk-separator-N-VyjYE6.js.map → pk-separator-Bcxg_GO2.js.map} +1 -1
  117. package/dist/chunks/{pk-spinner-DweuYJ_Z.js → pk-spinner-CN365srE.js} +1 -1
  118. package/dist/chunks/{pk-spinner-DweuYJ_Z.js.map → pk-spinner-CN365srE.js.map} +1 -1
  119. package/dist/chunks/pk-state-panel-DPP7t-er.js +603 -0
  120. package/dist/chunks/pk-state-panel-DPP7t-er.js.map +1 -0
  121. package/dist/chunks/{pk-status-BehQARDv.js → pk-status-CYcadu0Q.js} +1 -1
  122. package/dist/chunks/{pk-status-BehQARDv.js.map → pk-status-CYcadu0Q.js.map} +1 -1
  123. package/dist/chunks/{pk-tab-CTloD18e.js → pk-tab-BmXNyDg7.js} +1 -1
  124. package/dist/chunks/{pk-tab-CTloD18e.js.map → pk-tab-BmXNyDg7.js.map} +1 -1
  125. package/dist/chunks/{pk-tab-heading-Cjcgebxn.js → pk-tab-heading-GZHVmCAd.js} +1 -1
  126. package/dist/chunks/{pk-tab-heading-Cjcgebxn.js.map → pk-tab-heading-GZHVmCAd.js.map} +1 -1
  127. package/dist/chunks/{pk-tab-panel-CkKU5-Ah.js → pk-tab-panel-OpM3f_cm.js} +1 -1
  128. package/dist/chunks/{pk-tab-panel-CkKU5-Ah.js.map → pk-tab-panel-OpM3f_cm.js.map} +1 -1
  129. package/dist/chunks/{pk-tabs-BgEBki1q.js → pk-tabs-x26NAw-V.js} +2 -2
  130. package/dist/chunks/{pk-tabs-BgEBki1q.js.map → pk-tabs-x26NAw-V.js.map} +1 -1
  131. package/dist/chunks/{pk-textarea-Dhj1WFLH.js → pk-textarea-CBijEmcV.js} +9 -9
  132. package/dist/chunks/{pk-textarea-Dhj1WFLH.js.map → pk-textarea-CBijEmcV.js.map} +1 -1
  133. package/dist/chunks/{pk-time-picker-ChRbKHNB.js → pk-time-picker-D-u5-7pf.js} +5 -5
  134. package/dist/chunks/{pk-time-picker-ChRbKHNB.js.map → pk-time-picker-D-u5-7pf.js.map} +1 -1
  135. package/dist/chunks/{pk-tiptap-content-CL8smjGi.js → pk-tiptap-content-BGxMO3T4.js} +2 -2
  136. package/dist/chunks/{pk-tiptap-content-CL8smjGi.js.map → pk-tiptap-content-BGxMO3T4.js.map} +1 -1
  137. package/dist/chunks/{pk-tiptap-editor-BMwedkPt.js → pk-tiptap-editor-BeuyzH5l.js} +17 -17
  138. package/dist/chunks/{pk-tiptap-editor-BMwedkPt.js.map → pk-tiptap-editor-BeuyzH5l.js.map} +1 -1
  139. package/dist/chunks/{pk-tiptap-input-YKg4VLp_.js → pk-tiptap-input-CQojaxDH.js} +5 -5
  140. package/dist/chunks/{pk-tiptap-input-YKg4VLp_.js.map → pk-tiptap-input-CQojaxDH.js.map} +1 -1
  141. package/dist/chunks/{pk-toggle-BthhH7vl.js → pk-toggle-CAtGO_Le.js} +2 -2
  142. package/dist/chunks/{pk-toggle-BthhH7vl.js.map → pk-toggle-CAtGO_Le.js.map} +1 -1
  143. package/dist/chunks/{pk-toggle-group-D2Quux8D.js → pk-toggle-group-CLso6OE7.js} +1 -1
  144. package/dist/chunks/{pk-toggle-group-D2Quux8D.js.map → pk-toggle-group-CLso6OE7.js.map} +1 -1
  145. package/dist/chunks/{pk-tooltip--QBV6puX.js → pk-tooltip-C6yb4CXI.js} +5 -5
  146. package/dist/chunks/{pk-tooltip--QBV6puX.js.map → pk-tooltip-C6yb4CXI.js.map} +1 -1
  147. package/dist/chunks/{popup-content-animation.styles-BnNiguJo.js → popup-content-animation.styles-EUnGV75J.js} +1 -1
  148. package/dist/chunks/{popup-content-animation.styles-BnNiguJo.js.map → popup-content-animation.styles-EUnGV75J.js.map} +1 -1
  149. package/dist/chunks/{popup-placement-animation-WlEXnS85.js → popup-placement-animation-GvFXER7D.js} +1 -1
  150. package/dist/chunks/{popup-placement-animation-WlEXnS85.js.map → popup-placement-animation-GvFXER7D.js.map} +1 -1
  151. package/dist/chunks/{popup-pointer-CuLjk1th.js → popup-pointer-BTS3Y6LE.js} +1 -1
  152. package/dist/chunks/{popup-pointer-CuLjk1th.js.map → popup-pointer-BTS3Y6LE.js.map} +1 -1
  153. package/dist/chunks/{register-BqkU5JNH.js → register-BDO_LUHK.js} +57 -51
  154. package/dist/chunks/register-BDO_LUHK.js.map +1 -0
  155. package/dist/chunks/{register-components-BT9THgdh.js → register-components-Dcdn1e3S.js} +1 -1
  156. package/dist/chunks/{register-components-BT9THgdh.js.map → register-components-Dcdn1e3S.js.map} +1 -1
  157. package/dist/chunks/{render-Dvc3MHQR.js → render-BKGW1a68.js} +1 -1
  158. package/dist/chunks/{render-Dvc3MHQR.js.map → render-BKGW1a68.js.map} +1 -1
  159. package/dist/chunks/{required-validator-CEg8dvjS.js → required-validator-CaRnQk1V.js} +1 -1
  160. package/dist/chunks/{required-validator-CEg8dvjS.js.map → required-validator-CaRnQk1V.js.map} +1 -1
  161. package/dist/chunks/{scroll-lock-Bbh3Sc5g.js → scroll-lock-gTFrvIPu.js} +1 -1
  162. package/dist/chunks/{scroll-lock-Bbh3Sc5g.js.map → scroll-lock-gTFrvIPu.js.map} +1 -1
  163. package/dist/chunks/{spinner-utils-CDfHypTv.js → spinner-utils-Co_4X3ip.js} +1 -1
  164. package/dist/chunks/{spinner-utils-CDfHypTv.js.map → spinner-utils-Co_4X3ip.js.map} +1 -1
  165. package/dist/chunks/{supports-popover-CUBsbHpS.js → supports-popover-6lNVStLh.js} +1 -1
  166. package/dist/chunks/{supports-popover-CUBsbHpS.js.map → supports-popover-6lNVStLh.js.map} +1 -1
  167. package/dist/chunks/{sync-listbox-separators-B1-V0oJi.js → sync-listbox-separators-CPFtrpNq.js} +1 -1
  168. package/dist/chunks/{sync-listbox-separators-B1-V0oJi.js.map → sync-listbox-separators-CPFtrpNq.js.map} +1 -1
  169. package/dist/chunks/{tiptap.styles-CPRows--.js → tiptap.styles-DjhIrSBN.js} +2 -2
  170. package/dist/chunks/{tiptap.styles-CPRows--.js.map → tiptap.styles-DjhIrSBN.js.map} +1 -1
  171. package/dist/component-registry.d.ts.map +1 -1
  172. package/dist/components/alert/index.d.ts +2 -0
  173. package/dist/components/alert/index.d.ts.map +1 -0
  174. package/dist/components/alert/pk-alert.d.ts +95 -0
  175. package/dist/components/alert/pk-alert.d.ts.map +1 -0
  176. package/dist/components/alert/pk-alert.js +2 -0
  177. package/dist/components/alert/pk-alert.styles.d.ts +2 -0
  178. package/dist/components/alert/pk-alert.styles.d.ts.map +1 -0
  179. package/dist/components/alert.d.ts +2 -0
  180. package/dist/components/alert.js +2 -0
  181. package/dist/components/autocomplete/pk-autocomplete.js +1 -1
  182. package/dist/components/autocomplete.js +1 -1
  183. package/dist/components/button/pk-button.js +1 -1
  184. package/dist/components/button-group/pk-button-group-separator.js +1 -1
  185. package/dist/components/button-group/pk-button-group-text.js +1 -1
  186. package/dist/components/button-group/pk-button-group.js +1 -1
  187. package/dist/components/button-group.js +3 -3
  188. package/dist/components/button.js +1 -1
  189. package/dist/components/calendar/pk-calendar.js +1 -1
  190. package/dist/components/calendar.js +1 -1
  191. package/dist/components/checkbox/pk-checkbox.js +1 -1
  192. package/dist/components/checkbox-select/pk-checkbox-select.js +1 -1
  193. package/dist/components/checkbox-select.js +1 -1
  194. package/dist/components/checkbox.js +1 -1
  195. package/dist/components/code-editor/pk-code-editor.js +1 -1
  196. package/dist/components/code-editor.js +1 -1
  197. package/dist/components/color-input/pk-color-input.js +1 -1
  198. package/dist/components/color-input.js +1 -1
  199. package/dist/components/combobox/pk-combobox.js +1 -1
  200. package/dist/components/combobox.js +1 -1
  201. package/dist/components/connect/pk-connect-oauth.js +3 -3
  202. package/dist/components/connect/pk-connect.d.ts +0 -1
  203. package/dist/components/connect/pk-connect.d.ts.map +1 -1
  204. package/dist/components/connect/pk-connect.js +25 -48
  205. package/dist/components/connect/pk-connect.js.map +1 -1
  206. package/dist/components/copy-button/pk-copy-button.d.ts +17 -2
  207. package/dist/components/copy-button/pk-copy-button.d.ts.map +1 -1
  208. package/dist/components/copy-button/pk-copy-button.js +1 -1
  209. package/dist/components/copy-button/pk-copy-button.styles.d.ts.map +1 -1
  210. package/dist/components/copy-button.js +1 -1
  211. package/dist/components/date-picker/pk-date-picker.js +1 -1
  212. package/dist/components/date-picker.js +1 -1
  213. package/dist/components/dialog/pk-dialog.js +1 -1
  214. package/dist/components/dialog.js +1 -1
  215. package/dist/components/dropdown-menu/pk-dropdown-item.js +1 -1
  216. package/dist/components/dropdown-menu/pk-dropdown-label.js +1 -1
  217. package/dist/components/dropdown-menu/pk-dropdown-menu.js +1 -1
  218. package/dist/components/dropdown-menu.js +3 -3
  219. package/dist/components/editable-table/pk-editable-table.js +1 -1
  220. package/dist/components/editable-table.js +1 -1
  221. package/dist/components/field/pk-field.js +1 -1
  222. package/dist/components/field.js +1 -1
  223. package/dist/components/image-browser/pk-image-browser.js +1 -1
  224. package/dist/components/image-browser.js +1 -1
  225. package/dist/components/input/pk-input.js +1 -1
  226. package/dist/components/input-group/pk-input-group-addon.js +1 -1
  227. package/dist/components/input-group/pk-input-group-button.js +1 -1
  228. package/dist/components/input-group/pk-input-group-input.js +1 -1
  229. package/dist/components/input-group/pk-input-group-text.js +1 -1
  230. package/dist/components/input-group/pk-input-group-textarea.js +1 -1
  231. package/dist/components/input-group/pk-input-group.js +1 -1
  232. package/dist/components/input-group.js +6 -6
  233. package/dist/components/input.js +1 -1
  234. package/dist/components/lightswitch/pk-lightswitch.js +1 -1
  235. package/dist/components/lightswitch.js +1 -1
  236. package/dist/components/popover/pk-popover.js +1 -1
  237. package/dist/components/popover.js +1 -1
  238. package/dist/components/popup/pk-popup.js +1 -1
  239. package/dist/components/popup.js +1 -1
  240. package/dist/components/radio-group/pk-radio-group.js +1 -1
  241. package/dist/components/radio-group/pk-radio.js +1 -1
  242. package/dist/components/radio-group.js +2 -2
  243. package/dist/components/scroll-area/pk-scroll-area.js +1 -1
  244. package/dist/components/scroll-area.js +1 -1
  245. package/dist/components/select/pk-option-group.js +1 -1
  246. package/dist/components/select/pk-option.js +1 -1
  247. package/dist/components/select/pk-select.js +1 -1
  248. package/dist/components/select.js +3 -3
  249. package/dist/components/separator/pk-separator.js +1 -1
  250. package/dist/components/separator.js +1 -1
  251. package/dist/components/spinner/pk-spinner.js +1 -1
  252. package/dist/components/spinner.js +2 -2
  253. package/dist/components/state-panel/index.d.ts +2 -0
  254. package/dist/components/state-panel/index.d.ts.map +1 -0
  255. package/dist/components/state-panel/pk-state-panel.d.ts +89 -0
  256. package/dist/components/state-panel/pk-state-panel.d.ts.map +1 -0
  257. package/dist/components/state-panel/pk-state-panel.js +2 -0
  258. package/dist/components/state-panel/pk-state-panel.styles.d.ts +2 -0
  259. package/dist/components/state-panel/pk-state-panel.styles.d.ts.map +1 -0
  260. package/dist/components/state-panel.d.ts +2 -0
  261. package/dist/components/state-panel.js +2 -0
  262. package/dist/components/status/pk-status.js +1 -1
  263. package/dist/components/status.js +1 -1
  264. package/dist/components/tabs/pk-tab-heading.js +1 -1
  265. package/dist/components/tabs/pk-tab-panel.js +1 -1
  266. package/dist/components/tabs/pk-tab.js +1 -1
  267. package/dist/components/tabs/pk-tabs.js +1 -1
  268. package/dist/components/tabs.js +4 -4
  269. package/dist/components/textarea/pk-textarea.js +1 -1
  270. package/dist/components/textarea.js +1 -1
  271. package/dist/components/time-picker/pk-time-picker.js +1 -1
  272. package/dist/components/time-picker.js +1 -1
  273. package/dist/components/tiptap/pk-tiptap-content.js +1 -1
  274. package/dist/components/tiptap/pk-tiptap-editor.js +1 -1
  275. package/dist/components/tiptap/pk-tiptap-input.js +1 -1
  276. package/dist/components/tiptap-content.js +1 -1
  277. package/dist/components/tiptap-editor.js +1 -1
  278. package/dist/components/tiptap-input.js +1 -1
  279. package/dist/components/toggle/pk-toggle.js +1 -1
  280. package/dist/components/toggle-group/pk-toggle-group.js +1 -1
  281. package/dist/components/toggle-group.js +1 -1
  282. package/dist/components/toggle.js +1 -1
  283. package/dist/components/tooltip/pk-tooltip.js +1 -1
  284. package/dist/components/tooltip.js +1 -1
  285. package/dist/connect/register-cp-connect.d.ts.map +1 -1
  286. package/dist/connect/register-cp-connect.js +8 -9
  287. package/dist/connect/register-cp-connect.js.map +1 -1
  288. package/dist/events/pk-dismiss.d.ts +10 -0
  289. package/dist/events/pk-dismiss.d.ts.map +1 -0
  290. package/dist/icons/index.js +2 -2
  291. package/dist/index.d.ts +3 -0
  292. package/dist/index.d.ts.map +1 -1
  293. package/dist/index.js +73 -66
  294. package/dist/index.js.map +1 -1
  295. package/dist/plugin-kit.css +2 -0
  296. package/dist/plugin-kit.js +4 -4
  297. package/dist/register-components.js +1 -1
  298. package/dist/register-pk.generated.d.ts +4 -0
  299. package/dist/register-pk.generated.d.ts.map +1 -1
  300. package/dist/register.d.ts +5 -1
  301. package/dist/register.d.ts.map +1 -1
  302. package/dist/register.js +59 -55
  303. package/dist/styles/connect/pk-connect.css +6 -107
  304. package/dist/utilities/fouce.css +2 -0
  305. package/dist-loader/chunks/{button-group-item.styles-CsBQ3Cyh.js → button-group-item.styles-CXLuiMeZ.js} +1 -1
  306. package/dist-loader/chunks/{lit-DpLik9Rf.js → lit-s6aadvWG.js} +78 -78
  307. package/dist-loader/chunks/{option-filter-Bc5aNNT0.js → option-filter-DH11hDpV.js} +1 -1
  308. package/dist-loader/chunks/{pk-base-B2MqxErC.js → pk-base-Om6X9ab5.js} +1 -1
  309. package/dist-loader/chunks/{pk-button-Dfm23jEC.js → pk-button-nSZxt8_B.js} +5 -5
  310. package/dist-loader/chunks/{pk-calendar-BuSULJCU.js → pk-calendar-BS7Mfme_.js} +5 -5
  311. package/dist-loader/chunks/{pk-checkbox-BDoq3xg0.js → pk-checkbox-CYUcOnco.js} +4 -4
  312. package/dist-loader/chunks/{pk-color-input-eLjO9zfn.js → pk-color-input-BjDit7z0.js} +4 -4
  313. package/dist-loader/chunks/{pk-combobox-DBvcyxRC.js → pk-combobox-DyexEhFo.js} +14 -14
  314. package/dist-loader/chunks/{pk-connect.styles-k61snd3X.js → pk-connect.styles-BsPAXjgF.js} +1 -1
  315. package/dist-loader/chunks/pk-copy-button-CoN83ilF.js +198 -0
  316. package/dist-loader/chunks/{pk-date-picker-CYLpYIji.js → pk-date-picker-CO6deRCu.js} +14 -14
  317. package/dist-loader/chunks/{pk-dialog-BtrH5Ke0.js → pk-dialog-BWo6iDnY.js} +6 -6
  318. package/dist-loader/chunks/{pk-dropdown-item-D8tfEU-k.js → pk-dropdown-item-CbujjI8U.js} +7 -7
  319. package/dist-loader/chunks/{pk-dropdown-label-TbLj4bHK.js → pk-dropdown-label-9X4ctyES.js} +2 -2
  320. package/dist-loader/chunks/{pk-dropdown-menu-C4GDW5pE.js → pk-dropdown-menu-D1KpGuqU.js} +8 -8
  321. package/dist-loader/chunks/{pk-field-BM0XD9Ij.js → pk-field-DzggayrX.js} +5 -5
  322. package/dist-loader/chunks/{pk-icon-_1F1aL74.js → pk-icon-DQPqxFKW.js} +3 -3
  323. package/dist-loader/chunks/{pk-input-DvBrD7Md.js → pk-input-C1peOijH.js} +8 -8
  324. package/dist-loader/chunks/{pk-lightswitch-CcwlLQ9f.js → pk-lightswitch-Y-I3eKCt.js} +6 -6
  325. package/dist-loader/chunks/{pk-option-DATPm0Bo.js → pk-option-IfazQDxz.js} +4 -4
  326. package/dist-loader/chunks/{pk-popup-CUuGs8r_.js → pk-popup-BrLT_4kD.js} +4 -4
  327. package/dist-loader/chunks/{pk-select-DpcvbzUL.js → pk-select-49fogRYV.js} +13 -13
  328. package/dist-loader/chunks/{pk-spinner-Dk_LbvHW.js → pk-spinner-BmnrA60m.js} +2 -2
  329. package/dist-loader/chunks/pk-state-panel-DKf54EnJ.js +600 -0
  330. package/dist-loader/chunks/{pk-status-B8UvjIp2.js → pk-status-Dat3_D-T.js} +2 -2
  331. package/dist-loader/chunks/{pk-textarea-DeSuxufJ.js → pk-textarea-DPb2R8gV.js} +6 -6
  332. package/dist-loader/chunks/{pk-time-picker-DpJt8biN.js → pk-time-picker-CJiQTVuC.js} +6 -6
  333. package/dist-loader/chunks/{pk-tooltip-DcF9J5GT.js → pk-tooltip-CqwQfOPV.js} +5 -5
  334. package/dist-loader/chunks/{popup-content-animation.styles-duCg9-CH.js → popup-content-animation.styles-CWR2mend.js} +1 -1
  335. package/dist-loader/chunks/{render-Bnzcxfss.js → render-BuA2YeZN.js} +1 -1
  336. package/dist-loader/chunks/{svg-Bz-bXZn7.js → svg-C6YcJMk9.js} +8 -1
  337. package/dist-loader/chunks/{tiptap-CgXkiK8d.js → tiptap-BhYH5Dva.js} +1 -1
  338. package/dist-loader/chunks/{tiptap.styles-C0E1NpSx.js → tiptap.styles-BckAim0_.js} +2 -2
  339. package/dist-loader/components/alert/alert.js +661 -0
  340. package/dist-loader/components/autocomplete/autocomplete.js +14 -14
  341. package/dist-loader/components/button/button.js +1 -1
  342. package/dist-loader/components/button-group/button-group-separator.js +2 -2
  343. package/dist-loader/components/button-group/button-group-text.js +3 -3
  344. package/dist-loader/components/button-group/button-group.js +2 -2
  345. package/dist-loader/components/calendar/calendar.js +1 -1
  346. package/dist-loader/components/checkbox/checkbox.js +1 -1
  347. package/dist-loader/components/checkbox-select/checkbox-select.js +3 -3
  348. package/dist-loader/components/code-editor/code-editor.js +4 -4
  349. package/dist-loader/components/color-input/color-input.js +1 -1
  350. package/dist-loader/components/combobox/combobox.js +1 -1
  351. package/dist-loader/components/connect/connect-oauth.js +5 -5
  352. package/dist-loader/components/connect/connect.js +28 -51
  353. package/dist-loader/components/copy-button/copy-button.js +1 -176
  354. package/dist-loader/components/date-picker/date-picker.js +1 -1
  355. package/dist-loader/components/dialog/dialog.js +1 -1
  356. package/dist-loader/components/dropdown-menu/dropdown-item.js +1 -1
  357. package/dist-loader/components/dropdown-menu/dropdown-label.js +1 -1
  358. package/dist-loader/components/dropdown-menu/dropdown-menu.js +1 -1
  359. package/dist-loader/components/dropdown-menu/dropdown-separator.js +2 -2
  360. package/dist-loader/components/editable-table/editable-table.js +18 -18
  361. package/dist-loader/components/field/field.js +1 -1
  362. package/dist-loader/components/icon/icon.js +2 -2
  363. package/dist-loader/components/image-browser/image-browser.js +14 -14
  364. package/dist-loader/components/input/input.js +1 -1
  365. package/dist-loader/components/input-group/input-group-addon.js +2 -2
  366. package/dist-loader/components/input-group/input-group-button.js +2 -2
  367. package/dist-loader/components/input-group/input-group-input.js +2 -2
  368. package/dist-loader/components/input-group/input-group-text.js +2 -2
  369. package/dist-loader/components/input-group/input-group-textarea.js +2 -2
  370. package/dist-loader/components/input-group/input-group.js +3 -3
  371. package/dist-loader/components/lightswitch/lightswitch.js +1 -1
  372. package/dist-loader/components/popover/popover.js +8 -8
  373. package/dist-loader/components/popup/popup.js +1 -1
  374. package/dist-loader/components/radio-group/radio-group.js +5 -5
  375. package/dist-loader/components/radio-group/radio.js +2 -2
  376. package/dist-loader/components/scroll-area/scroll-area.js +2 -2
  377. package/dist-loader/components/select/option-group.js +2 -2
  378. package/dist-loader/components/select/option.js +1 -1
  379. package/dist-loader/components/select/select.js +1 -1
  380. package/dist-loader/components/separator/separator.js +2 -2
  381. package/dist-loader/components/spinner/spinner.js +1 -1
  382. package/dist-loader/components/state-panel/state-panel.js +2 -0
  383. package/dist-loader/components/status/status.js +1 -1
  384. package/dist-loader/components/tabs/tab-heading.js +2 -2
  385. package/dist-loader/components/tabs/tab-panel.js +2 -2
  386. package/dist-loader/components/tabs/tab.js +2 -2
  387. package/dist-loader/components/tabs/tabs.js +2 -2
  388. package/dist-loader/components/textarea/textarea.js +1 -1
  389. package/dist-loader/components/time-picker/time-picker.js +1 -1
  390. package/dist-loader/components/tiptap/tiptap-content.js +4 -4
  391. package/dist-loader/components/tiptap/tiptap-editor.js +16 -16
  392. package/dist-loader/components/tiptap/tiptap-input.js +5 -5
  393. package/dist-loader/components/toggle/toggle.js +3 -3
  394. package/dist-loader/components/toggle-group/toggle-group.js +2 -2
  395. package/dist-loader/components/tooltip/tooltip.js +1 -1
  396. package/dist-loader/plugin-kit.css +2 -0
  397. package/dist-loader/plugin-kit.loader.js +4 -0
  398. package/dist-loader/styles/connect/pk-connect.css +6 -107
  399. package/dist-loader/utilities/fouce.css +2 -0
  400. package/package.json +47 -7
  401. package/dist/chunks/component-registry-D34fm8xW.js.map +0 -1
  402. package/dist/chunks/pk-copy-button-BVaOLtYG.js.map +0 -1
  403. package/dist/chunks/register-BqkU5JNH.js.map +0 -1
  404. /package/dist-loader/chunks/{animate-with-class-DT0jwaR_.js → animate-with-class-BpZi7v-y.js} +0 -0
  405. /package/dist-loader/chunks/{codemirror-CSgOT0QM.js → codemirror-CU2NB7wh.js} +0 -0
  406. /package/dist-loader/chunks/{field-labels-D3lKQ2nq.js → field-labels-D7ccWdRn.js} +0 -0
  407. /package/dist-loader/chunks/{floating-ui-Cj0imr6d.js → floating-ui-B84As3F-.js} +0 -0
  408. /package/dist-loader/chunks/{has-slot-BGJeJdHr.js → has-slot-BvdEcnpm.js} +0 -0
  409. /package/dist-loader/chunks/{mirror-validator-C5XrXPaq.js → mirror-validator-9X0wdFnh.js} +0 -0
  410. /package/dist-loader/chunks/{overlay-lifecycle-C3tSQ3UR.js → overlay-lifecycle-CSIBJZgQ.js} +0 -0
  411. /package/dist-loader/chunks/{pk-clear-BMZUzwDt.js → pk-clear-BL8m1NyC.js} +0 -0
  412. /package/dist-loader/chunks/{popup-placement-animation-WlEXnS85.js → popup-placement-animation-BQdKabXq.js} +0 -0
  413. /package/dist-loader/chunks/{popup-pointer-Ck28WdVP.js → popup-pointer-BNwlPGKA.js} +0 -0
  414. /package/dist-loader/chunks/{required-validator-0XwZtX9k.js → required-validator-DCTovZ6r.js} +0 -0
  415. /package/dist-loader/chunks/{sync-listbox-separators-Ch5krDUs.js → sync-listbox-separators-rbu8jrAa.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"pk-toggle-BthhH7vl.js","names":[],"sources":["../../src/components/toggle/pk-toggle.styles.ts","../../src/components/toggle/pk-toggle.ts"],"sourcesContent":["import { css } from 'lit';\n\nimport {\n buttonGroupBorderJoinStyles,\n buttonGroupCornerRadiusStyles,\n buttonGroupCornerRoleStyles,\n buttonGroupIndentStyles,\n} from '../button-group/button-group-item.styles.js';\n\nexport const pkToggleStyles = [\n buttonGroupCornerRoleStyles(),\n buttonGroupCornerRadiusStyles('.button'),\n buttonGroupIndentStyles(),\n buttonGroupBorderJoinStyles('.button'),\n css`\n @layer pk-component {\n :host {\n display: inline-flex;\n vertical-align: middle;\n font-family: var(--pk-font-family);\n font-size: var(--pk-font-size-base);\n line-height: var(--pk-line-height);\n }\n\n .button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.25rem;\n min-width: 2rem;\n height: 2rem;\n margin: 0;\n padding: 0 0.5rem;\n border: 0;\n border-radius: var(--pk-radius-lg);\n background: transparent;\n color: inherit;\n font: inherit;\n line-height: 1.4;\n white-space: nowrap;\n cursor: pointer;\n user-select: none;\n appearance: none;\n transition: background-color 0.12s ease, box-shadow 0.12s ease;\n }\n\n .button:focus {\n outline: none;\n }\n\n .button:focus-visible {\n box-shadow: var(--pk-shadow-focus);\n }\n\n .button[aria-pressed='true'],\n .button[data-state='on'] {\n background: var(--pk-color-slate-250);\n }\n\n .button:hover:not(:disabled) {\n background: var(--pk-color-slate-250);\n }\n\n .button:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n pointer-events: none;\n }\n\n :host([variant='outline']) .button {\n border: 1px solid var(--pk-color-slate-300);\n background: transparent;\n color: var(--pk-color-gray-700);\n }\n\n :host([variant='outline']) .button:hover:not(:disabled),\n :host([variant='outline']) .button[aria-pressed='true'],\n :host([variant='outline']) .button[data-state='on'],\n :host([variant='outline'][pressed]) .button {\n background: var(--pk-color-slate-250);\n }\n\n :host([size='sm']) .button {\n min-width: 1.75rem;\n height: 1.75rem;\n padding-inline: 0.375rem;\n font-size: 0.8rem;\n border-radius: min(var(--pk-radius-md), 12px);\n }\n\n :host([size='lg']) .button {\n min-width: 2.25rem;\n height: 2.25rem;\n padding-inline: 0.625rem;\n }\n\n .button ::slotted(svg) {\n width: 1rem;\n height: 1rem;\n flex-shrink: 0;\n pointer-events: none;\n }\n\n :host([data-pk-group-join]) .button:focus-visible {\n z-index: 1;\n position: relative;\n }\n\n :host([data-pk-group-join][size='sm'][data-pk-group-item-first][data-pk-group-orientation='horizontal']) .button {\n border-top-left-radius: min(var(--pk-radius-md), 12px);\n border-bottom-left-radius: min(var(--pk-radius-md), 12px);\n }\n\n :host([data-pk-group-join][size='sm'][data-pk-group-item-last][data-pk-group-orientation='horizontal']) .button {\n border-top-right-radius: min(var(--pk-radius-md), 12px);\n border-bottom-right-radius: min(var(--pk-radius-md), 12px);\n }\n\n :host([data-pk-group-join][size='sm'][data-pk-group-item-first][data-pk-group-orientation='vertical']) .button {\n border-top-left-radius: min(var(--pk-radius-md), 12px);\n border-top-right-radius: min(var(--pk-radius-md), 12px);\n }\n\n :host([data-pk-group-join][size='sm'][data-pk-group-item-last][data-pk-group-orientation='vertical']) .button {\n border-bottom-left-radius: min(var(--pk-radius-md), 12px);\n border-bottom-right-radius: min(var(--pk-radius-md), 12px);\n }\n\n :host([data-tg-orientation='vertical']) {\n display: block;\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n }\n\n :host([data-tg-orientation='vertical']) .button {\n width: 100%;\n box-sizing: border-box;\n }\n\n :host([data-pk-group-orientation='vertical']) {\n display: block;\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n }\n\n :host([data-pk-group-orientation='vertical']) .button {\n width: 100%;\n box-sizing: border-box;\n }\n\n :host-context(pk-button-group[exclusive]):host([pressed]) .button:focus-visible {\n box-shadow: var(--pk-shadow-focus-outset, var(--pk-shadow-focus));\n }\n\n :host-context(pk-button-group[exclusive]):host([variant='outline']:not([pressed])) .button {\n background: var(--pk-action-fill);\n border-color: transparent;\n }\n\n :host-context(pk-button-group[exclusive]):host([variant='outline'][pressed]) .button {\n border-color: transparent;\n }\n\n :host-context(pk-button-group[exclusive]):host([variant='outline']) .button {\n border-radius: 0;\n }\n\n :host-context(pk-button-group[orientation='vertical']) {\n display: block;\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n }\n\n :host-context(pk-button-group[orientation='vertical']) .button {\n width: 100%;\n box-sizing: border-box;\n }\n }\n `,\n /* Unlayered — must beat buttonGroupBorderJoinStyles for outer edge on first joined outline item. */\n css`\n :host([data-pk-group-join][data-pk-group-item-first][data-pk-group-orientation='horizontal'][variant='outline']) .button {\n border-left: 1px solid var(--pk-color-slate-300);\n }\n\n :host([data-pk-group-join][data-pk-group-item-first][data-pk-group-orientation='vertical'][variant='outline']) .button {\n border-top: 1px solid var(--pk-color-slate-300);\n }\n `,\n];\n","import { html, nothing } from 'lit';\nimport { customElement, property } from '../../decorators.js';\n\nimport { PkElement } from '../../base/pk-element.js';\nimport { pkToggleStyles } from './pk-toggle.styles.js';\n\nexport type PkToggleVariant = 'default' | 'outline';\nexport type PkToggleSize = 'default' | 'sm' | 'lg';\n\n/**\n * Two-state toggle button.\n *\n * @slot - Button label or icon content\n *\n * @csspart base - Toggle button element\n */\n@customElement('pk-toggle')\nexport class PkToggle extends PkElement {\n static override shadowRootOptions: ShadowRootInit = {\n mode: 'open',\n delegatesFocus: true,\n };\n\n static override styles = pkToggleStyles;\n\n @property({ type: Boolean, reflect: true })\n pressed = false;\n\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n @property({ reflect: true })\n variant: PkToggleVariant = 'default';\n\n @property({ reflect: true })\n size: PkToggleSize = 'default';\n\n @property({ attribute: 'data-value' })\n value = '';\n\n @property({ attribute: 'aria-label' })\n ariaLabel: string | null = null;\n\n private handleClick(): void {\n if (this.disabled || this.closest('pk-toggle-group')) {\n return;\n }\n\n this.pressed = !this.pressed;\n\n this.dispatchEvent(new CustomEvent('pk-pressed-change', {\n detail: { pressed: this.pressed },\n bubbles: true,\n composed: true,\n }));\n\n this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));\n }\n\n override render() {\n return html`\n <button\n part=\"base\"\n class=\"button\"\n type=\"button\"\n ?disabled=${this.disabled}\n aria-pressed=${this.pressed ? 'true' : 'false'}\n aria-label=${this.ariaLabel ?? nothing}\n data-state=${this.pressed ? 'on' : 'off'}\n @click=${this.handleClick}\n >\n <slot></slot>\n </button>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-toggle': PkToggle;\n }\n}\n"],"mappings":";;;;AASA,IAAa,iBAAiB;CAC1B,6BAA6B;CAC7B,8BAA8B,UAAU;CACxC,yBAAyB;CACzB,4BAA4B,UAAU;CACtC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyKH,GAAG;;;;;;;;;CASN;;;AC/KM,IAAA,WAAA,MAAM,iBAAiB,UAAU;;;iBAS1B;kBAGC;iBAGgB;cAGN;eAGb;mBAGmB;;;2BAvByB;GAChD,MAAM;GACN,gBAAgB;GACnB;;;gBAEwB;;CAoBzB,cAA4B;AACxB,MAAI,KAAK,YAAY,KAAK,QAAQ,kBAAkB,CAChD;AAGJ,OAAK,UAAU,CAAC,KAAK;AAErB,OAAK,cAAc,IAAI,YAAY,qBAAqB;GACpD,QAAQ,EAAE,SAAS,KAAK,SAAS;GACjC,SAAS;GACT,UAAU;GACb,CAAC,CAAC;AAEH,OAAK,cAAc,IAAI,MAAM,UAAU;GAAE,SAAS;GAAM,UAAU;GAAM,CAAC,CAAC;;CAG9E,SAAkB;AACd,SAAO,IAAI;;;;;4BAKS,KAAK,SAAS;+BACX,KAAK,UAAU,SAAS,QAAQ;6BAClC,KAAK,aAAa,QAAQ;6BAC1B,KAAK,UAAU,OAAO,MAAM;yBAChC,KAAK,YAAY;;;;;;;YA5CrC,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,SAAA,WAAA,WAAA,KAAA,EAAA;YAG1C,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,SAAA,WAAA,YAAA,KAAA,EAAA;YAG1C,SAAS,EAAE,SAAS,MAAM,CAAC,CAAA,EAAA,SAAA,WAAA,WAAA,KAAA,EAAA;YAG3B,SAAS,EAAE,SAAS,MAAM,CAAC,CAAA,EAAA,SAAA,WAAA,QAAA,KAAA,EAAA;YAG3B,SAAS,EAAE,WAAW,cAAc,CAAC,CAAA,EAAA,SAAA,WAAA,SAAA,KAAA,EAAA;YAGrC,SAAS,EAAE,WAAW,cAAc,CAAC,CAAA,EAAA,SAAA,WAAA,aAAA,KAAA,EAAA;uBAxBzC,cAAc,YAAY,CAAA,EAAA,SAAA"}
1
+ {"version":3,"file":"pk-toggle-CAtGO_Le.js","names":[],"sources":["../../src/components/toggle/pk-toggle.styles.ts","../../src/components/toggle/pk-toggle.ts"],"sourcesContent":["import { css } from 'lit';\n\nimport {\n buttonGroupBorderJoinStyles,\n buttonGroupCornerRadiusStyles,\n buttonGroupCornerRoleStyles,\n buttonGroupIndentStyles,\n} from '../button-group/button-group-item.styles.js';\n\nexport const pkToggleStyles = [\n buttonGroupCornerRoleStyles(),\n buttonGroupCornerRadiusStyles('.button'),\n buttonGroupIndentStyles(),\n buttonGroupBorderJoinStyles('.button'),\n css`\n @layer pk-component {\n :host {\n display: inline-flex;\n vertical-align: middle;\n font-family: var(--pk-font-family);\n font-size: var(--pk-font-size-base);\n line-height: var(--pk-line-height);\n }\n\n .button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.25rem;\n min-width: 2rem;\n height: 2rem;\n margin: 0;\n padding: 0 0.5rem;\n border: 0;\n border-radius: var(--pk-radius-lg);\n background: transparent;\n color: inherit;\n font: inherit;\n line-height: 1.4;\n white-space: nowrap;\n cursor: pointer;\n user-select: none;\n appearance: none;\n transition: background-color 0.12s ease, box-shadow 0.12s ease;\n }\n\n .button:focus {\n outline: none;\n }\n\n .button:focus-visible {\n box-shadow: var(--pk-shadow-focus);\n }\n\n .button[aria-pressed='true'],\n .button[data-state='on'] {\n background: var(--pk-color-slate-250);\n }\n\n .button:hover:not(:disabled) {\n background: var(--pk-color-slate-250);\n }\n\n .button:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n pointer-events: none;\n }\n\n :host([variant='outline']) .button {\n border: 1px solid var(--pk-color-slate-300);\n background: transparent;\n color: var(--pk-color-gray-700);\n }\n\n :host([variant='outline']) .button:hover:not(:disabled),\n :host([variant='outline']) .button[aria-pressed='true'],\n :host([variant='outline']) .button[data-state='on'],\n :host([variant='outline'][pressed]) .button {\n background: var(--pk-color-slate-250);\n }\n\n :host([size='sm']) .button {\n min-width: 1.75rem;\n height: 1.75rem;\n padding-inline: 0.375rem;\n font-size: 0.8rem;\n border-radius: min(var(--pk-radius-md), 12px);\n }\n\n :host([size='lg']) .button {\n min-width: 2.25rem;\n height: 2.25rem;\n padding-inline: 0.625rem;\n }\n\n .button ::slotted(svg) {\n width: 1rem;\n height: 1rem;\n flex-shrink: 0;\n pointer-events: none;\n }\n\n :host([data-pk-group-join]) .button:focus-visible {\n z-index: 1;\n position: relative;\n }\n\n :host([data-pk-group-join][size='sm'][data-pk-group-item-first][data-pk-group-orientation='horizontal']) .button {\n border-top-left-radius: min(var(--pk-radius-md), 12px);\n border-bottom-left-radius: min(var(--pk-radius-md), 12px);\n }\n\n :host([data-pk-group-join][size='sm'][data-pk-group-item-last][data-pk-group-orientation='horizontal']) .button {\n border-top-right-radius: min(var(--pk-radius-md), 12px);\n border-bottom-right-radius: min(var(--pk-radius-md), 12px);\n }\n\n :host([data-pk-group-join][size='sm'][data-pk-group-item-first][data-pk-group-orientation='vertical']) .button {\n border-top-left-radius: min(var(--pk-radius-md), 12px);\n border-top-right-radius: min(var(--pk-radius-md), 12px);\n }\n\n :host([data-pk-group-join][size='sm'][data-pk-group-item-last][data-pk-group-orientation='vertical']) .button {\n border-bottom-left-radius: min(var(--pk-radius-md), 12px);\n border-bottom-right-radius: min(var(--pk-radius-md), 12px);\n }\n\n :host([data-tg-orientation='vertical']) {\n display: block;\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n }\n\n :host([data-tg-orientation='vertical']) .button {\n width: 100%;\n box-sizing: border-box;\n }\n\n :host([data-pk-group-orientation='vertical']) {\n display: block;\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n }\n\n :host([data-pk-group-orientation='vertical']) .button {\n width: 100%;\n box-sizing: border-box;\n }\n\n :host-context(pk-button-group[exclusive]):host([pressed]) .button:focus-visible {\n box-shadow: var(--pk-shadow-focus-outset, var(--pk-shadow-focus));\n }\n\n :host-context(pk-button-group[exclusive]):host([variant='outline']:not([pressed])) .button {\n background: var(--pk-action-fill);\n border-color: transparent;\n }\n\n :host-context(pk-button-group[exclusive]):host([variant='outline'][pressed]) .button {\n border-color: transparent;\n }\n\n :host-context(pk-button-group[exclusive]):host([variant='outline']) .button {\n border-radius: 0;\n }\n\n :host-context(pk-button-group[orientation='vertical']) {\n display: block;\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n }\n\n :host-context(pk-button-group[orientation='vertical']) .button {\n width: 100%;\n box-sizing: border-box;\n }\n }\n `,\n /* Unlayered — must beat buttonGroupBorderJoinStyles for outer edge on first joined outline item. */\n css`\n :host([data-pk-group-join][data-pk-group-item-first][data-pk-group-orientation='horizontal'][variant='outline']) .button {\n border-left: 1px solid var(--pk-color-slate-300);\n }\n\n :host([data-pk-group-join][data-pk-group-item-first][data-pk-group-orientation='vertical'][variant='outline']) .button {\n border-top: 1px solid var(--pk-color-slate-300);\n }\n `,\n];\n","import { html, nothing } from 'lit';\nimport { customElement, property } from '../../decorators.js';\n\nimport { PkElement } from '../../base/pk-element.js';\nimport { pkToggleStyles } from './pk-toggle.styles.js';\n\nexport type PkToggleVariant = 'default' | 'outline';\nexport type PkToggleSize = 'default' | 'sm' | 'lg';\n\n/**\n * Two-state toggle button.\n *\n * @slot - Button label or icon content\n *\n * @csspart base - Toggle button element\n */\n@customElement('pk-toggle')\nexport class PkToggle extends PkElement {\n static override shadowRootOptions: ShadowRootInit = {\n mode: 'open',\n delegatesFocus: true,\n };\n\n static override styles = pkToggleStyles;\n\n @property({ type: Boolean, reflect: true })\n pressed = false;\n\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n @property({ reflect: true })\n variant: PkToggleVariant = 'default';\n\n @property({ reflect: true })\n size: PkToggleSize = 'default';\n\n @property({ attribute: 'data-value' })\n value = '';\n\n @property({ attribute: 'aria-label' })\n ariaLabel: string | null = null;\n\n private handleClick(): void {\n if (this.disabled || this.closest('pk-toggle-group')) {\n return;\n }\n\n this.pressed = !this.pressed;\n\n this.dispatchEvent(new CustomEvent('pk-pressed-change', {\n detail: { pressed: this.pressed },\n bubbles: true,\n composed: true,\n }));\n\n this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));\n }\n\n override render() {\n return html`\n <button\n part=\"base\"\n class=\"button\"\n type=\"button\"\n ?disabled=${this.disabled}\n aria-pressed=${this.pressed ? 'true' : 'false'}\n aria-label=${this.ariaLabel ?? nothing}\n data-state=${this.pressed ? 'on' : 'off'}\n @click=${this.handleClick}\n >\n <slot></slot>\n </button>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-toggle': PkToggle;\n }\n}\n"],"mappings":";;;;AASA,IAAa,iBAAiB;CAC1B,6BAA6B;CAC7B,8BAA8B,UAAU;CACxC,yBAAyB;CACzB,4BAA4B,UAAU;CACtC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyKH,GAAG;;;;;;;;;CASN;;;AC/KM,IAAA,WAAA,MAAM,iBAAiB,UAAU;;;iBAS1B;kBAGC;iBAGgB;cAGN;eAGb;mBAGmB;;;2BAvByB;GAChD,MAAM;GACN,gBAAgB;GACnB;;;gBAEwB;;CAoBzB,cAA4B;AACxB,MAAI,KAAK,YAAY,KAAK,QAAQ,kBAAkB,CAChD;AAGJ,OAAK,UAAU,CAAC,KAAK;AAErB,OAAK,cAAc,IAAI,YAAY,qBAAqB;GACpD,QAAQ,EAAE,SAAS,KAAK,SAAS;GACjC,SAAS;GACT,UAAU;GACb,CAAC,CAAC;AAEH,OAAK,cAAc,IAAI,MAAM,UAAU;GAAE,SAAS;GAAM,UAAU;GAAM,CAAC,CAAC;;CAG9E,SAAkB;AACd,SAAO,IAAI;;;;;4BAKS,KAAK,SAAS;+BACX,KAAK,UAAU,SAAS,QAAQ;6BAClC,KAAK,aAAa,QAAQ;6BAC1B,KAAK,UAAU,OAAO,MAAM;yBAChC,KAAK,YAAY;;;;;;;YA5CrC,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,SAAA,WAAA,WAAA,KAAA,EAAA;YAG1C,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,SAAA,WAAA,YAAA,KAAA,EAAA;YAG1C,SAAS,EAAE,SAAS,MAAM,CAAC,CAAA,EAAA,SAAA,WAAA,WAAA,KAAA,EAAA;YAG3B,SAAS,EAAE,SAAS,MAAM,CAAC,CAAA,EAAA,SAAA,WAAA,QAAA,KAAA,EAAA;YAG3B,SAAS,EAAE,WAAW,cAAc,CAAC,CAAA,EAAA,SAAA,WAAA,SAAA,KAAA,EAAA;YAGrC,SAAS,EAAE,WAAW,cAAc,CAAC,CAAA,EAAA,SAAA,WAAA,aAAA,KAAA,EAAA;uBAxBzC,cAAc,YAAY,CAAA,EAAA,SAAA"}
@@ -171,4 +171,4 @@ PkToggleGroup = __decorate([customElement("pk-toggle-group")], PkToggleGroup);
171
171
  //#endregion
172
172
  export { PkToggleGroup as t };
173
173
 
174
- //# sourceMappingURL=pk-toggle-group-D2Quux8D.js.map
174
+ //# sourceMappingURL=pk-toggle-group-CLso6OE7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pk-toggle-group-D2Quux8D.js","names":[],"sources":["../../src/components/toggle-group/pk-toggle-group.styles.ts","../../src/components/toggle-group/pk-toggle-group.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const pkToggleGroupStyles = css`\n @layer pk-component {\n :host {\n display: inline-flex;\n vertical-align: middle;\n font-family: var(--pk-font-family);\n font-size: var(--pk-font-size-base);\n line-height: var(--pk-line-height);\n }\n\n .group {\n display: inline-flex;\n width: fit-content;\n align-items: center;\n border-radius: var(--pk-radius-lg);\n gap: calc(var(--pk-toggle-group-spacing, 0) * 0.25rem);\n }\n\n :host([size='sm']) .group {\n border-radius: min(var(--pk-radius-md), 10px);\n }\n\n :host([orientation='vertical']) .group {\n flex-direction: column;\n align-items: stretch;\n }\n }\n`;\n","import { html } from 'lit';\nimport { customElement, property, state } from '../../decorators.js';\nimport type { PropertyValues } from 'lit';\n\nimport { PkElement } from '../../base/pk-element.js';\nimport type { PkToggleSize, PkToggleVariant } from '../toggle/pk-toggle.js';\nimport { pkToggleGroupStyles } from './pk-toggle-group.styles.js';\n\nexport type PkToggleGroupOrientation = 'horizontal' | 'vertical';\n\nconst GROUP_JOIN_ATTR = 'data-pk-group-join';\nconst GROUP_ITEM_FIRST = 'data-pk-group-item-first';\nconst GROUP_ITEM_LAST = 'data-pk-group-item-last';\nconst GROUP_ORIENTATION_ATTR = 'data-pk-group-orientation';\nconst TOGGLE_ORIENTATION_ATTR = 'data-tg-orientation';\n\n/**\n * Group of toggle buttons with shared selection.\n *\n * @slot - `pk-toggle` or `button[data-value]` items\n *\n * @csspart base - Group container\n */\n@customElement('pk-toggle-group')\nexport class PkToggleGroup extends PkElement {\n static override styles = pkToggleGroupStyles;\n\n @property({ reflect: true })\n orientation: PkToggleGroupOrientation = 'horizontal';\n\n @property({ reflect: true })\n variant: PkToggleVariant = 'default';\n\n @property({ reflect: true })\n size: PkToggleSize = 'default';\n\n /** Gap between items — `0` joins adjacent toggles (React `spacing={0}`). */\n @property({ type: Number, reflect: true })\n spacing = 0;\n\n /** @deprecated Use `spacing=\"0\"` — kept for backward compatibility. */\n @property({ type: Boolean, reflect: true })\n joined = true;\n\n @property({ type: Boolean })\n multiple = false;\n\n @property({ type: Array, attribute: false })\n value: string[] = [];\n\n @state()\n private items: HTMLElement[] = [];\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.syncJoinedFromSpacing();\n this.addEventListener('click', this.handleClick);\n this.addEventListener('slotchange', this.syncItems);\n }\n\n override disconnectedCallback(): void {\n this.removeEventListener('click', this.handleClick);\n this.removeEventListener('slotchange', this.syncItems);\n super.disconnectedCallback();\n }\n\n override updated(changed: PropertyValues): void {\n if (changed.has('spacing')) {\n this.syncJoinedFromSpacing();\n }\n\n if (changed.has('joined') && !changed.has('spacing')) {\n this.spacing = this.joined ? 0 : 2;\n }\n\n if (changed.has('variant') || changed.has('size') || changed.has('spacing') || changed.has('orientation')) {\n this.syncGroupLayout();\n }\n\n // Keep pressed/aria-pressed in sync when value is set as a property\n // (HTML has no value attribute — docs/playground set `.value` after mount).\n if (changed.has('value') && this.items.length) {\n this.applySelection();\n }\n }\n\n private clearLayoutAttrs(item: HTMLElement): void {\n item.removeAttribute(GROUP_JOIN_ATTR);\n item.removeAttribute(GROUP_ITEM_FIRST);\n item.removeAttribute(GROUP_ITEM_LAST);\n item.removeAttribute(GROUP_ORIENTATION_ATTR);\n item.removeAttribute(TOGGLE_ORIENTATION_ATTR);\n }\n\n private syncGroupLayout(): void {\n for (const item of this.items) {\n this.clearLayoutAttrs(item);\n }\n\n for (const item of this.items) {\n if (this.orientation !== 'horizontal') {\n item.setAttribute(TOGGLE_ORIENTATION_ATTR, this.orientation);\n }\n }\n\n if (this.spacing !== 0) {\n return;\n }\n\n for (let index = 0; index < this.items.length; index++) {\n const item = this.items[index];\n item.setAttribute(GROUP_ORIENTATION_ATTR, this.orientation);\n item.setAttribute(GROUP_JOIN_ATTR, '');\n\n if (index === 0) {\n item.setAttribute(GROUP_ITEM_FIRST, '');\n }\n\n if (index === this.items.length - 1) {\n item.setAttribute(GROUP_ITEM_LAST, '');\n }\n }\n }\n\n private syncJoinedFromSpacing(): void {\n this.joined = this.spacing === 0;\n }\n\n private syncItems = (): void => {\n const slot = this.shadowRoot?.querySelector('slot');\n\n if (!slot) {\n return;\n }\n\n this.items = slot.assignedElements({ flatten: true }) as HTMLElement[];\n this.applyGroupProps();\n this.syncGroupLayout();\n this.applySelection();\n };\n\n private applyGroupProps(): void {\n for (const item of this.items) {\n if (item.tagName !== 'PK-TOGGLE') {\n continue;\n }\n\n item.setAttribute('variant', this.variant);\n item.setAttribute('size', this.size);\n }\n }\n\n private getItemValue(item: HTMLElement): string | null {\n return item.getAttribute('data-value') ?? item.dataset.value ?? null;\n }\n\n private isItemDisabled(item: HTMLElement): boolean {\n return item.hasAttribute('disabled') || item.matches(':disabled');\n }\n\n private applySelection(): void {\n for (const item of this.items) {\n const itemValue = this.getItemValue(item);\n\n if (!itemValue) {\n continue;\n }\n\n const selected = this.value.includes(itemValue);\n item.setAttribute('aria-pressed', selected ? 'true' : 'false');\n\n if (item.tagName === 'PK-TOGGLE') {\n if (selected) {\n item.setAttribute('pressed', '');\n } else {\n item.removeAttribute('pressed');\n }\n }\n }\n }\n\n private handleClick = (event: Event): void => {\n const target = (event.target as HTMLElement).closest('[data-value]') as HTMLElement | null;\n\n if (!target || !this.items.includes(target) || this.isItemDisabled(target)) {\n return;\n }\n\n event.preventDefault();\n\n const itemValue = this.getItemValue(target);\n\n if (!itemValue) {\n return;\n }\n\n if (this.multiple) {\n this.value = this.value.includes(itemValue)\n ? this.value.filter((v) => v !== itemValue)\n : [...this.value, itemValue];\n } else {\n this.value = this.value.includes(itemValue) ? [] : [itemValue];\n }\n\n this.applySelection();\n\n this.dispatchEvent(new CustomEvent('pk-value-change', {\n detail: { value: [...this.value] },\n bubbles: true,\n composed: true,\n }));\n };\n\n override render() {\n return html`\n <div\n part=\"base\"\n class=\"group\"\n role=\"group\"\n style=${`--pk-toggle-group-spacing: ${this.spacing}`}\n @slotchange=${this.syncItems}\n >\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-toggle-group': PkToggleGroup;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"pk-toggle-group-CLso6OE7.js","names":[],"sources":["../../src/components/toggle-group/pk-toggle-group.styles.ts","../../src/components/toggle-group/pk-toggle-group.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const pkToggleGroupStyles = css`\n @layer pk-component {\n :host {\n display: inline-flex;\n vertical-align: middle;\n font-family: var(--pk-font-family);\n font-size: var(--pk-font-size-base);\n line-height: var(--pk-line-height);\n }\n\n .group {\n display: inline-flex;\n width: fit-content;\n align-items: center;\n border-radius: var(--pk-radius-lg);\n gap: calc(var(--pk-toggle-group-spacing, 0) * 0.25rem);\n }\n\n :host([size='sm']) .group {\n border-radius: min(var(--pk-radius-md), 10px);\n }\n\n :host([orientation='vertical']) .group {\n flex-direction: column;\n align-items: stretch;\n }\n }\n`;\n","import { html } from 'lit';\nimport { customElement, property, state } from '../../decorators.js';\nimport type { PropertyValues } from 'lit';\n\nimport { PkElement } from '../../base/pk-element.js';\nimport type { PkToggleSize, PkToggleVariant } from '../toggle/pk-toggle.js';\nimport { pkToggleGroupStyles } from './pk-toggle-group.styles.js';\n\nexport type PkToggleGroupOrientation = 'horizontal' | 'vertical';\n\nconst GROUP_JOIN_ATTR = 'data-pk-group-join';\nconst GROUP_ITEM_FIRST = 'data-pk-group-item-first';\nconst GROUP_ITEM_LAST = 'data-pk-group-item-last';\nconst GROUP_ORIENTATION_ATTR = 'data-pk-group-orientation';\nconst TOGGLE_ORIENTATION_ATTR = 'data-tg-orientation';\n\n/**\n * Group of toggle buttons with shared selection.\n *\n * @slot - `pk-toggle` or `button[data-value]` items\n *\n * @csspart base - Group container\n */\n@customElement('pk-toggle-group')\nexport class PkToggleGroup extends PkElement {\n static override styles = pkToggleGroupStyles;\n\n @property({ reflect: true })\n orientation: PkToggleGroupOrientation = 'horizontal';\n\n @property({ reflect: true })\n variant: PkToggleVariant = 'default';\n\n @property({ reflect: true })\n size: PkToggleSize = 'default';\n\n /** Gap between items — `0` joins adjacent toggles (React `spacing={0}`). */\n @property({ type: Number, reflect: true })\n spacing = 0;\n\n /** @deprecated Use `spacing=\"0\"` — kept for backward compatibility. */\n @property({ type: Boolean, reflect: true })\n joined = true;\n\n @property({ type: Boolean })\n multiple = false;\n\n @property({ type: Array, attribute: false })\n value: string[] = [];\n\n @state()\n private items: HTMLElement[] = [];\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.syncJoinedFromSpacing();\n this.addEventListener('click', this.handleClick);\n this.addEventListener('slotchange', this.syncItems);\n }\n\n override disconnectedCallback(): void {\n this.removeEventListener('click', this.handleClick);\n this.removeEventListener('slotchange', this.syncItems);\n super.disconnectedCallback();\n }\n\n override updated(changed: PropertyValues): void {\n if (changed.has('spacing')) {\n this.syncJoinedFromSpacing();\n }\n\n if (changed.has('joined') && !changed.has('spacing')) {\n this.spacing = this.joined ? 0 : 2;\n }\n\n if (changed.has('variant') || changed.has('size') || changed.has('spacing') || changed.has('orientation')) {\n this.syncGroupLayout();\n }\n\n // Keep pressed/aria-pressed in sync when value is set as a property\n // (HTML has no value attribute — docs/playground set `.value` after mount).\n if (changed.has('value') && this.items.length) {\n this.applySelection();\n }\n }\n\n private clearLayoutAttrs(item: HTMLElement): void {\n item.removeAttribute(GROUP_JOIN_ATTR);\n item.removeAttribute(GROUP_ITEM_FIRST);\n item.removeAttribute(GROUP_ITEM_LAST);\n item.removeAttribute(GROUP_ORIENTATION_ATTR);\n item.removeAttribute(TOGGLE_ORIENTATION_ATTR);\n }\n\n private syncGroupLayout(): void {\n for (const item of this.items) {\n this.clearLayoutAttrs(item);\n }\n\n for (const item of this.items) {\n if (this.orientation !== 'horizontal') {\n item.setAttribute(TOGGLE_ORIENTATION_ATTR, this.orientation);\n }\n }\n\n if (this.spacing !== 0) {\n return;\n }\n\n for (let index = 0; index < this.items.length; index++) {\n const item = this.items[index];\n item.setAttribute(GROUP_ORIENTATION_ATTR, this.orientation);\n item.setAttribute(GROUP_JOIN_ATTR, '');\n\n if (index === 0) {\n item.setAttribute(GROUP_ITEM_FIRST, '');\n }\n\n if (index === this.items.length - 1) {\n item.setAttribute(GROUP_ITEM_LAST, '');\n }\n }\n }\n\n private syncJoinedFromSpacing(): void {\n this.joined = this.spacing === 0;\n }\n\n private syncItems = (): void => {\n const slot = this.shadowRoot?.querySelector('slot');\n\n if (!slot) {\n return;\n }\n\n this.items = slot.assignedElements({ flatten: true }) as HTMLElement[];\n this.applyGroupProps();\n this.syncGroupLayout();\n this.applySelection();\n };\n\n private applyGroupProps(): void {\n for (const item of this.items) {\n if (item.tagName !== 'PK-TOGGLE') {\n continue;\n }\n\n item.setAttribute('variant', this.variant);\n item.setAttribute('size', this.size);\n }\n }\n\n private getItemValue(item: HTMLElement): string | null {\n return item.getAttribute('data-value') ?? item.dataset.value ?? null;\n }\n\n private isItemDisabled(item: HTMLElement): boolean {\n return item.hasAttribute('disabled') || item.matches(':disabled');\n }\n\n private applySelection(): void {\n for (const item of this.items) {\n const itemValue = this.getItemValue(item);\n\n if (!itemValue) {\n continue;\n }\n\n const selected = this.value.includes(itemValue);\n item.setAttribute('aria-pressed', selected ? 'true' : 'false');\n\n if (item.tagName === 'PK-TOGGLE') {\n if (selected) {\n item.setAttribute('pressed', '');\n } else {\n item.removeAttribute('pressed');\n }\n }\n }\n }\n\n private handleClick = (event: Event): void => {\n const target = (event.target as HTMLElement).closest('[data-value]') as HTMLElement | null;\n\n if (!target || !this.items.includes(target) || this.isItemDisabled(target)) {\n return;\n }\n\n event.preventDefault();\n\n const itemValue = this.getItemValue(target);\n\n if (!itemValue) {\n return;\n }\n\n if (this.multiple) {\n this.value = this.value.includes(itemValue)\n ? this.value.filter((v) => v !== itemValue)\n : [...this.value, itemValue];\n } else {\n this.value = this.value.includes(itemValue) ? [] : [itemValue];\n }\n\n this.applySelection();\n\n this.dispatchEvent(new CustomEvent('pk-value-change', {\n detail: { value: [...this.value] },\n bubbles: true,\n composed: true,\n }));\n };\n\n override render() {\n return html`\n <div\n part=\"base\"\n class=\"group\"\n role=\"group\"\n style=${`--pk-toggle-group-spacing: ${this.spacing}`}\n @slotchange=${this.syncItems}\n >\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-toggle-group': PkToggleGroup;\n }\n}\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { a as query, i as property, n as PkElement, o as state, s as customElement, t as __decorate } from "./decorate-R0X811qp.js";
2
- import { i as uniqueId } from "./focus-aa5dlv8k.js";
3
- import { i as PkShowEvent, n as PkAfterShowEvent, r as PkHideEvent, t as PkAfterHideEvent } from "./overlay-lifecycle-D0pkTQyI.js";
4
- import { r as resolveElementById } from "./pk-popup-B65tZMQH.js";
5
- import { i as waitForPopupReposition, n as getPopupSide, r as syncPopupPlacementAnimation } from "./popup-placement-animation-WlEXnS85.js";
2
+ import { i as uniqueId } from "./focus-C6pY4Ym4.js";
3
+ import { i as PkShowEvent, n as PkAfterShowEvent, r as PkHideEvent, t as PkAfterHideEvent } from "./overlay-lifecycle-CAoT0LE8.js";
4
+ import { r as resolveElementById } from "./pk-popup-0EIt9X_W.js";
5
+ import { i as waitForPopupReposition, n as getPopupSide, r as syncPopupPlacementAnimation } from "./popup-placement-animation-GvFXER7D.js";
6
6
  import { css, html, nothing } from "lit";
7
7
  import { classMap } from "lit/directives/class-map.js";
8
8
  var pkTooltipStyles = [css`
@@ -465,4 +465,4 @@ PkTooltip = __decorate([customElement("pk-tooltip")], PkTooltip);
465
465
  //#endregion
466
466
  export { PkTooltip as t };
467
467
 
468
- //# sourceMappingURL=pk-tooltip--QBV6puX.js.map
468
+ //# sourceMappingURL=pk-tooltip-C6yb4CXI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pk-tooltip--QBV6puX.js","names":[],"sources":["../../src/components/tooltip/pk-tooltip.styles.ts","../../src/components/tooltip/pk-tooltip.ts"],"sourcesContent":["import { css } from 'lit';\n\n/**\n * Tooltip motion — enter: fade + zoom + slide; exit: fade + zoom only, 150ms ease.\n */\nconst tooltipContentAnimationStyles = css`\n @layer pk-component {\n .content.pk-popup-content {\n transform-origin: var(--pk-transform-origin, top);\n }\n\n .content.pk-popup-content[data-open] {\n animation: pk-tooltip-in 150ms ease forwards;\n }\n\n .content.pk-popup-content[data-open][data-side='top'] {\n animation-name: pk-tooltip-in-top;\n }\n\n .content.pk-popup-content[data-open][data-side='bottom'] {\n animation-name: pk-tooltip-in-bottom;\n }\n\n .content.pk-popup-content[data-open][data-side='left'] {\n animation-name: pk-tooltip-in-left;\n }\n\n .content.pk-popup-content[data-open][data-side='right'] {\n animation-name: pk-tooltip-in-right;\n }\n\n .content.pk-popup-content.closing {\n animation: pk-tooltip-out 150ms ease;\n }\n\n @keyframes pk-tooltip-in {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n\n @keyframes pk-tooltip-out {\n from {\n opacity: 1;\n transform: scale(1);\n }\n\n to {\n opacity: 0;\n transform: scale(0.95);\n }\n }\n\n @keyframes pk-tooltip-in-top {\n from {\n opacity: 0;\n transform: scale(0.95) translateY(0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n @keyframes pk-tooltip-in-bottom {\n from {\n opacity: 0;\n transform: scale(0.95) translateY(-0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n @keyframes pk-tooltip-in-left {\n from {\n opacity: 0;\n transform: scale(0.95) translateX(0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateX(0);\n }\n }\n\n @keyframes pk-tooltip-in-right {\n from {\n opacity: 0;\n transform: scale(0.95) translateX(-0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateX(0);\n }\n }\n }\n`;\n\nexport const pkTooltipStyles = [\n tooltipContentAnimationStyles,\n css`\n @layer pk-component {\n :host {\n display: inline-block;\n max-width: 100%;\n align-self: flex-start;\n flex: none;\n vertical-align: middle;\n --pk-popup-z-index: 250;\n --pk-tooltip-arrow-size: 9px;\n --pk-tooltip-arrow-inset: 1px;\n }\n\n .content:not([data-open]):not(.closing) {\n opacity: 0;\n pointer-events: none;\n }\n\n .content[data-open]:not(.closing) {\n opacity: 1;\n }\n\n .content {\n position: relative;\n isolation: isolate;\n overflow: visible;\n width: fit-content;\n max-width: 20rem;\n padding: 4px 8px;\n border-radius: var(--pk-radius-sm);\n background: #1c2e36;\n color: var(--pk-color-white);\n font-family: var(--pk-font-family);\n font-size: 12px;\n line-height: 1.4;\n pointer-events: none;\n }\n\n .content::after {\n content: '';\n position: absolute;\n z-index: -1;\n width: var(--pk-tooltip-arrow-size);\n height: var(--pk-tooltip-arrow-size);\n background: #1c2e36;\n border-radius: 2px;\n rotate: 45deg;\n pointer-events: none;\n }\n\n .content[data-side='top']::after {\n left: calc(50% - var(--pk-tooltip-arrow-size) / 2);\n bottom: calc(var(--pk-tooltip-arrow-size) * -0.5 + var(--pk-tooltip-arrow-inset));\n }\n\n .content[data-side='bottom']::after {\n left: calc(50% - var(--pk-tooltip-arrow-size) / 2);\n top: calc(var(--pk-tooltip-arrow-size) * -0.5 + var(--pk-tooltip-arrow-inset));\n }\n\n .content[data-side='left']::after {\n top: calc(50% - var(--pk-tooltip-arrow-size) / 2);\n right: calc(var(--pk-tooltip-arrow-size) * -0.5 + var(--pk-tooltip-arrow-inset));\n }\n\n .content[data-side='right']::after {\n top: calc(50% - var(--pk-tooltip-arrow-size) / 2);\n left: calc(var(--pk-tooltip-arrow-size) * -0.5 + var(--pk-tooltip-arrow-inset));\n }\n\n .content[hidden] {\n display: none !important;\n }\n }\n `,\n];\n","import { html, nothing } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, query, state } from '../../decorators.js';\nimport type { PropertyValues } from 'lit';\n\nimport { uniqueId } from '../../a11y/focus.js';\nimport { PkElement } from '../../base/pk-element.js';\nimport { resolveElementById } from '../../internal/resolve-element-by-id.js';\nimport {\n PkAfterHideEvent,\n PkAfterShowEvent,\n PkHideEvent,\n PkShowEvent,\n} from '../../events/overlay-lifecycle.js';\n// Keep the internal element registered when production builds erase type-only imports.\nimport '../popup/pk-popup.js';\nimport type { PkPopup, PkPopupPlacement } from '../popup/pk-popup.js';\nimport { syncPopupPlacementAnimation, waitForPopupReposition, getPopupSide } from '../../utils/popup-placement-animation.js';\nimport { pkTooltipStyles } from './pk-tooltip.styles.js';\n\n/**\n * Tooltip — pattern: hover/focus shows floating hint.\n *\n * @slot trigger - Element that receives the tooltip\n * @slot - Tooltip content (falls back to `content` attribute)\n *\n * @csspart content - Tooltip body\n */\n@customElement('pk-tooltip')\nexport class PkTooltip extends PkElement {\n static override styles = pkTooltipStyles;\n\n @property({ reflect: true })\n placement: PkPopupPlacement = 'top';\n\n /** `hover focus` (default) or `manual` for programmatic open only. */\n @property({ reflect: true })\n trigger: 'hover focus' | 'manual' = 'hover focus';\n\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n @property({ type: Number, attribute: 'open-delay' })\n openDelay = 0;\n\n @property({ type: Number, attribute: 'close-delay' })\n closeDelay = 0;\n\n @property()\n content = '';\n\n /** Anchor element id — alternative to the trigger slot. */\n @property({ reflect: true })\n for = '';\n\n @query('pk-popup')\n private popupElement!: PkPopup;\n\n @state()\n private open = false;\n\n private triggerElement: HTMLElement | null = null;\n\n @state()\n private contentAnimated = false;\n\n @state()\n private closing = false;\n\n @state()\n private contentSide: ReturnType<typeof getPopupSide> | null = null;\n\n /**\n * True only when the default slot has real nodes. Pretty-printed HTML often\n * leaves whitespace text nodes in the default slot, which would otherwise\n * suppress the `content` attribute fallback and show an empty tooltip body.\n */\n @state()\n private hasSlottedBody = false;\n\n private readonly triggerId = uniqueId('pk-tooltip-trigger');\n private openTimer?: number;\n private closeTimer?: number;\n private readonly tooltipId = uniqueId('pk-tooltip');\n private showGeneration = 0;\n private exitGeneration = 0;\n\n override disconnectedCallback(): void {\n this.popupElement?.removeEventListener('pk-reposition', this.syncPlacementAnimation);\n this.clearTimers();\n this.hideTooltip(true);\n super.disconnectedCallback();\n }\n\n override updated(changed: PropertyValues): void {\n super.updated(changed);\n\n if (changed.has('trigger') || changed.has('disabled') || changed.has('for')) {\n this.rebindTrigger();\n }\n\n if (this.disabled && this.open) {\n this.hideTooltip(true);\n }\n }\n\n override firstUpdated(): void {\n this.popupElement.addEventListener('pk-reposition', this.syncPlacementAnimation);\n\n if (this.for) {\n queueMicrotask(() => {\n this.resolveExternalTrigger();\n });\n }\n }\n\n /** Opens the tooltip programmatically. */\n async show(): Promise<void> {\n if (this.disabled) {\n return;\n }\n\n this.clearTimers();\n this.showTooltip(true);\n await this.updateComplete;\n }\n\n /** Closes the tooltip programmatically. */\n async hide(): Promise<void> {\n this.clearTimers();\n this.hideTooltip(true);\n await this.updateComplete;\n }\n\n private clearTimers(): void {\n window.clearTimeout(this.openTimer);\n window.clearTimeout(this.closeTimer);\n }\n\n private syncPlacementAnimation = (): void => {\n const placement = this.popupElement?.getAttribute('data-current-placement') ?? this.placement;\n const content = this.popupElement?.getContentElement();\n\n this.contentSide = placement ? getPopupSide(placement) : null;\n syncPopupPlacementAnimation(this.popupElement, placement);\n\n if (content) {\n syncPopupPlacementAnimation(content, placement);\n }\n };\n\n private resolveExternalTrigger(): void {\n this.triggerElement = resolveElementById(this, this.for);\n this.rebindTrigger();\n }\n\n private onTriggerSlotChange(event: Event): void {\n const slot = event.target as HTMLSlotElement;\n const [trigger] = slot.assignedElements({ flatten: true }) as HTMLElement[];\n\n this.unbindTrigger(this.triggerElement);\n this.triggerElement = trigger ?? null;\n this.rebindTrigger();\n this.requestUpdate();\n }\n\n private onBodySlotChange = (event: Event): void => {\n const slot = event.target as HTMLSlotElement;\n this.hasSlottedBody = slot.assignedNodes({ flatten: true }).some((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n return true;\n }\n\n return node.nodeType === Node.TEXT_NODE && Boolean(node.textContent?.trim());\n });\n };\n\n private rebindTrigger(): void {\n this.unbindTrigger(this.triggerElement);\n\n if (this.for) {\n this.triggerElement = resolveElementById(this, this.for);\n }\n\n this.bindTrigger(this.triggerElement);\n }\n\n private usesPointerTrigger(): boolean {\n return !this.disabled && this.trigger !== 'manual';\n }\n\n private bindTrigger(trigger: HTMLElement | null): void {\n if (!trigger || !this.usesPointerTrigger()) {\n return;\n }\n\n if (!trigger.id) {\n trigger.id = this.triggerId;\n }\n\n trigger.setAttribute('aria-describedby', this.tooltipId);\n trigger.addEventListener('mouseenter', this.scheduleShow);\n trigger.addEventListener('mouseleave', this.scheduleHide);\n trigger.addEventListener('focus', this.scheduleShow);\n trigger.addEventListener('blur', this.scheduleHide);\n }\n\n private unbindTrigger(trigger: HTMLElement | null): void {\n if (!trigger) {\n return;\n }\n\n trigger.removeAttribute('aria-describedby');\n trigger.removeEventListener('mouseenter', this.scheduleShow);\n trigger.removeEventListener('mouseleave', this.scheduleHide);\n trigger.removeEventListener('focus', this.scheduleShow);\n trigger.removeEventListener('blur', this.scheduleHide);\n }\n\n private scheduleShow = (): void => {\n if (!this.usesPointerTrigger()) {\n return;\n }\n\n window.clearTimeout(this.closeTimer);\n window.clearTimeout(this.openTimer);\n this.openTimer = window.setTimeout(() => this.showTooltip(), this.openDelay);\n };\n\n private scheduleHide = (): void => {\n if (!this.usesPointerTrigger()) {\n return;\n }\n\n window.clearTimeout(this.openTimer);\n window.clearTimeout(this.closeTimer);\n this.closeTimer = window.setTimeout(() => this.hideTooltip(), this.closeDelay);\n };\n\n private getAnchor(): Element | string | null {\n if (this.for) {\n return resolveElementById(this, this.for);\n }\n\n if (this.triggerElement) {\n return this.triggerElement;\n }\n\n return null;\n }\n\n private prepareContentForEnter(content: HTMLElement | null | undefined): void {\n if (!content) {\n return;\n }\n\n content.classList.remove('closing');\n content.style.animation = 'none';\n void content.getBoundingClientRect();\n content.style.removeProperty('animation');\n content.style.removeProperty('opacity');\n content.style.removeProperty('transform');\n }\n\n private showTooltip(force = false): void {\n if (!this.getAnchor()) {\n return;\n }\n\n if (this.open && this.contentAnimated && !this.closing && !force) {\n return;\n }\n\n if (!this.open) {\n this.dispatchEvent(new PkShowEvent());\n }\n\n const generation = ++this.showGeneration;\n this.exitGeneration += 1;\n this.closing = false;\n this.open = true;\n this.contentAnimated = false;\n this.prepareContentForEnter(this.popupElement?.getContentElement());\n\n void this.updateComplete.then(async () => {\n if (generation !== this.showGeneration) {\n return;\n }\n\n await waitForPopupReposition(this.popupElement, this.placement);\n\n if (generation !== this.showGeneration) {\n return;\n }\n\n this.syncPlacementAnimation();\n this.prepareContentForEnter(this.popupElement?.getContentElement());\n this.contentAnimated = true;\n\n this.dispatchEvent(new PkAfterShowEvent());\n this.dispatchEvent(new CustomEvent('pk-open-change', {\n detail: { open: true },\n bubbles: true,\n composed: true,\n }));\n });\n }\n\n private hideTooltip(immediate = false, cancelable = false): void {\n if ((!this.open && !this.closing) && !immediate) {\n return;\n }\n\n if (this.closing && !immediate) {\n return;\n }\n\n if (cancelable) {\n const hideEvent = new PkHideEvent('api');\n\n if (!this.dispatchEvent(hideEvent)) {\n return;\n }\n }\n\n this.showGeneration += 1;\n\n if (immediate) {\n this.finishHide();\n return;\n }\n\n if (!this.contentAnimated) {\n this.finishHide();\n return;\n }\n\n void this.playExitAnimation();\n }\n\n private async playExitAnimation(): Promise<void> {\n if (!this.open) {\n return;\n }\n\n const generation = this.exitGeneration + 1;\n this.exitGeneration = generation;\n\n const content = this.popupElement?.getContentElement();\n\n this.closing = true;\n this.contentAnimated = false;\n\n if (content) {\n await this.waitForExitAnimation(content);\n }\n\n if (generation !== this.exitGeneration) {\n return;\n }\n\n this.finishHide();\n }\n\n private waitForExitAnimation(content: HTMLElement): Promise<void> {\n return new Promise((resolve) => {\n let settled = false;\n\n const finish = (): void => {\n if (settled) {\n return;\n }\n\n settled = true;\n content.removeEventListener('animationend', onAnimationEnd);\n window.clearTimeout(fallback);\n content.classList.remove('closing');\n resolve();\n };\n\n const onAnimationEnd = (event: AnimationEvent): void => {\n if (event.target === content && event.animationName.startsWith('pk-tooltip-out')) {\n finish();\n }\n };\n\n content.classList.add('closing');\n content.addEventListener('animationend', onAnimationEnd);\n const fallback = window.setTimeout(finish, 200);\n });\n }\n\n private finishHide(): void {\n const content = this.popupElement?.getContentElement();\n\n this.closing = false;\n this.contentAnimated = false;\n this.contentSide = null;\n this.open = false;\n this.popupElement?.removeAttribute('data-side');\n this.prepareContentForEnter(content);\n\n this.dispatchEvent(new PkAfterHideEvent());\n this.dispatchEvent(new CustomEvent('pk-open-change', {\n detail: { open: false },\n bubbles: true,\n composed: true,\n }));\n }\n\n override render() {\n const anchor = this.getAnchor();\n\n return html`\n <slot name=\"trigger\" @slotchange=${this.onTriggerSlotChange}></slot>\n <pk-popup\n .active=${this.open || this.closing}\n .anchor=${anchor ?? ''}\n .placement=${this.placement}\n .distance=${4}\n hover-bridge\n flip\n shift\n >\n <div\n part=\"content\"\n class=${classMap({\n content: true,\n 'pk-popup-content': true,\n closing: this.closing,\n })}\n id=${this.tooltipId}\n role=\"tooltip\"\n ?hidden=${!this.open && !this.closing}\n data-open=${this.contentAnimated && !this.closing ? '' : nothing}\n data-side=${this.contentSide ?? nothing}\n >\n <slot @slotchange=${this.onBodySlotChange}></slot>\n ${this.hasSlottedBody ? nothing : (this.content || nothing)}\n </div>\n </pk-popup>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-tooltip': PkTooltip;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"pk-tooltip-C6yb4CXI.js","names":[],"sources":["../../src/components/tooltip/pk-tooltip.styles.ts","../../src/components/tooltip/pk-tooltip.ts"],"sourcesContent":["import { css } from 'lit';\n\n/**\n * Tooltip motion — enter: fade + zoom + slide; exit: fade + zoom only, 150ms ease.\n */\nconst tooltipContentAnimationStyles = css`\n @layer pk-component {\n .content.pk-popup-content {\n transform-origin: var(--pk-transform-origin, top);\n }\n\n .content.pk-popup-content[data-open] {\n animation: pk-tooltip-in 150ms ease forwards;\n }\n\n .content.pk-popup-content[data-open][data-side='top'] {\n animation-name: pk-tooltip-in-top;\n }\n\n .content.pk-popup-content[data-open][data-side='bottom'] {\n animation-name: pk-tooltip-in-bottom;\n }\n\n .content.pk-popup-content[data-open][data-side='left'] {\n animation-name: pk-tooltip-in-left;\n }\n\n .content.pk-popup-content[data-open][data-side='right'] {\n animation-name: pk-tooltip-in-right;\n }\n\n .content.pk-popup-content.closing {\n animation: pk-tooltip-out 150ms ease;\n }\n\n @keyframes pk-tooltip-in {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n\n @keyframes pk-tooltip-out {\n from {\n opacity: 1;\n transform: scale(1);\n }\n\n to {\n opacity: 0;\n transform: scale(0.95);\n }\n }\n\n @keyframes pk-tooltip-in-top {\n from {\n opacity: 0;\n transform: scale(0.95) translateY(0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n @keyframes pk-tooltip-in-bottom {\n from {\n opacity: 0;\n transform: scale(0.95) translateY(-0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n @keyframes pk-tooltip-in-left {\n from {\n opacity: 0;\n transform: scale(0.95) translateX(0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateX(0);\n }\n }\n\n @keyframes pk-tooltip-in-right {\n from {\n opacity: 0;\n transform: scale(0.95) translateX(-0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateX(0);\n }\n }\n }\n`;\n\nexport const pkTooltipStyles = [\n tooltipContentAnimationStyles,\n css`\n @layer pk-component {\n :host {\n display: inline-block;\n max-width: 100%;\n align-self: flex-start;\n flex: none;\n vertical-align: middle;\n --pk-popup-z-index: 250;\n --pk-tooltip-arrow-size: 9px;\n --pk-tooltip-arrow-inset: 1px;\n }\n\n .content:not([data-open]):not(.closing) {\n opacity: 0;\n pointer-events: none;\n }\n\n .content[data-open]:not(.closing) {\n opacity: 1;\n }\n\n .content {\n position: relative;\n isolation: isolate;\n overflow: visible;\n width: fit-content;\n max-width: 20rem;\n padding: 4px 8px;\n border-radius: var(--pk-radius-sm);\n background: #1c2e36;\n color: var(--pk-color-white);\n font-family: var(--pk-font-family);\n font-size: 12px;\n line-height: 1.4;\n pointer-events: none;\n }\n\n .content::after {\n content: '';\n position: absolute;\n z-index: -1;\n width: var(--pk-tooltip-arrow-size);\n height: var(--pk-tooltip-arrow-size);\n background: #1c2e36;\n border-radius: 2px;\n rotate: 45deg;\n pointer-events: none;\n }\n\n .content[data-side='top']::after {\n left: calc(50% - var(--pk-tooltip-arrow-size) / 2);\n bottom: calc(var(--pk-tooltip-arrow-size) * -0.5 + var(--pk-tooltip-arrow-inset));\n }\n\n .content[data-side='bottom']::after {\n left: calc(50% - var(--pk-tooltip-arrow-size) / 2);\n top: calc(var(--pk-tooltip-arrow-size) * -0.5 + var(--pk-tooltip-arrow-inset));\n }\n\n .content[data-side='left']::after {\n top: calc(50% - var(--pk-tooltip-arrow-size) / 2);\n right: calc(var(--pk-tooltip-arrow-size) * -0.5 + var(--pk-tooltip-arrow-inset));\n }\n\n .content[data-side='right']::after {\n top: calc(50% - var(--pk-tooltip-arrow-size) / 2);\n left: calc(var(--pk-tooltip-arrow-size) * -0.5 + var(--pk-tooltip-arrow-inset));\n }\n\n .content[hidden] {\n display: none !important;\n }\n }\n `,\n];\n","import { html, nothing } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, query, state } from '../../decorators.js';\nimport type { PropertyValues } from 'lit';\n\nimport { uniqueId } from '../../a11y/focus.js';\nimport { PkElement } from '../../base/pk-element.js';\nimport { resolveElementById } from '../../internal/resolve-element-by-id.js';\nimport {\n PkAfterHideEvent,\n PkAfterShowEvent,\n PkHideEvent,\n PkShowEvent,\n} from '../../events/overlay-lifecycle.js';\n// Keep the internal element registered when production builds erase type-only imports.\nimport '../popup/pk-popup.js';\nimport type { PkPopup, PkPopupPlacement } from '../popup/pk-popup.js';\nimport { syncPopupPlacementAnimation, waitForPopupReposition, getPopupSide } from '../../utils/popup-placement-animation.js';\nimport { pkTooltipStyles } from './pk-tooltip.styles.js';\n\n/**\n * Tooltip — pattern: hover/focus shows floating hint.\n *\n * @slot trigger - Element that receives the tooltip\n * @slot - Tooltip content (falls back to `content` attribute)\n *\n * @csspart content - Tooltip body\n */\n@customElement('pk-tooltip')\nexport class PkTooltip extends PkElement {\n static override styles = pkTooltipStyles;\n\n @property({ reflect: true })\n placement: PkPopupPlacement = 'top';\n\n /** `hover focus` (default) or `manual` for programmatic open only. */\n @property({ reflect: true })\n trigger: 'hover focus' | 'manual' = 'hover focus';\n\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n @property({ type: Number, attribute: 'open-delay' })\n openDelay = 0;\n\n @property({ type: Number, attribute: 'close-delay' })\n closeDelay = 0;\n\n @property()\n content = '';\n\n /** Anchor element id — alternative to the trigger slot. */\n @property({ reflect: true })\n for = '';\n\n @query('pk-popup')\n private popupElement!: PkPopup;\n\n @state()\n private open = false;\n\n private triggerElement: HTMLElement | null = null;\n\n @state()\n private contentAnimated = false;\n\n @state()\n private closing = false;\n\n @state()\n private contentSide: ReturnType<typeof getPopupSide> | null = null;\n\n /**\n * True only when the default slot has real nodes. Pretty-printed HTML often\n * leaves whitespace text nodes in the default slot, which would otherwise\n * suppress the `content` attribute fallback and show an empty tooltip body.\n */\n @state()\n private hasSlottedBody = false;\n\n private readonly triggerId = uniqueId('pk-tooltip-trigger');\n private openTimer?: number;\n private closeTimer?: number;\n private readonly tooltipId = uniqueId('pk-tooltip');\n private showGeneration = 0;\n private exitGeneration = 0;\n\n override disconnectedCallback(): void {\n this.popupElement?.removeEventListener('pk-reposition', this.syncPlacementAnimation);\n this.clearTimers();\n this.hideTooltip(true);\n super.disconnectedCallback();\n }\n\n override updated(changed: PropertyValues): void {\n super.updated(changed);\n\n if (changed.has('trigger') || changed.has('disabled') || changed.has('for')) {\n this.rebindTrigger();\n }\n\n if (this.disabled && this.open) {\n this.hideTooltip(true);\n }\n }\n\n override firstUpdated(): void {\n this.popupElement.addEventListener('pk-reposition', this.syncPlacementAnimation);\n\n if (this.for) {\n queueMicrotask(() => {\n this.resolveExternalTrigger();\n });\n }\n }\n\n /** Opens the tooltip programmatically. */\n async show(): Promise<void> {\n if (this.disabled) {\n return;\n }\n\n this.clearTimers();\n this.showTooltip(true);\n await this.updateComplete;\n }\n\n /** Closes the tooltip programmatically. */\n async hide(): Promise<void> {\n this.clearTimers();\n this.hideTooltip(true);\n await this.updateComplete;\n }\n\n private clearTimers(): void {\n window.clearTimeout(this.openTimer);\n window.clearTimeout(this.closeTimer);\n }\n\n private syncPlacementAnimation = (): void => {\n const placement = this.popupElement?.getAttribute('data-current-placement') ?? this.placement;\n const content = this.popupElement?.getContentElement();\n\n this.contentSide = placement ? getPopupSide(placement) : null;\n syncPopupPlacementAnimation(this.popupElement, placement);\n\n if (content) {\n syncPopupPlacementAnimation(content, placement);\n }\n };\n\n private resolveExternalTrigger(): void {\n this.triggerElement = resolveElementById(this, this.for);\n this.rebindTrigger();\n }\n\n private onTriggerSlotChange(event: Event): void {\n const slot = event.target as HTMLSlotElement;\n const [trigger] = slot.assignedElements({ flatten: true }) as HTMLElement[];\n\n this.unbindTrigger(this.triggerElement);\n this.triggerElement = trigger ?? null;\n this.rebindTrigger();\n this.requestUpdate();\n }\n\n private onBodySlotChange = (event: Event): void => {\n const slot = event.target as HTMLSlotElement;\n this.hasSlottedBody = slot.assignedNodes({ flatten: true }).some((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n return true;\n }\n\n return node.nodeType === Node.TEXT_NODE && Boolean(node.textContent?.trim());\n });\n };\n\n private rebindTrigger(): void {\n this.unbindTrigger(this.triggerElement);\n\n if (this.for) {\n this.triggerElement = resolveElementById(this, this.for);\n }\n\n this.bindTrigger(this.triggerElement);\n }\n\n private usesPointerTrigger(): boolean {\n return !this.disabled && this.trigger !== 'manual';\n }\n\n private bindTrigger(trigger: HTMLElement | null): void {\n if (!trigger || !this.usesPointerTrigger()) {\n return;\n }\n\n if (!trigger.id) {\n trigger.id = this.triggerId;\n }\n\n trigger.setAttribute('aria-describedby', this.tooltipId);\n trigger.addEventListener('mouseenter', this.scheduleShow);\n trigger.addEventListener('mouseleave', this.scheduleHide);\n trigger.addEventListener('focus', this.scheduleShow);\n trigger.addEventListener('blur', this.scheduleHide);\n }\n\n private unbindTrigger(trigger: HTMLElement | null): void {\n if (!trigger) {\n return;\n }\n\n trigger.removeAttribute('aria-describedby');\n trigger.removeEventListener('mouseenter', this.scheduleShow);\n trigger.removeEventListener('mouseleave', this.scheduleHide);\n trigger.removeEventListener('focus', this.scheduleShow);\n trigger.removeEventListener('blur', this.scheduleHide);\n }\n\n private scheduleShow = (): void => {\n if (!this.usesPointerTrigger()) {\n return;\n }\n\n window.clearTimeout(this.closeTimer);\n window.clearTimeout(this.openTimer);\n this.openTimer = window.setTimeout(() => this.showTooltip(), this.openDelay);\n };\n\n private scheduleHide = (): void => {\n if (!this.usesPointerTrigger()) {\n return;\n }\n\n window.clearTimeout(this.openTimer);\n window.clearTimeout(this.closeTimer);\n this.closeTimer = window.setTimeout(() => this.hideTooltip(), this.closeDelay);\n };\n\n private getAnchor(): Element | string | null {\n if (this.for) {\n return resolveElementById(this, this.for);\n }\n\n if (this.triggerElement) {\n return this.triggerElement;\n }\n\n return null;\n }\n\n private prepareContentForEnter(content: HTMLElement | null | undefined): void {\n if (!content) {\n return;\n }\n\n content.classList.remove('closing');\n content.style.animation = 'none';\n void content.getBoundingClientRect();\n content.style.removeProperty('animation');\n content.style.removeProperty('opacity');\n content.style.removeProperty('transform');\n }\n\n private showTooltip(force = false): void {\n if (!this.getAnchor()) {\n return;\n }\n\n if (this.open && this.contentAnimated && !this.closing && !force) {\n return;\n }\n\n if (!this.open) {\n this.dispatchEvent(new PkShowEvent());\n }\n\n const generation = ++this.showGeneration;\n this.exitGeneration += 1;\n this.closing = false;\n this.open = true;\n this.contentAnimated = false;\n this.prepareContentForEnter(this.popupElement?.getContentElement());\n\n void this.updateComplete.then(async () => {\n if (generation !== this.showGeneration) {\n return;\n }\n\n await waitForPopupReposition(this.popupElement, this.placement);\n\n if (generation !== this.showGeneration) {\n return;\n }\n\n this.syncPlacementAnimation();\n this.prepareContentForEnter(this.popupElement?.getContentElement());\n this.contentAnimated = true;\n\n this.dispatchEvent(new PkAfterShowEvent());\n this.dispatchEvent(new CustomEvent('pk-open-change', {\n detail: { open: true },\n bubbles: true,\n composed: true,\n }));\n });\n }\n\n private hideTooltip(immediate = false, cancelable = false): void {\n if ((!this.open && !this.closing) && !immediate) {\n return;\n }\n\n if (this.closing && !immediate) {\n return;\n }\n\n if (cancelable) {\n const hideEvent = new PkHideEvent('api');\n\n if (!this.dispatchEvent(hideEvent)) {\n return;\n }\n }\n\n this.showGeneration += 1;\n\n if (immediate) {\n this.finishHide();\n return;\n }\n\n if (!this.contentAnimated) {\n this.finishHide();\n return;\n }\n\n void this.playExitAnimation();\n }\n\n private async playExitAnimation(): Promise<void> {\n if (!this.open) {\n return;\n }\n\n const generation = this.exitGeneration + 1;\n this.exitGeneration = generation;\n\n const content = this.popupElement?.getContentElement();\n\n this.closing = true;\n this.contentAnimated = false;\n\n if (content) {\n await this.waitForExitAnimation(content);\n }\n\n if (generation !== this.exitGeneration) {\n return;\n }\n\n this.finishHide();\n }\n\n private waitForExitAnimation(content: HTMLElement): Promise<void> {\n return new Promise((resolve) => {\n let settled = false;\n\n const finish = (): void => {\n if (settled) {\n return;\n }\n\n settled = true;\n content.removeEventListener('animationend', onAnimationEnd);\n window.clearTimeout(fallback);\n content.classList.remove('closing');\n resolve();\n };\n\n const onAnimationEnd = (event: AnimationEvent): void => {\n if (event.target === content && event.animationName.startsWith('pk-tooltip-out')) {\n finish();\n }\n };\n\n content.classList.add('closing');\n content.addEventListener('animationend', onAnimationEnd);\n const fallback = window.setTimeout(finish, 200);\n });\n }\n\n private finishHide(): void {\n const content = this.popupElement?.getContentElement();\n\n this.closing = false;\n this.contentAnimated = false;\n this.contentSide = null;\n this.open = false;\n this.popupElement?.removeAttribute('data-side');\n this.prepareContentForEnter(content);\n\n this.dispatchEvent(new PkAfterHideEvent());\n this.dispatchEvent(new CustomEvent('pk-open-change', {\n detail: { open: false },\n bubbles: true,\n composed: true,\n }));\n }\n\n override render() {\n const anchor = this.getAnchor();\n\n return html`\n <slot name=\"trigger\" @slotchange=${this.onTriggerSlotChange}></slot>\n <pk-popup\n .active=${this.open || this.closing}\n .anchor=${anchor ?? ''}\n .placement=${this.placement}\n .distance=${4}\n hover-bridge\n flip\n shift\n >\n <div\n part=\"content\"\n class=${classMap({\n content: true,\n 'pk-popup-content': true,\n closing: this.closing,\n })}\n id=${this.tooltipId}\n role=\"tooltip\"\n ?hidden=${!this.open && !this.closing}\n data-open=${this.contentAnimated && !this.closing ? '' : nothing}\n data-side=${this.contentSide ?? nothing}\n >\n <slot @slotchange=${this.onBodySlotChange}></slot>\n ${this.hasSlottedBody ? nothing : (this.content || nothing)}\n </div>\n </pk-popup>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-tooltip': PkTooltip;\n }\n}\n"],"mappings":"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"}
@@ -114,4 +114,4 @@ var popupContentAnimationStyles = css`
114
114
  //#endregion
115
115
  export { popupContentAnimationStyles as t };
116
116
 
117
- //# sourceMappingURL=popup-content-animation.styles-BnNiguJo.js.map
117
+ //# sourceMappingURL=popup-content-animation.styles-EUnGV75J.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"popup-content-animation.styles-BnNiguJo.js","names":[],"sources":["../../src/styles/popup-content-animation.styles.ts"],"sourcesContent":["import { css } from 'lit';\n\n/**\n * Placement-aware popup enter/exit motion — mirrors plugin-kit-react DropdownMenu\n * (fade + zoom + side slide on enter; fade + zoom only on exit).\n *\n * Keyframes stay outside `@layer` so constructed stylesheets resolve animation\n * names reliably (Chrome DevTools otherwise reports them as undefined).\n */\nexport const popupContentAnimationStyles = css`\n @layer pk-component {\n .pk-popup-content {\n transform-origin: var(--pk-transform-origin, top);\n }\n\n .pk-popup-content[data-open] {\n animation: pk-popup-content-in 100ms ease-out;\n }\n\n .pk-popup-content[data-open][data-side='bottom'] {\n animation-name: pk-popup-content-in-bottom;\n }\n\n .pk-popup-content[data-open][data-side='top'] {\n animation-name: pk-popup-content-in-top;\n }\n\n .pk-popup-content[data-open][data-side='left'] {\n animation-name: pk-popup-content-in-left;\n }\n\n .pk-popup-content[data-open][data-side='right'] {\n animation-name: pk-popup-content-in-right;\n }\n\n /* Exit: fade + zoom only — matches tw-animate animate-out / tooltip motion. */\n .pk-popup-content.closing {\n animation: pk-popup-content-out 100ms ease-in forwards;\n }\n }\n\n @keyframes pk-popup-content-in {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n\n @keyframes pk-popup-content-out {\n from {\n opacity: 1;\n transform: scale(1);\n }\n\n to {\n opacity: 0;\n transform: scale(0.95);\n }\n }\n\n @keyframes pk-popup-content-in-bottom {\n from {\n opacity: 0;\n transform: scale(0.95) translateY(-0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n @keyframes pk-popup-content-in-top {\n from {\n opacity: 0;\n transform: scale(0.95) translateY(0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n @keyframes pk-popup-content-in-left {\n from {\n opacity: 0;\n transform: scale(0.95) translateX(0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateX(0);\n }\n }\n\n @keyframes pk-popup-content-in-right {\n from {\n opacity: 0;\n transform: scale(0.95) translateX(-0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateX(0);\n }\n }\n`;\n"],"mappings":";;;;;;;;;AASA,IAAa,8BAA8B,GAAG"}
1
+ {"version":3,"file":"popup-content-animation.styles-EUnGV75J.js","names":[],"sources":["../../src/styles/popup-content-animation.styles.ts"],"sourcesContent":["import { css } from 'lit';\n\n/**\n * Placement-aware popup enter/exit motion — mirrors plugin-kit-react DropdownMenu\n * (fade + zoom + side slide on enter; fade + zoom only on exit).\n *\n * Keyframes stay outside `@layer` so constructed stylesheets resolve animation\n * names reliably (Chrome DevTools otherwise reports them as undefined).\n */\nexport const popupContentAnimationStyles = css`\n @layer pk-component {\n .pk-popup-content {\n transform-origin: var(--pk-transform-origin, top);\n }\n\n .pk-popup-content[data-open] {\n animation: pk-popup-content-in 100ms ease-out;\n }\n\n .pk-popup-content[data-open][data-side='bottom'] {\n animation-name: pk-popup-content-in-bottom;\n }\n\n .pk-popup-content[data-open][data-side='top'] {\n animation-name: pk-popup-content-in-top;\n }\n\n .pk-popup-content[data-open][data-side='left'] {\n animation-name: pk-popup-content-in-left;\n }\n\n .pk-popup-content[data-open][data-side='right'] {\n animation-name: pk-popup-content-in-right;\n }\n\n /* Exit: fade + zoom only — matches tw-animate animate-out / tooltip motion. */\n .pk-popup-content.closing {\n animation: pk-popup-content-out 100ms ease-in forwards;\n }\n }\n\n @keyframes pk-popup-content-in {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n\n @keyframes pk-popup-content-out {\n from {\n opacity: 1;\n transform: scale(1);\n }\n\n to {\n opacity: 0;\n transform: scale(0.95);\n }\n }\n\n @keyframes pk-popup-content-in-bottom {\n from {\n opacity: 0;\n transform: scale(0.95) translateY(-0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n @keyframes pk-popup-content-in-top {\n from {\n opacity: 0;\n transform: scale(0.95) translateY(0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n @keyframes pk-popup-content-in-left {\n from {\n opacity: 0;\n transform: scale(0.95) translateX(0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateX(0);\n }\n }\n\n @keyframes pk-popup-content-in-right {\n from {\n opacity: 0;\n transform: scale(0.95) translateX(-0.5rem);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateX(0);\n }\n }\n`;\n"],"mappings":";;;;;;;;;AASA,IAAa,8BAA8B,GAAG"}
@@ -57,4 +57,4 @@ function waitForPopupReposition(popup, fallbackPlacement, timeoutMs = 100, optio
57
57
  //#endregion
58
58
  export { waitForPopupReposition as i, getPopupSide as n, syncPopupPlacementAnimation as r, computePopupTransformOrigin as t };
59
59
 
60
- //# sourceMappingURL=popup-placement-animation-WlEXnS85.js.map
60
+ //# sourceMappingURL=popup-placement-animation-GvFXER7D.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"popup-placement-animation-WlEXnS85.js","names":[],"sources":["../../src/utils/popup-placement-animation.ts"],"sourcesContent":["type PopupSide = 'top' | 'bottom' | 'left' | 'right';\n\ntype RectLike = {\n x: number;\n y: number;\n width: number;\n height: number;\n};\n\n/** Maps Floating UI placement to a physical side for motion CSS. */\nexport function getPopupSide(placement: string): PopupSide {\n const side = placement.split('-')[0];\n\n if (side === 'inline-start') {\n return 'left';\n }\n\n if (side === 'inline-end') {\n return 'right';\n }\n\n if (side === 'top' || side === 'bottom' || side === 'left' || side === 'right') {\n return side;\n }\n\n return 'bottom';\n}\n\n/**\n * Transform origin at the anchor center on the connecting edge — matches Base UI\n * (`@base-ui/react` useAnchorPositioning transformOrigin middleware), which\n * plugin-kit-react relies on via `--transform-origin`.\n */\nexport function computePopupTransformOrigin(\n placement: string,\n referenceRect: RectLike,\n floatingRect: RectLike,\n sideOffset: number,\n shift?: { x?: number; y?: number },\n): string {\n const side = getPopupSide(placement);\n const transformX = referenceRect.x + referenceRect.width / 2 - floatingRect.x;\n const transformY = referenceRect.y + referenceRect.height / 2 - floatingRect.y;\n const shiftY = Math.abs(shift?.y ?? 0);\n const isOverlappingAnchor = shiftY > sideOffset;\n\n if (isOverlappingAnchor && (side === 'top' || side === 'bottom')) {\n return `${transformX}px ${referenceRect.y + referenceRect.height / 2 - floatingRect.y}px`;\n }\n\n const adjacentTransformOrigin: Record<PopupSide, string> = {\n top: `${transformX}px calc(100% + ${sideOffset}px)`,\n bottom: `${transformX}px ${-sideOffset}px`,\n left: `calc(100% + ${sideOffset}px) ${transformY}px`,\n right: `${-sideOffset}px ${transformY}px`,\n };\n\n return adjacentTransformOrigin[side];\n}\n\n/** Applies `data-side` for placement-aware slide/zoom CSS. */\nexport function syncPopupPlacementAnimation(element: HTMLElement, placement: string | null | undefined): void {\n if (!placement) {\n element.removeAttribute('data-side');\n return;\n }\n\n element.setAttribute('data-side', getPopupSide(placement));\n}\n\n/** Waits for the first `pk-reposition` on a popup. */\nexport function waitForPopupReposition(\n popup: HTMLElement,\n fallbackPlacement: string,\n timeoutMs = 100,\n options?: { requireEvent?: boolean },\n): Promise<string> {\n const readPlacement = (): string => {\n return popup.getAttribute('data-current-placement') ?? fallbackPlacement;\n };\n\n if (!options?.requireEvent && popup.hasAttribute('data-current-placement')) {\n return Promise.resolve(readPlacement());\n }\n\n return new Promise((resolve) => {\n let settled = false;\n\n const finish = (): void => {\n if (settled) {\n return;\n }\n\n settled = true;\n resolve(readPlacement());\n };\n\n popup.addEventListener('pk-reposition', finish, { once: true });\n\n // Attribute-only poll races settleInitialPosition: data-current-placement is\n // written before .positioned (visibility:hidden clears). Skip when the caller\n // needs the post-reveal pk-reposition (focus / enter animation).\n if (!options?.requireEvent) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (popup.hasAttribute('data-current-placement')) {\n finish();\n }\n });\n });\n }\n\n window.setTimeout(finish, timeoutMs);\n });\n}\n"],"mappings":";;AAUA,SAAgB,aAAa,WAA8B;CACvD,MAAM,OAAO,UAAU,MAAM,IAAI,CAAC;AAElC,KAAI,SAAS,eACT,QAAO;AAGX,KAAI,SAAS,aACT,QAAO;AAGX,KAAI,SAAS,SAAS,SAAS,YAAY,SAAS,UAAU,SAAS,QACnE,QAAO;AAGX,QAAO;;;;;;;AAQX,SAAgB,4BACZ,WACA,eACA,cACA,YACA,OACM;CACN,MAAM,OAAO,aAAa,UAAU;CACpC,MAAM,aAAa,cAAc,IAAI,cAAc,QAAQ,IAAI,aAAa;CAC5E,MAAM,aAAa,cAAc,IAAI,cAAc,SAAS,IAAI,aAAa;AAI7E,KAHe,KAAK,IAAI,OAAO,KAAK,EACR,GAAS,eAET,SAAS,SAAS,SAAS,UACnD,QAAO,GAAG,WAAW,KAAK,cAAc,IAAI,cAAc,SAAS,IAAI,aAAa,EAAE;AAU1F,QAAO;EANH,KAAK,GAAG,WAAW,iBAAiB,WAAW;EAC/C,QAAQ,GAAG,WAAW,KAAK,CAAC,WAAW;EACvC,MAAM,eAAe,WAAW,MAAM,WAAW;EACjD,OAAO,GAAG,CAAC,WAAW,KAAK,WAAW;EAGnC,CAAwB;;;AAInC,SAAgB,4BAA4B,SAAsB,WAA4C;AAC1G,KAAI,CAAC,WAAW;AACZ,UAAQ,gBAAgB,YAAY;AACpC;;AAGJ,SAAQ,aAAa,aAAa,aAAa,UAAU,CAAC;;;AAI9D,SAAgB,uBACZ,OACA,mBACA,YAAY,KACZ,SACe;CACf,MAAM,sBAA8B;AAChC,SAAO,MAAM,aAAa,yBAAyB,IAAI;;AAG3D,KAAI,CAAC,SAAS,gBAAgB,MAAM,aAAa,yBAAyB,CACtE,QAAO,QAAQ,QAAQ,eAAe,CAAC;AAG3C,QAAO,IAAI,SAAS,YAAY;EAC5B,IAAI,UAAU;EAEd,MAAM,eAAqB;AACvB,OAAI,QACA;AAGJ,aAAU;AACV,WAAQ,eAAe,CAAC;;AAG5B,QAAM,iBAAiB,iBAAiB,QAAQ,EAAE,MAAM,MAAM,CAAC;AAK/D,MAAI,CAAC,SAAS,aACV,6BAA4B;AACxB,+BAA4B;AACxB,QAAI,MAAM,aAAa,yBAAyB,CAC5C,SAAQ;KAEd;IACJ;AAGN,SAAO,WAAW,QAAQ,UAAU;GACtC"}
1
+ {"version":3,"file":"popup-placement-animation-GvFXER7D.js","names":[],"sources":["../../src/utils/popup-placement-animation.ts"],"sourcesContent":["type PopupSide = 'top' | 'bottom' | 'left' | 'right';\n\ntype RectLike = {\n x: number;\n y: number;\n width: number;\n height: number;\n};\n\n/** Maps Floating UI placement to a physical side for motion CSS. */\nexport function getPopupSide(placement: string): PopupSide {\n const side = placement.split('-')[0];\n\n if (side === 'inline-start') {\n return 'left';\n }\n\n if (side === 'inline-end') {\n return 'right';\n }\n\n if (side === 'top' || side === 'bottom' || side === 'left' || side === 'right') {\n return side;\n }\n\n return 'bottom';\n}\n\n/**\n * Transform origin at the anchor center on the connecting edge — matches Base UI\n * (`@base-ui/react` useAnchorPositioning transformOrigin middleware), which\n * plugin-kit-react relies on via `--transform-origin`.\n */\nexport function computePopupTransformOrigin(\n placement: string,\n referenceRect: RectLike,\n floatingRect: RectLike,\n sideOffset: number,\n shift?: { x?: number; y?: number },\n): string {\n const side = getPopupSide(placement);\n const transformX = referenceRect.x + referenceRect.width / 2 - floatingRect.x;\n const transformY = referenceRect.y + referenceRect.height / 2 - floatingRect.y;\n const shiftY = Math.abs(shift?.y ?? 0);\n const isOverlappingAnchor = shiftY > sideOffset;\n\n if (isOverlappingAnchor && (side === 'top' || side === 'bottom')) {\n return `${transformX}px ${referenceRect.y + referenceRect.height / 2 - floatingRect.y}px`;\n }\n\n const adjacentTransformOrigin: Record<PopupSide, string> = {\n top: `${transformX}px calc(100% + ${sideOffset}px)`,\n bottom: `${transformX}px ${-sideOffset}px`,\n left: `calc(100% + ${sideOffset}px) ${transformY}px`,\n right: `${-sideOffset}px ${transformY}px`,\n };\n\n return adjacentTransformOrigin[side];\n}\n\n/** Applies `data-side` for placement-aware slide/zoom CSS. */\nexport function syncPopupPlacementAnimation(element: HTMLElement, placement: string | null | undefined): void {\n if (!placement) {\n element.removeAttribute('data-side');\n return;\n }\n\n element.setAttribute('data-side', getPopupSide(placement));\n}\n\n/** Waits for the first `pk-reposition` on a popup. */\nexport function waitForPopupReposition(\n popup: HTMLElement,\n fallbackPlacement: string,\n timeoutMs = 100,\n options?: { requireEvent?: boolean },\n): Promise<string> {\n const readPlacement = (): string => {\n return popup.getAttribute('data-current-placement') ?? fallbackPlacement;\n };\n\n if (!options?.requireEvent && popup.hasAttribute('data-current-placement')) {\n return Promise.resolve(readPlacement());\n }\n\n return new Promise((resolve) => {\n let settled = false;\n\n const finish = (): void => {\n if (settled) {\n return;\n }\n\n settled = true;\n resolve(readPlacement());\n };\n\n popup.addEventListener('pk-reposition', finish, { once: true });\n\n // Attribute-only poll races settleInitialPosition: data-current-placement is\n // written before .positioned (visibility:hidden clears). Skip when the caller\n // needs the post-reveal pk-reposition (focus / enter animation).\n if (!options?.requireEvent) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (popup.hasAttribute('data-current-placement')) {\n finish();\n }\n });\n });\n }\n\n window.setTimeout(finish, timeoutMs);\n });\n}\n"],"mappings":";;AAUA,SAAgB,aAAa,WAA8B;CACvD,MAAM,OAAO,UAAU,MAAM,IAAI,CAAC;AAElC,KAAI,SAAS,eACT,QAAO;AAGX,KAAI,SAAS,aACT,QAAO;AAGX,KAAI,SAAS,SAAS,SAAS,YAAY,SAAS,UAAU,SAAS,QACnE,QAAO;AAGX,QAAO;;;;;;;AAQX,SAAgB,4BACZ,WACA,eACA,cACA,YACA,OACM;CACN,MAAM,OAAO,aAAa,UAAU;CACpC,MAAM,aAAa,cAAc,IAAI,cAAc,QAAQ,IAAI,aAAa;CAC5E,MAAM,aAAa,cAAc,IAAI,cAAc,SAAS,IAAI,aAAa;AAI7E,KAHe,KAAK,IAAI,OAAO,KAAK,EACR,GAAS,eAET,SAAS,SAAS,SAAS,UACnD,QAAO,GAAG,WAAW,KAAK,cAAc,IAAI,cAAc,SAAS,IAAI,aAAa,EAAE;AAU1F,QAAO;EANH,KAAK,GAAG,WAAW,iBAAiB,WAAW;EAC/C,QAAQ,GAAG,WAAW,KAAK,CAAC,WAAW;EACvC,MAAM,eAAe,WAAW,MAAM,WAAW;EACjD,OAAO,GAAG,CAAC,WAAW,KAAK,WAAW;EAGnC,CAAwB;;;AAInC,SAAgB,4BAA4B,SAAsB,WAA4C;AAC1G,KAAI,CAAC,WAAW;AACZ,UAAQ,gBAAgB,YAAY;AACpC;;AAGJ,SAAQ,aAAa,aAAa,aAAa,UAAU,CAAC;;;AAI9D,SAAgB,uBACZ,OACA,mBACA,YAAY,KACZ,SACe;CACf,MAAM,sBAA8B;AAChC,SAAO,MAAM,aAAa,yBAAyB,IAAI;;AAG3D,KAAI,CAAC,SAAS,gBAAgB,MAAM,aAAa,yBAAyB,CACtE,QAAO,QAAQ,QAAQ,eAAe,CAAC;AAG3C,QAAO,IAAI,SAAS,YAAY;EAC5B,IAAI,UAAU;EAEd,MAAM,eAAqB;AACvB,OAAI,QACA;AAGJ,aAAU;AACV,WAAQ,eAAe,CAAC;;AAG5B,QAAM,iBAAiB,iBAAiB,QAAQ,EAAE,MAAM,MAAM,CAAC;AAK/D,MAAI,CAAC,SAAS,aACV,6BAA4B;AACxB,+BAA4B;AACxB,QAAI,MAAM,aAAa,yBAAyB,CAC5C,SAAQ;KAEd;IACJ;AAGN,SAAO,WAAW,QAAQ,UAAU;GACtC"}
@@ -31,4 +31,4 @@ function isPointerInsideOverlay(event, options = {}) {
31
31
  //#endregion
32
32
  export { isPointerInsideOverlay as n, isEventInsideOverlay as t };
33
33
 
34
- //# sourceMappingURL=popup-pointer-CuLjk1th.js.map
34
+ //# sourceMappingURL=popup-pointer-BTS3Y6LE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"popup-pointer-CuLjk1th.js","names":[],"sources":["../../src/utils/popup-pointer.ts"],"sourcesContent":["/**\n * Returns true when a pointer event occurred on pk-popup content.\n *\n * Intentionally matches *any* popup surface — callers that need overlay-scoped\n * hit testing should use {@link isEventInsideOverlay} instead.\n */\nexport function isPointerInPopupSurface(event: PointerEvent): boolean {\n return event.composedPath().some((node) => {\n if (!(node instanceof HTMLElement)) {\n return false;\n }\n\n return node.classList.contains('popup')\n || node.localName === 'pk-popup';\n });\n}\n\nexport type PointerInsideOverlayOptions = {\n host?: HTMLElement;\n anchor?: Element | null;\n panel?: Element | null;\n extraMatches?: (element: HTMLElement) => boolean;\n};\n\n/** Resolve the pk-popup that owns this overlay's panel (or the host's popup). */\nfunction resolveOwnPopup(options: PointerInsideOverlayOptions): Element | null {\n if (options.panel instanceof Element) {\n const closest = options.panel.closest('pk-popup');\n\n if (closest) {\n return closest;\n }\n\n // Panel may live in a shadow tree whose host is pk-popup.\n const root = options.panel.getRootNode();\n\n if (root instanceof ShadowRoot && root.host.localName === 'pk-popup') {\n return root.host;\n }\n }\n\n if (options.host instanceof HTMLElement) {\n return options.host.shadowRoot?.querySelector('pk-popup')\n ?? options.host.querySelector(':scope > pk-popup')\n ?? options.host.querySelector('pk-popup');\n }\n\n return null;\n}\n\n/** Shared hit/focus-path testing for pk-popup consumers (pointer or keyboard events). */\nexport function isEventInsideOverlay(\n event: Event,\n options: PointerInsideOverlayOptions = {},\n): boolean {\n const path = event.composedPath();\n\n if (options.host && path.includes(options.host)) {\n return true;\n }\n\n if (options.anchor && path.includes(options.anchor)) {\n return true;\n }\n\n if (options.panel && path.includes(options.panel)) {\n return true;\n }\n\n // Only *this* overlay's popup counts. Dropdown menus slot their trigger inside\n // pk-popup as the anchor — matching any pk-popup here would treat a click on\n // another menu's trigger as \"inside\" and block light-dismiss (two menus open).\n const ownPopup = resolveOwnPopup(options);\n\n if (ownPopup && path.includes(ownPopup)) {\n return true;\n }\n\n return path.some((node) => {\n if (!(node instanceof HTMLElement)) {\n return false;\n }\n\n // Own popup internals may use a `.popup` surface node that is not the\n // custom element itself — still scoped via ancestry to ownPopup.\n if (\n ownPopup\n && node.classList.contains('popup')\n && (node === ownPopup || ownPopup.contains(node))\n ) {\n return true;\n }\n\n return options.extraMatches?.(node) ?? false;\n });\n}\n\n/** Shared light-dismiss hit testing for pk-popup consumers. */\nexport function isPointerInsideOverlay(\n event: PointerEvent,\n options: PointerInsideOverlayOptions = {},\n): boolean {\n return isEventInsideOverlay(event, options);\n}\n"],"mappings":";;AAyBA,SAAS,gBAAgB,SAAsD;AAC3E,KAAI,QAAQ,iBAAiB,SAAS;EAClC,MAAM,UAAU,QAAQ,MAAM,QAAQ,WAAW;AAEjD,MAAI,QACA,QAAO;EAIX,MAAM,OAAO,QAAQ,MAAM,aAAa;AAExC,MAAI,gBAAgB,cAAc,KAAK,KAAK,cAAc,WACtD,QAAO,KAAK;;AAIpB,KAAI,QAAQ,gBAAgB,YACxB,QAAO,QAAQ,KAAK,YAAY,cAAc,WAAW,IAClD,QAAQ,KAAK,cAAc,oBAAoB,IAC/C,QAAQ,KAAK,cAAc,WAAW;AAGjD,QAAO;;;AAIX,SAAgB,qBACZ,OACA,UAAuC,EAAE,EAClC;CACP,MAAM,OAAO,MAAM,cAAc;AAEjC,KAAI,QAAQ,QAAQ,KAAK,SAAS,QAAQ,KAAK,CAC3C,QAAO;AAGX,KAAI,QAAQ,UAAU,KAAK,SAAS,QAAQ,OAAO,CAC/C,QAAO;AAGX,KAAI,QAAQ,SAAS,KAAK,SAAS,QAAQ,MAAM,CAC7C,QAAO;CAMX,MAAM,WAAW,gBAAgB,QAAQ;AAEzC,KAAI,YAAY,KAAK,SAAS,SAAS,CACnC,QAAO;AAGX,QAAO,KAAK,MAAM,SAAS;AACvB,MAAI,EAAE,gBAAgB,aAClB,QAAO;AAKX,MACI,YACG,KAAK,UAAU,SAAS,QAAQ,KAC/B,SAAS,YAAY,SAAS,SAAS,KAAK,EAEhD,QAAO;AAGX,SAAO,QAAQ,eAAe,KAAK,IAAI;GACzC;;;AAIN,SAAgB,uBACZ,OACA,UAAuC,EAAE,EAClC;AACP,QAAO,qBAAqB,OAAO,QAAQ"}
1
+ {"version":3,"file":"popup-pointer-BTS3Y6LE.js","names":[],"sources":["../../src/utils/popup-pointer.ts"],"sourcesContent":["/**\n * Returns true when a pointer event occurred on pk-popup content.\n *\n * Intentionally matches *any* popup surface — callers that need overlay-scoped\n * hit testing should use {@link isEventInsideOverlay} instead.\n */\nexport function isPointerInPopupSurface(event: PointerEvent): boolean {\n return event.composedPath().some((node) => {\n if (!(node instanceof HTMLElement)) {\n return false;\n }\n\n return node.classList.contains('popup')\n || node.localName === 'pk-popup';\n });\n}\n\nexport type PointerInsideOverlayOptions = {\n host?: HTMLElement;\n anchor?: Element | null;\n panel?: Element | null;\n extraMatches?: (element: HTMLElement) => boolean;\n};\n\n/** Resolve the pk-popup that owns this overlay's panel (or the host's popup). */\nfunction resolveOwnPopup(options: PointerInsideOverlayOptions): Element | null {\n if (options.panel instanceof Element) {\n const closest = options.panel.closest('pk-popup');\n\n if (closest) {\n return closest;\n }\n\n // Panel may live in a shadow tree whose host is pk-popup.\n const root = options.panel.getRootNode();\n\n if (root instanceof ShadowRoot && root.host.localName === 'pk-popup') {\n return root.host;\n }\n }\n\n if (options.host instanceof HTMLElement) {\n return options.host.shadowRoot?.querySelector('pk-popup')\n ?? options.host.querySelector(':scope > pk-popup')\n ?? options.host.querySelector('pk-popup');\n }\n\n return null;\n}\n\n/** Shared hit/focus-path testing for pk-popup consumers (pointer or keyboard events). */\nexport function isEventInsideOverlay(\n event: Event,\n options: PointerInsideOverlayOptions = {},\n): boolean {\n const path = event.composedPath();\n\n if (options.host && path.includes(options.host)) {\n return true;\n }\n\n if (options.anchor && path.includes(options.anchor)) {\n return true;\n }\n\n if (options.panel && path.includes(options.panel)) {\n return true;\n }\n\n // Only *this* overlay's popup counts. Dropdown menus slot their trigger inside\n // pk-popup as the anchor — matching any pk-popup here would treat a click on\n // another menu's trigger as \"inside\" and block light-dismiss (two menus open).\n const ownPopup = resolveOwnPopup(options);\n\n if (ownPopup && path.includes(ownPopup)) {\n return true;\n }\n\n return path.some((node) => {\n if (!(node instanceof HTMLElement)) {\n return false;\n }\n\n // Own popup internals may use a `.popup` surface node that is not the\n // custom element itself — still scoped via ancestry to ownPopup.\n if (\n ownPopup\n && node.classList.contains('popup')\n && (node === ownPopup || ownPopup.contains(node))\n ) {\n return true;\n }\n\n return options.extraMatches?.(node) ?? false;\n });\n}\n\n/** Shared light-dismiss hit testing for pk-popup consumers. */\nexport function isPointerInsideOverlay(\n event: PointerEvent,\n options: PointerInsideOverlayOptions = {},\n): boolean {\n return isEventInsideOverlay(event, options);\n}\n"],"mappings":";;AAyBA,SAAS,gBAAgB,SAAsD;AAC3E,KAAI,QAAQ,iBAAiB,SAAS;EAClC,MAAM,UAAU,QAAQ,MAAM,QAAQ,WAAW;AAEjD,MAAI,QACA,QAAO;EAIX,MAAM,OAAO,QAAQ,MAAM,aAAa;AAExC,MAAI,gBAAgB,cAAc,KAAK,KAAK,cAAc,WACtD,QAAO,KAAK;;AAIpB,KAAI,QAAQ,gBAAgB,YACxB,QAAO,QAAQ,KAAK,YAAY,cAAc,WAAW,IAClD,QAAQ,KAAK,cAAc,oBAAoB,IAC/C,QAAQ,KAAK,cAAc,WAAW;AAGjD,QAAO;;;AAIX,SAAgB,qBACZ,OACA,UAAuC,EAAE,EAClC;CACP,MAAM,OAAO,MAAM,cAAc;AAEjC,KAAI,QAAQ,QAAQ,KAAK,SAAS,QAAQ,KAAK,CAC3C,QAAO;AAGX,KAAI,QAAQ,UAAU,KAAK,SAAS,QAAQ,OAAO,CAC/C,QAAO;AAGX,KAAI,QAAQ,SAAS,KAAK,SAAS,QAAQ,MAAM,CAC7C,QAAO;CAMX,MAAM,WAAW,gBAAgB,QAAQ;AAEzC,KAAI,YAAY,KAAK,SAAS,SAAS,CACnC,QAAO;AAGX,QAAO,KAAK,MAAM,SAAS;AACvB,MAAI,EAAE,gBAAgB,aAClB,QAAO;AAKX,MACI,YACG,KAAK,UAAU,SAAS,QAAQ,KAC/B,SAAS,YAAY,SAAS,SAAS,KAAK,EAEhD,QAAO;AAGX,SAAO,QAAQ,eAAe,KAAK,IAAI;GACzC;;;AAIN,SAAgB,uBACZ,OACA,UAAuC,EAAE,EAClC;AACP,QAAO,qBAAqB,OAAO,QAAQ"}
@@ -1,89 +1,95 @@
1
- import { t as PkSpinner } from "./pk-spinner-DweuYJ_Z.js";
2
- import { t as PkButton } from "./pk-button-BrH4u4Qr.js";
1
+ import { t as PkCopyButton } from "./pk-copy-button-KegSx46o.js";
2
+ import { t as PkAlert } from "./pk-alert-Cjxl6CY_.js";
3
+ import { t as PkSpinner } from "./pk-spinner-CN365srE.js";
4
+ import { t as PkButton } from "./pk-button-DCtNLEPr.js";
5
+ import "../components/alert.js";
6
+ import { PkIcon } from "../components/icon/pk-icon.js";
7
+ import { t as PkStatePanel } from "./pk-state-panel-DPP7t-er.js";
8
+ import "../components/state-panel.js";
3
9
  import "../components/button.js";
4
- import { t as PkButtonGroup } from "./pk-button-group-BSz5T5iS.js";
5
- import { t as PkButtonGroupSeparator } from "./pk-button-group-separator-DH3Rl24b.js";
6
- import { t as PkButtonGroupText } from "./pk-button-group-text-Qro_KmZb.js";
10
+ import { t as PkButtonGroup } from "./pk-button-group-DBdKK_2_.js";
11
+ import { t as PkButtonGroupSeparator } from "./pk-button-group-separator-D0Aa0a0f.js";
12
+ import { t as PkButtonGroupText } from "./pk-button-group-text-BsqEM-dB.js";
7
13
  import "../components/button-group.js";
8
- import { t as PkCheckbox } from "./pk-checkbox-13ArHSmt.js";
14
+ import { t as PkCheckbox } from "./pk-checkbox-dvHRoVbL.js";
9
15
  import "../components/checkbox.js";
10
- import { n as PkCheckboxSelect } from "./pk-checkbox-select-Ckvfbu83.js";
16
+ import { n as PkCheckboxSelect } from "./pk-checkbox-select-Cqx5ZCMq.js";
11
17
  import "../components/checkbox-select.js";
12
- import { t as PkCodeEditor } from "./pk-code-editor-BlG6O5qB.js";
18
+ import { t as PkCodeEditor } from "./pk-code-editor-C_PqjR75.js";
13
19
  import "../components/code-editor.js";
14
- import { t as PkCombobox } from "./pk-combobox-ag89QEX2.js";
15
- import { t as PkPopup } from "./pk-popup-B65tZMQH.js";
16
- import { t as PkInput } from "./pk-input-BywmK5n2.js";
20
+ import { t as PkCombobox } from "./pk-combobox-BeddzAsl.js";
21
+ import { t as PkPopup } from "./pk-popup-0EIt9X_W.js";
22
+ import { t as PkInput } from "./pk-input-CiUNLTSW.js";
17
23
  import "../components/input.js";
18
- import { t as PkInputGroup } from "./pk-input-group-BLqKPnfc.js";
19
- import { t as PkInputGroupAddon } from "./pk-input-group-addon-ClBkGmAw.js";
20
- import { t as PkInputGroupButton } from "./pk-input-group-button-CHQHsWd4.js";
21
- import { t as PkInputGroupInput } from "./pk-input-group-input-oNnqMBGU.js";
22
- import { t as PkInputGroupText } from "./pk-input-group-text-HUxlXROB.js";
23
- import { t as PkInputGroupTextarea } from "./pk-input-group-textarea-Cl2FNuw-.js";
24
+ import { t as PkInputGroup } from "./pk-input-group-k7WV0pQI.js";
25
+ import { t as PkInputGroupAddon } from "./pk-input-group-addon-piOznzSS.js";
26
+ import { t as PkInputGroupButton } from "./pk-input-group-button-Di2vEJLo.js";
27
+ import { t as PkInputGroupInput } from "./pk-input-group-input-CwaaEfr1.js";
28
+ import { t as PkInputGroupText } from "./pk-input-group-text-C0VAdy0J.js";
29
+ import { t as PkInputGroupTextarea } from "./pk-input-group-textarea-DOG1NIlE.js";
24
30
  import "../components/input-group.js";
25
- import { t as PkTextarea } from "./pk-textarea-Dhj1WFLH.js";
31
+ import { t as PkTextarea } from "./pk-textarea-CBijEmcV.js";
26
32
  import "../components/textarea.js";
27
- import { t as PkSeparator } from "./pk-separator-N-VyjYE6.js";
33
+ import { t as PkSeparator } from "./pk-separator-Bcxg_GO2.js";
28
34
  import "../components/separator.js";
29
- import { t as PkStatus } from "./pk-status-BehQARDv.js";
35
+ import { t as PkStatus } from "./pk-status-CYcadu0Q.js";
30
36
  import "../components/status.js";
31
- import { t as PkToggle } from "./pk-toggle-BthhH7vl.js";
37
+ import { t as PkToggle } from "./pk-toggle-CAtGO_Le.js";
32
38
  import "../components/toggle.js";
33
- import { t as PkToggleGroup } from "./pk-toggle-group-D2Quux8D.js";
39
+ import { t as PkToggleGroup } from "./pk-toggle-group-CLso6OE7.js";
34
40
  import "../components/toggle-group.js";
35
- import { t as PkLightswitch } from "./pk-lightswitch-VHfJizBW.js";
41
+ import { t as PkLightswitch } from "./pk-lightswitch-FH5ZxMG2.js";
36
42
  import "../components/lightswitch.js";
37
- import { t as PkDialog } from "./pk-dialog-VMQqLW1f.js";
38
- import { PkIcon } from "../components/icon/pk-icon.js";
43
+ import { t as PkDialog } from "./pk-dialog-CFU850OH.js";
39
44
  import { PkConnect } from "../components/connect/pk-connect.js";
40
45
  import { PkConnectOauth } from "../components/connect/pk-connect-oauth.js";
41
46
  import "../components/connect.js";
42
- import { t as PkCopyButton } from "./pk-copy-button-BVaOLtYG.js";
43
47
  import "../components/copy-button.js";
44
48
  import "../components/dialog.js";
45
- import { t as PkDropdownItem } from "./pk-dropdown-item-D9OaG5o-.js";
46
- import { t as PkDropdownMenu } from "./pk-dropdown-menu-DW1wI8xQ.js";
47
- import { t as PkDropdownLabel } from "./pk-dropdown-label-CRNWMWQd.js";
49
+ import { t as PkDropdownItem } from "./pk-dropdown-item-A4P4zfVF.js";
50
+ import { t as PkDropdownMenu } from "./pk-dropdown-menu-C_vasBoa.js";
51
+ import { t as PkDropdownLabel } from "./pk-dropdown-label-PqDxMkCI.js";
48
52
  import { PkDropdownSeparator } from "../components/dropdown-menu/pk-dropdown-separator.js";
49
53
  import "../components/dropdown-menu.js";
50
- import { t as PkColorInput } from "./pk-color-input-BRgQ5-vB.js";
51
- import { t as PkCalendar } from "./pk-calendar-Z7Y0PjeY.js";
52
- import { t as PkDatePicker } from "./pk-date-picker-C2YvDPNm.js";
53
- import { t as PkOption } from "./pk-option-DQZHV9jL.js";
54
- import { t as PkSelect } from "./pk-select-b5S5WKc-.js";
55
- import { t as PkTimePicker } from "./pk-time-picker-ChRbKHNB.js";
56
- import { t as PkEditableTable } from "./pk-editable-table-DDnu1I8Y.js";
57
- import { t as PkField } from "./pk-field-UAlMq6mQ.js";
54
+ import { t as PkColorInput } from "./pk-color-input-4LDV0Z3W.js";
55
+ import { t as PkCalendar } from "./pk-calendar-hBz1MnOu.js";
56
+ import { t as PkDatePicker } from "./pk-date-picker-D_JFep-Y.js";
57
+ import { t as PkOption } from "./pk-option-Cx52kLmz.js";
58
+ import { t as PkSelect } from "./pk-select-UUH7FE4H.js";
59
+ import { t as PkTimePicker } from "./pk-time-picker-D-u5-7pf.js";
60
+ import { t as PkEditableTable } from "./pk-editable-table-B85NhFYY.js";
61
+ import { t as PkField } from "./pk-field-BJA2fZ6s.js";
58
62
  import "../components/field.js";
59
- import { t as PkPopover } from "./pk-popover-D3jkHfwB.js";
63
+ import { t as PkPopover } from "./pk-popover-209LdoPr.js";
60
64
  import "../components/popover.js";
61
65
  import "../components/popup.js";
62
- import { t as PkTooltip } from "./pk-tooltip--QBV6puX.js";
66
+ import { t as PkTooltip } from "./pk-tooltip-C6yb4CXI.js";
63
67
  import "../components/tooltip.js";
64
- import { t as PkRadio } from "./pk-radio-B5XkMHy3.js";
65
- import { t as PkRadioGroup } from "./pk-radio-group-Dzd-3HaQ.js";
68
+ import { t as PkRadio } from "./pk-radio-jgj6A0Wy.js";
69
+ import { t as PkRadioGroup } from "./pk-radio-group-CruMBeeF.js";
66
70
  import "../components/radio-group.js";
67
- import { t as PkTab } from "./pk-tab-CTloD18e.js";
68
- import { t as PkTabHeading } from "./pk-tab-heading-Cjcgebxn.js";
69
- import { t as PkTabPanel } from "./pk-tab-panel-CkKU5-Ah.js";
70
- import { t as PkTabs } from "./pk-tabs-BgEBki1q.js";
71
+ import { t as PkTab } from "./pk-tab-BmXNyDg7.js";
72
+ import { t as PkTabHeading } from "./pk-tab-heading-GZHVmCAd.js";
73
+ import { t as PkTabPanel } from "./pk-tab-panel-OpM3f_cm.js";
74
+ import { t as PkTabs } from "./pk-tabs-x26NAw-V.js";
71
75
  import "../components/tabs.js";
72
- import { t as PkScrollArea } from "./pk-scroll-area-CdfNxYz8.js";
76
+ import { t as PkScrollArea } from "./pk-scroll-area-BaqN798b.js";
73
77
  import "../components/scroll-area.js";
74
78
  import "../components/color-input.js";
75
79
  import "../components/calendar.js";
76
80
  import "../components/date-picker.js";
77
- import { t as PkOptionGroup } from "./pk-option-group-CCzJkBFp.js";
81
+ import { t as PkOptionGroup } from "./pk-option-group-CYo9Ukue.js";
78
82
  import "../components/select.js";
79
83
  import "../components/time-picker.js";
80
84
  import "../components/spinner.js";
81
- import { t as PkTiptapContent } from "./pk-tiptap-content-CL8smjGi.js";
82
- import { t as PkTiptapEditor } from "./pk-tiptap-editor-BMwedkPt.js";
83
- import { t as PkTiptapInput } from "./pk-tiptap-input-YKg4VLp_.js";
85
+ import { t as PkTiptapContent } from "./pk-tiptap-content-BGxMO3T4.js";
86
+ import { t as PkTiptapEditor } from "./pk-tiptap-editor-BeuyzH5l.js";
87
+ import { t as PkTiptapInput } from "./pk-tiptap-input-CQojaxDH.js";
84
88
  import "@verbb/plugin-kit-icons/all.js";
85
89
  //#region src/register.ts
86
90
  var COMPONENTS = [
91
+ ["pk-alert", PkAlert],
92
+ ["pk-state-panel", PkStatePanel],
87
93
  ["pk-spinner", PkSpinner],
88
94
  ["pk-icon", PkIcon],
89
95
  ["pk-button", PkButton],
@@ -145,4 +151,4 @@ function registerAll() {
145
151
  //#endregion
146
152
  export { registerAll as t };
147
153
 
148
- //# sourceMappingURL=register-BqkU5JNH.js.map
154
+ //# sourceMappingURL=register-BDO_LUHK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-BDO_LUHK.js","names":[],"sources":["../../src/register.ts"],"sourcesContent":["// Full-library path: every curated glyph is available to `<pk-icon icon=\"…\">`.\nimport '@verbb/plugin-kit-icons/all.js';\n\nimport { PkAlert } from './components/alert/pk-alert.js';\nimport { PkStatePanel } from './components/state-panel/pk-state-panel.js';\nimport { PkButton } from './components/button/pk-button.js';\nimport { PkButtonGroup } from './components/button-group/pk-button-group.js';\nimport { PkButtonGroupSeparator } from './components/button-group/pk-button-group-separator.js';\nimport { PkButtonGroupText } from './components/button-group/pk-button-group-text.js';\nimport { PkCheckbox } from './components/checkbox/pk-checkbox.js';\nimport { PkCheckboxSelect } from './components/checkbox-select/pk-checkbox-select.js';\nimport { PkCodeEditor } from './components/code-editor/pk-code-editor.js';\nimport { PkColorInput } from './components/color-input/pk-color-input.js';\nimport { PkCalendar } from './components/calendar/pk-calendar.js';\nimport { PkDatePicker } from './components/date-picker/pk-date-picker.js';\nimport { PkCombobox } from './components/combobox/pk-combobox.js';\nimport { PkConnect } from './components/connect/pk-connect.js';\nimport { PkConnectOauth } from './components/connect/pk-connect-oauth.js';\nimport { PkCopyButton } from './components/copy-button/pk-copy-button.js';\nimport { PkDialog } from './components/dialog/pk-dialog.js';\nimport { PkDropdownLabel } from './components/dropdown-menu/pk-dropdown-label.js';\nimport { PkDropdownMenu } from './components/dropdown-menu/pk-dropdown-menu.js';\nimport { PkDropdownItem } from './components/dropdown-menu/pk-dropdown-item.js';\nimport { PkDropdownSeparator } from './components/dropdown-menu/pk-dropdown-separator.js';\nimport { PkEditableTable } from './components/editable-table/pk-editable-table.js';\nimport { PkField } from './components/field/pk-field.js';\nimport { PkIcon } from './components/icon/pk-icon.js';\nimport { PkInput } from './components/input/pk-input.js';\nimport { PkInputGroup } from './components/input-group/pk-input-group.js';\nimport { PkInputGroupAddon } from './components/input-group/pk-input-group-addon.js';\nimport { PkInputGroupButton } from './components/input-group/pk-input-group-button.js';\nimport { PkInputGroupInput } from './components/input-group/pk-input-group-input.js';\nimport { PkInputGroupText } from './components/input-group/pk-input-group-text.js';\nimport { PkInputGroupTextarea } from './components/input-group/pk-input-group-textarea.js';\nimport { PkLightswitch } from './components/lightswitch/pk-lightswitch.js';\nimport { PkOption } from './components/select/pk-option.js';\nimport { PkOptionGroup } from './components/select/pk-option-group.js';\nimport { PkPopover } from './components/popover/pk-popover.js';\nimport { PkPopup } from './components/popup/pk-popup.js';\nimport { PkRadio } from './components/radio-group/pk-radio.js';\nimport { PkRadioGroup } from './components/radio-group/pk-radio-group.js';\nimport { PkScrollArea } from './components/scroll-area/pk-scroll-area.js';\nimport { PkSelect } from './components/select/pk-select.js';\nimport { PkSeparator } from './components/separator/pk-separator.js';\nimport { PkSpinner } from './components/spinner/pk-spinner.js';\nimport { PkStatus } from './components/status/pk-status.js';\nimport { PkTab } from './components/tabs/pk-tab.js';\nimport { PkTabHeading } from './components/tabs/pk-tab-heading.js';\nimport { PkTabPanel } from './components/tabs/pk-tab-panel.js';\nimport { PkTabs } from './components/tabs/pk-tabs.js';\nimport { PkTextarea } from './components/textarea/pk-textarea.js';\nimport { PkTiptapContent } from './components/tiptap/pk-tiptap-content.js';\nimport { PkTiptapEditor } from './components/tiptap/pk-tiptap-editor.js';\nimport { PkTiptapInput } from './components/tiptap/pk-tiptap-input.js';\nimport { PkTimePicker } from './components/time-picker/pk-time-picker.js';\nimport { PkToggle } from './components/toggle/pk-toggle.js';\nimport { PkToggleGroup } from './components/toggle-group/pk-toggle-group.js';\nimport { PkTooltip } from './components/tooltip/pk-tooltip.js';\n\nexport * from './components/alert/index.js';\nexport * from './components/state-panel/index.js';\nexport * from './components/button/index.js';\nexport * from './components/button-group/index.js';\nexport * from './components/checkbox/index.js';\nexport * from './components/checkbox-select/index.js';\nexport * from './components/input/index.js';\nexport * from './components/input-group/index.js';\nexport * from './components/textarea/index.js';\nexport * from './components/separator/index.js';\nexport * from './components/status/index.js';\nexport * from './components/toggle/index.js';\nexport * from './components/toggle-group/index.js';\nexport * from './components/lightswitch/index.js';\nexport * from './components/connect/index.js';\nexport * from './components/copy-button/index.js';\nexport * from './components/dialog/index.js';\nexport * from './components/dropdown-menu/index.js';\nexport * from './components/field/index.js';\nexport * from './components/popover/index.js';\nexport * from './components/popup/index.js';\nexport * from './components/tooltip/index.js';\nexport * from './components/radio-group/index.js';\nexport * from './components/tabs/index.js';\nexport * from './components/scroll-area/index.js';\nexport * from './components/color-input/index.js';\nexport * from './components/code-editor/index.js';\nexport * from './components/calendar/index.js';\nexport * from './components/date-picker/index.js';\nexport * from './components/select/index.js';\nexport * from './components/spinner/index.js';\nexport * from './components/time-picker/index.js';\nexport * from './components/tiptap/index.js';\n\nexport {\n PkAlert,\n PkStatePanel,\n PkButton,\n PkButtonGroup,\n PkButtonGroupSeparator,\n PkButtonGroupText,\n PkCheckbox,\n PkCheckboxSelect,\n PkColorInput,\n PkCodeEditor,\n PkCalendar,\n PkDatePicker,\n PkCombobox,\n PkConnect,\n PkConnectOauth,\n PkCopyButton,\n PkDialog,\n PkDropdownMenu,\n PkDropdownItem,\n PkDropdownSeparator,\n PkEditableTable,\n PkField,\n PkIcon,\n PkInput,\n PkInputGroup,\n PkInputGroupAddon,\n PkInputGroupButton,\n PkInputGroupInput,\n PkInputGroupText,\n PkInputGroupTextarea,\n PkLightswitch,\n PkOption,\n PkOptionGroup,\n PkPopover,\n PkPopup,\n PkRadio,\n PkRadioGroup,\n PkScrollArea,\n PkSelect,\n PkSeparator,\n PkSpinner,\n PkStatus,\n PkTab,\n PkTabPanel,\n PkTabs,\n PkTextarea,\n PkTimePicker,\n PkTiptapContent,\n PkTiptapEditor,\n PkTiptapInput,\n PkToggle,\n PkToggleGroup,\n PkTooltip,\n};\n\nconst COMPONENTS: [string, CustomElementConstructor][] = [\n ['pk-alert', PkAlert],\n ['pk-state-panel', PkStatePanel],\n ['pk-spinner', PkSpinner],\n ['pk-icon', PkIcon],\n ['pk-button', PkButton],\n ['pk-checkbox', PkCheckbox],\n ['pk-checkbox-select', PkCheckboxSelect],\n ['pk-color-input', PkColorInput],\n ['pk-code-editor', PkCodeEditor],\n ['pk-input', PkInput],\n ['pk-input-group', PkInputGroup],\n ['pk-input-group-addon', PkInputGroupAddon],\n ['pk-input-group-button', PkInputGroupButton],\n ['pk-input-group-input', PkInputGroupInput],\n ['pk-input-group-text', PkInputGroupText],\n ['pk-input-group-textarea', PkInputGroupTextarea],\n ['pk-textarea', PkTextarea],\n ['pk-tiptap-editor', PkTiptapEditor],\n ['pk-tiptap-input', PkTiptapInput],\n ['pk-tiptap-content', PkTiptapContent],\n ['pk-field', PkField],\n ['pk-separator', PkSeparator],\n ['pk-status', PkStatus],\n ['pk-toggle', PkToggle],\n ['pk-toggle-group', PkToggleGroup],\n ['pk-lightswitch', PkLightswitch],\n ['pk-button-group', PkButtonGroup],\n ['pk-button-group-separator', PkButtonGroupSeparator],\n ['pk-button-group-text', PkButtonGroupText],\n ['pk-dialog', PkDialog],\n ['pk-popup', PkPopup],\n ['pk-dropdown-label', PkDropdownLabel],\n ['pk-dropdown-item', PkDropdownItem],\n ['pk-dropdown-separator', PkDropdownSeparator],\n ['pk-dropdown-menu', PkDropdownMenu],\n ['pk-editable-table', PkEditableTable],\n ['pk-popover', PkPopover],\n ['pk-tooltip', PkTooltip],\n ['pk-radio', PkRadio],\n ['pk-radio-group', PkRadioGroup],\n ['pk-tab', PkTab],\n ['pk-tab-heading', PkTabHeading],\n ['pk-tab-panel', PkTabPanel],\n ['pk-tabs', PkTabs],\n ['pk-scroll-area', PkScrollArea],\n ['pk-option', PkOption],\n ['pk-option-group', PkOptionGroup],\n ['pk-select', PkSelect],\n ['pk-calendar', PkCalendar],\n ['pk-date-picker', PkDatePicker],\n ['pk-combobox', PkCombobox],\n ['pk-connect', PkConnect],\n ['pk-connect-oauth', PkConnectOauth],\n ['pk-time-picker', PkTimePicker],\n ['pk-copy-button', PkCopyButton],\n];\n\n/** Side-effect registration for all Plugin Kit web components. */\nexport function registerAll(): void {\n for (const [tag, ctor] of COMPONENTS) {\n if (!customElements.get(tag)) {\n customElements.define(tag, ctor);\n }\n }\n}\n\nexport {\n createRegisterComponents,\n type PkComponentTag,\n} from './register-components.js';\n\nexport { BUNDLER_TAG_IMPORT_PATHS as componentImportPaths } from './component-registry.js';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqJA,IAAM,aAAmD;CACrD,CAAC,YAAY,QAAQ;CACrB,CAAC,kBAAkB,aAAa;CAChC,CAAC,cAAc,UAAU;CACzB,CAAC,WAAW,OAAO;CACnB,CAAC,aAAa,SAAS;CACvB,CAAC,eAAe,WAAW;CAC3B,CAAC,sBAAsB,iBAAiB;CACxC,CAAC,kBAAkB,aAAa;CAChC,CAAC,kBAAkB,aAAa;CAChC,CAAC,YAAY,QAAQ;CACrB,CAAC,kBAAkB,aAAa;CAChC,CAAC,wBAAwB,kBAAkB;CAC3C,CAAC,yBAAyB,mBAAmB;CAC7C,CAAC,wBAAwB,kBAAkB;CAC3C,CAAC,uBAAuB,iBAAiB;CACzC,CAAC,2BAA2B,qBAAqB;CACjD,CAAC,eAAe,WAAW;CAC3B,CAAC,oBAAoB,eAAe;CACpC,CAAC,mBAAmB,cAAc;CAClC,CAAC,qBAAqB,gBAAgB;CACtC,CAAC,YAAY,QAAQ;CACrB,CAAC,gBAAgB,YAAY;CAC7B,CAAC,aAAa,SAAS;CACvB,CAAC,aAAa,SAAS;CACvB,CAAC,mBAAmB,cAAc;CAClC,CAAC,kBAAkB,cAAc;CACjC,CAAC,mBAAmB,cAAc;CAClC,CAAC,6BAA6B,uBAAuB;CACrD,CAAC,wBAAwB,kBAAkB;CAC3C,CAAC,aAAa,SAAS;CACvB,CAAC,YAAY,QAAQ;CACrB,CAAC,qBAAqB,gBAAgB;CACtC,CAAC,oBAAoB,eAAe;CACpC,CAAC,yBAAyB,oBAAoB;CAC9C,CAAC,oBAAoB,eAAe;CACpC,CAAC,qBAAqB,gBAAgB;CACtC,CAAC,cAAc,UAAU;CACzB,CAAC,cAAc,UAAU;CACzB,CAAC,YAAY,QAAQ;CACrB,CAAC,kBAAkB,aAAa;CAChC,CAAC,UAAU,MAAM;CACjB,CAAC,kBAAkB,aAAa;CAChC,CAAC,gBAAgB,WAAW;CAC5B,CAAC,WAAW,OAAO;CACnB,CAAC,kBAAkB,aAAa;CAChC,CAAC,aAAa,SAAS;CACvB,CAAC,mBAAmB,cAAc;CAClC,CAAC,aAAa,SAAS;CACvB,CAAC,eAAe,WAAW;CAC3B,CAAC,kBAAkB,aAAa;CAChC,CAAC,eAAe,WAAW;CAC3B,CAAC,cAAc,UAAU;CACzB,CAAC,oBAAoB,eAAe;CACpC,CAAC,kBAAkB,aAAa;CAChC,CAAC,kBAAkB,aAAa;CACnC;;AAGD,SAAgB,cAAoB;AAChC,MAAK,MAAM,CAAC,KAAK,SAAS,WACtB,KAAI,CAAC,eAAe,IAAI,IAAI,CACxB,gBAAe,OAAO,KAAK,KAAK"}
@@ -12,4 +12,4 @@ function createRegisterComponents(loaders) {
12
12
  //#endregion
13
13
  export { createRegisterComponents as t };
14
14
 
15
- //# sourceMappingURL=register-components-BT9THgdh.js.map
15
+ //# sourceMappingURL=register-components-Dcdn1e3S.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"register-components-BT9THgdh.js","names":[],"sources":["../../src/create-register-components.ts"],"sourcesContent":["/**\n * Tiny helper for building a local async registrar from an explicit loader map.\n * Prefer short family side-effect imports for Craft CP bundles:\n * `import '@verbb/plugin-kit-web/components/button.js'`.\n */\nexport function createRegisterComponents<T extends string>(\n loaders: Record<T, () => Promise<unknown>>,\n): (tags: readonly T[]) => Promise<void> {\n return async (tags) => {\n await Promise.all(tags.map((tag) => loaders[tag]()));\n };\n}\n"],"mappings":";;;;;;AAKA,SAAgB,yBACZ,SACqC;AACrC,QAAO,OAAO,SAAS;AACnB,QAAM,QAAQ,IAAI,KAAK,KAAK,QAAQ,QAAQ,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"register-components-Dcdn1e3S.js","names":[],"sources":["../../src/create-register-components.ts"],"sourcesContent":["/**\n * Tiny helper for building a local async registrar from an explicit loader map.\n * Prefer short family side-effect imports for Craft CP bundles:\n * `import '@verbb/plugin-kit-web/components/button.js'`.\n */\nexport function createRegisterComponents<T extends string>(\n loaders: Record<T, () => Promise<unknown>>,\n): (tags: readonly T[]) => Promise<void> {\n return async (tags) => {\n await Promise.all(tags.map((tag) => loaders[tag]()));\n };\n}\n"],"mappings":";;;;;;AAKA,SAAgB,yBACZ,SACqC;AACrC,QAAO,OAAO,SAAS;AACnB,QAAM,QAAQ,IAAI,KAAK,KAAK,QAAQ,QAAQ,MAAM,CAAC,CAAC"}
@@ -13,4 +13,4 @@ var createIconElement = (icon, options = {}) => {
13
13
  //#endregion
14
14
  export { renderIconHtml as n, createIconElement as t };
15
15
 
16
- //# sourceMappingURL=render-Dvc3MHQR.js.map
16
+ //# sourceMappingURL=render-BKGW1a68.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render-Dvc3MHQR.js","names":[],"sources":["../../src/icons/render.ts"],"sourcesContent":["import { iconToSvg, type PkIcon } from '@verbb/plugin-kit-icons';\n\nexport type RenderIconOptions = {\n title?: string;\n};\n\nexport const renderIconHtml = (\n icon: PkIcon,\n options: RenderIconOptions = {},\n): string => {\n return iconToSvg(icon, { title: options.title });\n};\n\nexport const createIconElement = (\n icon: PkIcon,\n options: RenderIconOptions = {},\n): SVGSVGElement => {\n const template = document.createElement('template');\n template.innerHTML = renderIconHtml(icon, options);\n\n const element = template.content.firstElementChild;\n\n if (!(element instanceof SVGSVGElement)) {\n throw new Error('Icon render did not produce an SVG element.');\n }\n\n return element;\n};\n"],"mappings":";;AAMA,IAAa,kBACT,MACA,UAA6B,EAAE,KACtB;AACT,QAAO,UAAU,MAAM,EAAE,OAAO,QAAQ,OAAO,CAAC;;AAGpD,IAAa,qBACT,MACA,UAA6B,EAAE,KACf;CAChB,MAAM,WAAW,SAAS,cAAc,WAAW;AACnD,UAAS,YAAY,eAAe,MAAM,QAAQ;CAElD,MAAM,UAAU,SAAS,QAAQ;AAEjC,KAAI,EAAE,mBAAmB,eACrB,OAAM,IAAI,MAAM,8CAA8C;AAGlE,QAAO"}
1
+ {"version":3,"file":"render-BKGW1a68.js","names":[],"sources":["../../src/icons/render.ts"],"sourcesContent":["import { iconToSvg, type PkIcon } from '@verbb/plugin-kit-icons';\n\nexport type RenderIconOptions = {\n title?: string;\n};\n\nexport const renderIconHtml = (\n icon: PkIcon,\n options: RenderIconOptions = {},\n): string => {\n return iconToSvg(icon, { title: options.title });\n};\n\nexport const createIconElement = (\n icon: PkIcon,\n options: RenderIconOptions = {},\n): SVGSVGElement => {\n const template = document.createElement('template');\n template.innerHTML = renderIconHtml(icon, options);\n\n const element = template.content.firstElementChild;\n\n if (!(element instanceof SVGSVGElement)) {\n throw new Error('Icon render did not produce an SVG element.');\n }\n\n return element;\n};\n"],"mappings":";;AAMA,IAAa,kBACT,MACA,UAA6B,EAAE,KACtB;AACT,QAAO,UAAU,MAAM,EAAE,OAAO,QAAQ,OAAO,CAAC;;AAGpD,IAAa,qBACT,MACA,UAA6B,EAAE,KACf;CAChB,MAAM,WAAW,SAAS,cAAc,WAAW;AACnD,UAAS,YAAY,eAAe,MAAM,QAAQ;CAElD,MAAM,UAAU,SAAS,QAAQ;AAEjC,KAAI,EAAE,mBAAmB,eACrB,OAAM,IAAI,MAAM,8CAA8C;AAGlE,QAAO"}
@@ -26,4 +26,4 @@ function RequiredValidator(options = {}) {
26
26
  //#endregion
27
27
  export { RequiredValidator as t };
28
28
 
29
- //# sourceMappingURL=required-validator-CEg8dvjS.js.map
29
+ //# sourceMappingURL=required-validator-CaRnQk1V.js.map