mnfst 0.5.50 → 0.5.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/{dist → lib}/manifest.appwrite.auth.js +22 -4
  2. package/{dist → lib}/manifest.code.min.css +1 -1
  3. package/{dist → lib}/manifest.data.js +2 -0
  4. package/{dist → lib}/manifest.js +15 -6
  5. package/package.json +9 -7
  6. /package/{dist → lib}/manifest.accordion.css +0 -0
  7. /package/{dist → lib}/manifest.appwrite.data.js +0 -0
  8. /package/{dist → lib}/manifest.appwrite.presence.js +0 -0
  9. /package/{dist → lib}/manifest.avatar.css +0 -0
  10. /package/{dist → lib}/manifest.button.css +0 -0
  11. /package/{dist → lib}/manifest.checkbox.css +0 -0
  12. /package/{dist → lib}/manifest.code.css +0 -0
  13. /package/{dist → lib}/manifest.code.js +0 -0
  14. /package/{dist → lib}/manifest.components.js +0 -0
  15. /package/{dist → lib}/manifest.css +0 -0
  16. /package/{dist → lib}/manifest.dialog.css +0 -0
  17. /package/{dist → lib}/manifest.divider.css +0 -0
  18. /package/{dist → lib}/manifest.dropdown.css +0 -0
  19. /package/{dist → lib}/manifest.dropdowns.js +0 -0
  20. /package/{dist → lib}/manifest.form.css +0 -0
  21. /package/{dist → lib}/manifest.icons.js +0 -0
  22. /package/{dist → lib}/manifest.input.css +0 -0
  23. /package/{dist → lib}/manifest.localization.js +0 -0
  24. /package/{dist → lib}/manifest.markdown.js +0 -0
  25. /package/{dist → lib}/manifest.min.css +0 -0
  26. /package/{dist → lib}/manifest.radio.css +0 -0
  27. /package/{dist → lib}/manifest.resize.css +0 -0
  28. /package/{dist → lib}/manifest.resize.js +0 -0
  29. /package/{dist → lib}/manifest.router.js +0 -0
  30. /package/{dist → lib}/manifest.sidebar.css +0 -0
  31. /package/{dist → lib}/manifest.slides.css +0 -0
  32. /package/{dist → lib}/manifest.slides.js +0 -0
  33. /package/{dist → lib}/manifest.switch.css +0 -0
  34. /package/{dist → lib}/manifest.table.css +0 -0
  35. /package/{dist → lib}/manifest.tabs.js +0 -0
  36. /package/{dist → lib}/manifest.tailwind.js +0 -0
  37. /package/{dist → lib}/manifest.theme.css +0 -0
  38. /package/{dist → lib}/manifest.themes.js +0 -0
  39. /package/{dist → lib}/manifest.toast.css +0 -0
  40. /package/{dist → lib}/manifest.toasts.js +0 -0
  41. /package/{dist → lib}/manifest.tooltip.css +0 -0
  42. /package/{dist → lib}/manifest.tooltips.js +0 -0
  43. /package/{dist → lib}/manifest.typography.css +0 -0
  44. /package/{dist → lib}/manifest.utilities.css +0 -0
  45. /package/{dist → lib}/manifest.utilities.js +0 -0
@@ -990,9 +990,11 @@ function initializeAuthMagic() {
990
990
  'isTeamRenamable', 'hasTeamPermission', 'hasTeamPermissionSync', 'canManageRoles',
991
991
  'canInviteMembers', 'canUpdateMembers', 'canRemoveMembers', 'canRenameTeam',
992
992
  'canDeleteTeam', 'isRoleDeletable', 'isRoleBeingEdited', 'getCurrentTeamRoles',
993
- 'getUserRole', 'getUserRoles', 'getAllAvailablePermissions'
993
+ 'getUserRole', 'getUserRoles', 'getAllAvailablePermissions',
994
+ 'isActionDisabled', 'isInviteRoleSelected', 'teamCreatedAt', 'teamUpdatedAt',
995
+ 'getMemberDisplayName', 'getMemberEmail'
994
996
  ];
995
-
997
+
996
998
  if (convenienceMethodNames.includes(prop)) {
997
999
  // This should be a function but isn't - try to reinitialize synchronously
998
1000
  if (window.ManifestAppwriteAuthTeamsConvenience && window.ManifestAppwriteAuthTeamsConvenience.initialize) {
@@ -1013,6 +1015,9 @@ function initializeAuthMagic() {
1013
1015
  if (prop.startsWith('is') || prop.startsWith('can') || prop.startsWith('has')) {
1014
1016
  return () => false;
1015
1017
  }
1018
+ if (prop.startsWith('getAll')) {
1019
+ return () => Promise.resolve([]);
1020
+ }
1016
1021
  if (prop.startsWith('get')) {
1017
1022
  return () => null;
1018
1023
  }
@@ -1070,9 +1075,11 @@ function initializeAuthMagic() {
1070
1075
  'isTeamRenamable', 'hasTeamPermission', 'hasTeamPermissionSync', 'canManageRoles',
1071
1076
  'canInviteMembers', 'canUpdateMembers', 'canRemoveMembers', 'canRenameTeam',
1072
1077
  'canDeleteTeam', 'isRoleDeletable', 'isRoleBeingEdited', 'getCurrentTeamRoles',
1073
- 'getUserRole', 'getUserRoles', 'getAllAvailablePermissions'
1078
+ 'getUserRole', 'getUserRoles', 'getAllAvailablePermissions',
1079
+ 'isActionDisabled', 'isInviteRoleSelected', 'teamCreatedAt', 'teamUpdatedAt',
1080
+ 'getMemberDisplayName', 'getMemberEmail'
1074
1081
  ];
1075
-
1082
+
1076
1083
  if (typeof prop === 'string' && convenienceMethodNames.includes(prop)) {
1077
1084
  const currentStore = Alpine.store('auth');
1078
1085
  if (currentStore && (!currentStore[prop] || typeof currentStore[prop] !== 'function')) {
@@ -1094,6 +1101,17 @@ function initializeAuthMagic() {
1094
1101
  }
1095
1102
  }
1096
1103
  }
1104
+ // Safe fallback for convenience methods that failed to reinitialize
1105
+ if (prop.startsWith('is') || prop.startsWith('can') || prop.startsWith('has')) {
1106
+ return () => false;
1107
+ }
1108
+ if (prop.startsWith('getAll')) {
1109
+ return () => Promise.resolve([]);
1110
+ }
1111
+ if (prop.startsWith('get') || prop.startsWith('team')) {
1112
+ return () => null;
1113
+ }
1114
+ return () => ({ success: false, error: 'Method not initialized' });
1097
1115
  }
1098
1116
 
1099
1117
  // Special handling for computed properties
@@ -1 +1 @@
1
- @import url("https://fonts.googleapis.com/css2?family=Gabarito:wght@400..900&family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=Lexend+Exa&display=swap");:root{--icon-copy-code:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Crect width='14' height='14' x='8' y='8' rx='2' ry='2'/%3E%3Cpath d='M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2'/%3E%3C/g%3E%3C/svg%3E");--icon-copied-code:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");--color-code-keyword:#b8860b;--color-code-string:#8b4513;--color-code-comment:grey;--color-code-function:peru;--color-code-number:sienna;--color-code-operator:#2f4f4f;--color-code-class-name:#daa520;--color-code-tag:#4682b4;--color-code-attr-name:#ff8c00;--color-code-attr-value:#8b4513;--color-code-property:sienna;--color-code-selector:#4682b4;--color-code-punctuation:#2f4f4f;--color-code-builtin:#b8860b;--color-code-constant:sienna;--color-code-boolean:sienna;--color-code-regex:#8b4513;--color-code-symbol:#daa520;--color-code-entity:#daa520;--color-code-url:sienna;--color-code-atrule:#b8860b;--color-code-rule:#4682b4;--color-code-doctype:grey;--color-code-cdata:grey;--color-code-prolog:grey;--color-code-namespace:grey;--color-code-important:#b8860b;--color-code-inserted:#228b22;--color-code-deleted:#dc143c;--color-code-char:#8b4513}.dark{--color-code-keyword:#f4a460;--color-code-string:#deb887;--color-code-comment:#8b8b8b;--color-code-function:#daa520;--color-code-number:tan;--color-code-operator:wheat;--color-code-class-name:peru;--color-code-tag:#87ceeb;--color-code-attr-name:gold;--color-code-attr-value:#deb887;--color-code-property:tan;--color-code-selector:#87ceeb;--color-code-punctuation:wheat;--color-code-builtin:#f4a460;--color-code-constant:tan;--color-code-boolean:tan;--color-code-regex:#deb887;--color-code-symbol:peru;--color-code-entity:peru;--color-code-url:tan;--color-code-atrule:#f4a460;--color-code-rule:#98fb98;--color-code-doctype:#8b8b8b;--color-code-cdata:#8b8b8b;--color-code-prolog:#8b8b8b;--color-code-namespace:#8b8b8b;--color-code-important:#f4a460;--color-code-inserted:#98fb98;--color-code-deleted:#f08080;--color-code-char:#deb887}@layer utilities{.hljs-comment{color:var(--color-code-comment)!important}.hljs-keyword{color:var(--color-code-keyword)!important}.hljs-string{color:var(--color-code-string)!important}.hljs-number{color:var(--color-code-number)!important}.hljs-literal{color:var(--color-code-constant)!important}.hljs-type{color:var(--color-code-class-name)!important}.hljs-variable{color:var(--color-code-property)!important}.hljs-variable.language_{color:var(--color-code-keyword)!important}.hljs-variable.constant_{color:var(--color-code-constant)!important}.hljs-title{color:var(--color-code-function)!important}.hljs-title.class_.inherited__{color:var(--color-code-class-name)!important}.hljs-title.function_.invoke__{color:var(--color-code-function)!important}.hljs-params{color:var(--color-code-property)!important}.hljs-doctag{color:var(--color-code-keyword)!important;font-weight:600!important}.hljs-meta{color:var(--color-code-comment)!important}.hljs-meta.keyword_,.hljs-meta.prompt_{color:var(--color-code-keyword)!important}.hljs-meta.string_{color:var(--color-code-string)!important}.hljs-section{color:var(--color-code-keyword)!important;font-weight:600!important}.hljs-name{color:var(--color-code-tag)!important}.hljs-attribute{color:var(--color-code-attr-name)!important}.hljs-bullet{color:var(--color-code-punctuation)!important}.hljs-code{color:var(--color-code-property)!important}.hljs-formula{color:var(--color-code-number)!important}.hljs-quote{color:var(--color-code-string)!important}.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-selector-pseudo{color:var(--color-code-selector)!important}.hljs-template-tag{color:var(--color-code-tag)!important}.hljs-template-variable{color:var(--color-code-property)!important}.hljs-subst{color:var(--color-code-string)!important}}@layer components{:where(pre):not(.unstyle){display:flex;flex:1;-ms-overflow-style:scrollbar;background-color:var(--color-page,oklch(100% 0 0));border:1px solid var(--color-field-surface,oklch(91.79% .0029 264.26));border-radius:1rem;color:var(--color-content-neutral,oklch(48.26% .0365 255.09));font-family:IBM Plex Mono,monospace;font-size:.8125rem;line-height:1.5;overflow-x:auto;padding:calc(var(--spacing, .25rem)*4);tab-size:4;text-indent:0;white-space:pre;white-space-collapse:preserve;width:auto}:where(pre code):not(.unstyle){background-color:transparent;border:0;color:inherit;display:block;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;padding:0;width:100%;& span{vertical-align:initial}}:where(x-code-group,x-code,[x-code]){background:color-mix(in oklch,var(--color-field-surface,oklch(91.79% .0029 264.26)) 45%,transparent);border:1px solid var(--color-field-surface,oklch(91.79% .0029 264.26));border-radius:1rem;display:flex;flex-flow:row wrap;font-family:IBM Plex Mono,monospace;font-size:.8125rem;line-height:1.5;overflow:hidden;position:relative;&:has(>header){padding:.125rem}&>header{align-items:center;border-bottom:none;border-radius:.8125rem .8125rem 0 0;color:var(--color-content-subtle,oklch(67.4% .0318 251.27));display:flex;font-family:var(--font-sans,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-size:.8125rem;font-weight:500;gap:calc(var(--spacing, .25rem)*2);overflow-x:auto;padding:.5rem 4rem .5rem 1rem;width:100%;-ms-overflow-style:none;scrollbar-width:none;&::-webkit-scrollbar{display:none}& button[role=tab]{background:transparent;border-radius:var(--radius,.5rem);color:inherit;cursor:pointer;flex-shrink:0;font-family:inherit;font-size:inherit;height:fit-content;padding:var(--spacing,.25rem) calc(var(--spacing, .25rem)*2);transition:var(--transition,all .05s ease-in-out);&:hover{background-color:var(--color-surface-3,oklch(91.79% .0029 264.26));color:var(--color-content-neutral,oklch(48.26% .0365 255.09))}&.selected{background:transparent;color:var(--color-brand-content,#de6618);position:relative;&:hover{background-color:var(--color-surface-3,oklch(91.79% .0029 264.26))}&:after{background:color-mix(in oklch,var(--color-brand-content,#de6618) 50%,transparent);border-radius:.5rem;bottom:-.5rem;content:"";height:2px;left:50%;position:absolute;transform:translateX(-50%);width:calc(100% - var(--spacing, .25rem)*4)}}}}& .lines{background:var(--color-page,oklch(100% 0 0));color:var(--color-content-subtle,oklch(67.4% .0318 251.27));display:flex;flex-direction:column;font-family:inherit;font-size:inherit;line-height:inherit;min-width:2.5rem;padding:calc(var(--spacing, .25rem)*4) .5rem calc(var(--spacing, .25rem)*4) .5rem;pointer-events:none;text-align:right;user-select:none;width:fit-content}&:has(>header) .lines{border-end-start-radius:.875rem;border-start-start-radius:.875rem}& pre{border:0;margin-top:0}&:has(>header) pre{border-radius:.875rem}&[numbers] pre{border-end-start-radius:0;border-start-start-radius:0}& .copy{height:1.75rem;min-width:0;padding:0;position:absolute;right:.5rem;top:.3rem;width:1.75rem;&:after{background-color:var(--color-field-inverse,oklch(16.6% .026 267));content:"";display:block;height:.8125rem;mask-image:var(--icon-copy-code);mask-repeat:no-repeat;mask-size:1rem;mask-size:contain;width:.8125rem}&.copied:after{mask-image:var(--icon-copied-code)}&.copied{--color-field-surface:var(--color-positive-surface);--color-field-surface-hover:var(--color-positive-surface-hover);--color-field-inverse:var(--color-positive-inverse)}}:where(x-code){border:0;margin-top:0;overflow:visible;width:100%;& .copy{top:-2.25rem}}}[dir=rtl] :where(x-code-group,x-code,[x-code]) .copy{left:.5rem;right:auto}}@layer utilities{.prose aside.frame{background:color-mix(in oklch,var(--color-field-surface,oklch(91.79% .0029 264.26)) 35%,transparent);border:1px solid var(--color-field-surface,oklch(91.79% .0029 264.26));border-radius:calc(var(--radius, .5rem)*2);display:flex;gap:calc(var(--spacing, .25rem)*4)}.prose aside.frame:has(+x-code-group,+x-code){border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.prose aside.frame+x-code,.prose aside.frame+x-code-group{border-top-left-radius:0;border-top-right-radius:0;margin-top:0}.prose aside.frame+x-code pre{border-top-left-radius:0;border-top-right-radius:0}}
1
+ @import url("https://fonts.googleapis.com/css2?family=Gabarito:wght@400..900&family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=Lexend+Exa&display=swap");:root{--icon-copy-code:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Crect width='14' height='14' x='8' y='8' rx='2' ry='2'/%3E%3Cpath d='M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2'/%3E%3C/g%3E%3C/svg%3E");--icon-copied-code:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");--color-code-keyword:#b8860b;--color-code-string:#8b4513;--color-code-comment:gray;--color-code-function:peru;--color-code-number:sienna;--color-code-operator:#2f4f4f;--color-code-class-name:#daa520;--color-code-tag:#4682b4;--color-code-attr-name:#ff8c00;--color-code-attr-value:#8b4513;--color-code-property:sienna;--color-code-selector:#4682b4;--color-code-punctuation:#2f4f4f;--color-code-builtin:#b8860b;--color-code-constant:sienna;--color-code-boolean:sienna;--color-code-regex:#8b4513;--color-code-symbol:#daa520;--color-code-entity:#daa520;--color-code-url:sienna;--color-code-atrule:#b8860b;--color-code-rule:#4682b4;--color-code-doctype:gray;--color-code-cdata:gray;--color-code-prolog:gray;--color-code-namespace:gray;--color-code-important:#b8860b;--color-code-inserted:#228b22;--color-code-deleted:#dc143c;--color-code-char:#8b4513}.dark{--color-code-keyword:#f4a460;--color-code-string:#deb887;--color-code-comment:#8b8b8b;--color-code-function:#daa520;--color-code-number:tan;--color-code-operator:wheat;--color-code-class-name:peru;--color-code-tag:#87ceeb;--color-code-attr-name:gold;--color-code-attr-value:#deb887;--color-code-property:tan;--color-code-selector:#87ceeb;--color-code-punctuation:wheat;--color-code-builtin:#f4a460;--color-code-constant:tan;--color-code-boolean:tan;--color-code-regex:#deb887;--color-code-symbol:peru;--color-code-entity:peru;--color-code-url:tan;--color-code-atrule:#f4a460;--color-code-rule:#98fb98;--color-code-doctype:#8b8b8b;--color-code-cdata:#8b8b8b;--color-code-prolog:#8b8b8b;--color-code-namespace:#8b8b8b;--color-code-important:#f4a460;--color-code-inserted:#98fb98;--color-code-deleted:#f08080;--color-code-char:#deb887}@layer utilities{.hljs-comment{color:var(--color-code-comment)!important}.hljs-keyword{color:var(--color-code-keyword)!important}.hljs-string{color:var(--color-code-string)!important}.hljs-number{color:var(--color-code-number)!important}.hljs-literal{color:var(--color-code-constant)!important}.hljs-type{color:var(--color-code-class-name)!important}.hljs-variable{color:var(--color-code-property)!important}.hljs-variable.language_{color:var(--color-code-keyword)!important}.hljs-variable.constant_{color:var(--color-code-constant)!important}.hljs-title{color:var(--color-code-function)!important}.hljs-title.class_.inherited__{color:var(--color-code-class-name)!important}.hljs-title.function_.invoke__{color:var(--color-code-function)!important}.hljs-params{color:var(--color-code-property)!important}.hljs-doctag{color:var(--color-code-keyword)!important;font-weight:600!important}.hljs-meta{color:var(--color-code-comment)!important}.hljs-meta.keyword_,.hljs-meta.prompt_{color:var(--color-code-keyword)!important}.hljs-meta.string_{color:var(--color-code-string)!important}.hljs-section{color:var(--color-code-keyword)!important;font-weight:600!important}.hljs-name{color:var(--color-code-tag)!important}.hljs-attribute{color:var(--color-code-attr-name)!important}.hljs-bullet{color:var(--color-code-punctuation)!important}.hljs-code{color:var(--color-code-property)!important}.hljs-formula{color:var(--color-code-number)!important}.hljs-quote{color:var(--color-code-string)!important}.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-selector-pseudo{color:var(--color-code-selector)!important}.hljs-template-tag{color:var(--color-code-tag)!important}.hljs-template-variable{color:var(--color-code-property)!important}.hljs-subst{color:var(--color-code-string)!important}}@layer components{:where(pre):not(.unstyle){display:flex;flex:1;-ms-overflow-style:scrollbar;background-color:var(--color-page,oklch(100% 0 0));border:1px solid var(--color-field-surface,oklch(91.79% .0029 264.26));border-radius:1rem;color:var(--color-content-neutral,oklch(48.26% .0365 255.09));font-family:IBM Plex Mono,monospace;font-size:.8125rem;line-height:1.5;overflow-x:auto;padding:calc(var(--spacing, .25rem)*4);tab-size:4;text-indent:0;white-space:pre;white-space-collapse:preserve;width:auto}:where(pre code):not(.unstyle){background-color:transparent;border:0;color:inherit;display:block;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;padding:0;width:100%;& span{vertical-align:initial}}:where(x-code-group,x-code,[x-code]){background:color-mix(in oklch,var(--color-field-surface,oklch(91.79% .0029 264.26)) 45%,transparent);border:1px solid var(--color-field-surface,oklch(91.79% .0029 264.26));border-radius:1rem;display:flex;flex-flow:row wrap;font-family:IBM Plex Mono,monospace;font-size:.8125rem;line-height:1.5;overflow:hidden;position:relative;&:has(>header){padding:.125rem}&>header{align-items:center;border-bottom:none;border-radius:.8125rem .8125rem 0 0;color:var(--color-content-subtle,oklch(67.4% .0318 251.27));display:flex;font-family:var(--font-sans,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-size:.8125rem;font-weight:500;gap:calc(var(--spacing, .25rem)*2);overflow-x:auto;padding:.5rem 4rem .5rem 1rem;width:100%;-ms-overflow-style:none;scrollbar-width:none;&::-webkit-scrollbar{display:none}& button[role=tab]{background:transparent;border-radius:var(--radius,.5rem);color:inherit;cursor:pointer;flex-shrink:0;font-family:inherit;font-size:inherit;height:fit-content;padding:var(--spacing,.25rem) calc(var(--spacing, .25rem)*2);transition:var(--transition,all .05s ease-in-out);&:hover{background-color:var(--color-surface-3,oklch(91.79% .0029 264.26));color:var(--color-content-neutral,oklch(48.26% .0365 255.09))}&.selected{background:transparent;color:var(--color-brand-content,#de6618);position:relative;&:hover{background-color:var(--color-surface-3,oklch(91.79% .0029 264.26))}&:after{background:color-mix(in oklch,var(--color-brand-content,#de6618) 50%,transparent);border-radius:.5rem;bottom:-.5rem;content:"";height:2px;left:50%;position:absolute;transform:translateX(-50%);width:calc(100% - var(--spacing, .25rem)*4)}}}}& .lines{background:var(--color-page,oklch(100% 0 0));color:var(--color-content-subtle,oklch(67.4% .0318 251.27));display:flex;flex-direction:column;font-family:inherit;font-size:inherit;line-height:inherit;min-width:2.5rem;padding:calc(var(--spacing, .25rem)*4) .5rem calc(var(--spacing, .25rem)*4) .5rem;pointer-events:none;text-align:right;user-select:none;width:fit-content}&:has(>header) .lines{border-end-start-radius:.875rem;border-start-start-radius:.875rem}& pre{border:0;margin-top:0}&:has(>header) pre{border-radius:.875rem}&[numbers] pre{border-end-start-radius:0;border-start-start-radius:0}& .copy{height:1.75rem;min-width:0;padding:0;position:absolute;right:.5rem;top:.3rem;width:1.75rem;&:after{background-color:var(--color-field-inverse,oklch(16.6% .026 267));content:"";display:block;height:.8125rem;mask-image:var(--icon-copy-code);mask-repeat:no-repeat;mask-size:1rem;mask-size:contain;width:.8125rem}&.copied:after{mask-image:var(--icon-copied-code)}&.copied{--color-field-surface:var(--color-positive-surface);--color-field-surface-hover:var(--color-positive-surface-hover);--color-field-inverse:var(--color-positive-inverse)}}:where(x-code){border:0;margin-top:0;overflow:visible;width:100%;& .copy{top:-2.25rem}}}[dir=rtl] :where(x-code-group,x-code,[x-code]) .copy{left:.5rem;right:auto}}@layer utilities{.prose aside.frame{background:color-mix(in oklch,var(--color-field-surface,oklch(91.79% .0029 264.26)) 35%,transparent);border:1px solid var(--color-field-surface,oklch(91.79% .0029 264.26));border-radius:calc(var(--radius, .5rem)*2);display:flex;gap:calc(var(--spacing, .25rem)*4)}.prose aside.frame:has(+x-code-group,+x-code){border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.prose aside.frame+x-code,.prose aside.frame+x-code-group{border-top-left-radius:0;border-top-right-radius:0;margin-top:0}.prose aside.frame+x-code pre{border-top-left-radius:0;border-top-right-radius:0}}
@@ -1698,6 +1698,8 @@ window.ManifestDataLoaders = {
1698
1698
  loadCSVParser,
1699
1699
  deepMergeWithFallback,
1700
1700
  parseCSVToNestedObject,
1701
+ setNestedValue,
1702
+ numericKeyObjectToArray,
1701
1703
  resolveDataPath,
1702
1704
  loadLocalFile
1703
1705
  };
@@ -13,11 +13,11 @@
13
13
 
14
14
  // Configuration
15
15
  const DEFAULT_VERSION = 'latest';
16
- const ALPINE_CDN_URL = 'https://cdn.jsdelivr.net/npm/alpinejs/dist/cdn.min.js';
16
+ const ALPINE_CDN_URL = 'https://cdn.jsdelivr.net/npm/alpinejs@3/dist/cdn.min.js';
17
17
 
18
18
  // Get base URL for a given version
19
19
  function getBaseUrl(version = DEFAULT_VERSION) {
20
- return `https://cdn.jsdelivr.net/npm/mnfst@${version}/dist`;
20
+ return `https://cdn.jsdelivr.net/npm/mnfst@${version}/lib`;
21
21
  }
22
22
 
23
23
  // Available core plugins (auto-loaded if no data-plugins specified)
@@ -92,9 +92,16 @@
92
92
  return `${base}/manifest.${pluginName}.min.js`;
93
93
  }
94
94
 
95
+ // Resolve Alpine CDN URL from a data-alpine value (version tag or full URL)
96
+ function resolveAlpineUrl(dataAlpine) {
97
+ if (!dataAlpine) return ALPINE_CDN_URL;
98
+ if (dataAlpine.startsWith('http')) return dataAlpine;
99
+ return `https://cdn.jsdelivr.net/npm/alpinejs@${dataAlpine}/dist/cdn.min.js`;
100
+ }
101
+
95
102
  // Load Alpine.js from CDN with defer attribute
96
103
  // Alpine waits for DOM to be ready, and by then all plugins are registered
97
- function loadAlpine() {
104
+ function loadAlpine(alpineUrl = ALPINE_CDN_URL) {
98
105
  // Fast check: Alpine already initialized
99
106
  if (window.Alpine) {
100
107
  return;
@@ -107,7 +114,7 @@
107
114
  }
108
115
 
109
116
  const script = document.createElement('script');
110
- script.src = ALPINE_CDN_URL;
117
+ script.src = alpineUrl;
111
118
  script.defer = true; // Critical: defer ensures Alpine waits for DOM and all plugins
112
119
  document.head.appendChild(script);
113
120
  }
@@ -221,6 +228,7 @@
221
228
  const omit = script.getAttribute('data-omit');
222
229
  const tailwind = script.getAttribute('data-tailwind') !== null;
223
230
  const version = script.getAttribute('data-version') || DEFAULT_VERSION;
231
+ const alpine = script.getAttribute('data-alpine');
224
232
 
225
233
  let pluginList = [];
226
234
  const deriveFromManifest = !plugins;
@@ -246,7 +254,8 @@
246
254
  plugins: pluginList,
247
255
  deriveFromManifest,
248
256
  tailwind,
249
- version
257
+ version,
258
+ alpine
250
259
  };
251
260
  }
252
261
 
@@ -344,7 +353,7 @@
344
353
  window.ManifestComponentsRegistry.manifest = manifest;
345
354
  }
346
355
  }
347
- loadAlpine();
356
+ loadAlpine(resolveAlpineUrl(config.alpine));
348
357
  };
349
358
 
350
359
  loadPlugins();
package/package.json CHANGED
@@ -1,25 +1,26 @@
1
1
  {
2
2
  "name": "mnfst",
3
- "version": "0.5.50",
3
+ "version": "0.5.52",
4
4
  "private": false,
5
5
  "workspaces": [
6
6
  "templates/starter",
7
7
  "packages/render"
8
8
  ],
9
- "main": "dist/manifest.js",
10
- "style": "dist/manifest.css",
9
+ "main": "lib/manifest.js",
10
+ "style": "lib/manifest.css",
11
11
  "files": [
12
- "dist",
12
+ "lib",
13
13
  "README.md",
14
14
  "LICENSE"
15
15
  ],
16
16
  "scripts": {
17
- "clean": "rimraf src/scripts/manifest.js src/scripts/manifest.render.mjs src/styles/manifest.css src/styles/manifest.min.css src/styles/manifest.code.min.css dist",
17
+ "clean": "rimraf src/scripts/manifest.js src/scripts/manifest.render.mjs src/styles/manifest.css src/styles/manifest.min.css src/styles/manifest.code.min.css lib",
18
18
  "build": "cd src && node scripts/build.mjs",
19
19
  "build:docs": "echo 'Docs is a static website - no build needed'",
20
20
  "start:src": "cd src && browser-sync start --config bs-config.js",
21
21
  "start:docs": "cd docs && browser-sync start --config bs-config.js",
22
22
  "start:starter": "cd templates/starter && browser-sync start --config bs-config.js --port 3001",
23
+ "start:dist": "cd src && browser-sync start --config dist-bs-config.js --port 5003",
23
24
  "prerender": "node src/scripts/manifest.render.mjs --root src",
24
25
  "prerender:docs": "node src/scripts/manifest.render.mjs --root docs",
25
26
  "prerender:starter": "node src/scripts/manifest.render.mjs --root templates/starter",
@@ -27,7 +28,7 @@
27
28
  "publish:starter": "cd packages/create-starter && npm publish --auth-type=web",
28
29
  "publish:render": "cd packages/render && npm publish --auth-type=web",
29
30
  "prepublishOnly": "npm run build",
30
- "test": "echo 'No tests configured'",
31
+ "test": "vitest run",
31
32
  "lint": "echo 'No linting configured'"
32
33
  },
33
34
  "devDependencies": {
@@ -39,7 +40,8 @@
39
40
  "glob": "^11.0.2",
40
41
  "puppeteer": "^24.15.0",
41
42
  "rimraf": "^5.0.0",
42
- "rollup": "^4.24.2"
43
+ "rollup": "^4.24.2",
44
+ "vitest": "^4.1.2"
43
45
  },
44
46
  "keywords": [
45
47
  "frontend",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes