thijsvdanker
Prefixes Tailwind (UI) component classes
error_reporting(0);
$prefix = 'tw-';
$dom = new DomDocument();
$html = <<< 'HERE'
<div class="fixed bottom-0 inset-x-0 px-4 pb-4 sm:inset-0 sm:flex sm:items-center sm:justify-center">
<!--
Background overlay, show/hide based on modal state.
Entering: "ease-out duration-300"
From: "opacity-0"
To: "opacity-100"
Leaving: "ease-in duration-200"
From: "opacity-100"
To: "opacity-0"
-->
<div class="fixed inset-0 transition-opacity">
<div class="absolute inset-0 bg-gray-500 opacity-75"></div>
</div>
<!--
Modal panel, show/hide based on modal state.
Entering: "ease-out duration-300"
From: "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
To: "opacity-100 translate-y-0 sm:scale-100"
Leaving: "ease-in duration-200"
From: "opacity-100 translate-y-0 sm:scale-100"
To: "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
-->
<div class="bg-white rounded-lg overflow-hidden shadow-xl transform transition-all sm:max-w-lg sm:w-full" role="dialog" aria-modal="true" aria-labelledby="modal-headline">
<div class="bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4">
<div class="sm:flex sm:items-start">
<div class="mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-red-100 sm:mx-0 sm:h-10 sm:w-10">
<svg class="h-6 w-6 text-red-600" stroke="currentColor" fill="none" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/>
</svg>
</div>
<div class="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left">
<h3 class="text-lg leading-6 font-medium text-gray-900" id="modal-headline">
Deactivate account
</h3>
<div class="mt-2">
<p class="text-sm leading-5 text-gray-500">
Are you sure you want to deactivate your account? All of your data will be permanently removed. This action cannot be undone.
</p>
</div>
</div>
</div>
</div>
<div class="bg-gray-50 px-4 py-3 sm:px-6 sm:flex sm:flex-row-reverse">
<span class="flex w-full rounded-md shadow-sm sm:ml-3 sm:w-auto">
<button type="button" class="inline-flex justify-center w-full rounded-md border border-transparent px-4 py-2 bg-red-600 text-base leading-6 font-medium text-white shadow-sm hover:bg-red-500 focus:outline-none focus:border-red-700 focus:shadow-outline-red transition ease-in-out duration-150 sm:text-sm sm:leading-5">
Deactivate
</button>
</span>
<span class="mt-3 flex w-full rounded-md shadow-sm sm:mt-0 sm:w-auto">
<button type="button" class="inline-flex justify-center w-full rounded-md border border-gray-300 px-4 py-2 bg-white text-base leading-6 font-medium text-gray-700 shadow-sm hover:text-gray-500 focus:outline-none focus:border-blue-300 focus:shadow-outline-blue transition ease-in-out duration-150 sm:text-sm sm:leading-5">
Cancel
</button>
</span>
</div>
</div>
</div>
HERE;
$dom->loadHTML($html);
$xpath = new DomXpath($dom);
$res = $xpath->query('//@class');
foreach($res as $attr)
{
$value = explode(' ', $attr->value);
foreach($value as &$set)
{
$set = $prefix.trim($set);
}
unset($set);
$attr->value = implode(' ', $value);
}
$result = $dom->saveHTML();
[43mPHP Warning: DOMDocument::loadHTML(): Tag svg invalid in Entity, line: 30 in phar:///Applications/Tinkerwell.app/Contents/Resources/tinkerwell/tinker.phar/index.php(108) : eval()'d code on line 65[49m
[43mPHP Warning: DOMDocument::loadHTML(): Tag path invalid in Entity, line: 31 in phar:///Applications/Tinkerwell.app/Contents/Resources/tinkerwell/tinker.phar/index.php(108) : eval()'d code on line 65[49m
=> """
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">\n
<html><body><div class="tw-fixed tw-bottom-0 tw-inset-x-0 tw-px-4 tw-pb-4 tw-sm:inset-0 tw-sm:flex tw-sm:items-center tw-sm:justify-center">\n
<!--\n
Background overlay, show/hide based on modal state.\n
\n
Entering: "ease-out duration-300"\n
From: "opacity-0"\n
To: "opacity-100"\n
Leaving: "ease-in duration-200"\n
From: "opacity-100"\n
To: "opacity-0"\n
-->\n
<div class="tw-fixed tw-inset-0 tw-transition-opacity">\n
<div class="tw-absolute tw-inset-0 tw-bg-gray-500 tw-opacity-75"></div>\n
</div>\n
\n
<!--\n
Modal panel, show/hide based on modal state.\n
\n
Entering: "ease-out duration-300"\n
From: "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"\n
To: "opacity-100 translate-y-0 sm:scale-100"\n
Leaving: "ease-in duration-200"\n
From: "opacity-100 translate-y-0 sm:scale-100"\n
To: "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"\n
-->\n
<div class="tw-bg-white tw-rounded-lg tw-overflow-hidden tw-shadow-xl tw-transform tw-transition-all tw-sm:max-w-lg tw-sm:w-full" role="dialog" aria-modal="true" aria-labelledby="modal-headline">\n
<div class="tw-bg-white tw-px-4 tw-pt-5 tw-pb-4 tw-sm:p-6 tw-sm:pb-4">\n
<div class="tw-sm:flex tw-sm:items-start">\n
<div class="tw-mx-auto tw-flex-shrink-0 tw-flex tw-items-center tw-justify-center tw-h-12 tw-w-12 tw-rounded-full tw-bg-red-100 tw-sm:mx-0 tw-sm:h-10 tw-sm:w-10">\n
<svg class="tw-h-6 tw-w-6 tw-text-red-600" stroke="currentColor" fill="none" viewbox="0 0 24 24">\n
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path>\n
</svg>\n
</div>\n
<div class="tw-mt-3 tw-text-center tw-sm:mt-0 tw-sm:ml-4 tw-sm:text-left">\n
<h3 class="tw-text-lg tw-leading-6 tw-font-medium tw-text-gray-900" id="modal-headline">\n
Deactivate account\n
</h3>\n
<div class="tw-mt-2">\n
<p class="tw-text-sm tw-leading-5 tw-text-gray-500">\n
Are you sure you want to deactivate your account? All of your data will be permanently removed. This action cannot be undone.\n
</p>\n
</div>\n
</div>\n
</div>\n
</div>\n
<div class="tw-bg-gray-50 tw-px-4 tw-py-3 tw-sm:px-6 tw-sm:flex tw-sm:flex-row-reverse">\n
<span class="tw-flex tw-w-full tw-rounded-md tw-shadow-sm tw-sm:ml-3 tw-sm:w-auto">\n
<button type="button" class="tw-inline-flex tw-justify-center tw-w-full tw-rounded-md tw-border tw-border-transparent tw-px-4 tw-py-2 tw-bg-red-600 tw-text-base tw-leading-6 tw-font-medium tw-text-white tw-shadow-sm tw-hover:bg-red-500 tw-focus:outline-none tw-focus:border-red-700 tw-focus:shadow-outline-red tw-transition tw-ease-in-out tw-duration-150 tw-sm:text-sm tw-sm:leading-5">\n
Deactivate\n
</button>\n
</span>\n
<span class="tw-mt-3 tw-flex tw-w-full tw-rounded-md tw-shadow-sm tw-sm:mt-0 tw-sm:w-auto">\n
<button type="button" class="tw-inline-flex tw-justify-center tw-w-full tw-rounded-md tw-border tw-border-gray-300 tw-px-4 tw-py-2 tw-bg-white tw-text-base tw-leading-6 tw-font-medium tw-text-gray-700 tw-shadow-sm tw-hover:text-gray-500 tw-focus:outline-none tw-focus:border-blue-300 tw-focus:shadow-outline-blue tw-transition tw-ease-in-out tw-duration-150 tw-sm:text-sm tw-sm:leading-5">\n
Cancel\n
</button>\n
</span>\n
</div>\n
</div>\n
</div></body></html>\n
"""