pillardash-ui-react 0.1.131 → 0.1.138
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.
- package/README.md +54 -46
- package/dist/cjs/_virtual/_commonjsHelpers.js +2 -0
- package/dist/cjs/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/cjs/_virtual/index.js +2 -0
- package/dist/cjs/_virtual/index.js.map +1 -0
- package/dist/cjs/_virtual/index2.js +2 -0
- package/dist/cjs/_virtual/index2.js.map +1 -0
- package/dist/cjs/components/Alert/Alert.js +2 -0
- package/dist/cjs/components/Alert/Alert.js.map +1 -0
- package/dist/cjs/components/Alert/AlertContext.js +2 -0
- package/dist/cjs/components/Alert/AlertContext.js.map +1 -0
- package/dist/cjs/components/Alert/ConfirmDialog.js +2 -0
- package/dist/cjs/components/Alert/ConfirmDialog.js.map +1 -0
- package/dist/cjs/components/Alert/ConfirmationAlert.js +2 -0
- package/dist/cjs/components/Alert/ConfirmationAlert.js.map +1 -0
- package/dist/cjs/components/Badge/Badge.js +2 -0
- package/dist/cjs/components/Badge/Badge.js.map +1 -0
- package/dist/cjs/components/Breadcrumb/Breadcrumb.js +2 -0
- package/dist/cjs/components/Breadcrumb/Breadcrumb.js.map +1 -0
- package/dist/cjs/components/Button/Button.js +2 -0
- package/dist/cjs/components/Button/Button.js.map +1 -0
- package/dist/cjs/components/Button/ExportButton.js +2 -0
- package/dist/cjs/components/Button/ExportButton.js.map +1 -0
- package/dist/cjs/components/Cards/Card.js +2 -0
- package/dist/cjs/components/Cards/Card.js.map +1 -0
- package/dist/cjs/components/Cards/EmptyStateCard.js +2 -0
- package/dist/cjs/components/Cards/EmptyStateCard.js.map +1 -0
- package/dist/cjs/components/Document/FileView.js +2 -0
- package/dist/cjs/components/Document/FileView.js.map +1 -0
- package/dist/cjs/components/Form/CheckBox/CheckBox.js +2 -0
- package/dist/cjs/components/Form/CheckBox/CheckBox.js.map +1 -0
- package/dist/cjs/components/Form/FileUpload/FileUpload.js +2 -0
- package/dist/cjs/components/Form/FileUpload/FileUpload.js.map +1 -0
- package/dist/cjs/components/Form/Input/DateTimePicker.js +2 -0
- package/dist/cjs/components/Form/Input/DateTimePicker.js.map +1 -0
- package/dist/cjs/components/Form/Input/Input.js +2 -0
- package/dist/cjs/components/Form/Input/Input.js.map +1 -0
- package/dist/cjs/components/Form/Input/InputWithPrefix.js +2 -0
- package/dist/cjs/components/Form/Input/InputWithPrefix.js.map +1 -0
- package/dist/cjs/components/Form/Input/TagInput.js +2 -0
- package/dist/cjs/components/Form/Input/TagInput.js.map +1 -0
- package/dist/cjs/components/Form/Search/Search.js +2 -0
- package/dist/cjs/components/Form/Search/Search.js.map +1 -0
- package/dist/cjs/components/Form/Select/Select.js +2 -0
- package/dist/cjs/components/Form/Select/Select.js.map +1 -0
- package/dist/cjs/components/Form/Select/SelectButton.js +2 -0
- package/dist/cjs/components/Form/Select/SelectButton.js.map +1 -0
- package/dist/cjs/components/Form/TextEditor/TextEditor.js +2 -0
- package/dist/cjs/components/Form/TextEditor/TextEditor.js.map +1 -0
- package/dist/cjs/components/Loading/Loading.js +2 -0
- package/dist/cjs/components/Loading/Loading.js.map +1 -0
- package/dist/cjs/components/Modal/Modal.js +2 -0
- package/dist/cjs/components/Modal/Modal.js.map +1 -0
- package/dist/cjs/components/SkeletonLoader/SkeletonLoader.js +2 -0
- package/dist/cjs/components/SkeletonLoader/SkeletonLoader.js.map +1 -0
- package/dist/cjs/components/SkeletonLoader/index.js +2 -0
- package/dist/cjs/components/SkeletonLoader/index.js.map +1 -0
- package/dist/cjs/components/Table/Pagination.js +2 -0
- package/dist/cjs/components/Table/Pagination.js.map +1 -0
- package/dist/cjs/components/Table/Table.js +2 -0
- package/dist/cjs/components/Table/Table.js.map +1 -0
- package/dist/cjs/components/Table/TableDropdown.js +2 -0
- package/dist/cjs/components/Table/TableDropdown.js.map +1 -0
- package/dist/cjs/components/Table/TableSkeleton.js +2 -0
- package/dist/cjs/components/Table/TableSkeleton.js.map +1 -0
- package/dist/cjs/components/Tooltip/Tooltip.js +2 -0
- package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -0
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/node_modules/@tiptap/core/dist/index.js +2 -0
- package/dist/cjs/node_modules/@tiptap/core/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.js +2 -0
- package/dist/cjs/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.js.map +1 -0
- package/dist/cjs/node_modules/@tiptap/extension-bold/dist/index.js +2 -0
- package/dist/cjs/node_modules/@tiptap/extension-bold/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/@tiptap/extension-bullet-list/dist/index.js +2 -0
- package/dist/cjs/node_modules/@tiptap/extension-bullet-list/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/@tiptap/extension-code/dist/index.js +2 -0
- package/dist/cjs/node_modules/@tiptap/extension-code/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/@tiptap/extension-code-block/dist/index.js +2 -0
- package/dist/cjs/node_modules/@tiptap/extension-code-block/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/@tiptap/extension-document/dist/index.js +2 -0
- package/dist/cjs/node_modules/@tiptap/extension-document/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/@tiptap/extension-heading/dist/index.js +2 -0
- package/dist/cjs/node_modules/@tiptap/extension-heading/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/@tiptap/extension-italic/dist/index.js +2 -0
- package/dist/cjs/node_modules/@tiptap/extension-italic/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/@tiptap/extension-list/dist/index.js +2 -0
- package/dist/cjs/node_modules/@tiptap/extension-list/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/@tiptap/extension-list-item/dist/index.js +2 -0
- package/dist/cjs/node_modules/@tiptap/extension-list-item/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/@tiptap/extension-ordered-list/dist/index.js +2 -0
- package/dist/cjs/node_modules/@tiptap/extension-ordered-list/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/@tiptap/extension-paragraph/dist/index.js +2 -0
- package/dist/cjs/node_modules/@tiptap/extension-paragraph/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/@tiptap/extension-strike/dist/index.js +2 -0
- package/dist/cjs/node_modules/@tiptap/extension-strike/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/@tiptap/extension-text/dist/index.js +2 -0
- package/dist/cjs/node_modules/@tiptap/extension-text/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/classnames/index.js +7 -0
- package/dist/cjs/node_modules/classnames/index.js.map +1 -0
- package/dist/cjs/node_modules/orderedmap/dist/index.js +2 -0
- package/dist/cjs/node_modules/orderedmap/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/prosemirror-commands/dist/index.js +2 -0
- package/dist/cjs/node_modules/prosemirror-commands/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/prosemirror-model/dist/index.js +2 -0
- package/dist/cjs/node_modules/prosemirror-model/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/prosemirror-schema-list/dist/index.js +2 -0
- package/dist/cjs/node_modules/prosemirror-schema-list/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/prosemirror-state/dist/index.js +2 -0
- package/dist/cjs/node_modules/prosemirror-state/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/prosemirror-transform/dist/index.js +2 -0
- package/dist/cjs/node_modules/prosemirror-transform/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/tslib/tslib.es6.js +2 -0
- package/dist/cjs/node_modules/tslib/tslib.es6.js.map +1 -0
- package/dist/esm/_virtual/_commonjsHelpers.mjs +2 -0
- package/dist/esm/_virtual/_commonjsHelpers.mjs.map +1 -0
- package/dist/esm/_virtual/index.mjs +2 -0
- package/dist/esm/_virtual/index.mjs.map +1 -0
- package/dist/esm/_virtual/index2.mjs +2 -0
- package/dist/esm/_virtual/index2.mjs.map +1 -0
- package/dist/esm/components/Alert/Alert.mjs +2 -0
- package/dist/esm/components/Alert/Alert.mjs.map +1 -0
- package/dist/esm/components/Alert/AlertContext.mjs +2 -0
- package/dist/esm/components/Alert/AlertContext.mjs.map +1 -0
- package/dist/esm/components/Alert/ConfirmDialog.mjs +2 -0
- package/dist/esm/components/Alert/ConfirmDialog.mjs.map +1 -0
- package/dist/esm/components/Alert/ConfirmationAlert.mjs +2 -0
- package/dist/esm/components/Alert/ConfirmationAlert.mjs.map +1 -0
- package/dist/esm/components/Badge/Badge.mjs +2 -0
- package/dist/esm/components/Badge/Badge.mjs.map +1 -0
- package/dist/esm/components/Breadcrumb/Breadcrumb.mjs +2 -0
- package/dist/esm/components/Breadcrumb/Breadcrumb.mjs.map +1 -0
- package/dist/esm/components/Button/Button.mjs +2 -0
- package/dist/esm/components/Button/Button.mjs.map +1 -0
- package/dist/esm/components/Button/ExportButton.mjs +2 -0
- package/dist/esm/components/Button/ExportButton.mjs.map +1 -0
- package/dist/esm/components/Cards/Card.mjs +2 -0
- package/dist/esm/components/Cards/Card.mjs.map +1 -0
- package/dist/esm/components/Cards/EmptyStateCard.mjs +2 -0
- package/dist/esm/components/Cards/EmptyStateCard.mjs.map +1 -0
- package/dist/esm/components/Document/FileView.mjs +2 -0
- package/dist/esm/components/Document/FileView.mjs.map +1 -0
- package/dist/esm/components/Form/CheckBox/CheckBox.mjs +2 -0
- package/dist/esm/components/Form/CheckBox/CheckBox.mjs.map +1 -0
- package/dist/esm/components/Form/FileUpload/FileUpload.mjs +2 -0
- package/dist/esm/components/Form/FileUpload/FileUpload.mjs.map +1 -0
- package/dist/esm/components/Form/Input/DateTimePicker.mjs +2 -0
- package/dist/esm/components/Form/Input/DateTimePicker.mjs.map +1 -0
- package/dist/esm/components/Form/Input/Input.mjs +2 -0
- package/dist/esm/components/Form/Input/Input.mjs.map +1 -0
- package/dist/esm/components/Form/Input/InputWithPrefix.mjs +2 -0
- package/dist/esm/components/Form/Input/InputWithPrefix.mjs.map +1 -0
- package/dist/esm/components/Form/Input/TagInput.mjs +2 -0
- package/dist/esm/components/Form/Input/TagInput.mjs.map +1 -0
- package/dist/esm/components/Form/Search/Search.mjs +2 -0
- package/dist/esm/components/Form/Search/Search.mjs.map +1 -0
- package/dist/esm/components/Form/Select/Select.mjs +2 -0
- package/dist/esm/components/Form/Select/Select.mjs.map +1 -0
- package/dist/esm/components/Form/Select/SelectButton.mjs +2 -0
- package/dist/esm/components/Form/Select/SelectButton.mjs.map +1 -0
- package/dist/esm/components/Form/TextEditor/TextEditor.mjs +2 -0
- package/dist/esm/components/Form/TextEditor/TextEditor.mjs.map +1 -0
- package/dist/esm/components/Loading/Loading.mjs +2 -0
- package/dist/esm/components/Loading/Loading.mjs.map +1 -0
- package/dist/esm/components/Modal/Modal.mjs +2 -0
- package/dist/esm/components/Modal/Modal.mjs.map +1 -0
- package/dist/esm/components/SkeletonLoader/SkeletonLoader.mjs +2 -0
- package/dist/esm/components/SkeletonLoader/SkeletonLoader.mjs.map +1 -0
- package/dist/esm/components/SkeletonLoader/index.mjs +2 -0
- package/dist/esm/components/SkeletonLoader/index.mjs.map +1 -0
- package/dist/esm/components/Table/Pagination.mjs +2 -0
- package/dist/esm/components/Table/Pagination.mjs.map +1 -0
- package/dist/esm/components/Table/Table.mjs +2 -0
- package/dist/esm/components/Table/Table.mjs.map +1 -0
- package/dist/esm/components/Table/TableDropdown.mjs +2 -0
- package/dist/esm/components/Table/TableDropdown.mjs.map +1 -0
- package/dist/esm/components/Table/TableSkeleton.mjs +2 -0
- package/dist/esm/components/Table/TableSkeleton.mjs.map +1 -0
- package/dist/esm/components/Tooltip/Tooltip.mjs +2 -0
- package/dist/esm/components/Tooltip/Tooltip.mjs.map +1 -0
- package/dist/esm/index.mjs +2 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/node_modules/@tiptap/core/dist/index.mjs +2 -0
- package/dist/esm/node_modules/@tiptap/core/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.mjs +2 -0
- package/dist/esm/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.mjs.map +1 -0
- package/dist/esm/node_modules/@tiptap/extension-bold/dist/index.mjs +2 -0
- package/dist/esm/node_modules/@tiptap/extension-bold/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/@tiptap/extension-bullet-list/dist/index.mjs +2 -0
- package/dist/esm/node_modules/@tiptap/extension-bullet-list/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/@tiptap/extension-code/dist/index.mjs +2 -0
- package/dist/esm/node_modules/@tiptap/extension-code/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/@tiptap/extension-code-block/dist/index.mjs +2 -0
- package/dist/esm/node_modules/@tiptap/extension-code-block/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/@tiptap/extension-document/dist/index.mjs +2 -0
- package/dist/esm/node_modules/@tiptap/extension-document/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/@tiptap/extension-heading/dist/index.mjs +2 -0
- package/dist/esm/node_modules/@tiptap/extension-heading/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/@tiptap/extension-italic/dist/index.mjs +2 -0
- package/dist/esm/node_modules/@tiptap/extension-italic/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/@tiptap/extension-list/dist/index.mjs +2 -0
- package/dist/esm/node_modules/@tiptap/extension-list/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/@tiptap/extension-list-item/dist/index.mjs +2 -0
- package/dist/esm/node_modules/@tiptap/extension-list-item/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/@tiptap/extension-ordered-list/dist/index.mjs +2 -0
- package/dist/esm/node_modules/@tiptap/extension-ordered-list/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/@tiptap/extension-paragraph/dist/index.mjs +2 -0
- package/dist/esm/node_modules/@tiptap/extension-paragraph/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/@tiptap/extension-strike/dist/index.mjs +2 -0
- package/dist/esm/node_modules/@tiptap/extension-strike/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/@tiptap/extension-text/dist/index.mjs +2 -0
- package/dist/esm/node_modules/@tiptap/extension-text/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/classnames/index.mjs +7 -0
- package/dist/esm/node_modules/classnames/index.mjs.map +1 -0
- package/dist/esm/node_modules/orderedmap/dist/index.mjs +2 -0
- package/dist/esm/node_modules/orderedmap/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/prosemirror-commands/dist/index.mjs +2 -0
- package/dist/esm/node_modules/prosemirror-commands/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/prosemirror-model/dist/index.mjs +2 -0
- package/dist/esm/node_modules/prosemirror-model/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/prosemirror-schema-list/dist/index.mjs +2 -0
- package/dist/esm/node_modules/prosemirror-schema-list/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/prosemirror-state/dist/index.mjs +2 -0
- package/dist/esm/node_modules/prosemirror-state/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/prosemirror-transform/dist/index.mjs +2 -0
- package/dist/esm/node_modules/prosemirror-transform/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/tslib/tslib.es6.mjs +2 -0
- package/dist/esm/node_modules/tslib/tslib.es6.mjs.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/styles.css +1 -0
- package/package.json +63 -17
- package/dist/index.js +0 -51
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -51
- package/dist/index.mjs.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{__assign as e}from"../../node_modules/tslib/tslib.es6.mjs";import{jsxs as t,jsx as i}from"react/jsx-runtime";import n from"react";import a from"../Cards/Card.mjs";var r={xs:{width:"4rem",height:"1rem"},sm:{width:"6rem",height:"1.25rem"},md:{width:"8rem",height:"1.5rem"},lg:{width:"12rem",height:"2rem"},xl:{width:"16rem",height:"2.5rem"}},s={text:{baseClasses:"rounded",defaultSize:{width:"100%",height:"1rem"}},rectangular:{baseClasses:"",defaultSize:{width:"100%",height:"8rem"}},circular:{baseClasses:"rounded-full aspect-square",defaultSize:{width:"3rem",height:"3rem"}},rounded:{baseClasses:"rounded-lg",defaultSize:{width:"100%",height:"6rem"}},card:{baseClasses:"rounded-lg",defaultSize:{width:"100%",height:"12rem"}},avatar:{baseClasses:"rounded-full aspect-square",defaultSize:{width:"2.5rem",height:"2.5rem"}},button:{baseClasses:"rounded-md",defaultSize:{width:"5rem",height:"2.25rem"}},image:{baseClasses:"rounded",defaultSize:{width:"100%",height:"10rem"}},line:{baseClasses:"rounded-full",defaultSize:{width:"100%",height:"0.25rem"}}},d=function(e){var t=e.variant,a=void 0===t?"text":t,d=e.animation,h=void 0===d?"pulse":d,o=e.size,l=e.width,m=e.height,u=e.count,c=void 0===u?1:u,g=e.className,f=void 0===g?"":g,v=e.shimmer,p=void 0!==v&&v,w=e.borderRadius,b=e.intensity,x=void 0===b?"medium":b,y=e.delay,N=void 0===y?0:y,k=n.useState(0===N),C=k[0],z=k[1];n.useEffect((function(){!function(){if("undefined"!=typeof document&&!document.getElementById("skeleton-loader-styles")){var e=document.createElement("style");e.id="skeleton-loader-styles",e.textContent="\n @keyframes wave {\n 0% { transform: translateX(-100%); }\n 50% { transform: translateX(100%); }\n 100% { transform: translateX(100%); }\n }\n\n @keyframes shimmer {\n 0% { background-position: -200% 0; }\n 100% { background-position: 200% 0; }\n }\n\n .skeleton-wave {\n animation: wave 1.6s linear infinite;\n position: relative;\n overflow: hidden;\n }\n\n .skeleton-shimmer {\n animation: shimmer 2s ease-in-out infinite;\n background-size: 200% 100%;\n }\n\n .skeleton-wave::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: linear-gradient(\n 90deg,\n transparent,\n rgba(255, 255, 255, 0.6),\n transparent\n );\n animation: wave 1.6s linear infinite;\n }\n",document.head.appendChild(e)}}()}),[]);var S=s[a],A=n.useMemo((function(){return{width:void 0!==l?"number"==typeof l?"".concat(l,"px"):l:o?r[o].width:S.defaultSize.width,height:void 0!==m?"number"==typeof m?"".concat(m,"px"):m:o?r[o].height:S.defaultSize.height}}),[l,m,o,S]);if(n.useEffect((function(){if(N>0){var e=setTimeout((function(){return z(!0)}),N);return function(){return clearTimeout(e)}}}),[N]),!C)return null;var j=function(){var e=["block","bg-gray-200",S.baseClasses];switch("pulse"===h?e.push("animate-pulse"):"wave"===h&&e.push("animate-wave"),x){case"light":e.push("bg-gray-100");break;case"medium":e.push("bg-gray-200");break;case"dark":e.push("bg-gray-300")}return p&&e.push("bg-gradient-to-r","from-gray-200","via-gray-100","to-gray-200","bg-200%","animate-shimmer"),e.join(" ")},E=function(e){return i("div",{className:"".concat(j()," ").concat(f),style:(t={width:A.width,height:A.height},w&&(t.borderRadius=w),t),"aria-hidden":"true"},e);var t};return c>1?i("div",{className:"space-y-2",children:Array.from({length:c},(function(e,t){return E(t)}))}):E(0)},h=function(t){return i(d,e({},t,{variant:"text"}))},o=function(t){return i(d,e({},t,{variant:"avatar"}))},l=function(t){return i(d,e({},t,{variant:"button"}))},m=function(t){return i(d,e({},t,{variant:"card"}))},u=function(t){return i(d,e({},t,{variant:"image"}))},c=function(e){var n=e.showBio,a=void 0===n||n;return t("div",{className:"flex items-start space-x-4",children:[i(o,{size:"lg"}),t("div",{className:"flex-1 space-y-2",children:[i(h,{width:"60%",height:"1.25rem"}),i(h,{width:"40%",height:"1rem",intensity:"light"}),a&&t("div",{className:"space-y-1 pt-2",children:[i(h,{width:"100%"}),i(h,{width:"80%"}),i(h,{width:"90%"})]})]})]})},g=function(e){var n=e.itemCount,a=void 0===n?3:n,r=e.showAvatar,s=void 0===r||r,d=e.showMeta,l=void 0===d||d;return i("div",{className:"space-y-4",children:Array.from({length:a},(function(e,n){return t("div",{className:"flex items-start space-x-3",children:[s&&i(o,{}),t("div",{className:"flex-1 space-y-2",children:[i(h,{width:"75%",height:"1.125rem"}),i(h,{width:"100%",height:"0.875rem",intensity:"light"}),l&&t("div",{className:"flex space-x-4",children:[i(h,{width:"3rem",height:"0.75rem",intensity:"light"}),i(h,{width:"4rem",height:"0.75rem",intensity:"light"})]})]})]},n)}))})},f=function(e){var n=e.rows,a=void 0===n?5:n,r=e.columns,s=void 0===r?4:r,d=e.showHeader;return t("div",{className:"space-y-3",children:[(void 0===d||d)&&i("div",{className:"flex space-x-4",children:Array.from({length:s},(function(e,t){return i(h,{width:"100%",height:"1rem",intensity:"dark"},t)}))}),i("div",{className:"space-y-2",children:Array.from({length:a},(function(e,t){return i("div",{className:"flex space-x-4",children:Array.from({length:s},(function(e,t){return i(h,{width:"100%",height:"0.875rem"},t)}))},t)}))})]})},v=function(){return t(a,{children:[i("div",{className:"mb-4",children:i(h,{width:"180px",height:"28px"})}),t("div",{className:"mt-4 grid grid-cols-1 gap-4",children:[t("div",{className:"rounded-lg bg-blue-50 p-4",children:[i(h,{width:"40px",height:"32px",className:"mb-1"}),i(h,{width:"100px",height:"16px"})]}),t("div",{className:"rounded-lg bg-green-50 p-4",children:[i(h,{width:"40px",height:"32px",className:"mb-1"}),i(h,{width:"110px",height:"16px"})]}),t("div",{className:"rounded-lg bg-yellow-50 p-4",children:[i(h,{width:"40px",height:"32px",className:"mb-1"}),i(h,{width:"120px",height:"16px"})]})]})]})},p=function(){return t("div",{className:"bg-white p-5",children:[i(d,{variant:"text",width:"200px"}),i(d,{variant:"text",count:3}),i(o,{size:"lg"}),i(l,{animation:"wave"}),i(c,{showBio:!0}),i(g,{itemCount:5,showAvatar:!0}),i(f,{rows:5,columns:4}),i(d,{variant:"card",shimmer:!0,intensity:"dark",borderRadius:"12px",className:"custom-skeleton"})]})};export{v as CardStatsSkeleton,o as SkeletonAvatar,l as SkeletonButton,m as SkeletonCard,u as SkeletonImage,g as SkeletonList,p as SkeletonLoaderExample,c as SkeletonProfile,f as SkeletonTable,h as SkeletonText,d as default};
|
|
2
|
+
//# sourceMappingURL=SkeletonLoader.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SkeletonLoader.mjs","sources":["../../../../src/components/SkeletonLoader/SkeletonLoader.tsx"],"sourcesContent":["// SkeletonLoader.tsx\nimport React from 'react';\nimport Card from \"../Cards/Card\";\n\n// Internal CSS styles\nconst skeletonStyles = `\n @keyframes wave {\n 0% { transform: translateX(-100%); }\n 50% { transform: translateX(100%); }\n 100% { transform: translateX(100%); }\n }\n\n @keyframes shimmer {\n 0% { background-position: -200% 0; }\n 100% { background-position: 200% 0; }\n }\n\n .skeleton-wave {\n animation: wave 1.6s linear infinite;\n position: relative;\n overflow: hidden;\n }\n\n .skeleton-shimmer {\n animation: shimmer 2s ease-in-out infinite;\n background-size: 200% 100%;\n }\n\n .skeleton-wave::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: linear-gradient(\n 90deg,\n transparent,\n rgba(255, 255, 255, 0.6),\n transparent\n );\n animation: wave 1.6s linear infinite;\n }\n`;\n\n// Inject styles into head if not already present\nconst injectStyles = () => {\n if (typeof document !== 'undefined' && !document.getElementById('skeleton-loader-styles')) {\n const styleElement = document.createElement('style');\n styleElement.id = 'skeleton-loader-styles';\n styleElement.textContent = skeletonStyles;\n document.head.appendChild(styleElement);\n }\n};\n\nexport type SkeletonVariant =\n | 'text'\n | 'rectangular'\n | 'circular'\n | 'rounded'\n | 'card'\n | 'avatar'\n | 'button'\n | 'image'\n | 'line';\n\nexport type SkeletonAnimation = 'pulse' | 'wave' | 'none';\n\nexport type SkeletonSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport interface SkeletonLoaderProps {\n /** Variant of the skeleton */\n variant?: SkeletonVariant;\n /** Animation type */\n animation?: SkeletonAnimation;\n /** Predefined size (overridden by width/height if provided) */\n size?: SkeletonSize;\n /** Custom width */\n width?: string | number;\n /** Custom height */\n height?: string | number;\n /** Number of skeleton items to render */\n count?: number;\n /** Additional CSS classes */\n className?: string;\n /** Whether to show shimmer effect */\n shimmer?: boolean;\n /** Custom border radius */\n borderRadius?: string;\n /** Background color intensity */\n intensity?: 'light' | 'medium' | 'dark';\n /** Delay before showing skeleton (in ms) */\n delay?: number;\n}\n\n// Predefined size configurations\nconst sizeConfig = {\n xs: { width: '4rem', height: '1rem' },\n sm: { width: '6rem', height: '1.25rem' },\n md: { width: '8rem', height: '1.5rem' },\n lg: { width: '12rem', height: '2rem' },\n xl: { width: '16rem', height: '2.5rem' },\n};\n\n// Variant-specific configurations\nconst variantConfig = {\n text: {\n baseClasses: 'rounded',\n defaultSize: { width: '100%', height: '1rem' }\n },\n rectangular: {\n baseClasses: '',\n defaultSize: { width: '100%', height: '8rem' }\n },\n circular: {\n baseClasses: 'rounded-full aspect-square',\n defaultSize: { width: '3rem', height: '3rem' }\n },\n rounded: {\n baseClasses: 'rounded-lg',\n defaultSize: { width: '100%', height: '6rem' }\n },\n card: {\n baseClasses: 'rounded-lg',\n defaultSize: { width: '100%', height: '12rem' }\n },\n avatar: {\n baseClasses: 'rounded-full aspect-square',\n defaultSize: { width: '2.5rem', height: '2.5rem' }\n },\n button: {\n baseClasses: 'rounded-md',\n defaultSize: { width: '5rem', height: '2.25rem' }\n },\n image: {\n baseClasses: 'rounded',\n defaultSize: { width: '100%', height: '10rem' }\n },\n line: {\n baseClasses: 'rounded-full',\n defaultSize: { width: '100%', height: '0.25rem' }\n },\n};\n\nconst SkeletonLoader: React.FC<SkeletonLoaderProps> = ({\n variant = 'text',\n animation = 'pulse',\n size,\n width,\n height,\n count = 1,\n className = '',\n shimmer = false,\n borderRadius,\n intensity = 'medium',\n delay = 0,\n }) => {\n const [shouldShow, setShouldShow] = React.useState(delay === 0);\n\n React.useEffect(() => {\n injectStyles();\n }, []);\n\n // Get variant configuration\n const config = variantConfig[variant];\n\n // Determine dimensions\n const dimensions = React.useMemo(() => {\n let finalWidth: string;\n let finalHeight: string;\n\n if (width !== undefined) {\n finalWidth = typeof width === 'number' ? `${width}px` : width;\n } else if (size) {\n finalWidth = sizeConfig[size].width;\n } else {\n finalWidth = config.defaultSize.width;\n }\n\n if (height !== undefined) {\n finalHeight = typeof height === 'number' ? `${height}px` : height;\n } else if (size) {\n finalHeight = sizeConfig[size].height;\n } else {\n finalHeight = config.defaultSize.height;\n }\n\n return { width: finalWidth, height: finalHeight };\n }, [width, height, size, config]);\n\n React.useEffect(() => {\n if (delay > 0) {\n const timer = setTimeout(() => setShouldShow(true), delay);\n return () => clearTimeout(timer);\n }\n }, [delay]);\n\n if (!shouldShow) {\n return null;\n }\n\n // Build CSS classes\n const getSkeletonClasses = () => {\n const baseClasses = [\n 'block',\n 'bg-gray-200',\n config.baseClasses,\n ];\n\n // Animation classes\n if (animation === 'pulse') {\n baseClasses.push('animate-pulse');\n } else if (animation === 'wave') {\n baseClasses.push('animate-wave');\n }\n\n // Intensity classes\n switch (intensity) {\n case 'light':\n baseClasses.push('bg-gray-100');\n break;\n case 'medium':\n baseClasses.push('bg-gray-200');\n break;\n case 'dark':\n baseClasses.push('bg-gray-300');\n break;\n }\n\n // Shimmer effect\n if (shimmer) {\n baseClasses.push('bg-gradient-to-r', 'from-gray-200', 'via-gray-100', 'to-gray-200', 'bg-200%', 'animate-shimmer');\n }\n\n return baseClasses.join(' ');\n };\n\n // Build inline styles\n const getSkeletonStyles = (): React.CSSProperties => {\n const styles: React.CSSProperties = {\n width: dimensions.width,\n height: dimensions.height,\n };\n\n if (borderRadius) {\n styles.borderRadius = borderRadius;\n }\n\n return styles;\n };\n\n // Render single skeleton\n const renderSkeleton = (index: number) => (\n <div\n key={index}\n className={`${getSkeletonClasses()} ${className}`}\n style={getSkeletonStyles()}\n aria-hidden=\"true\"\n />\n );\n\n // Render multiple skeletons\n if (count > 1) {\n return (\n <div className=\"space-y-2\">\n {Array.from({ length: count }, (_, index) => renderSkeleton(index))}\n </div>\n );\n }\n\n return renderSkeleton(0);\n};\n\nexport default SkeletonLoader;\n\n// Preset Components for common use cases\nexport const SkeletonText: React.FC<Omit<SkeletonLoaderProps, 'variant'>> = (props) => (\n <SkeletonLoader {...props} variant=\"text\" />\n);\n\nexport const SkeletonAvatar: React.FC<Omit<SkeletonLoaderProps, 'variant'>> = (props) => (\n <SkeletonLoader {...props} variant=\"avatar\" />\n);\n\nexport const SkeletonButton: React.FC<Omit<SkeletonLoaderProps, 'variant'>> = (props) => (\n <SkeletonLoader {...props} variant=\"button\" />\n);\n\nexport const SkeletonCard: React.FC<Omit<SkeletonLoaderProps, 'variant'>> = (props) => (\n <SkeletonLoader {...props} variant=\"card\" />\n);\n\nexport const SkeletonImage: React.FC<Omit<SkeletonLoaderProps, 'variant'>> = (props) => (\n <SkeletonLoader {...props} variant=\"image\" />\n);\n\n// Compound Components for complex layouts\nexport const SkeletonProfile: React.FC<{ showBio?: boolean }> = ({ showBio = true }) => (\n <div className=\"flex items-start space-x-4\">\n <SkeletonAvatar size=\"lg\" />\n <div className=\"flex-1 space-y-2\">\n <SkeletonText width=\"60%\" height=\"1.25rem\" />\n <SkeletonText width=\"40%\" height=\"1rem\" intensity=\"light\" />\n {showBio && (\n <div className=\"space-y-1 pt-2\">\n <SkeletonText width=\"100%\" />\n <SkeletonText width=\"80%\" />\n <SkeletonText width=\"90%\" />\n </div>\n )}\n </div>\n </div>\n);\n\nexport const SkeletonList: React.FC<{\n itemCount?: number;\n showAvatar?: boolean;\n showMeta?: boolean;\n}> = ({\n itemCount = 3,\n showAvatar = true,\n showMeta = true\n }) => (\n <div className=\"space-y-4\">\n {Array.from({ length: itemCount }, (_, index) => (\n <div key={index} className=\"flex items-start space-x-3\">\n {showAvatar && <SkeletonAvatar />}\n <div className=\"flex-1 space-y-2\">\n <SkeletonText width=\"75%\" height=\"1.125rem\" />\n <SkeletonText width=\"100%\" height=\"0.875rem\" intensity=\"light\" />\n {showMeta && (\n <div className=\"flex space-x-4\">\n <SkeletonText width=\"3rem\" height=\"0.75rem\" intensity=\"light\" />\n <SkeletonText width=\"4rem\" height=\"0.75rem\" intensity=\"light\" />\n </div>\n )}\n </div>\n </div>\n ))}\n </div>\n);\n\nexport const SkeletonTable: React.FC<{\n rows?: number;\n columns?: number;\n showHeader?: boolean;\n}> = ({\n rows = 5,\n columns = 4,\n showHeader = true\n }) => (\n <div className=\"space-y-3\">\n {showHeader && (\n <div className=\"flex space-x-4\">\n {Array.from({ length: columns }, (_, index) => (\n <SkeletonText key={index} width=\"100%\" height=\"1rem\" intensity=\"dark\" />\n ))}\n </div>\n )}\n <div className=\"space-y-2\">\n {Array.from({ length: rows }, (_, rowIndex) => (\n <div key={rowIndex} className=\"flex space-x-4\">\n {Array.from({ length: columns }, (_, colIndex) => (\n <SkeletonText key={colIndex} width=\"100%\" height=\"0.875rem\" />\n ))}\n </div>\n ))}\n </div>\n </div>\n);\n\nexport const CardStatsSkeleton = () => (\n <Card>\n <div className='mb-4'>\n <SkeletonText width='180px' height='28px' />\n </div>\n <div className='mt-4 grid grid-cols-1 gap-4'>\n <div className='rounded-lg bg-blue-50 p-4'>\n <SkeletonText width='40px' height='32px' className='mb-1' />\n <SkeletonText width='100px' height='16px' />\n </div>\n <div className='rounded-lg bg-green-50 p-4'>\n <SkeletonText width='40px' height='32px' className='mb-1' />\n <SkeletonText width='110px' height='16px' />\n </div>\n <div className='rounded-lg bg-yellow-50 p-4'>\n <SkeletonText width='40px' height='32px' className='mb-1' />\n <SkeletonText width='120px' height='16px' />\n </div>\n </div>\n </Card>\n);\n\nexport const SkeletonLoaderExample = () => {\n return (\n <div className=\"bg-white p-5\">\n <SkeletonLoader variant=\"text\" width=\"200px\" />\n\n <SkeletonLoader variant=\"text\" count={3} />\n\n <SkeletonAvatar size=\"lg\" />\n <SkeletonButton animation=\"wave\" />\n\n <SkeletonProfile showBio={true} />\n <SkeletonList itemCount={5} showAvatar={true} />\n <SkeletonTable rows={5} columns={4} />\n\n <SkeletonLoader\n variant=\"card\"\n shimmer={true}\n intensity=\"dark\"\n borderRadius=\"12px\"\n className=\"custom-skeleton\"\n />\n </div>\n )\n}"],"names":["sizeConfig","xs","width","height","sm","md","lg","xl","variantConfig","text","baseClasses","defaultSize","rectangular","circular","rounded","card","avatar","button","image","line","SkeletonLoader","_a","_b","variant","_c","animation","size","_d","count","_e","className","_f","shimmer","borderRadius","_g","intensity","_h","delay","_j","React","useState","shouldShow","setShouldShow","useEffect","document","getElementById","styleElement","createElement","id","textContent","head","appendChild","injectStyles","config","dimensions","useMemo","undefined","concat","timer_1","setTimeout","clearTimeout","getSkeletonClasses","push","join","renderSkeleton","index","_jsx","style","styles","children","Array","from","length","_","SkeletonText","props","__assign","SkeletonAvatar","SkeletonButton","SkeletonCard","SkeletonImage","SkeletonProfile","showBio","_jsxs","SkeletonList","itemCount","showAvatar","showMeta","SkeletonTable","rows","columns","showHeader","rowIndex","colIndex","CardStatsSkeleton","Card","SkeletonLoaderExample"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"../../node_modules/tslib/tslib.es6.mjs";import"react/jsx-runtime";import"react";var t="1.0.0",i={sizes:{xs:{width:"4rem",height:"1rem"},sm:{width:"6rem",height:"1.25rem"},md:{width:"8rem",height:"1.5rem"},lg:{width:"12rem",height:"2rem"},xl:{width:"16rem",height:"2.5rem"}},variants:["text","rectangular","circular","rounded","card","avatar","button","image","line"],animations:["pulse","wave","none"],intensities:["light","medium","dark"]},e={userProfile:{variant:"avatar",size:"lg",animation:"pulse"},cardTitle:{variant:"text",width:"75%",height:"1.5rem"},cardDescription:{variant:"text",count:2,width:"100%",height:"1rem",intensity:"light"},button:{variant:"button",animation:"wave"},image:{variant:"image",shimmer:!0}};export{t as SKELETON_LOADER_VERSION,e as SKELETON_PATTERNS,i as SKELETON_PRESETS};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../src/components/SkeletonLoader/index.ts"],"sourcesContent":["// Main component export\nexport { default as SkeletonLoader } from './SkeletonLoader';\n\n// Preset component exports\nexport {\n SkeletonText,\n SkeletonAvatar,\n SkeletonButton,\n SkeletonCard,\n SkeletonImage,\n} from './SkeletonLoader';\n\n// Compound component exports\nexport {\n SkeletonProfile,\n SkeletonList,\n SkeletonTable,\n CardStatsSkeleton\n} from './SkeletonLoader';\n\n// Type exports\nexport type {\n SkeletonLoaderProps,\n SkeletonVariant,\n SkeletonAnimation,\n SkeletonSize,\n} from './SkeletonLoader';\n\n// Re-export everything as named exports for flexibility\nexport * from './SkeletonLoader';\n\n// Default export for convenience\nimport SkeletonLoader from './SkeletonLoader';\nexport default SkeletonLoader;\n\n// Version and metadata\nexport const SKELETON_LOADER_VERSION = '1.0.0';\n\n// Utility types for consumers\nexport interface SkeletonLoaderModule {\n SkeletonLoader: typeof SkeletonLoader;\n SkeletonText: typeof import('./SkeletonLoader').SkeletonText;\n SkeletonAvatar: typeof import('./SkeletonLoader').SkeletonAvatar;\n SkeletonButton: typeof import('./SkeletonLoader').SkeletonButton;\n SkeletonCard: typeof import('./SkeletonLoader').SkeletonCard;\n SkeletonImage: typeof import('./SkeletonLoader').SkeletonImage;\n SkeletonProfile: typeof import('./SkeletonLoader').SkeletonProfile;\n SkeletonList: typeof import('./SkeletonLoader').SkeletonList;\n SkeletonTable: typeof import('./SkeletonLoader').SkeletonTable;\n}\n\n// Preset configurations for easy customization\nexport const SKELETON_PRESETS = {\n sizes: {\n xs: { width: '4rem', height: '1rem' },\n sm: { width: '6rem', height: '1.25rem' },\n md: { width: '8rem', height: '1.5rem' },\n lg: { width: '12rem', height: '2rem' },\n xl: { width: '16rem', height: '2.5rem' },\n },\n variants: [\n 'text',\n 'rectangular',\n 'circular',\n 'rounded',\n 'card',\n 'avatar',\n 'button',\n 'image',\n 'line',\n ] as const,\n animations: [\n 'pulse',\n 'wave',\n 'none',\n ] as const,\n intensities: [\n 'light',\n 'medium',\n 'dark',\n ] as const,\n} as const;\n\n\n// Common skeleton patterns\nexport const SKELETON_PATTERNS = {\n userProfile: {\n variant: 'avatar' as const,\n size: 'lg' as const,\n animation: 'pulse' as const,\n },\n cardTitle: {\n variant: 'text' as const,\n width: '75%',\n height: '1.5rem',\n },\n cardDescription: {\n variant: 'text' as const,\n count: 2,\n width: '100%',\n height: '1rem',\n intensity: 'light' as const,\n },\n button: {\n variant: 'button' as const,\n animation: 'wave' as const,\n },\n image: {\n variant: 'image' as const,\n shimmer: true,\n },\n} as const;"],"names":["SKELETON_LOADER_VERSION","SKELETON_PRESETS","sizes","xs","width","height","sm","md","lg","xl","variants","animations","intensities","SKELETON_PATTERNS","userProfile","variant","size","animation","cardTitle","cardDescription","count","intensity","button","image","shimmer"],"mappings":"uFAoCO,IAAMA,EAA0B,QAgB1BC,EAAmB,CAC5BC,MAAO,CACHC,GAAI,CAAEC,MAAO,OAAQC,OAAQ,QAC7BC,GAAI,CAAEF,MAAO,OAAQC,OAAQ,WAC7BE,GAAI,CAAEH,MAAO,OAAQC,OAAQ,UAC7BG,GAAI,CAAEJ,MAAO,QAASC,OAAQ,QAC9BI,GAAI,CAAEL,MAAO,QAASC,OAAQ,WAElCK,SAAU,CACN,OACA,cACA,WACA,UACA,OACA,SACA,SACA,QACA,QAEJC,WAAY,CACR,QACA,OACA,QAEJC,YAAa,CACT,QACA,SACA,SAMKC,EAAoB,CAC7BC,YAAa,CACTC,QAAS,SACTC,KAAM,KACNC,UAAW,SAEfC,UAAW,CACPH,QAAS,OACTX,MAAO,MACPC,OAAQ,UAEZc,gBAAiB,CACbJ,QAAS,OACTK,MAAO,EACPhB,MAAO,OACPC,OAAQ,OACRgB,UAAW,SAEfC,OAAQ,CACJP,QAAS,SACTE,UAAW,QAEfM,MAAO,CACHR,QAAS,QACTS,SAAS"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as e,jsx as r}from"react/jsx-runtime";import t from"../Button/Button.mjs";import"../Button/ExportButton.mjs";function n(n){var a=n.currentPage,i=n.totalPages,l=n.totalItems,o=n.itemsPerPage,d=n.onPageChange,s=n.onViewChange,c=n.loading,m=void 0!==c&&c,u=function(e){e>0&&e<=i&&!m&&d&&d(e)},h=(a-1)*o,g=Math.min(h+o,l);return e("div",{className:"flex items-center justify-between border-t border-gray-200 bg-white py-3",children:[e("div",{className:"flex flex-1 justify-between sm:hidden",children:[r("button",{onClick:function(){return u(a-1)},disabled:1===a||m,className:"relative inline-flex items-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50 ".concat(1===a||m?"cursor-not-allowed opacity-50":""),children:"Previous"}),r("button",{onClick:function(){return u(a+1)},disabled:a===i||m,className:"relative ml-3 inline-flex items-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50 ".concat(a===i||m?"cursor-not-allowed opacity-50":""),children:"Next"})]}),e("div",{className:"hidden sm:flex sm:flex-1 sm:items-center sm:justify-between",children:[e("div",{className:"flex items-center justify-center gap-2",children:[e("div",{className:"relative",children:[r("select",{value:o,onChange:function(e){return s&&s(e.target.value)},disabled:m,className:"appearance-none rounded-md border border-gray-300 bg-white py-2 pl-3 pr-8 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500",children:[10,20,30,50,100].map((function(e){return r("option",{value:e,children:e},e)}))}),r("div",{className:"pointer-events-none absolute inset-y-0 right-0 flex items-center px-2 text-gray-700",children:r("svg",{className:"h-4 w-4",fill:"currentColor",viewBox:"0 0 20 20",children:r("path",{fillRule:"evenodd",d:"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z",clipRule:"evenodd"})})})]}),e("p",{className:"text-sm text-gray-700",children:[e("span",{children:[l," Entries"]}),e("span",{className:"ml-1",children:["(Showing ",h+1,"-",g," of ",l,")"]})]})]}),r("div",{children:e("nav",{className:"relative z-0 inline-flex gap-2 -space-x-px rounded-md shadow-sm","aria-label":"Pagination",children:[e("button",{onClick:function(){return u(a-1)},disabled:1===a||m,className:"relative inline-flex items-center rounded-md border border-gray-300 bg-white px-2 py-2 text-sm font-medium text-gray-500 hover:bg-gray-50 ".concat(1===a||m?"cursor-not-allowed opacity-50":""),children:[r("span",{className:"sr-only",children:"Previous"}),r("svg",{className:"h-5 w-5",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:r("path",{fillRule:"evenodd",d:"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z",clipRule:"evenodd"})})]}),function(){var e=[];if(i<=5)for(var r=1;r<=i;r++)e.push(r);else{var t=Math.max(1,a-2),n=Math.min(i,t+5-1);n-t<4&&(t=Math.max(1,n-5+1));for(r=t;r<=n;r++)e.push(r)}return e}().map((function(e){return r("button",{onClick:function(){return u(e)},disabled:m,"aria-current":a===e?"page":void 0,className:"relative inline-flex items-center rounded-md border px-4 py-2 text-sm font-semibold ".concat(a===e?"z-10 border-primary-100 bg-primary-50 text-primary":"border-gray-300 bg-white text-gray-500 hover:bg-gray-50"," ").concat(m?"cursor-not-allowed opacity-50":""),children:e},e)})),e(t,{onClick:function(){return u(a+1)},disabled:a===i||m,type:"button",variant:"primary",size:"sm",outline:!0,children:["Next Page",r("svg",{className:"h-5 w-5",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",children:r("path",{fillRule:"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z",clipRule:"evenodd"})})]})]})})]})]})}export{n as Pagination};
|
|
2
|
+
//# sourceMappingURL=Pagination.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pagination.mjs","sources":["../../../../src/components/Table/Pagination.tsx"],"sourcesContent":["import { PaginationProps } from \"./types\";\nimport { Button } from \"../Button\";\n\nexport function Pagination({\n currentPage,\n totalPages,\n totalItems,\n itemsPerPage,\n onPageChange,\n onViewChange,\n loading = false,\n}: PaginationProps) {\n const perPageOptions = [10, 20, 30, 50, 100];\n const goToPage = (page: number) => {\n if (page > 0 && page <= totalPages && !loading && onPageChange) {\n onPageChange(page);\n }\n };\n\n const getPageNumbers = () => {\n const pageNumbers = [];\n const maxPagesToShow = 5;\n\n if (totalPages <= maxPagesToShow) {\n for (let i = 1; i <= totalPages; i++) {\n pageNumbers.push(i);\n }\n } else {\n let startPage = Math.max(1, currentPage - 2);\n const endPage = Math.min(totalPages, startPage + maxPagesToShow - 1);\n\n if (endPage - startPage < maxPagesToShow - 1) {\n startPage = Math.max(1, endPage - maxPagesToShow + 1);\n }\n\n for (let i = startPage; i <= endPage; i++) {\n pageNumbers.push(i);\n }\n }\n\n return pageNumbers;\n };\n\n const startIndex = (currentPage - 1) * itemsPerPage;\n const endIndex = Math.min(startIndex + itemsPerPage, totalItems);\n\n return (\n <div className=\"flex items-center justify-between border-t border-gray-200 bg-white py-3\">\n <div className=\"flex flex-1 justify-between sm:hidden\">\n <button\n onClick={() => goToPage(currentPage - 1)}\n disabled={currentPage === 1 || loading}\n className={`relative inline-flex items-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50 ${\n currentPage === 1 || loading ? \"cursor-not-allowed opacity-50\" : \"\"\n }`}\n >\n Previous\n </button>\n <button\n onClick={() => goToPage(currentPage + 1)}\n disabled={currentPage === totalPages || loading}\n className={`relative ml-3 inline-flex items-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50 ${\n currentPage === totalPages || loading\n ? \"cursor-not-allowed opacity-50\"\n : \"\"\n }`}\n >\n Next\n </button>\n </div>\n\n <div className=\"hidden sm:flex sm:flex-1 sm:items-center sm:justify-between\">\n <div className=\"flex items-center justify-center gap-2\">\n {/*{onViewChange && (*/}\n <div className=\"relative\">\n <select\n value={itemsPerPage}\n onChange={(e) => onViewChange && onViewChange(e.target.value)}\n disabled={loading}\n className=\"appearance-none rounded-md border border-gray-300 bg-white py-2 pl-3 pr-8 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500\"\n >\n {perPageOptions.map((option) => (\n <option key={option} value={option}>\n {option}\n </option>\n ))}\n </select>\n <div className=\"pointer-events-none absolute inset-y-0 right-0 flex items-center px-2 text-gray-700\">\n <svg className=\"h-4 w-4\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </div>\n </div>\n {/*)}*/}\n <p className=\"text-sm text-gray-700\">\n <span>{totalItems} Entries</span>\n <span className=\"ml-1\">\n (Showing {startIndex + 1}-{endIndex} of {totalItems})\n </span>\n </p>\n </div>\n <div>\n <nav\n className=\"relative z-0 inline-flex gap-2 -space-x-px rounded-md shadow-sm\"\n aria-label=\"Pagination\"\n >\n <button\n onClick={() => goToPage(currentPage - 1)}\n disabled={currentPage === 1 || loading}\n className={`relative inline-flex items-center rounded-md border border-gray-300 bg-white px-2 py-2 text-sm font-medium text-gray-500 hover:bg-gray-50 ${\n currentPage === 1 || loading\n ? \"cursor-not-allowed opacity-50\"\n : \"\"\n }`}\n >\n <span className=\"sr-only\">Previous</span>\n <svg\n className=\"h-5 w-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </button>\n\n {getPageNumbers().map((number) => (\n <button\n key={number}\n onClick={() => goToPage(number)}\n disabled={loading}\n aria-current={currentPage === number ? \"page\" : undefined}\n className={`relative inline-flex items-center rounded-md border px-4 py-2 text-sm font-semibold ${\n currentPage === number\n ? \"z-10 border-primary-100 bg-primary-50 text-primary\"\n : \"border-gray-300 bg-white text-gray-500 hover:bg-gray-50\"\n } ${loading ? \"cursor-not-allowed opacity-50\" : \"\"}`}\n >\n {number}\n </button>\n ))}\n\n <Button\n onClick={() => goToPage(currentPage + 1)}\n disabled={currentPage === totalPages || loading}\n type=\"button\"\n variant=\"primary\"\n size=\"sm\"\n outline\n >\n Next Page\n <svg\n className=\"h-5 w-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </Button>\n </nav>\n </div>\n </div>\n </div>\n );\n}\n"],"names":["Pagination","_a","currentPage","totalPages","totalItems","itemsPerPage","onPageChange","onViewChange","_b","loading","goToPage","page","startIndex","endIndex","Math","min","_jsxs","className","_jsx","onClick","disabled","concat","children","value","onChange","e","target","map","option","fill","viewBox","fillRule","d","clipRule","xmlns","pageNumbers","i","push","startPage","max","endPage","maxPagesToShow","getPageNumbers","number","undefined","Button","type","variant","size","outline"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{__spreadArray as e}from"../../node_modules/tslib/tslib.es6.mjs";import{jsx as t,jsxs as a,Fragment as r}from"react/jsx-runtime";import n,{useState as l,useMemo as i}from"react";import{ChevronDown as o,ChevronRight as c,ArrowUpDown as s,ArrowUp as d,ArrowDown as u}from"lucide-react";import{Pagination as m}from"./Pagination.mjs";import{TableSkeleton as g}from"./TableSkeleton.mjs";import h from"../Cards/EmptyStateCard.mjs";function p(p){var f=p.data,v=p.columns,y=p.itemsPerPage,b=void 0===y?20:y,x=p.onViewChange,w=p.totalItems,N=p.currentPage,S=void 0===N?1:N,C=p.onPageChange,P=p.loading,j=void 0!==P&&P,k=p.showPagination,R=void 0===k||k,K=p.onRowClick,z=p.useCardLayout,_=void 0!==z&&z,E=p.emptyState,I=p.expandableRows,M=void 0!==I&&I,T=p.expandedRowRender,V=p.onRowToggle,A=p.defaultExpandedRows,F=void 0===A?new Set:A,H=p.getRowKey,L=void 0===H?function(e,t){return t}:H,O=p.paginationMeta,q=p.defaultSortKey,B=p.defaultSortOrder,D=void 0===B?"asc":B,G=p.onSort,J=l(F),Q=J[0],U=J[1],W=l(q||null),X=W[0],Y=W[1],Z=l(q?D:null),$=Z[0],ee=Z[1],te=(null==O?void 0:O.total)||w||f.length,ae=(null==O?void 0:O.last_page)||Math.ceil(te/b),re=(null==O?void 0:O.current_page)||S,ne=(null==O?void 0:O.per_page)||b,le=i((function(){return X&&$?e([],f,!0).sort((function(e,t){var a,r,n=v.find((function(e){return(e.sortKey||e.value)===X}));return n?("function"==typeof n.value?(a=e[X],r=t[X]):(a=e[n.value],r=t[n.value]),null==a&&null==r?0:null==a?1:null==r?-1:"string"==typeof a&&"string"==typeof r?"asc"===$?a.localeCompare(r):r.localeCompare(a):"number"==typeof a&&"number"==typeof r?"asc"===$?a-r:r-a:"asc"===$?String(a).localeCompare(String(r)):String(r).localeCompare(String(a))):0})):f}),[f,X,$,v]),ie=function(e){if(!e.sortable)return null;var a=String(e.sortKey||e.value);return X!==a?t(s,{size:14,className:"text-gray-400"}):t("asc"===$?d:u,{size:14,className:"text-blue-600"})},oe=function(e,t){M&&T?ce(e,t):K&&K(e)},ce=function(e,t){var a=L(e,t),r=new Set(Q),n=Q.has(a);n?r.delete(a):r.add(a),U(r),V&&V(e,!n)},se=function(e,t){var a=L(e,t);return Q.has(a)},de=t(h,{title:"No Record found"}),ue=function(e){switch(e){case"center":return"text-center";case"right":return"text-right";default:return"text-left"}},me=function(){return a("div",{className:"grid gap-4 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",children:[j&&Array.from({length:ne}).map((function(e,r){return t("div",{className:"bg-white rounded-lg border border-gray-200 p-4 animate-pulse",children:t("div",{className:"space-y-3",children:v.slice(0,3).map((function(e,r){return a("div",{className:"flex justify-between items-center",children:[t("div",{className:"h-4 bg-gray-200 rounded w-1/3"}),t("div",{className:"h-4 bg-gray-200 rounded w-1/2"})]},r)}))})},r)})),le.length>0?le.map((function(e,r){var n=se(e,r);return a("div",{className:"bg-white rounded-lg border border-gray-200",children:[t("div",{onClick:function(){return oe(e,r)},className:"p-4 transition-all duration-200 hover:shadow-md hover:border-gray-300 ".concat(K||M?"cursor-pointer":""," ").concat(j?"opacity-50":""," ").concat(M?"border-b border-gray-100 last:border-b-0":""),children:a("div",{className:"space-y-3",children:[M&&t("div",{className:"flex items-center justify-between mb-2",children:a("div",{className:"flex items-center text-sm text-gray-500",children:[t(n?o:c,{size:16,className:"mr-1"}),t("span",{children:n?"Hide details":"Show details"})]})}),v.map((function(r,n){return a("div",{className:"flex justify-between items-start",children:[a("span",{className:"text-sm font-medium text-gray-500 flex-shrink-0 mr-3",children:[r.title,":"]}),t("span",{className:"text-sm text-gray-800 text-right",children:"function"==typeof r.value?r.value(e):e[r.value]})]},n)}))]})}),M&&n&&T&&t("div",{className:"p-4 bg-gray-50 border-t border-gray-100 rounded-b-lg",children:T(e)})]},r)})):!j&&t("div",{className:"col-span-full",children:E||de})]})};return a(r,{children:[_?me():a(r,{children:[t("div",{className:"hidden md:block",children:t("div",{className:"relative overflow-x-auto",children:a("table",{className:"w-full",children:[t("thead",{children:a("tr",{children:[M&&t("th",{className:"bg-gray-100 px-6 py-3 text-left text-sm font-semibold tracking-wider text-gray-500 w-12 rounded-bl-xl rounded-tl-xl"}),v.map((function(e,r){return t("th",{onClick:function(){return function(e){if(e.sortable){var t=String(e.sortKey||e.value),a="asc";X===t&&(a="asc"===$?"desc":"desc"===$?null:"asc"),Y(a?t:null),ee(a),G&&a&&G(t,a)}}(e)},className:"bg-gray-100 px-6 py-3 text-sm font-semibold tracking-wider text-gray-500 ".concat(e.width||""," ").concat(ue(e.align)," ").concat(e.sortable?"cursor-pointer select-none hover:bg-gray-200":""," ").concat(M||0!==r?"":"rounded-bl-xl rounded-tl-xl"," ").concat(r===v.length-1?"rounded-br-xl rounded-tr-xl":""," ").concat(e.className||""),style:e.width?{width:e.width}:void 0,children:a("div",{className:"flex items-center gap-2 justify-between",children:[t("span",{children:e.title}),ie(e)]})},r)}))]})}),a("tbody",{className:"divide-y divide-gray-200 bg-white ".concat(j?"opacity-50":""," ").concat(K||M?"cursor-pointer":""),children:[j&&t(g,{columns:v.length+(M?1:0),rows:ne}),le.length>0?le.map((function(e,r){var l=se(e,r);return a(n.Fragment,{children:[a("tr",{onClick:function(){return oe(e,r)},className:"hover:bg-gray-50 transition-colors duration-150 ".concat(l?"bg-blue-50":""),children:[M&&t("td",{className:"whitespace-nowrap px-6 py-4 text-sm font-medium text-gray-800",children:t("div",{className:"flex items-center justify-center",children:t(l?o:c,{size:16,className:"text-gray-500"})})}),v.map((function(a,r){return t("td",{className:"whitespace-nowrap px-6 py-4 text-sm font-medium text-gray-800 ".concat(ue(a.align)," ").concat(a.className||""),style:a.width?{width:a.width}:void 0,children:"function"==typeof a.value?a.value(e):e[a.value]},r)}))]}),M&&l&&T&&t("tr",{className:"bg-gray-50",children:t("td",{colSpan:v.length+1,className:"px-6 py-4",children:t("div",{className:"animate-fade-in",children:T(e)})})},"".concat(r,"-expanded"))]},r)})):!j&&t("tr",{children:t("td",{colSpan:v.length+(M?1:0),className:"px-6 py-12 text-center",children:E||de})})]})]})})}),t("div",{className:"block md:hidden",children:me()})]}),R&&t(m,{currentPage:re,totalPages:ae,totalItems:te,itemsPerPage:ne,onPageChange:C,onViewChange:x,loading:j})]})}export{p as default};
|
|
2
|
+
//# sourceMappingURL=Table.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Table.mjs","sources":["../../../../src/components/Table/Table.tsx"],"sourcesContent":["import {ReactNode, useMemo, useState} from \"react\";\nimport {ArrowDown, ArrowUp, ArrowUpDown, ChevronDown, ChevronRight} from \"lucide-react\";\n\nimport { Pagination } from \"./Pagination\";\nimport {ExpandableTableProps, Column} from \"./types\";\nimport { TableSkeleton } from \"./TableSkeleton\";\nimport { EmptyStateCard } from \"../Cards\";\nimport React from \"react\";\n\ntype SortOrder = \"asc\" | \"desc\" | null;\n\nexport default function Table<T>({\n data,\n columns,\n itemsPerPage = 20,\n onViewChange,\n totalItems,\n currentPage = 1,\n onPageChange,\n loading = false,\n showPagination = true,\n onRowClick,\n useCardLayout = false,\n emptyState,\n expandableRows = false,\n expandedRowRender,\n onRowToggle,\n defaultExpandedRows = new Set(),\n getRowKey = (item: T, index: number) => index,\n paginationMeta,\n defaultSortKey,\n defaultSortOrder = \"asc\",\n onSort,\n}: ExpandableTableProps<T>) {\n const [expandedRows, setExpandedRows] =\n useState<Set<string | number>>(defaultExpandedRows);\n const [sortKey, setSortKey] = useState<string | null>(defaultSortKey || null);\n const [sortOrder, setSortOrder] = useState<SortOrder>(\n defaultSortKey ? defaultSortOrder : null,\n );\n\n // Pagination calculations\n const totalItemsCount = paginationMeta?.total || totalItems || data.length;\n const totalPages =\n paginationMeta?.last_page || Math.ceil(totalItemsCount / itemsPerPage);\n const currentPageNumber = paginationMeta?.current_page || currentPage;\n const perPage = paginationMeta?.per_page || itemsPerPage;\n\n // Sorting logic\n const sortedData = useMemo(() => {\n if (!sortKey || !sortOrder) return data;\n\n const sorted = [...data].sort((a, b) => {\n const column = columns.find(\n (col) => (col.sortKey || col.value) === sortKey,\n );\n if (!column) return 0;\n\n let aValue: any;\n let bValue: any;\n\n if (typeof column.value === \"function\") {\n // For function-based columns, use the sortKey to get raw values\n aValue = (a as any)[sortKey];\n bValue = (b as any)[sortKey];\n } else {\n aValue = a[column.value];\n bValue = b[column.value];\n }\n\n // Handle null/undefined\n if (aValue == null && bValue == null) return 0;\n if (aValue == null) return 1;\n if (bValue == null) return -1;\n\n // Handle different types\n if (typeof aValue === \"string\" && typeof bValue === \"string\") {\n return sortOrder === \"asc\"\n ? aValue.localeCompare(bValue)\n : bValue.localeCompare(aValue);\n }\n\n if (typeof aValue === \"number\" && typeof bValue === \"number\") {\n return sortOrder === \"asc\" ? aValue - bValue : bValue - aValue;\n }\n\n // Default comparison\n return sortOrder === \"asc\"\n ? String(aValue).localeCompare(String(bValue))\n : String(bValue).localeCompare(String(aValue));\n });\n\n return sorted;\n }, [data, sortKey, sortOrder, columns]);\n\n const currentItems = sortedData;\n\n // Sorting handler\n const handleSort = (column: Column<T>) => {\n if (!column.sortable) return;\n\n const key = String(column.sortKey || column.value);\n let newOrder: SortOrder = \"asc\";\n\n if (sortKey === key) {\n if (sortOrder === \"asc\") newOrder = \"desc\";\n else if (sortOrder === \"desc\") newOrder = null;\n else newOrder = \"asc\";\n }\n\n setSortKey(newOrder ? key : null);\n setSortOrder(newOrder);\n\n if (onSort && newOrder) {\n onSort(key, newOrder);\n }\n };\n\n const getSortIcon = (column: Column<T>) => {\n if (!column.sortable) return null;\n\n const key = String(column.sortKey || column.value);\n if (sortKey !== key) {\n return <ArrowUpDown size={14} className=\"text-gray-400\" />;\n }\n\n return sortOrder === \"asc\" ? (\n <ArrowUp size={14} className=\"text-blue-600\" />\n ) : (\n <ArrowDown size={14} className=\"text-blue-600\" />\n );\n };\n\n // Row expansion logic\n const handleRowClick = (item: T, index: number) => {\n if (expandableRows && expandedRowRender) {\n toggleRow(item, index);\n } else if (onRowClick) {\n onRowClick(item);\n }\n };\n\n const toggleRow = (item: T, index: number) => {\n const rowKey = getRowKey(item, index);\n const newExpandedRows = new Set(expandedRows);\n const isCurrentlyExpanded = expandedRows.has(rowKey);\n\n if (isCurrentlyExpanded) {\n newExpandedRows.delete(rowKey);\n } else {\n newExpandedRows.add(rowKey);\n }\n\n setExpandedRows(newExpandedRows);\n\n if (onRowToggle) {\n onRowToggle(item, !isCurrentlyExpanded);\n }\n };\n\n const isRowExpanded = (item: T, index: number) => {\n const rowKey = getRowKey(item, index);\n return expandedRows.has(rowKey);\n };\n\n const defaultEmptyState = <EmptyStateCard title=\"No Record found\" />;\n\n const getAlignmentClass = (align?: \"left\" | \"center\" | \"right\") => {\n switch (align) {\n case \"center\":\n return \"text-center\";\n case \"right\":\n return \"text-right\";\n default:\n return \"text-left\";\n }\n };\n\n // Card Layout Renderer\n const renderCardLayout = () => (\n <div className=\"grid gap-4 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3\">\n {loading &&\n Array.from({ length: perPage }).map((_, index) => (\n <div\n key={index}\n className=\"bg-white rounded-lg border border-gray-200 p-4 animate-pulse\"\n >\n <div className=\"space-y-3\">\n {columns.slice(0, 3).map((_, colIndex) => (\n <div\n key={colIndex}\n className=\"flex justify-between items-center\"\n >\n <div className=\"h-4 bg-gray-200 rounded w-1/3\"></div>\n <div className=\"h-4 bg-gray-200 rounded w-1/2\"></div>\n </div>\n ))}\n </div>\n </div>\n ))}\n {currentItems.length > 0\n ? currentItems.map((item: T, rowIndex) => {\n const expanded = isRowExpanded(item, rowIndex);\n return (\n <div\n key={rowIndex}\n className=\"bg-white rounded-lg border border-gray-200\"\n >\n <div\n onClick={() => handleRowClick(item, rowIndex)}\n className={`p-4 transition-all duration-200 hover:shadow-md hover:border-gray-300 ${\n onRowClick || expandableRows ? \"cursor-pointer\" : \"\"\n } ${loading ? \"opacity-50\" : \"\"} ${\n expandableRows\n ? \"border-b border-gray-100 last:border-b-0\"\n : \"\"\n }`}\n >\n <div className=\"space-y-3\">\n {expandableRows && (\n <div className=\"flex items-center justify-between mb-2\">\n <div className=\"flex items-center text-sm text-gray-500\">\n {expanded ? (\n <ChevronDown size={16} className=\"mr-1\" />\n ) : (\n <ChevronRight size={16} className=\"mr-1\" />\n )}\n <span>\n {expanded ? \"Hide details\" : \"Show details\"}\n </span>\n </div>\n </div>\n )}\n {columns.map((column, colIndex) => (\n <div\n key={colIndex}\n className=\"flex justify-between items-start\"\n >\n <span className=\"text-sm font-medium text-gray-500 flex-shrink-0 mr-3\">\n {column.title}:\n </span>\n <span className=\"text-sm text-gray-800 text-right\">\n {typeof column.value === \"function\"\n ? column.value(item)\n : (item[column.value] as ReactNode)}\n </span>\n </div>\n ))}\n </div>\n </div>\n {expandableRows && expanded && expandedRowRender && (\n <div className=\"p-4 bg-gray-50 border-t border-gray-100 rounded-b-lg\">\n {expandedRowRender(item)}\n </div>\n )}\n </div>\n );\n })\n : !loading && (\n <div className=\"col-span-full\">\n {emptyState || defaultEmptyState}\n </div>\n )}\n </div>\n );\n\n // Table Layout Renderer\n const renderTableLayout = () => (\n <div className=\"relative overflow-x-auto\">\n <table className=\"w-full\">\n <thead>\n <tr>\n {expandableRows && (\n <th className=\"bg-gray-100 px-6 py-3 text-left text-sm font-semibold tracking-wider text-gray-500 w-12 rounded-bl-xl rounded-tl-xl\">\n {/* Toggle column */}\n </th>\n )}\n {columns.map((column, index) => (\n <th\n key={index}\n onClick={() => handleSort(column)}\n className={`bg-gray-100 px-6 py-3 text-sm font-semibold tracking-wider text-gray-500 ${\n column.width || \"\"\n } ${getAlignmentClass(column.align)} ${\n column.sortable\n ? \"cursor-pointer select-none hover:bg-gray-200\"\n : \"\"\n } ${!expandableRows && index === 0 ? \"rounded-bl-xl rounded-tl-xl\" : \"\"} ${\n index === columns.length - 1\n ? \"rounded-br-xl rounded-tr-xl\"\n : \"\"\n } ${column.className || \"\"}`}\n style={column.width ? { width: column.width } : undefined}\n >\n <div className=\"flex items-center gap-2 justify-between\">\n <span>{column.title}</span>\n {getSortIcon(column)}\n </div>\n </th>\n ))}\n </tr>\n </thead>\n <tbody\n className={`divide-y divide-gray-200 bg-white ${loading ? \"opacity-50\" : \"\"} ${\n onRowClick || expandableRows ? \"cursor-pointer\" : \"\"\n }`}\n >\n {loading && (\n <TableSkeleton\n columns={columns.length + (expandableRows ? 1 : 0)}\n rows={perPage}\n />\n )}\n {currentItems.length > 0\n ? currentItems.map((item: T, rowIndex) => {\n const expanded = isRowExpanded(item, rowIndex);\n return (\n <React.Fragment key={rowIndex}>\n <tr\n onClick={() => handleRowClick(item, rowIndex)}\n className={`hover:bg-gray-50 transition-colors duration-150 ${\n expanded ? \"bg-blue-50\" : \"\"\n }`}\n >\n {expandableRows && (\n <td className=\"whitespace-nowrap px-6 py-4 text-sm font-medium text-gray-800\">\n <div className=\"flex items-center justify-center\">\n {expanded ? (\n <ChevronDown\n size={16}\n className=\"text-gray-500\"\n />\n ) : (\n <ChevronRight\n size={16}\n className=\"text-gray-500\"\n />\n )}\n </div>\n </td>\n )}\n {columns.map((column, colIndex) => (\n <td\n key={colIndex}\n className={`whitespace-nowrap px-6 py-4 text-sm font-medium text-gray-800 ${getAlignmentClass(\n column.align,\n )} ${column.className || \"\"}`}\n style={\n column.width ? { width: column.width } : undefined\n }\n >\n {typeof column.value === \"function\"\n ? column.value(item)\n : (item[column.value] as ReactNode)}\n </td>\n ))}\n </tr>\n {expandableRows && expanded && expandedRowRender && (\n <tr key={`${rowIndex}-expanded`} className=\"bg-gray-50\">\n <td colSpan={columns.length + 1} className=\"px-6 py-4\">\n <div className=\"animate-fade-in\">\n {expandedRowRender(item)}\n </div>\n </td>\n </tr>\n )}\n </React.Fragment>\n );\n })\n : !loading && (\n <tr>\n <td\n colSpan={columns.length + (expandableRows ? 1 : 0)}\n className=\"px-6 py-12 text-center\"\n >\n {emptyState || defaultEmptyState}\n </td>\n </tr>\n )}\n </tbody>\n </table>\n </div>\n );\n\n return (\n <>\n {useCardLayout ? (\n renderCardLayout()\n ) : (\n <>\n <div className=\"hidden md:block\">{renderTableLayout()}</div>\n <div className=\"block md:hidden\">{renderCardLayout()}</div>\n </>\n )}\n\n {showPagination && (\n <Pagination\n currentPage={currentPageNumber}\n totalPages={totalPages}\n totalItems={totalItemsCount}\n itemsPerPage={perPage}\n onPageChange={onPageChange}\n onViewChange={onViewChange}\n loading={loading}\n />\n )}\n </>\n );\n}\n"],"names":["Table","_a","data","columns","_b","itemsPerPage","onViewChange","totalItems","_c","currentPage","onPageChange","_d","loading","_e","showPagination","onRowClick","_f","useCardLayout","emptyState","_g","expandableRows","expandedRowRender","onRowToggle","_h","defaultExpandedRows","Set","_j","getRowKey","item","index","paginationMeta","defaultSortKey","_k","defaultSortOrder","onSort","_l","useState","expandedRows","setExpandedRows","_m","sortKey","setSortKey","_o","sortOrder","setSortOrder","totalItemsCount","total","length","totalPages","last_page","Math","ceil","currentPageNumber","current_page","perPage","per_page","currentItems","useMemo","__spreadArray","sort","a","b","aValue","bValue","column","find","col","value","localeCompare","String","getSortIcon","sortable","key","_jsx","ArrowUpDown","size","className","ArrowUp","ArrowDown","handleRowClick","toggleRow","rowKey","newExpandedRows","isCurrentlyExpanded","has","delete","add","isRowExpanded","defaultEmptyState","EmptyStateCard","title","getAlignmentClass","align","renderCardLayout","_jsxs","children","Array","from","map","_","slice","colIndex","rowIndex","expanded","onClick","concat","ChevronDown","ChevronRight","_Fragment","newOrder","handleSort","width","style","undefined","TableSkeleton","rows","React","Fragment","colSpan","Pagination"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useState as n,useRef as o,useEffect as r}from"react";import{createPortal as i}from"react-dom";import{MoreVertical as c}from"lucide-react";function a(a){var l=a.actions,d=a.trigger,s=a.className,u=void 0===s?"":s,m=a.dropdownClassName,f=void 0===m?"":m,p=n(!1),g=p[0],v=p[1],w=n({top:0,left:0}),h=w[0],x=w[1],b=o(null),y=o(null),N=function(){v(!g)},k=function(){v(!1)};r((function(){if(g&&y.current){var e=y.current.getBoundingClientRect(),t=window.innerHeight-e.bottom,n=e.top;x({top:t<300&&n>t?e.top-300+window.scrollY:e.bottom+window.scrollY,left:e.right-192+window.scrollX})}}),[g]),r((function(){var e=function(e){b.current&&!b.current.contains(e.target)&&y.current&&!y.current.contains(e.target)&&k()};return g&&document.addEventListener("mousedown",e),function(){document.removeEventListener("mousedown",e)}}),[g]),r((function(){var e=function(e){"Escape"===e.key&&k()};return g&&document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}),[g]),r((function(){var e=function(){if(g&&y.current){var e=y.current.getBoundingClientRect(),t=window.innerHeight-e.bottom,n=e.top;x({top:t<300&&n>t?e.top-300+window.scrollY:e.bottom+window.scrollY,left:e.right-192+window.scrollX})}};return g&&window.addEventListener("scroll",e,!0),function(){window.removeEventListener("scroll",e,!0)}}),[g]);var C=g&&e("div",{ref:b,className:"fixed z-[9999] w-48 rounded-md bg-white shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none ".concat(f),style:{top:"".concat(h.top,"px"),left:"".concat(h.left,"px")},children:t("div",{className:"py-1",role:"menu","aria-orientation":"vertical",children:[l.map((function(n,o){return t("button",{className:"flex w-full items-center px-4 py-2 text-left text-sm transition-colors duration-150 ".concat(n.disabled?"cursor-not-allowed bg-gray-50 text-gray-400":"danger"===n.variant?"text-red-700 hover:bg-red-50 hover:text-red-900":"text-gray-700 hover:bg-gray-100 hover:text-gray-900"," "),onClick:function(){return function(e){e.disabled||(e.onClick(),k())}(n)},disabled:n.disabled,role:"menuitem",children:[n.icon&&e("span",{className:"mr-3 flex-shrink-0",children:n.icon}),n.label]},o)})),0===l.length&&e("div",{className:"px-4 py-2 text-sm text-gray-500",children:"No actions available"})]})});return t("div",{className:"relative inline-block ".concat(u),children:[e("div",{ref:y,className:"flex",children:d?e("div",{onClick:N,className:"cursor-pointer",children:d}):e("button",{className:"rounded-md border-gray-300 bg-white px-2 py-2 text-sm font-medium text-gray-700 transition-colors duration-200 focus:ring-offset-2",onClick:N,"aria-expanded":g,"aria-haspopup":"true",children:e(c,{className:"h-4 w-4"})})}),"undefined"!=typeof document&&C&&i(C,document.body)]})}export{a as default};
|
|
2
|
+
//# sourceMappingURL=TableDropdown.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableDropdown.mjs","sources":["../../../../src/components/Table/TableDropdown.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { MoreVertical } from \"lucide-react\";\nimport { TableDropdownProps } from \"./types\";\n\nexport default function TableDropdown({\n actions,\n trigger,\n className = \"\",\n dropdownClassName = \"\",\n}: TableDropdownProps) {\n const [isOpen, setIsOpen] = useState(false);\n const [dropdownPosition, setDropdownPosition] = useState({ top: 0, left: 0 });\n const dropdownRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n\n const toggleDropdown = () => {\n setIsOpen(!isOpen);\n };\n\n const closeDropdown = () => {\n setIsOpen(false);\n };\n\n // Calculate dropdown position when opened\n useEffect(() => {\n if (isOpen && triggerRef.current) {\n const rect = triggerRef.current.getBoundingClientRect();\n const dropdownHeight = 300; // Approximate max height\n const spaceBelow = window.innerHeight - rect.bottom;\n const spaceAbove = rect.top;\n\n // Determine if dropdown should open above or below\n const shouldOpenAbove =\n spaceBelow < dropdownHeight && spaceAbove > spaceBelow;\n\n setDropdownPosition({\n top: shouldOpenAbove\n ? rect.top - dropdownHeight + window.scrollY\n : rect.bottom + window.scrollY,\n left: rect.right - 192 + window.scrollX, // 192px is the dropdown width (w-48)\n });\n }\n }, [isOpen]);\n\n // Close dropdown when clicking outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n dropdownRef.current &&\n !dropdownRef.current.contains(event.target as Node) &&\n triggerRef.current &&\n !triggerRef.current.contains(event.target as Node)\n ) {\n closeDropdown();\n }\n };\n\n if (isOpen) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [isOpen]);\n\n // Close dropdown on escape key\n useEffect(() => {\n const handleEscapeKey = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n closeDropdown();\n }\n };\n\n if (isOpen) {\n document.addEventListener(\"keydown\", handleEscapeKey);\n }\n\n return () => {\n document.removeEventListener(\"keydown\", handleEscapeKey);\n };\n }, [isOpen]);\n\n // Handle scroll to reposition dropdown\n useEffect(() => {\n const handleScroll = () => {\n if (isOpen && triggerRef.current) {\n const rect = triggerRef.current.getBoundingClientRect();\n const dropdownHeight = 300;\n const spaceBelow = window.innerHeight - rect.bottom;\n const spaceAbove = rect.top;\n const shouldOpenAbove =\n spaceBelow < dropdownHeight && spaceAbove > spaceBelow;\n\n setDropdownPosition({\n top: shouldOpenAbove\n ? rect.top - dropdownHeight + window.scrollY\n : rect.bottom + window.scrollY,\n left: rect.right - 192 + window.scrollX,\n });\n }\n };\n\n if (isOpen) {\n window.addEventListener(\"scroll\", handleScroll, true);\n }\n\n return () => {\n window.removeEventListener(\"scroll\", handleScroll, true);\n };\n }, [isOpen]);\n\n const handleActionClick = (action: (typeof actions)[0]) => {\n if (!action.disabled) {\n action.onClick();\n closeDropdown();\n }\n };\n\n const dropdownContent = isOpen && (\n <div\n ref={dropdownRef}\n className={`fixed z-[9999] w-48 rounded-md bg-white shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none ${dropdownClassName}`}\n style={{\n top: `${dropdownPosition.top}px`,\n left: `${dropdownPosition.left}px`,\n }}\n >\n <div className=\"py-1\" role=\"menu\" aria-orientation=\"vertical\">\n {actions.map((action, index) => (\n <button\n key={index}\n className={`flex w-full items-center px-4 py-2 text-left text-sm transition-colors duration-150 ${\n action.disabled\n ? \"cursor-not-allowed bg-gray-50 text-gray-400\"\n : action.variant === \"danger\"\n ? \"text-red-700 hover:bg-red-50 hover:text-red-900\"\n : \"text-gray-700 hover:bg-gray-100 hover:text-gray-900\"\n } `}\n onClick={() => handleActionClick(action)}\n disabled={action.disabled}\n role=\"menuitem\"\n >\n {action.icon && (\n <span className=\"mr-3 flex-shrink-0\">{action.icon}</span>\n )}\n {action.label}\n </button>\n ))}\n\n {actions.length === 0 && (\n <div className=\"px-4 py-2 text-sm text-gray-500\">\n No actions available\n </div>\n )}\n </div>\n </div>\n );\n\n return (\n <div className={`relative inline-block ${className}`}>\n {/* Trigger Button */}\n <div ref={triggerRef} className=\"flex\">\n {trigger ? (\n <div onClick={toggleDropdown} className=\"cursor-pointer\">\n {trigger}\n </div>\n ) : (\n <button\n className=\"rounded-md border-gray-300 bg-white px-2 py-2 text-sm font-medium text-gray-700 transition-colors duration-200 focus:ring-offset-2\"\n onClick={toggleDropdown}\n aria-expanded={isOpen}\n aria-haspopup=\"true\"\n >\n <MoreVertical className=\"h-4 w-4\" />\n </button>\n )}\n </div>\n\n {/* Render dropdown in a portal */}\n {typeof document !== \"undefined\" &&\n dropdownContent &&\n createPortal(dropdownContent, document.body)}\n </div>\n );\n}\n"],"names":["TableDropdown","_a","actions","trigger","_b","className","_c","dropdownClassName","_d","useState","isOpen","setIsOpen","_e","top","left","dropdownPosition","setDropdownPosition","dropdownRef","useRef","triggerRef","toggleDropdown","closeDropdown","useEffect","current","rect","getBoundingClientRect","spaceBelow","window","innerHeight","bottom","spaceAbove","scrollY","right","scrollX","handleClickOutside","event","contains","target","document","addEventListener","removeEventListener","handleEscapeKey","key","handleScroll","dropdownContent","_jsx","ref","concat","style","children","_jsxs","role","map","action","index","disabled","variant","onClick","handleActionClick","icon","label","length","MoreVertical","createPortal","body"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as r,Fragment as n}from"react/jsx-runtime";function e(e){var t=e.columns,o=void 0===t?5:t,a=e.rows,c=void 0===a?3:a;return r(n,{children:Array.from({length:c}).map((function(n,e){return r("tr",{children:Array.from({length:o}).map((function(n,t){return r("td",{className:"whitespace-nowrap px-6 py-4",children:r("div",{className:"h-4 animate-pulse rounded bg-gray-200"})},"skeleton-cell-".concat(e,"-").concat(t))}))},"skeleton-row-".concat(e))}))})}export{e as TableSkeleton};
|
|
2
|
+
//# sourceMappingURL=TableSkeleton.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableSkeleton.mjs","sources":["../../../../src/components/Table/TableSkeleton.tsx"],"sourcesContent":["export function TableSkeleton({ columns = 5, rows = 3 }: { columns?: number; rows?: number }) {\n return (\n <>\n {Array.from({ length: rows }).map((_, rowIndex) => (\n <tr key={`skeleton-row-${rowIndex}`}>\n {Array.from({ length: columns }).map((_, colIndex) => (\n <td\n key={`skeleton-cell-${rowIndex}-${colIndex}`}\n className='whitespace-nowrap px-6 py-4'\n >\n <div className='h-4 animate-pulse rounded bg-gray-200'></div>\n </td>\n ))}\n </tr>\n ))}\n </>\n );\n}\n"],"names":["TableSkeleton","_a","_b","columns","_c","rows","_jsx","_Fragment","children","Array","from","length","map","_","rowIndex","colIndex","className","concat"],"mappings":"sDAAM,SAAUA,EAAcC,OAAEC,EAAAD,EAAAE,QAAAA,OAAO,IAAAD,EAAG,EAACA,EAAEE,EAAAH,EAAAI,KAAAA,OAAI,IAAAD,EAAG,EAACA,EACjD,OACIE,EAAAC,EAAA,CAAAC,SACKC,MAAMC,KAAK,CAAEC,OAAQN,IAAQO,KAAI,SAACC,EAAGC,GAAa,OAC/CR,EAAA,KAAA,CAAAE,SACKC,MAAMC,KAAK,CAAEC,OAAQR,IAAWS,KAAI,SAACC,EAAGE,GAAa,OAClDT,EAAA,KAAA,CAEIU,UAAU,8BAA6BR,SAEvCF,EAAA,MAAA,CAAKU,UAAU,2CAHV,wBAAiBF,EAAQ,KAAAG,OAAIF,GAFY,KADjD,gBAAAE,OAAgBH,GADsB,KAc/D"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as t,Fragment as r,jsxs as e}from"react/jsx-runtime";import{useState as o,useRef as n,useEffect as a}from"react";var l=function(l){var i=l.children,d=l.content,b=l.position,u=void 0===b?"top":b,c=l.variant,s=void 0===c?"light":c,p=l.size,f=void 0===p?"md":p,m=l.delay,h=void 0===m?200:m,g=l.disabled,w=void 0!==g&&g,v=l.className,x=void 0===v?"":v,y=o(!1),N=y[0],k=y[1],T=o(u),z=T[0],B=T[1],C=n(null),M=n(null),R=n(null);a((function(){if(N&&M.current&&R.current){var t=M.current,r=R.current.getBoundingClientRect(),e=t.getBoundingClientRect(),o=u;"top"===u&&r.top-e.height<10?o="bottom":"bottom"===u&&r.bottom+e.height>window.innerHeight-10?o="top":"left"===u&&r.left-e.width<10?o="right":"right"===u&&r.right+e.width>window.innerWidth-10&&(o="left"),B(o)}}),[N,u]);var j=function(){w||(C.current&&clearTimeout(C.current),C.current=setTimeout((function(){k(!0)}),h))},E=function(){C.current&&clearTimeout(C.current),k(!1)};a((function(){return function(){C.current&&clearTimeout(C.current)}}),[]);var F={dark:{tooltip:"bg-gray-900 text-white border-gray-700",arrow:{top:"border-t-gray-900",bottom:"border-b-gray-900",left:"border-l-gray-900",right:"border-r-gray-900"}},light:{tooltip:"bg-white text-gray-900 border-gray-200 shadow-lg",arrow:{top:"border-t-white",bottom:"border-b-white",left:"border-l-white",right:"border-r-white"}},accent:{tooltip:"bg-blue-600 text-white border-blue-500",arrow:{top:"border-t-blue-600",bottom:"border-b-blue-600",left:"border-l-blue-600",right:"border-r-blue-600"}}};return w||!d?t(r,{children:i}):e("div",{className:"relative inline-block",children:[t("div",{ref:R,onMouseEnter:j,onMouseLeave:E,onFocus:j,onBlur:E,className:"cursor-help",children:i}),N&&e("div",{ref:M,className:"absolute z-50 ".concat({top:"bottom-full left-1/2 -translate-x-1/2 mb-2",bottom:"top-full left-1/2 -translate-x-1/2 mt-2",left:"right-full top-1/2 -translate-y-1/2 mr-2",right:"left-full top-1/2 -translate-y-1/2 ml-2"}[z]," ").concat(F[s].tooltip," ").concat({sm:"px-2 py-1 text-xs",md:"px-3 py-2 text-sm",lg:"px-4 py-3 text-base"}[f]," animate-in fade-in-0 zoom-in-95 max-w-xs whitespace-nowrap break-words rounded-lg border font-medium backdrop-blur-sm duration-200 ").concat(x," "),role:"tooltip","aria-hidden":"false",children:[d,t("div",{className:"absolute h-0 w-0 border-4 ".concat({top:"top-full left-1/2 -translate-x-1/2 border-l-transparent border-r-transparent border-b-transparent",bottom:"bottom-full left-1/2 -translate-x-1/2 border-l-transparent border-r-transparent border-t-transparent",left:"left-full top-1/2 -translate-y-1/2 border-t-transparent border-b-transparent border-r-transparent",right:"right-full top-1/2 -translate-y-1/2 border-t-transparent border-b-transparent border-l-transparent"}[z]," ").concat(F[s].arrow[z]," ")})]})]})};export{l as default};
|
|
2
|
+
//# sourceMappingURL=Tooltip.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip.mjs","sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\";\n\nexport interface TooltipProps {\n children: React.ReactNode;\n content: string | React.ReactNode;\n position?: \"top\" | \"bottom\" | \"left\" | \"right\";\n variant?: \"dark\" | \"light\" | \"accent\";\n size?: \"sm\" | \"md\" | \"lg\";\n delay?: number;\n disabled?: boolean;\n className?: string;\n}\n\nconst Tooltip: React.FC<TooltipProps> = ({\n children,\n content,\n position = \"top\",\n variant = \"light\",\n size = \"md\",\n delay = 200,\n disabled = false,\n className = \"\",\n}) => {\n const [isVisible, setIsVisible] = useState(false);\n const [actualPosition, setActualPosition] = useState(position);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const tooltipRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n\n // Auto-adjust position based on viewport\n useEffect(() => {\n if (isVisible && tooltipRef.current && triggerRef.current) {\n const tooltip = tooltipRef.current;\n const trigger = triggerRef.current;\n const rect = trigger.getBoundingClientRect();\n const tooltipRect = tooltip.getBoundingClientRect();\n\n let newPosition = position;\n\n // Check if tooltip goes outside viewport and adjust\n if (position === \"top\" && rect.top - tooltipRect.height < 10) {\n newPosition = \"bottom\";\n } else if (\n position === \"bottom\" &&\n rect.bottom + tooltipRect.height > window.innerHeight - 10\n ) {\n newPosition = \"top\";\n } else if (position === \"left\" && rect.left - tooltipRect.width < 10) {\n newPosition = \"right\";\n } else if (\n position === \"right\" &&\n rect.right + tooltipRect.width > window.innerWidth - 10\n ) {\n newPosition = \"left\";\n }\n\n setActualPosition(newPosition);\n }\n }, [isVisible, position]);\n\n const handleMouseEnter = () => {\n if (disabled) return;\n\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n timeoutRef.current = setTimeout(() => {\n setIsVisible(true);\n }, delay);\n };\n\n const handleMouseLeave = () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n setIsVisible(false);\n };\n\n useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n // Position classes\n const positionClasses = {\n top: \"bottom-full left-1/2 -translate-x-1/2 mb-2\",\n bottom: \"top-full left-1/2 -translate-x-1/2 mt-2\",\n left: \"right-full top-1/2 -translate-y-1/2 mr-2\",\n right: \"left-full top-1/2 -translate-y-1/2 ml-2\",\n };\n\n // Arrow classes\n const arrowClasses = {\n top: \"top-full left-1/2 -translate-x-1/2 border-l-transparent border-r-transparent border-b-transparent\",\n bottom: \"bottom-full left-1/2 -translate-x-1/2 border-l-transparent border-r-transparent border-t-transparent\",\n left: \"left-full top-1/2 -translate-y-1/2 border-t-transparent border-b-transparent border-r-transparent\",\n right: \"right-full top-1/2 -translate-y-1/2 border-t-transparent border-b-transparent border-l-transparent\",\n };\n\n // Variant styles\n const variantClasses = {\n dark: {\n tooltip: \"bg-gray-900 text-white border-gray-700\",\n arrow: {\n top: \"border-t-gray-900\",\n bottom: \"border-b-gray-900\",\n left: \"border-l-gray-900\",\n right: \"border-r-gray-900\",\n },\n },\n light: {\n tooltip: \"bg-white text-gray-900 border-gray-200 shadow-lg\",\n arrow: {\n top: \"border-t-white\",\n bottom: \"border-b-white\",\n left: \"border-l-white\",\n right: \"border-r-white\",\n },\n },\n accent: {\n tooltip: \"bg-blue-600 text-white border-blue-500\",\n arrow: {\n top: \"border-t-blue-600\",\n bottom: \"border-b-blue-600\",\n left: \"border-l-blue-600\",\n right: \"border-r-blue-600\",\n },\n },\n };\n\n // Size classes\n const sizeClasses = {\n sm: \"px-2 py-1 text-xs\",\n md: \"px-3 py-2 text-sm\",\n lg: \"px-4 py-3 text-base\",\n };\n\n if (disabled || !content) {\n return <>{children}</>;\n }\n\n return (\n <div className='relative inline-block'>\n <div\n ref={triggerRef}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onFocus={handleMouseEnter}\n onBlur={handleMouseLeave}\n className='cursor-help'\n >\n {children}\n </div>\n\n {isVisible && (\n <div\n ref={tooltipRef}\n className={`absolute z-50 ${positionClasses[actualPosition]} ${variantClasses[variant].tooltip} ${sizeClasses[size]} animate-in fade-in-0 zoom-in-95 max-w-xs whitespace-nowrap break-words rounded-lg border font-medium backdrop-blur-sm duration-200 ${className} `}\n role='tooltip'\n aria-hidden='false'\n >\n {content}\n\n {/* Arrow */}\n <div\n className={`absolute h-0 w-0 border-4 ${arrowClasses[actualPosition]} ${variantClasses[variant].arrow[actualPosition]} `}\n />\n </div>\n )}\n </div>\n );\n};\n\nexport default Tooltip;\n"],"names":["Tooltip","_a","children","content","_b","position","_c","variant","_d","size","_e","delay","_f","disabled","_g","className","_h","useState","isVisible","setIsVisible","_j","actualPosition","setActualPosition","timeoutRef","useRef","tooltipRef","triggerRef","useEffect","current","tooltip","rect","getBoundingClientRect","tooltipRect","newPosition","top","height","bottom","window","innerHeight","left","width","right","innerWidth","handleMouseEnter","clearTimeout","setTimeout","handleMouseLeave","variantClasses","dark","arrow","light","accent","_jsx","_Fragment","_jsxs","ref","onMouseEnter","onMouseLeave","onFocus","onBlur","concat","sm","md","lg","role"],"mappings":"4HAaA,IAAMA,EAAkC,SAACC,OACrCC,EAAQD,EAAAC,SACRC,EAAOF,EAAAE,QACPC,EAAAH,EAAAI,SAAAA,OAAQ,IAAAD,EAAG,QACXE,EAAAL,EAAAM,QAAAA,OAAO,IAAAD,EAAG,QAAOA,EACjBE,SAAAC,aAAO,KAAID,EACXE,EAAAT,EAAAU,MAAAA,OAAK,IAAAD,EAAG,MACRE,EAAAX,EAAAY,SAAAA,OAAQ,IAAAD,GAAQA,EAChBE,cAAAC,OAAS,IAAAD,EAAG,GAAEA,EAERE,EAA4BC,GAAS,GAApCC,EAASF,EAAA,GAAEG,EAAYH,EAAA,GACxBI,EAAsCH,EAASZ,GAA9CgB,EAAcD,EAAA,GAAEE,EAAiBF,EAAA,GAClCG,EAAaC,EAA6C,MAC1DC,EAAaD,EAAuB,MACpCE,EAAaF,EAAuB,MAG1CG,GAAU,WACN,GAAIT,GAAaO,EAAWG,SAAWF,EAAWE,QAAS,CACvD,IAAMC,EAAUJ,EAAWG,QAErBE,EADUJ,EAAWE,QACNG,wBACfC,EAAcH,EAAQE,wBAExBE,EAAc5B,EAGD,QAAbA,GAAsByB,EAAKI,IAAMF,EAAYG,OAAS,GACtDF,EAAc,SAED,WAAb5B,GACAyB,EAAKM,OAASJ,EAAYG,OAASE,OAAOC,YAAc,GAExDL,EAAc,MACM,SAAb5B,GAAuByB,EAAKS,KAAOP,EAAYQ,MAAQ,GAC9DP,EAAc,QAED,UAAb5B,GACAyB,EAAKW,MAAQT,EAAYQ,MAAQH,OAAOK,WAAa,KAErDT,EAAc,QAGlBX,EAAkBW,EACtB,CACJ,GAAG,CAACf,EAAWb,IAEf,IAAMsC,EAAmB,WACjB9B,IAEAU,EAAWK,SACXgB,aAAarB,EAAWK,SAG5BL,EAAWK,QAAUiB,YAAW,WAC5B1B,GAAa,EACjB,GAAGR,GACP,EAEMmC,EAAmB,WACjBvB,EAAWK,SACXgB,aAAarB,EAAWK,SAE5BT,GAAa,EACjB,EAEAQ,GAAU,WACN,OAAO,WACCJ,EAAWK,SACXgB,aAAarB,EAAWK,QAEhC,CACJ,GAAG,IAGH,IAgBMmB,EAAiB,CACnBC,KAAM,CACFnB,QAAS,yCACToB,MAAO,CACHf,IAAK,oBACLE,OAAQ,oBACRG,KAAM,oBACNE,MAAO,sBAGfS,MAAO,CACHrB,QAAS,mDACToB,MAAO,CACHf,IAAK,iBACLE,OAAQ,iBACRG,KAAM,iBACNE,MAAO,mBAGfU,OAAQ,CACJtB,QAAS,yCACToB,MAAO,CACHf,IAAK,oBACLE,OAAQ,oBACRG,KAAM,oBACNE,MAAO,uBAYnB,OAAI5B,IAAaV,EACNiD,EAAAC,EAAA,CAAAnD,SAAGA,IAIVoD,SAAKvC,UAAU,wBAAuBb,SAAA,CAClCkD,EAAA,MAAA,CACIG,IAAK7B,EACL8B,aAAcb,EACdc,aAAcX,EACdY,QAASf,EACTgB,OAAQb,EACR/B,UAAU,cAAab,SAEtBA,IAGJgB,GACGoC,EAAA,MAAA,CACIC,IAAK9B,EACLV,UAAW,iBAAA6C,OAzEH,CACpB1B,IAAK,6CACLE,OAAQ,0CACRG,KAAM,2CACNE,MAAO,2CAqEiDpB,GAAe,KAAAuC,OAAIb,EAAexC,GAASsB,QAAO,KAAA+B,OA1B1F,CAChBC,GAAI,oBACJC,GAAI,oBACJC,GAAI,uBAuBsHtD,GAAK,wIAAAmD,OAAuI7C,OAC1PiD,KAAK,UAAS,cACF,QAAO9D,SAAA,CAElBC,EAGDiD,SACIrC,UAAW,oCAzEV,CACjBmB,IAAK,oGACLE,OAAQ,uGACRG,KAAM,oGACNE,MAAO,sGAqE8DpB,GAAe,KAAAuC,OAAIb,EAAexC,GAAS0C,MAAM5B,GAAe,YAM7I"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export{default as Button}from"./components/Button/Button.mjs";export{default as ExportButton}from"./components/Button/ExportButton.mjs";export{default as Card}from"./components/Cards/Card.mjs";export{default as EmptyStateCard}from"./components/Cards/EmptyStateCard.mjs";export{default as CheckBox,CheckBoxDemo,RadioGroup}from"./components/Form/CheckBox/CheckBox.mjs";export{default as FileUpload}from"./components/Form/FileUpload/FileUpload.mjs";export{default as Input}from"./components/Form/Input/Input.mjs";export{default as InputWithPrefix}from"./components/Form/Input/InputWithPrefix.mjs";export{default as TagInput,TagInputDemo}from"./components/Form/Input/TagInput.mjs";export{default as DateTimePicker,DateTimePickerDemo}from"./components/Form/Input/DateTimePicker.mjs";export{default as Search}from"./components/Form/Search/Search.mjs";export{default as Select}from"./components/Form/Select/Select.mjs";export{default as TextEditor}from"./components/Form/TextEditor/TextEditor.mjs";export{default as SelectButton}from"./components/Form/Select/SelectButton.mjs";export{AlertContext,AlertProvider,default as alert,useAlert}from"./components/Alert/AlertContext.mjs";export{default as ConfirmationAlert}from"./components/Alert/ConfirmationAlert.mjs";export{default as Modal,ModalExample}from"./components/Modal/Modal.mjs";export{default as Table}from"./components/Table/Table.mjs";export{Pagination}from"./components/Table/Pagination.mjs";export{TableSkeleton}from"./components/Table/TableSkeleton.mjs";export{default as TableDropdown}from"./components/Table/TableDropdown.mjs";export{SKELETON_LOADER_VERSION,SKELETON_PATTERNS,SKELETON_PRESETS}from"./components/SkeletonLoader/index.mjs";export{default as Loading,LoadingDemo}from"./components/Loading/Loading.mjs";export{default as Breadcrumb}from"./components/Breadcrumb/Breadcrumb.mjs";export{default as Tooltip}from"./components/Tooltip/Tooltip.mjs";export{default as Badge}from"./components/Badge/Badge.mjs";export{default as FileView}from"./components/Document/FileView.mjs";export{CardStatsSkeleton,SkeletonAvatar,SkeletonButton,SkeletonCard,SkeletonImage,SkeletonList,default as SkeletonLoader,SkeletonLoaderExample,SkeletonProfile,SkeletonTable,SkeletonText}from"./components/SkeletonLoader/SkeletonLoader.mjs";
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Plugin as e,PluginKey as t,Selection as n,TextSelection as r,AllSelection as o,NodeSelection as s}from"../../../prosemirror-state/dist/index.mjs";import{findWrapping as a,canJoin as i,RemoveMarkStep as c,Transform as d,liftTarget as l,joinPoint as p,canSplit as m,ReplaceStep as f,ReplaceAroundStep as u}from"../../../prosemirror-transform/dist/index.mjs";import{Fragment as h,Slice as y,Node as g,Schema as k,DOMParser as v}from"../../../prosemirror-model/dist/index.mjs";import{createParagraphNear as b,deleteSelection as w,exitCode as x,joinUp as M,joinDown as S,joinBackward as O,joinForward as C,joinTextblockBackward as $,joinTextblockForward as E,lift as j,liftEmptyBlock as T,newlineInCode as I,selectNodeBackward as A,selectNodeForward as P,selectParentNode as R,selectTextblockEnd as B,selectTextblockStart as N,setBlockType as z,wrapIn as F}from"../../../prosemirror-commands/dist/index.mjs";import{liftListItem as D,sinkListItem as L,wrapInList as V}from"../../../prosemirror-schema-list/dist/index.mjs";var _=Object.defineProperty,W=(e,t)=>{for(var n in t)_(e,n,{get:t[n],enumerable:!0})};function K(e){const{state:t,transaction:n}=e;let{selection:r}=n,{doc:o}=n,{storedMarks:s}=n;return{...t,apply:t.apply.bind(t),applyTransaction:t.applyTransaction.bind(t),plugins:t.plugins,schema:t.schema,reconfigure:t.reconfigure.bind(t),toJSON:t.toJSON.bind(t),get storedMarks(){return s},get selection(){return r},get doc(){return o},get tr(){return r=n.selection,o=n.doc,s=n.storedMarks,n}}}var U=class{constructor(e){this.editor=e.editor,this.rawCommands=this.editor.extensionManager.commands,this.customState=e.state}get hasCustomState(){return!!this.customState}get state(){return this.customState||this.editor.state}get commands(){const{rawCommands:e,editor:t,state:n}=this,{view:r}=t,{tr:o}=n,s=this.buildProps(o);return Object.fromEntries(Object.entries(e).map((([e,t])=>[e,(...e)=>{const n=t(...e)(s);return o.getMeta("preventDispatch")||this.hasCustomState||r.dispatch(o),n}])))}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(e,t=!0){const{rawCommands:n,editor:r,state:o}=this,{view:s}=r,a=[],i=!!e,c=e||o.tr,d={...Object.fromEntries(Object.entries(n).map((([e,n])=>[e,(...e)=>{const r=this.buildProps(c,t),o=n(...e)(r);return a.push(o),d}]))),run:()=>(i||!t||c.getMeta("preventDispatch")||this.hasCustomState||s.dispatch(c),a.every((e=>!0===e)))};return d}createCan(e){const{rawCommands:t,state:n}=this,r=!1,o=e||n.tr,s=this.buildProps(o,r);return{...Object.fromEntries(Object.entries(t).map((([e,t])=>[e,(...e)=>t(...e)({...s,dispatch:void 0})]))),chain:()=>this.createChain(o,r)}}buildProps(e,t=!0){const{rawCommands:n,editor:r,state:o}=this,{view:s}=r,a={tr:e,editor:r,view:s,state:K({state:o,transaction:e}),dispatch:t?()=>{}:void 0,chain:()=>this.createChain(e,t),can:()=>this.createCan(e),get commands(){return Object.fromEntries(Object.entries(n).map((([e,t])=>[e,(...e)=>t(...e)(a)])))}};return a}};function q(e,t){const n=new d(e);return t.forEach((e=>{e.steps.forEach((e=>{n.step(e)}))})),n}var J=e=>{const t=e.childNodes;for(let n=t.length-1;n>=0;n-=1){const r=t[n];3===r.nodeType&&r.nodeValue&&/^(\n\s\s|\n)$/.test(r.nodeValue)?e.removeChild(r):1===r.nodeType&&J(r)}return e};function H(e){if("undefined"==typeof window)throw new Error("[tiptap error]: there is no window object available, so this function cannot be used");const t=`<body>${e}</body>`,n=(new window.DOMParser).parseFromString(t,"text/html").body;return J(n)}function G(e,t,n){if(e instanceof g||e instanceof h)return e;n={slice:!0,parseOptions:{},...n};const r="string"==typeof e;if("object"==typeof e&&null!==e)try{if(Array.isArray(e)&&e.length>0)return h.fromArray(e.map((e=>t.nodeFromJSON(e))));const r=t.nodeFromJSON(e);return n.errorOnInvalidContent&&r.check(),r}catch(r){if(n.errorOnInvalidContent)throw new Error("[tiptap error]: Invalid JSON content",{cause:r});return console.warn("[tiptap warn]: Invalid content.","Passed value:",e,"Error:",r),G("",t,n)}if(r){if(n.errorOnInvalidContent){let r=!1,o="";const s=new k({topNode:t.spec.topNode,marks:t.spec.marks,nodes:t.spec.nodes.append({__tiptap__private__unknown__catch__all__node:{content:"inline*",group:"block",parseDOM:[{tag:"*",getAttrs:e=>(r=!0,o="string"==typeof e?e:e.outerHTML,null)}]}})});if(n.slice?v.fromSchema(s).parseSlice(H(e),n.parseOptions):v.fromSchema(s).parse(H(e),n.parseOptions),n.errorOnInvalidContent&&r)throw new Error("[tiptap error]: Invalid HTML content",{cause:new Error(`Invalid element found: ${o}`)})}const r=v.fromSchema(t);return n.slice?r.parseSlice(H(e),n.parseOptions).content:r.parse(H(e),n.parseOptions)}return G("",t,n)}function Q(e,t,n={},r={}){return G(e,t,{slice:!1,parseOptions:n,errorOnInvalidContent:r.errorOnInvalidContent})}function X(e){for(let t=0;t<e.edgeCount;t+=1){const{type:n}=e.edge(t);if(n.isTextblock&&!n.hasRequiredAttrs())return n}return null}function Y(e,t){for(let n=e.depth;n>0;n-=1){const r=e.node(n);if(t(r))return{pos:n>0?e.before(n):0,start:e.start(n),depth:n,node:r}}}function Z(e){return t=>Y(t.$from,e)}function ee(e,t,n){if(void 0===e.config[t]&&e.parent)return ee(e.parent,t,n);if("function"==typeof e.config[t]){return e.config[t].bind({...n,parent:e.parent?ee(e.parent,t,n):null})}return e.config[t]}function te(e){return"function"==typeof e}function ne(e,t=void 0,...n){return te(e)?t?e.bind(t)(...n):e(...n):e}function re(e){return{baseExtensions:e.filter((e=>"extension"===e.type)),nodeExtensions:e.filter((e=>"node"===e.type)),markExtensions:e.filter((e=>"mark"===e.type))}}function oe(...e){return e.filter((e=>!!e)).reduce(((e,t)=>{const n={...e};return Object.entries(t).forEach((([e,t])=>{if(n[e])if("class"===e){const r=t?String(t).split(" "):[],o=n[e]?n[e].split(" "):[],s=r.filter((e=>!o.includes(e)));n[e]=[...o,...s].join(" ")}else if("style"===e){const r=t?t.split(";").map((e=>e.trim())).filter(Boolean):[],o=n[e]?n[e].split(";").map((e=>e.trim())).filter(Boolean):[],s=new Map;o.forEach((e=>{const[t,n]=e.split(":").map((e=>e.trim()));s.set(t,n)})),r.forEach((e=>{const[t,n]=e.split(":").map((e=>e.trim()));s.set(t,n)})),n[e]=Array.from(s.entries()).map((([e,t])=>`${e}: ${t}`)).join("; ")}else n[e]=t;else n[e]=t})),n}),{})}function se(e,t,n){const{from:r,to:o}=t,{blockSeparator:s="\n\n",textSerializers:a={}}=n||{};let i="";return e.nodesBetween(r,o,((e,n,c,d)=>{var l;e.isBlock&&n>r&&(i+=s);const p=null==a?void 0:a[e.type.name];if(p)return c&&(i+=p({node:e,pos:n,parent:c,index:d,range:t})),!1;e.isText&&(i+=null==(l=null==e?void 0:e.text)?void 0:l.slice(Math.max(r,n)-n,o-n))})),i}function ae(e){return Object.fromEntries(Object.entries(e.nodes).filter((([,e])=>e.spec.toText)).map((([e,t])=>[e,t.spec.toText])))}function ie(e,t){if("string"==typeof e){if(!t.marks[e])throw Error(`There is no mark type named '${e}'. Maybe you forgot to add the extension?`);return t.marks[e]}return e}function ce(e,t){const n=ie(t,e.schema),{from:r,to:o,empty:s}=e.selection,a=[];s?(e.storedMarks&&a.push(...e.storedMarks),a.push(...e.selection.$head.marks())):e.doc.nodesBetween(r,o,(e=>{a.push(...e.marks)}));const i=a.find((e=>e.type.name===n.name));return i?{...i.attrs}:{}}function de(e,t){if("string"==typeof e){if(!t.nodes[e])throw Error(`There is no node type named '${e}'. Maybe you forgot to add the extension?`);return t.nodes[e]}return e}function le(e,t){return t.nodes[e]?"node":t.marks[e]?"mark":null}function pe(e,t=JSON.stringify){const n={};return e.filter((e=>{const r=t(e);return!Object.prototype.hasOwnProperty.call(n,r)&&(n[r]=!0)}))}function me(e){const{mapping:t,steps:n}=e,r=[];return t.maps.forEach(((e,o)=>{const s=[];if(e.ranges.length)e.forEach(((e,t)=>{s.push({from:e,to:t})}));else{const{from:e,to:t}=n[o];if(void 0===e||void 0===t)return;s.push({from:e,to:t})}s.forEach((({from:e,to:n})=>{const s=t.slice(o).map(e,-1),a=t.slice(o).map(n),i=t.invert().map(s,-1),c=t.invert().map(a);r.push({oldRange:{from:i,to:c},newRange:{from:s,to:a}})}))})),function(e){const t=pe(e);return 1===t.length?t:t.filter(((e,n)=>!t.filter(((e,t)=>t!==n)).some((t=>e.oldRange.from>=t.oldRange.from&&e.oldRange.to<=t.oldRange.to&&e.newRange.from>=t.newRange.from&&e.newRange.to<=t.newRange.to))))}(r)}function fe(e){return"[object RegExp]"===Object.prototype.toString.call(e)}function ue(e,t,n={strict:!0}){const r=Object.keys(t);return!r.length||r.every((r=>n.strict?t[r]===e[r]:fe(t[r])?t[r].test(e[r]):t[r]===e[r]))}function he(e,t,n={}){return e.find((e=>e.type===t&&ue(Object.fromEntries(Object.keys(n).map((t=>[t,e.attrs[t]]))),n)))}function ye(e,t,n={}){return!!he(e,t,n)}function ge(e,t,n){var r;if(!e||!t)return;let o=e.parent.childAfter(e.parentOffset);if(o.node&&o.node.marks.some((e=>e.type===t))||(o=e.parent.childBefore(e.parentOffset)),!o.node||!o.node.marks.some((e=>e.type===t)))return;n=n||(null==(r=o.node.marks[0])?void 0:r.attrs);if(!he([...o.node.marks],t,n))return;let s=o.index,a=e.start()+o.offset,i=s+1,c=a+o.node.nodeSize;for(;s>0&&ye([...e.parent.child(s-1).marks],t,n);)s-=1,a-=e.parent.child(s).nodeSize;for(;i<e.parent.childCount&&ye([...e.parent.child(i).marks],t,n);)c+=e.parent.child(i).nodeSize,i+=1;return{from:a,to:c}}function ke(e,t,n){const r=[];return e===t?n.resolve(e).marks().forEach((t=>{const o=ge(n.resolve(e),t.type);o&&r.push({mark:t,...o})})):n.nodesBetween(e,t,((e,t)=>{e&&void 0!==(null==e?void 0:e.nodeSize)&&r.push(...e.marks.map((n=>({from:t,to:t+e.nodeSize,mark:n}))))})),r}var ve=(e,t,n,r=20)=>{const o=e.doc.resolve(n);let s=r,a=null;for(;s>0&&null===a;){const e=o.node(s);(null==e?void 0:e.type.name)===t?a=e:s-=1}return[a,s]};function be(e,t,n){return Object.fromEntries(Object.entries(n).filter((([n])=>{const r=e.find((e=>e.type===t&&e.name===n));return!!r&&r.attribute.keepOnSplit})))}function we(e,t,n={}){const{empty:r,ranges:o}=e.selection,s=t?ie(t,e.schema):null;if(r)return!!(e.storedMarks||e.selection.$from.marks()).filter((e=>!s||s.name===e.type.name)).find((e=>ue(e.attrs,n,{strict:!1})));let a=0;const i=[];if(o.forEach((({$from:t,$to:n})=>{const r=t.pos,o=n.pos;e.doc.nodesBetween(r,o,((e,t)=>{if(!e.isText&&!e.marks.length)return;const n=Math.max(r,t),s=Math.min(o,t+e.nodeSize);a+=s-n,i.push(...e.marks.map((e=>({mark:e,from:n,to:s}))))}))})),0===a)return!1;const c=i.filter((e=>!s||s.name===e.mark.type.name)).filter((e=>ue(e.mark.attrs,n,{strict:!1}))).reduce(((e,t)=>e+t.to-t.from),0),d=i.filter((e=>!s||e.mark.type!==s&&e.mark.type.excludes(s))).reduce(((e,t)=>e+t.to-t.from),0);return(c>0?c+d:c)>=a}function xe(e,t,n={}){const{from:r,to:o,empty:s}=e.selection,a=t?de(t,e.schema):null,i=[];e.doc.nodesBetween(r,o,((e,t)=>{if(e.isText)return;const n=Math.max(r,t),s=Math.min(o,t+e.nodeSize);i.push({node:e,from:n,to:s})}));const c=o-r,d=i.filter((e=>!a||a.name===e.node.type.name)).filter((e=>ue(e.node.attrs,n,{strict:!1})));if(s)return!!d.length;return d.reduce(((e,t)=>e+t.to-t.from),0)>=c}var Me=(e,t)=>{const{$from:n,$to:r,$anchor:o}=e.selection;if(t){const n=Z((e=>e.type.name===t))(e.selection);if(!n)return!1;const r=e.doc.resolve(n.pos+1);return o.pos+1===r.end()}return!(r.parentOffset<r.parent.nodeSize-2||n.pos!==r.pos)},Se=e=>{const{$from:t,$to:n}=e.selection;return!(t.parentOffset>0||t.pos!==n.pos)};function Oe(e,t){const{nodeExtensions:n}=re(t),r=n.find((t=>t.name===e));if(!r)return!1;const o=ne(ee(r,"group",{name:r.name,options:r.options,storage:r.storage}));return"string"==typeof o&&o.split(" ").includes("list")}function Ce(e,{checkChildren:t=!0,ignoreWhitespace:n=!1}={}){var r;if(n){if("hardBreak"===e.type.name)return!0;if(e.isText)return/^\s*$/m.test(null!=(r=e.text)?r:"")}if(e.isText)return!e.text;if(e.isAtom||e.isLeaf)return!1;if(0===e.content.childCount)return!0;if(t){let r=!0;return e.content.forEach((e=>{!1!==r&&(Ce(e,{ignoreWhitespace:n,checkChildren:t})||(r=!1))})),r}return!1}function $e(e){return e instanceof r}function Ee(e=0,t=0,n=0){return Math.min(Math.max(e,t),n)}function je(e,t=null){if(!t)return null;const o=n.atStart(e),s=n.atEnd(e);if("start"===t||!0===t)return o;if("end"===t)return s;const a=o.from,i=s.to;return"all"===t?r.create(e,Ee(0,a,i),Ee(e.content.size,a,i)):r.create(e,Ee(t,a,i),Ee(t,a,i))}function Te(e,t,r){const o=e.steps.length-1;if(o<t)return;const s=e.steps[o];if(!(s instanceof f||s instanceof u))return;const a=e.mapping.maps[o];let i=0;a.forEach(((e,t,n,r)=>{0===i&&(i=r)})),e.setSelection(n.near(e.doc.resolve(i),r))}var Ie=class{constructor(e){this.find=e.find,this.handler=e.handler}};function Ae(e){return"Object"===function(e){return Object.prototype.toString.call(e).slice(8,-1)}(e)&&(e.constructor===Object&&Object.getPrototypeOf(e)===Object.prototype)}function Pe(e,t){const n={...e};return Ae(e)&&Ae(t)&&Object.keys(t).forEach((r=>{Ae(t[r])&&Ae(e[r])?n[r]=Pe(e[r],t[r]):n[r]=t[r]})),n}var Re=class{constructor(e={}){this.type="extendable",this.parent=null,this.child=null,this.name="",this.config={name:this.name},this.config={...this.config,...e},this.name=this.config.name}get options(){return{...ne(ee(this,"addOptions",{name:this.name}))||{}}}get storage(){return{...ne(ee(this,"addStorage",{name:this.name,options:this.options}))||{}}}configure(e={}){const t=this.extend({...this.config,addOptions:()=>Pe(this.options,e)});return t.name=this.name,t.parent=this.parent,t}extend(e={}){const t=new this.constructor({...this.config,...e});return t.parent=this,this.child=t,t.name="name"in e?e.name:t.parent.name,t}},Be=class e extends Re{constructor(){super(...arguments),this.type="mark"}static create(t={}){const n="function"==typeof t?t():t;return new e(n)}static handleExit({editor:e,mark:t}){const{tr:n}=e.state,r=e.state.selection.$from;if(r.pos===r.end()){const o=r.marks();if(!!!o.find((e=>(null==e?void 0:e.type.name)===t.name)))return!1;const s=o.find((e=>(null==e?void 0:e.type.name)===t.name));return s&&n.removeStoredMark(s),n.insertText(" ",r.pos),e.view.dispatch(n),!0}return!1}configure(e){return super.configure(e)}extend(e){const t="function"==typeof e?e():e;return super.extend(t)}},Ne=class{constructor(e){this.find=e.find,this.handler=e.handler}},ze={};W(ze,{ClipboardTextSerializer:()=>De,Commands:()=>Yt,Delete:()=>Zt,Drop:()=>en,Editable:()=>tn,FocusEvents:()=>rn,Keymap:()=>on,Paste:()=>sn,Tabindex:()=>an,focusEventsPluginKey:()=>nn});var Fe=class e extends Re{constructor(){super(...arguments),this.type="extension"}static create(t={}){const n="function"==typeof t?t():t;return new e(n)}configure(e){return super.configure(e)}extend(e){const t="function"==typeof e?e():e;return super.extend(t)}},De=Fe.create({name:"clipboardTextSerializer",addOptions:()=>({blockSeparator:void 0}),addProseMirrorPlugins(){return[new e({key:new t("clipboardTextSerializer"),props:{clipboardTextSerializer:()=>{const{editor:e}=this,{state:t,schema:n}=e,{doc:r,selection:o}=t,{ranges:s}=o,a=Math.min(...s.map((e=>e.$from.pos))),i=Math.max(...s.map((e=>e.$to.pos))),c=ae(n);return se(r,{from:a,to:i},{...void 0!==this.options.blockSeparator?{blockSeparator:this.options.blockSeparator}:{},textSerializers:c})}}})]}}),Le={};W(Le,{blur:()=>Ve,clearContent:()=>_e,clearNodes:()=>We,command:()=>Ke,createParagraphNear:()=>Ue,cut:()=>qe,deleteCurrentNode:()=>Je,deleteNode:()=>He,deleteRange:()=>Ge,deleteSelection:()=>Qe,enter:()=>Xe,exitCode:()=>Ye,extendMarkRange:()=>Ze,first:()=>et,focus:()=>rt,forEach:()=>ot,insertContent:()=>st,insertContentAt:()=>at,joinBackward:()=>dt,joinDown:()=>ct,joinForward:()=>lt,joinItemBackward:()=>pt,joinItemForward:()=>mt,joinTextblockBackward:()=>ft,joinTextblockForward:()=>ut,joinUp:()=>it,keyboardShortcut:()=>yt,lift:()=>gt,liftEmptyBlock:()=>kt,liftListItem:()=>vt,newlineInCode:()=>bt,resetAttributes:()=>xt,scrollIntoView:()=>Mt,selectAll:()=>St,selectNodeBackward:()=>Ot,selectNodeForward:()=>Ct,selectParentNode:()=>$t,selectTextblockEnd:()=>Et,selectTextblockStart:()=>jt,setContent:()=>Tt,setMark:()=>It,setMeta:()=>At,setNode:()=>Pt,setNodeSelection:()=>Rt,setTextSelection:()=>Bt,sinkListItem:()=>Nt,splitBlock:()=>Ft,splitListItem:()=>Dt,toggleList:()=>_t,toggleMark:()=>Wt,toggleNode:()=>Kt,toggleWrap:()=>Ut,undoInputRule:()=>qt,unsetAllMarks:()=>Jt,unsetMark:()=>Ht,updateAttributes:()=>Gt,wrapIn:()=>Qt,wrapInList:()=>Xt});var Ve=()=>({editor:e,view:t})=>(requestAnimationFrame((()=>{var n;e.isDestroyed||(t.dom.blur(),null==(n=null==window?void 0:window.getSelection())||n.removeAllRanges())})),!0),_e=(e=!0)=>({commands:t})=>t.setContent("",{emitUpdate:e}),We=()=>({state:e,tr:t,dispatch:n})=>{const{selection:r}=t,{ranges:o}=r;return!n||(o.forEach((({$from:n,$to:r})=>{e.doc.nodesBetween(n.pos,r.pos,((e,n)=>{if(e.type.isText)return;const{doc:r,mapping:o}=t,s=r.resolve(o.map(n)),a=r.resolve(o.map(n+e.nodeSize)),i=s.blockRange(a);if(!i)return;const c=l(i);if(e.type.isTextblock){const{defaultType:e}=s.parent.contentMatchAt(s.index());t.setNodeMarkup(i.start,e)}(c||0===c)&&t.lift(i,c)}))})),!0)},Ke=e=>t=>e(t),Ue=()=>({state:e,dispatch:t})=>b(e,t),qe=(e,t)=>({editor:n,tr:o})=>{const{state:s}=n,a=s.doc.slice(e.from,e.to);o.deleteRange(e.from,e.to);const i=o.mapping.map(t);return o.insert(i,a.content),o.setSelection(new r(o.doc.resolve(Math.max(i-1,0)))),!0},Je=()=>({tr:e,dispatch:t})=>{const{selection:n}=e,r=n.$anchor.node();if(r.content.size>0)return!1;const o=e.selection.$anchor;for(let n=o.depth;n>0;n-=1){if(o.node(n).type===r.type){if(t){const t=o.before(n),r=o.after(n);e.delete(t,r).scrollIntoView()}return!0}}return!1},He=e=>({tr:t,state:n,dispatch:r})=>{const o=de(e,n.schema),s=t.selection.$anchor;for(let e=s.depth;e>0;e-=1){if(s.node(e).type===o){if(r){const n=s.before(e),r=s.after(e);t.delete(n,r).scrollIntoView()}return!0}}return!1},Ge=e=>({tr:t,dispatch:n})=>{const{from:r,to:o}=e;return n&&t.delete(r,o),!0},Qe=()=>({state:e,dispatch:t})=>w(e,t),Xe=()=>({commands:e})=>e.keyboardShortcut("Enter"),Ye=()=>({state:e,dispatch:t})=>x(e,t),Ze=(e,t={})=>({tr:n,state:o,dispatch:s})=>{const a=ie(e,o.schema),{doc:i,selection:c}=n,{$from:d,from:l,to:p}=c;if(s){const e=ge(d,a,t);if(e&&e.from<=l&&e.to>=p){const t=r.create(i,e.from,e.to);n.setSelection(t)}}return!0},et=e=>t=>{const n="function"==typeof e?e(t):e;for(let e=0;e<n.length;e+=1)if(n[e](t))return!0;return!1};function tt(){return"Android"===navigator.platform||/android/i.test(navigator.userAgent)}function nt(){return["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document}var rt=(e=null,t={})=>({editor:n,view:r,tr:o,dispatch:s})=>{t={scrollIntoView:!0,...t};const a=()=>{(nt()||tt())&&r.dom.focus(),requestAnimationFrame((()=>{n.isDestroyed||(r.focus(),(null==t?void 0:t.scrollIntoView)&&n.commands.scrollIntoView())}))};if(r.hasFocus()&&null===e||!1===e)return!0;if(s&&null===e&&!$e(n.state.selection))return a(),!0;const i=je(o.doc,e)||n.state.selection,c=n.state.selection.eq(i);return s&&(c||o.setSelection(i),c&&o.storedMarks&&o.setStoredMarks(o.storedMarks),a()),!0},ot=(e,t)=>n=>e.every(((e,r)=>t(e,{...n,index:r}))),st=(e,t)=>({tr:n,commands:r})=>r.insertContentAt({from:n.selection.from,to:n.selection.to},e,t),at=(e,t,n)=>({tr:r,dispatch:o,editor:s})=>{var a;if(o){let o;n={parseOptions:s.options.parseOptions,updateSelection:!0,applyInputRules:!1,applyPasteRules:!1,...n};const{selection:i}=s.state,c=e=>{s.emit("contentError",{editor:s,error:e,disableCollaboration:()=>{"collaboration"in s.storage&&"object"==typeof s.storage.collaboration&&s.storage.collaboration&&(s.storage.collaboration.isDisabled=!0)}})},d={preserveWhitespace:"full",...n.parseOptions};if(!n.errorOnInvalidContent&&!s.options.enableContentCheck&&s.options.emitContentError)try{G(t,s.schema,{parseOptions:d,errorOnInvalidContent:!0})}catch(e){c(e)}try{o=G(t,s.schema,{parseOptions:d,errorOnInvalidContent:null!=(a=n.errorOnInvalidContent)?a:s.options.enableContentCheck})}catch(e){return c(e),!1}let{from:l,to:p}="number"==typeof e?{from:e,to:e}:{from:e.from,to:e.to},m=!0,f=!0;if(("type"in o?[o]:o).forEach((e=>{e.check(),m=!!m&&(e.isText&&0===e.marks.length),f=!!f&&e.isBlock})),l===p&&f){const{parent:e}=r.doc.resolve(l);e.isTextblock&&!e.type.spec.code&&!e.childCount&&(l-=1,p+=1)}let u;if(m){if(Array.isArray(t))u=t.map((e=>e.text||"")).join("");else if(t instanceof h){let e="";t.forEach((t=>{t.text&&(e+=t.text)})),u=e}else u="object"==typeof t&&t&&t.text?t.text:t;r.insertText(u,l,p)}else{u=o;const e=0===i.$from.parentOffset,t=i.$from.node().isText||i.$from.node().isTextblock,n=i.$from.node().content.size>0;e&&t&&n&&(l=Math.max(0,l-1)),r.replaceWith(l,p,u)}n.updateSelection&&Te(r,r.steps.length-1,-1),n.applyInputRules&&r.setMeta("applyInputRules",{from:l,text:u}),n.applyPasteRules&&r.setMeta("applyPasteRules",{from:l,text:u})}return!0},it=()=>({state:e,dispatch:t})=>M(e,t),ct=()=>({state:e,dispatch:t})=>S(e,t),dt=()=>({state:e,dispatch:t})=>O(e,t),lt=()=>({state:e,dispatch:t})=>C(e,t),pt=()=>({state:e,dispatch:t,tr:n})=>{try{const r=p(e.doc,e.selection.$from.pos,-1);return null!=r&&(n.join(r,2),t&&t(n),!0)}catch{return!1}},mt=()=>({state:e,dispatch:t,tr:n})=>{try{const r=p(e.doc,e.selection.$from.pos,1);return null!=r&&(n.join(r,2),t&&t(n),!0)}catch{return!1}},ft=()=>({state:e,dispatch:t})=>$(e,t),ut=()=>({state:e,dispatch:t})=>E(e,t);function ht(){return"undefined"!=typeof navigator&&/Mac/.test(navigator.platform)}var yt=e=>({editor:t,view:n,tr:r,dispatch:o})=>{const s=function(e){const t=e.split(/-(?!$)/);let n,r,o,s,a=t[t.length-1];"Space"===a&&(a=" ");for(let e=0;e<t.length-1;e+=1){const a=t[e];if(/^(cmd|meta|m)$/i.test(a))s=!0;else if(/^a(lt)?$/i.test(a))n=!0;else if(/^(c|ctrl|control)$/i.test(a))r=!0;else if(/^s(hift)?$/i.test(a))o=!0;else{if(!/^mod$/i.test(a))throw new Error(`Unrecognized modifier name: ${a}`);nt()||ht()?s=!0:r=!0}}return n&&(a=`Alt-${a}`),r&&(a=`Ctrl-${a}`),s&&(a=`Meta-${a}`),o&&(a=`Shift-${a}`),a}(e).split(/-(?!$)/),a=s.find((e=>!["Alt","Ctrl","Meta","Shift"].includes(e))),i=new KeyboardEvent("keydown",{key:"Space"===a?" ":a,altKey:s.includes("Alt"),ctrlKey:s.includes("Ctrl"),metaKey:s.includes("Meta"),shiftKey:s.includes("Shift"),bubbles:!0,cancelable:!0}),c=t.captureTransaction((()=>{n.someProp("handleKeyDown",(e=>e(n,i)))}));return null==c||c.steps.forEach((e=>{const t=e.map(r.mapping);t&&o&&r.maybeStep(t)})),!0},gt=(e,t={})=>({state:n,dispatch:r})=>!!xe(n,de(e,n.schema),t)&&j(n,r),kt=()=>({state:e,dispatch:t})=>T(e,t),vt=e=>({state:t,dispatch:n})=>{const r=de(e,t.schema);return D(r)(t,n)},bt=()=>({state:e,dispatch:t})=>I(e,t);function wt(e,t){const n="string"==typeof t?[t]:t;return Object.keys(e).reduce(((t,r)=>(n.includes(r)||(t[r]=e[r]),t)),{})}var xt=(e,t)=>({tr:n,state:r,dispatch:o})=>{let s=null,a=null;const i=le("string"==typeof e?e:e.name,r.schema);return!!i&&("node"===i&&(s=de(e,r.schema)),"mark"===i&&(a=ie(e,r.schema)),o&&n.selection.ranges.forEach((e=>{r.doc.nodesBetween(e.$from.pos,e.$to.pos,((e,r)=>{s&&s===e.type&&n.setNodeMarkup(r,void 0,wt(e.attrs,t)),a&&e.marks.length&&e.marks.forEach((o=>{a===o.type&&n.addMark(r,r+e.nodeSize,a.create(wt(o.attrs,t)))}))}))})),!0)},Mt=()=>({tr:e,dispatch:t})=>(t&&e.scrollIntoView(),!0),St=()=>({tr:e,dispatch:t})=>{if(t){const t=new o(e.doc);e.setSelection(t)}return!0},Ot=()=>({state:e,dispatch:t})=>A(e,t),Ct=()=>({state:e,dispatch:t})=>P(e,t),$t=()=>({state:e,dispatch:t})=>R(e,t),Et=()=>({state:e,dispatch:t})=>B(e,t),jt=()=>({state:e,dispatch:t})=>N(e,t),Tt=(e,{errorOnInvalidContent:t,emitUpdate:n=!0,parseOptions:r={}}={})=>({editor:o,tr:s,dispatch:a,commands:i})=>{const{doc:c}=s;if("full"!==r.preserveWhitespace){const i=Q(e,o.schema,r,{errorOnInvalidContent:null!=t?t:o.options.enableContentCheck});return a&&s.replaceWith(0,c.content.size,i).setMeta("preventUpdate",!n),!0}return a&&s.setMeta("preventUpdate",!n),i.insertContentAt({from:0,to:c.content.size},e,{parseOptions:r,errorOnInvalidContent:null!=t?t:o.options.enableContentCheck})};var It=(e,t={})=>({tr:n,state:r,dispatch:o})=>{const{selection:s}=n,{empty:a,ranges:i}=s,c=ie(e,r.schema);if(o)if(a){const e=ce(r,c);n.addStoredMark(c.create({...e,...t}))}else i.forEach((e=>{const o=e.$from.pos,s=e.$to.pos;r.doc.nodesBetween(o,s,((e,r)=>{const a=Math.max(r,o),i=Math.min(r+e.nodeSize,s);e.marks.find((e=>e.type===c))?e.marks.forEach((e=>{c===e.type&&n.addMark(a,i,c.create({...e.attrs,...t}))})):n.addMark(a,i,c.create(t))}))}));return function(e,t,n){var r;const{selection:o}=t;let s=null;if($e(o)&&(s=o.$cursor),s){const t=null!=(r=e.storedMarks)?r:s.marks();return!!n.isInSet(t)||!t.some((e=>e.type.excludes(n)))}const{ranges:a}=o;return a.some((({$from:t,$to:r})=>{let o=0===t.depth&&e.doc.inlineContent&&e.doc.type.allowsMarkType(n);return e.doc.nodesBetween(t.pos,r.pos,((e,t,r)=>{if(o)return!1;if(e.isInline){const t=!r||r.type.allowsMarkType(n),s=!!n.isInSet(e.marks)||!e.marks.some((e=>e.type.excludes(n)));o=t&&s}return!o})),o}))}(r,n,c)},At=(e,t)=>({tr:n})=>(n.setMeta(e,t),!0),Pt=(e,t={})=>({state:n,dispatch:r,chain:o})=>{const s=de(e,n.schema);let a;return n.selection.$anchor.sameParent(n.selection.$head)&&(a=n.selection.$anchor.parent.attrs),s.isTextblock?o().command((({commands:e})=>!!z(s,{...a,...t})(n)||e.clearNodes())).command((({state:e})=>z(s,{...a,...t})(e,r))).run():(console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.'),!1)},Rt=e=>({tr:t,dispatch:n})=>{if(n){const{doc:n}=t,r=Ee(e,0,n.content.size),o=s.create(n,r);t.setSelection(o)}return!0},Bt=e=>({tr:t,dispatch:n})=>{if(n){const{doc:n}=t,{from:o,to:s}="number"==typeof e?{from:e,to:e}:e,a=r.atStart(n).from,i=r.atEnd(n).to,c=Ee(o,a,i),d=Ee(s,a,i),l=r.create(n,c,d);t.setSelection(l)}return!0},Nt=e=>({state:t,dispatch:n})=>{const r=de(e,t.schema);return L(r)(t,n)};function zt(e,t){const n=e.storedMarks||e.selection.$to.parentOffset&&e.selection.$from.marks();if(n){const r=n.filter((e=>null==t?void 0:t.includes(e.type.name)));e.tr.ensureMarks(r)}}var Ft=({keepMarks:e=!0}={})=>({tr:t,state:n,dispatch:o,editor:a})=>{const{selection:i,doc:c}=t,{$from:d,$to:l}=i,p=be(a.extensionManager.attributes,d.node().type.name,d.node().attrs);if(i instanceof s&&i.node.isBlock)return!(!d.parentOffset||!m(c,d.pos))&&(o&&(e&&zt(n,a.extensionManager.splittableMarks),t.split(d.pos).scrollIntoView()),!0);if(!d.parent.isBlock)return!1;const f=l.parentOffset===l.parent.content.size,u=0===d.depth?void 0:X(d.node(-1).contentMatchAt(d.indexAfter(-1)));let h=f&&u?[{type:u,attrs:p}]:void 0,y=m(t.doc,t.mapping.map(d.pos),1,h);if(h||y||!m(t.doc,t.mapping.map(d.pos),1,u?[{type:u}]:void 0)||(y=!0,h=u?[{type:u,attrs:p}]:void 0),o){if(y&&(i instanceof r&&t.deleteSelection(),t.split(t.mapping.map(d.pos),1,h),u&&!f&&!d.parentOffset&&d.parent.type!==u)){const e=t.mapping.map(d.before()),n=t.doc.resolve(e);d.node(-1).canReplaceWith(n.index(),n.index()+1,u)&&t.setNodeMarkup(t.mapping.map(d.before()),u)}e&&zt(n,a.extensionManager.splittableMarks),t.scrollIntoView()}return y},Dt=(e,t={})=>({tr:n,state:o,dispatch:s,editor:a})=>{var i;const c=de(e,o.schema),{$from:d,$to:l}=o.selection,p=o.selection.node;if(p&&p.isBlock||d.depth<2||!d.sameParent(l))return!1;const f=d.node(-1);if(f.type!==c)return!1;const u=a.extensionManager.attributes;if(0===d.parent.content.size&&d.node(-1).childCount===d.indexAfter(-1)){if(2===d.depth||d.node(-3).type!==c||d.index(-2)!==d.node(-2).childCount-1)return!1;if(s){let e=h.empty;const o=d.index(-1)?1:d.index(-2)?2:3;for(let t=d.depth-o;t>=d.depth-3;t-=1)e=h.from(d.node(t).copy(e));const s=d.indexAfter(-1)<d.node(-2).childCount?1:d.indexAfter(-2)<d.node(-3).childCount?2:3,a={...be(u,d.node().type.name,d.node().attrs),...t},l=(null==(i=c.contentMatch.defaultType)?void 0:i.createAndFill(a))||void 0;e=e.append(h.from(c.createAndFill(null,l)||void 0));const p=d.before(d.depth-(o-1));n.replace(p,d.after(-s),new y(e,4-o,0));let m=-1;n.doc.nodesBetween(p,n.doc.content.size,((e,t)=>{if(m>-1)return!1;e.isTextblock&&0===e.content.size&&(m=t+1)})),m>-1&&n.setSelection(r.near(n.doc.resolve(m))),n.scrollIntoView()}return!0}const g=l.pos===d.end()?f.contentMatchAt(0).defaultType:null,k={...be(u,f.type.name,f.attrs),...t},v={...be(u,d.node().type.name,d.node().attrs),...t};n.delete(d.pos,l.pos);const b=g?[{type:c,attrs:k},{type:g,attrs:v}]:[{type:c,attrs:k}];if(!m(n.doc,d.pos,2))return!1;if(s){const{selection:e,storedMarks:t}=o,{splittableMarks:r}=a.extensionManager,i=t||e.$to.parentOffset&&e.$from.marks();if(n.split(d.pos,2,b).scrollIntoView(),!i||!s)return!0;const c=i.filter((e=>r.includes(e.type.name)));n.ensureMarks(c)}return!0},Lt=(e,t)=>{const n=Z((e=>e.type===t))(e.selection);if(!n)return!0;const r=e.doc.resolve(Math.max(0,n.pos-1)).before(n.depth);if(void 0===r)return!0;const o=e.doc.nodeAt(r);return n.node.type!==(null==o?void 0:o.type)||!i(e.doc,n.pos)||(e.join(n.pos),!0)},Vt=(e,t)=>{const n=Z((e=>e.type===t))(e.selection);if(!n)return!0;const r=e.doc.resolve(n.start).after(n.depth);if(void 0===r)return!0;const o=e.doc.nodeAt(r);return n.node.type!==(null==o?void 0:o.type)||!i(e.doc,r)||(e.join(r),!0)},_t=(e,t,n,r={})=>({editor:o,tr:s,state:a,dispatch:i,chain:c,commands:d,can:l})=>{const{extensions:p,splittableMarks:m}=o.extensionManager,f=de(e,a.schema),u=de(t,a.schema),{selection:h,storedMarks:y}=a,{$from:g,$to:k}=h,v=g.blockRange(k),b=y||h.$to.parentOffset&&h.$from.marks();if(!v)return!1;const w=Z((e=>Oe(e.type.name,p)))(h);if(v.depth>=1&&w&&v.depth-w.depth<=1){if(w.node.type===f)return d.liftListItem(u);if(Oe(w.node.type.name,p)&&f.validContent(w.node.content)&&i)return c().command((()=>(s.setNodeMarkup(w.pos,f),!0))).command((()=>Lt(s,f))).command((()=>Vt(s,f))).run()}return n&&b&&i?c().command((()=>{const e=l().wrapInList(f,r),t=b.filter((e=>m.includes(e.type.name)));return s.ensureMarks(t),!!e||d.clearNodes()})).wrapInList(f,r).command((()=>Lt(s,f))).command((()=>Vt(s,f))).run():c().command((()=>!!l().wrapInList(f,r)||d.clearNodes())).wrapInList(f,r).command((()=>Lt(s,f))).command((()=>Vt(s,f))).run()},Wt=(e,t={},n={})=>({state:r,commands:o})=>{const{extendEmptyMarkRange:s=!1}=n,a=ie(e,r.schema);return we(r,a,t)?o.unsetMark(a,{extendEmptyMarkRange:s}):o.setMark(a,t)},Kt=(e,t,n={})=>({state:r,commands:o})=>{const s=de(e,r.schema),a=de(t,r.schema),i=xe(r,s,n);let c;return r.selection.$anchor.sameParent(r.selection.$head)&&(c=r.selection.$anchor.parent.attrs),i?o.setNode(a,c):o.setNode(s,{...c,...n})},Ut=(e,t={})=>({state:n,commands:r})=>{const o=de(e,n.schema);return xe(n,o,t)?r.lift(o):r.wrapIn(o,t)},qt=()=>({state:e,dispatch:t})=>{const n=e.plugins;for(let r=0;r<n.length;r+=1){const o=n[r];let s;if(o.spec.isInputRules&&(s=o.getState(e))){if(t){const t=e.tr,n=s.transform;for(let e=n.steps.length-1;e>=0;e-=1)t.step(n.steps[e].invert(n.docs[e]));if(s.text){const n=t.doc.resolve(s.from).marks();t.replaceWith(s.from,s.to,e.schema.text(s.text,n))}else t.delete(s.from,s.to)}return!0}}return!1},Jt=()=>({tr:e,dispatch:t})=>{const{selection:n}=e,{empty:r,ranges:o}=n;return r||t&&o.forEach((t=>{e.removeMark(t.$from.pos,t.$to.pos)})),!0},Ht=(e,t={})=>({tr:n,state:r,dispatch:o})=>{var s;const{extendEmptyMarkRange:a=!1}=t,{selection:i}=n,c=ie(e,r.schema),{$from:d,empty:l,ranges:p}=i;if(!o)return!0;if(l&&a){let{from:e,to:t}=i;const r=null==(s=d.marks().find((e=>e.type===c)))?void 0:s.attrs,o=ge(d,c,r);o&&(e=o.from,t=o.to),n.removeMark(e,t,c)}else p.forEach((e=>{n.removeMark(e.$from.pos,e.$to.pos,c)}));return n.removeStoredMark(c),!0},Gt=(e,t={})=>({tr:n,state:r,dispatch:o})=>{let s=null,a=null;const i=le("string"==typeof e?e:e.name,r.schema);return!!i&&("node"===i&&(s=de(e,r.schema)),"mark"===i&&(a=ie(e,r.schema)),o&&n.selection.ranges.forEach((e=>{const o=e.$from.pos,i=e.$to.pos;let c,d,l,p;n.selection.empty?r.doc.nodesBetween(o,i,((e,t)=>{s&&s===e.type&&(l=Math.max(t,o),p=Math.min(t+e.nodeSize,i),c=t,d=e)})):r.doc.nodesBetween(o,i,((e,r)=>{r<o&&s&&s===e.type&&(l=Math.max(r,o),p=Math.min(r+e.nodeSize,i),c=r,d=e),r>=o&&r<=i&&(s&&s===e.type&&n.setNodeMarkup(r,void 0,{...e.attrs,...t}),a&&e.marks.length&&e.marks.forEach((s=>{if(a===s.type){const c=Math.max(r,o),d=Math.min(r+e.nodeSize,i);n.addMark(c,d,a.create({...s.attrs,...t}))}})))})),d&&(void 0!==c&&n.setNodeMarkup(c,void 0,{...d.attrs,...t}),a&&d.marks.length&&d.marks.forEach((e=>{a===e.type&&n.addMark(l,p,a.create({...e.attrs,...t}))})))})),!0)},Qt=(e,t={})=>({state:n,dispatch:r})=>{const o=de(e,n.schema);return F(o,t)(n,r)},Xt=(e,t={})=>({state:n,dispatch:r})=>{const o=de(e,n.schema);return V(o,t)(n,r)},Yt=Fe.create({name:"commands",addCommands:()=>({...Le})}),Zt=Fe.create({name:"delete",onUpdate({transaction:e,appendedTransactions:t}){var n,r,o;const s=()=>{var n,r,o,s;if(null!=(s=null==(o=null==(r=null==(n=this.editor.options.coreExtensionOptions)?void 0:n.delete)?void 0:r.filterTransaction)?void 0:o.call(r,e))?s:e.getMeta("y-sync$"))return;const a=q(e.before,[e,...t]);me(a).forEach((t=>{a.mapping.mapResult(t.oldRange.from).deletedAfter&&a.mapping.mapResult(t.oldRange.to).deletedBefore&&a.before.nodesBetween(t.oldRange.from,t.oldRange.to,((n,r)=>{const o=r+n.nodeSize-2,s=t.oldRange.from<=r&&o<=t.oldRange.to;this.editor.emit("delete",{type:"node",node:n,from:r,to:o,newFrom:a.mapping.map(r),newTo:a.mapping.map(o),deletedRange:t.oldRange,newRange:t.newRange,partial:!s,editor:this.editor,transaction:e,combinedTransform:a})}))}));const i=a.mapping;a.steps.forEach(((t,n)=>{var r,o;if(t instanceof c){const s=i.slice(n).map(t.from,-1),c=i.slice(n).map(t.to),d=i.invert().map(s,-1),l=i.invert().map(c),p=null==(r=a.doc.nodeAt(s-1))?void 0:r.marks.some((e=>e.eq(t.mark))),m=null==(o=a.doc.nodeAt(c))?void 0:o.marks.some((e=>e.eq(t.mark)));this.editor.emit("delete",{type:"mark",mark:t.mark,from:t.from,to:t.to,deletedRange:{from:d,to:l},newRange:{from:s,to:c},partial:Boolean(m||p),editor:this.editor,transaction:e,combinedTransform:a})}}))};null==(o=null==(r=null==(n=this.editor.options.coreExtensionOptions)?void 0:n.delete)?void 0:r.async)||o?setTimeout(s,0):s()}}),en=Fe.create({name:"drop",addProseMirrorPlugins(){return[new e({key:new t("tiptapDrop"),props:{handleDrop:(e,t,n,r)=>{this.editor.emit("drop",{editor:this.editor,event:t,slice:n,moved:r})}}})]}}),tn=Fe.create({name:"editable",addProseMirrorPlugins(){return[new e({key:new t("editable"),props:{editable:()=>this.editor.options.editable}})]}}),nn=new t("focusEvents"),rn=Fe.create({name:"focusEvents",addProseMirrorPlugins(){const{editor:t}=this;return[new e({key:nn,props:{handleDOMEvents:{focus:(e,n)=>{t.isFocused=!0;const r=t.state.tr.setMeta("focus",{event:n}).setMeta("addToHistory",!1);return e.dispatch(r),!1},blur:(e,n)=>{t.isFocused=!1;const r=t.state.tr.setMeta("blur",{event:n}).setMeta("addToHistory",!1);return e.dispatch(r),!1}}}})]}}),on=Fe.create({name:"keymap",addKeyboardShortcuts(){const e=()=>this.editor.commands.first((({commands:e})=>[()=>e.undoInputRule(),()=>e.command((({tr:t})=>{const{selection:r,doc:o}=t,{empty:s,$anchor:a}=r,{pos:i,parent:c}=a,d=a.parent.isTextblock&&i>0?t.doc.resolve(i-1):a,l=d.parent.type.spec.isolating,p=a.pos-a.parentOffset,m=l&&1===d.parent.childCount?p===a.pos:n.atStart(o).from===i;return!(!s||!c.type.isTextblock||c.textContent.length||!m||m&&"paragraph"===a.parent.type.name)&&e.clearNodes()})),()=>e.deleteSelection(),()=>e.joinBackward(),()=>e.selectNodeBackward()])),t=()=>this.editor.commands.first((({commands:e})=>[()=>e.deleteSelection(),()=>e.deleteCurrentNode(),()=>e.joinForward(),()=>e.selectNodeForward()])),r={Enter:()=>this.editor.commands.first((({commands:e})=>[()=>e.newlineInCode(),()=>e.createParagraphNear(),()=>e.liftEmptyBlock(),()=>e.splitBlock()])),"Mod-Enter":()=>this.editor.commands.exitCode(),Backspace:e,"Mod-Backspace":e,"Shift-Backspace":e,Delete:t,"Mod-Delete":t,"Mod-a":()=>this.editor.commands.selectAll()},o={...r},s={...r,"Ctrl-h":e,"Alt-Backspace":e,"Ctrl-d":t,"Ctrl-Alt-Backspace":t,"Alt-Delete":t,"Alt-d":t,"Ctrl-a":()=>this.editor.commands.selectTextblockStart(),"Ctrl-e":()=>this.editor.commands.selectTextblockEnd()};return nt()||ht()?s:o},addProseMirrorPlugins(){return[new e({key:new t("clearDocument"),appendTransaction:(e,t,r)=>{if(e.some((e=>e.getMeta("composition"))))return;const o=e.some((e=>e.docChanged))&&!t.doc.eq(r.doc),s=e.some((e=>e.getMeta("preventClearDocument")));if(!o||s)return;const{empty:a,from:i,to:c}=t.selection,d=n.atStart(t.doc).from,l=n.atEnd(t.doc).to;if(a||!(i===d&&c===l))return;if(!Ce(r.doc))return;const p=r.tr,m=K({state:r,transaction:p}),{commands:f}=new U({editor:this.editor,state:m});return f.clearNodes(),p.steps.length?p:void 0}})]}}),sn=Fe.create({name:"paste",addProseMirrorPlugins(){return[new e({key:new t("tiptapPaste"),props:{handlePaste:(e,t,n)=>{this.editor.emit("paste",{editor:this.editor,event:t,slice:n})}}})]}}),an=Fe.create({name:"tabindex",addProseMirrorPlugins(){return[new e({key:new t("tabindex"),props:{attributes:()=>this.editor.isEditable?{tabindex:"0"}:{}}})]}});function cn(e){return new Ie({find:e.find,handler:({state:t,range:n,match:r})=>{const o=ne(e.getAttributes,void 0,r);if(!1===o||null===o)return null;const{tr:s}=t,a=r[r.length-1],i=r[0];if(a){const r=i.search(/\S/),c=n.from+i.indexOf(a),d=c+a.length;if(ke(n.from,n.to,t.doc).filter((t=>t.mark.type.excluded.find((n=>n===e.type&&n!==t.mark.type)))).filter((e=>e.to>c)).length)return null;d<n.to&&s.delete(d,n.to),c>n.from&&s.delete(n.from+r,c);const l=n.from+r+a.length;s.addMark(n.from+r,l,e.type.create(o||{})),s.removeStoredMark(e.type)}}})}function dn(e){return new Ie({find:e.find,handler:({state:t,range:n,match:r})=>{const o=t.doc.resolve(n.from),s=ne(e.getAttributes,void 0,r)||{};if(!o.node(-1).canReplaceWith(o.index(-1),o.indexAfter(-1),e.type))return null;t.tr.delete(n.from,n.to).setBlockType(n.from,n.from,e.type,s)}})}function ln(e){return new Ie({find:e.find,handler:({state:t,range:n,match:r,chain:o})=>{const s=ne(e.getAttributes,void 0,r)||{},c=t.tr.delete(n.from,n.to),d=c.doc.resolve(n.from).blockRange(),l=d&&a(d,e.type,s);if(!l)return null;if(c.wrap(d,l),e.keepMarks&&e.editor){const{selection:n,storedMarks:r}=t,{splittableMarks:o}=e.editor.extensionManager,s=r||n.$to.parentOffset&&n.$from.marks();if(s){const e=s.filter((e=>o.includes(e.type.name)));c.ensureMarks(e)}}if(e.keepAttributes){const t="bulletList"===e.type.name||"orderedList"===e.type.name?"listItem":"taskList";o().updateAttributes(t,s).run()}const p=c.doc.resolve(n.from-1).nodeBefore;p&&p.type===e.type&&i(c.doc,n.from-1)&&(!e.joinPredicate||e.joinPredicate(r,p))&&c.join(n.from-1)}})}var pn=class e extends Re{constructor(){super(...arguments),this.type="node"}static create(t={}){const n="function"==typeof t?t():t;return new e(n)}configure(e){return super.configure(e)}extend(e){const t="function"==typeof e?e():e;return super.extend(t)}};function mn(e){return new Ne({find:e.find,handler:({state:t,range:n,match:r,pasteEvent:o})=>{const s=ne(e.getAttributes,void 0,r,o);if(!1===s||null===s)return null;const{tr:a}=t,i=r[r.length-1],c=r[0];let d=n.to;if(i){const r=c.search(/\S/),o=n.from+c.indexOf(i),l=o+i.length;if(ke(n.from,n.to,t.doc).filter((t=>t.mark.type.excluded.find((n=>n===e.type&&n!==t.mark.type)))).filter((e=>e.to>o)).length)return null;l<n.to&&a.delete(l,n.to),o>n.from&&a.delete(n.from+r,o),d=n.from+r+i.length,a.addMark(n.from+r,d,e.type.create(s||{})),a.removeStoredMark(e.type)}}})}export{U as CommandManager,Fe as Extension,Ie as InputRule,Be as Mark,pn as Node,Ne as PasteRule,ne as callOrReturn,q as combineTransactionSteps,K as createChainableState,Q as createDocument,G as createNodeFromContent,X as defaultBlockAt,wt as deleteProps,H as elementFromString,ze as extensions,Z as findParentNode,Y as findParentNodeClosestToPos,me as getChangedRanges,ee as getExtensionField,ce as getMarkAttributes,ge as getMarkRange,ie as getMarkType,ke as getMarksBetween,ve as getNodeAtPosition,de as getNodeType,le as getSchemaTypeNameByName,be as getSplittedAttributes,se as getTextBetween,ae as getTextSerializersFromSchema,tt as isAndroid,Me as isAtEndOfNode,Se as isAtStartOfNode,te as isFunction,Oe as isList,ht as isMacOS,we as isMarkActive,xe as isNodeActive,Ce as isNodeEmpty,Ae as isPlainObject,fe as isRegExp,$e as isTextSelection,nt as isiOS,cn as markInputRule,mn as markPasteRule,oe as mergeAttributes,Pe as mergeDeep,Ee as minMax,ue as objectIncludes,pe as removeDuplicates,je as resolveFocusPosition,Te as selectionToInsertionEnd,re as splitExtensions,dn as textblockTypeInputRule,ln as wrappingInputRule};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|