snice 2.2.1 → 2.2.3

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 (44) hide show
  1. package/dist/components/login/snice-login.d.ts +2 -0
  2. package/dist/components/login/snice-login.js +16 -2
  3. package/dist/components/login/snice-login.js.map +1 -1
  4. package/dist/index.cjs +163 -129
  5. package/dist/index.cjs.map +1 -1
  6. package/dist/index.esm.js +163 -129
  7. package/dist/index.esm.js.map +1 -1
  8. package/dist/index.iife.js +163 -129
  9. package/dist/index.iife.js.map +1 -1
  10. package/dist/symbols.cjs.map +1 -1
  11. package/dist/symbols.esm.js +1 -1
  12. package/dist/symbols.esm.js.map +1 -1
  13. package/dist/transitions.cjs.map +1 -1
  14. package/dist/transitions.esm.js +1 -1
  15. package/dist/transitions.esm.js.map +1 -1
  16. package/dist/types/controller.d.ts +1 -7
  17. package/dist/types/element.d.ts +3 -44
  18. package/dist/types/events.d.ts +2 -26
  19. package/dist/types/global.d.ts +1 -5
  20. package/dist/types/index.d.ts +2 -8
  21. package/dist/types/observe.d.ts +1 -16
  22. package/dist/types/request-response.d.ts +2 -28
  23. package/dist/types/router.d.ts +2 -81
  24. package/dist/types/transitions.d.ts +2 -30
  25. package/dist/types/types/DispatchOptions.d.ts +10 -0
  26. package/dist/types/types/IController.d.ts +8 -0
  27. package/dist/types/types/ObserveOptions.d.ts +16 -0
  28. package/dist/types/types/OnOptions.d.ts +16 -0
  29. package/dist/types/types/PageOptions.d.ts +30 -0
  30. package/dist/types/types/PartOptions.d.ts +4 -0
  31. package/dist/types/types/PropertyConverter.d.ts +4 -0
  32. package/dist/types/types/PropertyOptions.d.ts +9 -0
  33. package/dist/types/types/QueryOptions.d.ts +4 -0
  34. package/dist/types/types/RequestOptions.d.ts +18 -0
  35. package/dist/types/types/RespondOptions.d.ts +10 -0
  36. package/dist/types/types/RouterInstance.d.ts +10 -0
  37. package/dist/types/types/RouterOptions.d.ts +32 -0
  38. package/dist/types/types/SimpleArray.d.ts +17 -0
  39. package/dist/types/types/SniceElement.d.ts +8 -0
  40. package/dist/types/types/SniceGlobal.d.ts +5 -0
  41. package/dist/types/types/Transition.d.ts +33 -0
  42. package/dist/types/types/index.d.ts +17 -0
  43. package/dist/types/utils.d.ts +16 -0
  44. package/package.json +2 -3
@@ -10,6 +10,7 @@ export declare class SniceLogin extends HTMLElement implements SniceLoginElement
10
10
  showRememberMe: boolean;
11
11
  showForgotPassword: boolean;
12
12
  actionText: string;
13
+ loginContainer: HTMLDivElement;
13
14
  form: HTMLFormElement;
14
15
  usernameInput: HTMLInputElement;
15
16
  passwordInput: HTMLInputElement;
@@ -21,6 +22,7 @@ export declare class SniceLogin extends HTMLElement implements SniceLoginElement
21
22
  private alertVariant;
22
23
  html(): string;
23
24
  css(): string;
25
+ updateLoginClasses(): void;
24
26
  login(credentials?: LoginCredentials): any;
25
27
  handleButtonClick(event: Event): Promise<void>;
26
28
  handleSubmit(event: Event): Promise<{
@@ -1,5 +1,5 @@
1
1
  import { __runInitializers, __esDecorate } from 'tslib';
2
- import { element, property, query, queryAll, request, on, dispatch } from 'snice';
2
+ import { element, property, query, queryAll, watch, request, on, dispatch } from 'snice';
3
3
  import '../alert/snice-alert.js';
4
4
  import '../button/snice-button.js';
5
5
 
@@ -36,6 +36,9 @@ let SniceLogin = (() => {
36
36
  let _actionText_decorators;
37
37
  let _actionText_initializers = [];
38
38
  let _actionText_extraInitializers = [];
39
+ let _loginContainer_decorators;
40
+ let _loginContainer_initializers = [];
41
+ let _loginContainer_extraInitializers = [];
39
42
  let _form_decorators;
40
43
  let _form_initializers = [];
41
44
  let _form_extraInitializers = [];
@@ -57,6 +60,7 @@ let SniceLogin = (() => {
57
60
  let _inputElements_decorators;
58
61
  let _inputElements_initializers = [];
59
62
  let _inputElements_extraInitializers = [];
63
+ let _updateLoginClasses_decorators;
60
64
  let _login_decorators;
61
65
  let _handleButtonClick_decorators;
62
66
  let _handleSubmit_decorators;
@@ -76,7 +80,8 @@ let SniceLogin = (() => {
76
80
  this.showRememberMe = (__runInitializers(this, _loading_extraInitializers), __runInitializers(this, _showRememberMe_initializers, true));
77
81
  this.showForgotPassword = (__runInitializers(this, _showRememberMe_extraInitializers), __runInitializers(this, _showForgotPassword_initializers, true));
78
82
  this.actionText = (__runInitializers(this, _showForgotPassword_extraInitializers), __runInitializers(this, _actionText_initializers, 'Sign In'));
79
- this.form = (__runInitializers(this, _actionText_extraInitializers), __runInitializers(this, _form_initializers, void 0));
83
+ this.loginContainer = (__runInitializers(this, _actionText_extraInitializers), __runInitializers(this, _loginContainer_initializers, void 0));
84
+ this.form = (__runInitializers(this, _loginContainer_extraInitializers), __runInitializers(this, _form_initializers, void 0));
80
85
  this.usernameInput = (__runInitializers(this, _form_extraInitializers), __runInitializers(this, _usernameInput_initializers, void 0));
81
86
  this.passwordInput = (__runInitializers(this, _usernameInput_extraInitializers), __runInitializers(this, _passwordInput_initializers, void 0));
82
87
  this.rememberInput = (__runInitializers(this, _passwordInput_extraInitializers), __runInitializers(this, _rememberInput_initializers, void 0));
@@ -96,6 +101,7 @@ let SniceLogin = (() => {
96
101
  _showRememberMe_decorators = [property({ type: Boolean, reflect: true, attribute: 'show-remember-me' })];
97
102
  _showForgotPassword_decorators = [property({ type: Boolean, reflect: true, attribute: 'show-forgot-password' })];
98
103
  _actionText_decorators = [property({ reflect: true, attribute: 'action-text' })];
104
+ _loginContainer_decorators = [query('.login')];
99
105
  _form_decorators = [query('.login__form')];
100
106
  _usernameInput_decorators = [query('input[name="username"]')];
101
107
  _passwordInput_decorators = [query('input[name="password"]')];
@@ -103,6 +109,7 @@ let SniceLogin = (() => {
103
109
  _alertElement_decorators = [query('snice-alert')];
104
110
  _buttonElement_decorators = [query('snice-button')];
105
111
  _inputElements_decorators = [queryAll('input')];
112
+ _updateLoginClasses_decorators = [watch('variant', 'size')];
106
113
  _login_decorators = [request('login-user')];
107
114
  _handleButtonClick_decorators = [on('click', 'snice-button')];
108
115
  _handleSubmit_decorators = [on('submit', '.login__form'), dispatch('@snice/login-attempt', { bubbles: true, composed: true })];
@@ -110,6 +117,7 @@ let SniceLogin = (() => {
110
117
  _handleForgotPassword_decorators = [on('click', '.login__forgot'), dispatch('@snice/login-forgot-password', { bubbles: true, composed: true })];
111
118
  _dispatchLoginSuccess_decorators = [dispatch('@snice/login-success', { bubbles: true, composed: true })];
112
119
  _dispatchLoginError_decorators = [dispatch('@snice/login-error', { bubbles: true, composed: true })];
120
+ __esDecorate(this, null, _updateLoginClasses_decorators, { kind: "method", name: "updateLoginClasses", static: false, private: false, access: { has: obj => "updateLoginClasses" in obj, get: obj => obj.updateLoginClasses }, metadata: _metadata }, null, _instanceExtraInitializers);
113
121
  __esDecorate(this, null, _login_decorators, { kind: "method", name: "login", static: false, private: false, access: { has: obj => "login" in obj, get: obj => obj.login }, metadata: _metadata }, null, _instanceExtraInitializers);
114
122
  __esDecorate(this, null, _handleButtonClick_decorators, { kind: "method", name: "handleButtonClick", static: false, private: false, access: { has: obj => "handleButtonClick" in obj, get: obj => obj.handleButtonClick }, metadata: _metadata }, null, _instanceExtraInitializers);
115
123
  __esDecorate(this, null, _handleSubmit_decorators, { kind: "method", name: "handleSubmit", static: false, private: false, access: { has: obj => "handleSubmit" in obj, get: obj => obj.handleSubmit }, metadata: _metadata }, null, _instanceExtraInitializers);
@@ -125,6 +133,7 @@ let SniceLogin = (() => {
125
133
  __esDecorate(null, null, _showRememberMe_decorators, { kind: "field", name: "showRememberMe", static: false, private: false, access: { has: obj => "showRememberMe" in obj, get: obj => obj.showRememberMe, set: (obj, value) => { obj.showRememberMe = value; } }, metadata: _metadata }, _showRememberMe_initializers, _showRememberMe_extraInitializers);
126
134
  __esDecorate(null, null, _showForgotPassword_decorators, { kind: "field", name: "showForgotPassword", static: false, private: false, access: { has: obj => "showForgotPassword" in obj, get: obj => obj.showForgotPassword, set: (obj, value) => { obj.showForgotPassword = value; } }, metadata: _metadata }, _showForgotPassword_initializers, _showForgotPassword_extraInitializers);
127
135
  __esDecorate(null, null, _actionText_decorators, { kind: "field", name: "actionText", static: false, private: false, access: { has: obj => "actionText" in obj, get: obj => obj.actionText, set: (obj, value) => { obj.actionText = value; } }, metadata: _metadata }, _actionText_initializers, _actionText_extraInitializers);
136
+ __esDecorate(null, null, _loginContainer_decorators, { kind: "field", name: "loginContainer", static: false, private: false, access: { has: obj => "loginContainer" in obj, get: obj => obj.loginContainer, set: (obj, value) => { obj.loginContainer = value; } }, metadata: _metadata }, _loginContainer_initializers, _loginContainer_extraInitializers);
128
137
  __esDecorate(null, null, _form_decorators, { kind: "field", name: "form", static: false, private: false, access: { has: obj => "form" in obj, get: obj => obj.form, set: (obj, value) => { obj.form = value; } }, metadata: _metadata }, _form_initializers, _form_extraInitializers);
129
138
  __esDecorate(null, null, _usernameInput_decorators, { kind: "field", name: "usernameInput", static: false, private: false, access: { has: obj => "usernameInput" in obj, get: obj => obj.usernameInput, set: (obj, value) => { obj.usernameInput = value; } }, metadata: _metadata }, _usernameInput_initializers, _usernameInput_extraInitializers);
130
139
  __esDecorate(null, null, _passwordInput_decorators, { kind: "field", name: "passwordInput", static: false, private: false, access: { has: obj => "passwordInput" in obj, get: obj => obj.passwordInput, set: (obj, value) => { obj.passwordInput = value; } }, metadata: _metadata }, _passwordInput_initializers, _passwordInput_extraInitializers);
@@ -216,6 +225,11 @@ let SniceLogin = (() => {
216
225
  css() {
217
226
  return css;
218
227
  }
228
+ updateLoginClasses() {
229
+ if (this.loginContainer) {
230
+ this.loginContainer.className = `login login--${this.variant} login--${this.size}`;
231
+ }
232
+ }
219
233
  async *login(credentials) {
220
234
  if (!credentials) {
221
235
  credentials = this.getFormData();
@@ -1 +1 @@
1
- {"version":3,"file":"snice-login.js","sources":["../../../components/login/snice-login.css?inline","../../../../components/login/snice-login.ts"],"sourcesContent":["export default \"/* Login Component */\\n:host {\\n display: block;\\n font-family: var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);\\n}\\n\\n.login {\\n max-width: 24rem; /* 384px */\\n margin: 0 auto;\\n}\\n\\n.login--card {\\n background: var(--snice-color-background-element, rgb(252 251 249));\\n border: 1px solid var(--snice-color-border, rgb(226 226 226));\\n border-radius: var(--snice-border-radius-lg, 0.5rem);\\n padding: var(--snice-spacing-xl, 2rem);\\n box-shadow: var(--snice-shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1));\\n}\\n\\n.login--minimal {\\n background: transparent;\\n border: none;\\n padding: 0;\\n box-shadow: none;\\n}\\n\\n.login--small {\\n max-width: 20rem; /* 320px */\\n}\\n\\n.login--large {\\n max-width: 28rem; /* 448px */\\n}\\n\\n.login__header {\\n text-align: center;\\n margin-bottom: var(--snice-spacing-xl, 2rem);\\n}\\n\\n.login__title {\\n margin: 0 0 var(--snice-spacing-xs, 0.5rem) 0;\\n font-size: var(--snice-font-size-2xl, 1.5rem);\\n font-weight: var(--snice-font-weight-bold, 700);\\n color: var(--snice-color-text, rgb(23 23 23));\\n}\\n\\n.login__subtitle {\\n margin: 0;\\n font-size: var(--snice-font-size-sm, 0.875rem);\\n color: var(--snice-color-text-secondary, rgb(82 82 82));\\n}\\n\\n.login__form {\\n display: flex;\\n flex-direction: column;\\n gap: var(--snice-spacing-md, 1rem);\\n}\\n\\n.login__field {\\n display: flex;\\n flex-direction: column;\\n gap: var(--snice-spacing-2xs, 0.25rem);\\n}\\n\\n.login__label {\\n font-size: var(--snice-font-size-sm, 0.875rem);\\n font-weight: var(--snice-font-weight-medium, 500);\\n color: var(--snice-color-text, rgb(23 23 23));\\n}\\n\\n.login__input {\\n padding: var(--snice-spacing-sm, 0.75rem);\\n border: 1px solid var(--snice-color-border, rgb(226 226 226));\\n border-radius: var(--snice-border-radius-md, 0.25rem);\\n font-size: var(--snice-font-size-md, 1rem);\\n font-family: var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);\\n transition: border-color var(--snice-transition-fast, 150ms) ease;\\n background: var(--snice-color-background, rgb(255 255 255));\\n color: var(--snice-color-text, rgb(23 23 23));\\n}\\n\\n.login__input:focus {\\n outline: none;\\n border-color: var(--snice-color-border-focus, rgb(59 130 246));\\n box-shadow: 0 0 0 var(--snice-focus-ring-width, 2px) var(--snice-focus-ring-color, rgb(59 130 246 / 0.5));\\n}\\n\\n.login__input:disabled {\\n background: var(--snice-color-background-secondary, rgb(250 250 250));\\n color: var(--snice-color-text-tertiary, rgb(115 115 115));\\n cursor: not-allowed;\\n}\\n\\n.login__input--error {\\n border-color: var(--snice-color-danger, rgb(220 38 38));\\n}\\n\\n.login__input--error:focus {\\n border-color: var(--snice-color-danger, rgb(220 38 38));\\n box-shadow: 0 0 0 var(--snice-focus-ring-width, 2px) rgb(239 68 68 / 0.2);\\n}\\n\\n.login__options {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n margin: var(--snice-spacing-xs, 0.5rem) 0;\\n}\\n\\n.login__remember {\\n display: flex;\\n align-items: center;\\n gap: var(--snice-spacing-xs, 0.5rem);\\n font-size: var(--snice-font-size-sm, 0.875rem);\\n color: var(--snice-color-text-secondary, rgb(82 82 82));\\n}\\n\\n.login__checkbox {\\n margin: 0;\\n}\\n\\n.login__forgot {\\n font-size: var(--snice-font-size-sm, 0.875rem);\\n color: var(--snice-color-primary, rgb(37 99 235));\\n text-decoration: none;\\n transition: color var(--snice-transition-fast, 150ms) ease;\\n}\\n\\n.login__forgot:hover {\\n color: var(--snice-color-primary-hover, rgb(29 78 216));\\n text-decoration: underline;\\n}\\n\\n\\n\\n.login__footer {\\n text-align: center;\\n margin-top: var(--snice-spacing-lg, 1.5rem);\\n}\\n\\n.login__footer ::slotted(*) {\\n font-size: var(--snice-font-size-sm, 0.875rem);\\n color: var(--snice-color-text-secondary, rgb(82 82 82));\\n}\\n\\n.login__footer ::slotted(a) {\\n color: var(--snice-color-primary, rgb(37 99 235));\\n text-decoration: none;\\n}\\n\\n.login__footer ::slotted(a:hover) {\\n text-decoration: underline;\\n}\\n\\n/* Size variants */\\n.login--small .login__title {\\n font-size: 1.25rem; /* 20px */\\n}\\n\\n.login--small .login__input,\\n.login--small .login__button {\\n padding: 0.625rem; /* 10px */\\n font-size: 0.875rem; /* 14px */\\n}\\n\\n.login--small .login__button {\\n min-height: 2.5rem; /* 40px */\\n}\\n\\n.login--large .login__title {\\n font-size: 1.875rem; /* 30px */\\n}\\n\\n.login--large .login__input,\\n.login--large .login__button {\\n padding: 1rem; /* 16px */\\n font-size: 1.125rem; /* 18px */\\n}\\n\\n.login--large .login__button {\\n min-height: 3.5rem; /* 56px */\\n}\\n\\n[hidden] {\\n display: none;\\n}\\n\\nsnice-alert {\\n margin-top: var(--snice-spacing-md, 1rem);\\n}\\n\\n/* Mobile responsive */\\n@media (max-width: 640px) {\\n .login {\\n max-width: none;\\n margin: 0;\\n }\\n \\n .login--card {\\n border-radius: 0;\\n border-left: none;\\n border-right: none;\\n }\\n}\";",null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snice-login.js","sources":["../../../components/login/snice-login.css?inline","../../../../components/login/snice-login.ts"],"sourcesContent":["export default \"/* Login Component */\\n:host {\\n display: block;\\n font-family: var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);\\n}\\n\\n.login {\\n max-width: 24rem; /* 384px */\\n margin: 0 auto;\\n}\\n\\n.login--card {\\n background: var(--snice-color-background-element, rgb(252 251 249));\\n border: 1px solid var(--snice-color-border, rgb(226 226 226));\\n border-radius: var(--snice-border-radius-lg, 0.5rem);\\n padding: var(--snice-spacing-xl, 2rem);\\n box-shadow: var(--snice-shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1));\\n}\\n\\n.login--minimal {\\n background: transparent;\\n border: none;\\n padding: 0;\\n box-shadow: none;\\n}\\n\\n.login--small {\\n max-width: 20rem; /* 320px */\\n}\\n\\n.login--large {\\n max-width: 28rem; /* 448px */\\n}\\n\\n.login__header {\\n text-align: center;\\n margin-bottom: var(--snice-spacing-xl, 2rem);\\n}\\n\\n.login__title {\\n margin: 0 0 var(--snice-spacing-xs, 0.5rem) 0;\\n font-size: var(--snice-font-size-2xl, 1.5rem);\\n font-weight: var(--snice-font-weight-bold, 700);\\n color: var(--snice-color-text, rgb(23 23 23));\\n}\\n\\n.login__subtitle {\\n margin: 0;\\n font-size: var(--snice-font-size-sm, 0.875rem);\\n color: var(--snice-color-text-secondary, rgb(82 82 82));\\n}\\n\\n.login__form {\\n display: flex;\\n flex-direction: column;\\n gap: var(--snice-spacing-md, 1rem);\\n}\\n\\n.login__field {\\n display: flex;\\n flex-direction: column;\\n gap: var(--snice-spacing-2xs, 0.25rem);\\n}\\n\\n.login__label {\\n font-size: var(--snice-font-size-sm, 0.875rem);\\n font-weight: var(--snice-font-weight-medium, 500);\\n color: var(--snice-color-text, rgb(23 23 23));\\n}\\n\\n.login__input {\\n padding: var(--snice-spacing-sm, 0.75rem);\\n border: 1px solid var(--snice-color-border, rgb(226 226 226));\\n border-radius: var(--snice-border-radius-md, 0.25rem);\\n font-size: var(--snice-font-size-md, 1rem);\\n font-family: var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);\\n transition: border-color var(--snice-transition-fast, 150ms) ease;\\n background: var(--snice-color-background, rgb(255 255 255));\\n color: var(--snice-color-text, rgb(23 23 23));\\n}\\n\\n.login__input:focus {\\n outline: none;\\n border-color: var(--snice-color-border-focus, rgb(59 130 246));\\n box-shadow: 0 0 0 var(--snice-focus-ring-width, 2px) var(--snice-focus-ring-color, rgb(59 130 246 / 0.5));\\n}\\n\\n.login__input:disabled {\\n background: var(--snice-color-background-secondary, rgb(250 250 250));\\n color: var(--snice-color-text-tertiary, rgb(115 115 115));\\n cursor: not-allowed;\\n}\\n\\n.login__input--error {\\n border-color: var(--snice-color-danger, rgb(220 38 38));\\n}\\n\\n.login__input--error:focus {\\n border-color: var(--snice-color-danger, rgb(220 38 38));\\n box-shadow: 0 0 0 var(--snice-focus-ring-width, 2px) rgb(239 68 68 / 0.2);\\n}\\n\\n.login__options {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n margin: var(--snice-spacing-xs, 0.5rem) 0;\\n}\\n\\n.login__remember {\\n display: flex;\\n align-items: center;\\n gap: var(--snice-spacing-xs, 0.5rem);\\n font-size: var(--snice-font-size-sm, 0.875rem);\\n color: var(--snice-color-text-secondary, rgb(82 82 82));\\n}\\n\\n.login__checkbox {\\n margin: 0;\\n}\\n\\n.login__forgot {\\n font-size: var(--snice-font-size-sm, 0.875rem);\\n color: var(--snice-color-primary, rgb(37 99 235));\\n text-decoration: none;\\n transition: color var(--snice-transition-fast, 150ms) ease;\\n}\\n\\n.login__forgot:hover {\\n color: var(--snice-color-primary-hover, rgb(29 78 216));\\n text-decoration: underline;\\n}\\n\\n\\n\\n.login__footer {\\n text-align: center;\\n margin-top: var(--snice-spacing-lg, 1.5rem);\\n}\\n\\n.login__footer ::slotted(*) {\\n font-size: var(--snice-font-size-sm, 0.875rem);\\n color: var(--snice-color-text-secondary, rgb(82 82 82));\\n}\\n\\n.login__footer ::slotted(a) {\\n color: var(--snice-color-primary, rgb(37 99 235));\\n text-decoration: none;\\n}\\n\\n.login__footer ::slotted(a:hover) {\\n text-decoration: underline;\\n}\\n\\n/* Size variants */\\n.login--small .login__title {\\n font-size: 1.25rem; /* 20px */\\n}\\n\\n.login--small .login__input,\\n.login--small .login__button {\\n padding: 0.625rem; /* 10px */\\n font-size: 0.875rem; /* 14px */\\n}\\n\\n.login--small .login__button {\\n min-height: 2.5rem; /* 40px */\\n}\\n\\n.login--large .login__title {\\n font-size: 1.875rem; /* 30px */\\n}\\n\\n.login--large .login__input,\\n.login--large .login__button {\\n padding: 1rem; /* 16px */\\n font-size: 1.125rem; /* 18px */\\n}\\n\\n.login--large .login__button {\\n min-height: 3.5rem; /* 56px */\\n}\\n\\n[hidden] {\\n display: none;\\n}\\n\\nsnice-alert {\\n margin-top: var(--snice-spacing-md, 1rem);\\n}\\n\\n/* Mobile responsive */\\n@media (max-width: 640px) {\\n .login {\\n max-width: none;\\n margin: 0;\\n }\\n \\n .login--card {\\n border-radius: 0;\\n border-left: none;\\n border-right: none;\\n }\\n}\";",null],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v2.2.0
2
+ * snice v2.2.2
3
3
  * Imperative TypeScript framework for building vanilla web components with decorators, routing, and controllers. No virtual DOM, no build complexity.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
@@ -703,6 +703,7 @@ function cleanupObservers(instance) {
703
703
  }
704
704
  }
705
705
 
706
+ // @request decorator transforms methods to return Promise<T>
706
707
  /**
707
708
  * Decorator for making requests from elements or controllers.
708
709
  * Uses async generator pattern for bidirectional communication.
@@ -1239,6 +1240,133 @@ function cleanupNativeElementControllers() {
1239
1240
  }
1240
1241
  }
1241
1242
 
1243
+ /**
1244
+ * SimpleArray type for arrays that can be safely reflected to attributes
1245
+ * Supports arrays of: string, number, boolean
1246
+ * Uses full-width comma (,) as separator to avoid conflicts
1247
+ * Strings cannot contain the full-width comma character
1248
+ */
1249
+ class SimpleArray {
1250
+ static { this.SEPARATOR = ','; } // U+FF0C Full-width comma
1251
+ /**
1252
+ * Serialize array to string for attribute storage
1253
+ */
1254
+ static serialize(arr) {
1255
+ if (!Array.isArray(arr))
1256
+ return '';
1257
+ return arr.map(item => {
1258
+ if (typeof item === 'string') {
1259
+ // Validate string doesn't contain our separator
1260
+ if (item.includes(SimpleArray.SEPARATOR)) {
1261
+ throw new Error(`SimpleArray strings cannot contain the character "${SimpleArray.SEPARATOR}" (U+FF0C)`);
1262
+ }
1263
+ return item;
1264
+ }
1265
+ else if (typeof item === 'number' || typeof item === 'boolean') {
1266
+ return String(item);
1267
+ }
1268
+ else {
1269
+ throw new Error(`SimpleArray only supports string, number, and boolean types. Got: ${typeof item}`);
1270
+ }
1271
+ }).join(SimpleArray.SEPARATOR);
1272
+ }
1273
+ /**
1274
+ * Parse string from attribute back to array
1275
+ */
1276
+ static parse(str) {
1277
+ if (str === null || str === undefined)
1278
+ return [];
1279
+ // Empty string should not be parsed as containing an empty string
1280
+ // since empty arrays don't get reflected (handled by the reflection logic)
1281
+ if (str === '')
1282
+ return [];
1283
+ return str.split(SimpleArray.SEPARATOR).map(item => {
1284
+ // Try to parse as number
1285
+ if (/^-?\d+\.?\d*$/.test(item)) {
1286
+ const num = Number(item);
1287
+ if (!isNaN(num))
1288
+ return num;
1289
+ }
1290
+ // Parse as boolean
1291
+ if (item === 'true')
1292
+ return true;
1293
+ if (item === 'false')
1294
+ return false;
1295
+ // Default to string
1296
+ return item;
1297
+ });
1298
+ }
1299
+ }
1300
+
1301
+ /**
1302
+ * Detects the type constructor from an initial value
1303
+ * @param initialValue - The default value assigned to a property field (e.g., `name = "default"` -> "default")
1304
+ * @returns The constructor function (String, Number, Boolean, etc.) or undefined if type can't be determined
1305
+ */
1306
+ function detectType(initialValue) {
1307
+ if (initialValue === null || initialValue === undefined) {
1308
+ return undefined;
1309
+ }
1310
+ if (typeof initialValue === 'string') {
1311
+ return String;
1312
+ }
1313
+ if (typeof initialValue === 'number') {
1314
+ return Number;
1315
+ }
1316
+ if (typeof initialValue === 'boolean') {
1317
+ return Boolean;
1318
+ }
1319
+ if (initialValue instanceof Date) {
1320
+ return Date;
1321
+ }
1322
+ if (typeof initialValue === 'bigint') {
1323
+ return BigInt;
1324
+ }
1325
+ if (Array.isArray(initialValue)) {
1326
+ return Array;
1327
+ }
1328
+ return undefined;
1329
+ }
1330
+ /**
1331
+ * Parses an attribute value based on the property type
1332
+ * @param attributeValue - The raw string value from the HTML attribute (e.g., "123", "true", "hello")
1333
+ * @param propertyOptions - The options from @property decorator (contains explicit type, attribute name, etc.)
1334
+ * @param currentValue - The current stored value of the property (used for type inference when no explicit type)
1335
+ * @param initialValue - The default value assigned to the property field (used for type detection as fallback)
1336
+ * @returns The parsed value in the correct JavaScript type
1337
+ */
1338
+ function parseAttributeValue(attributeValue, propertyOptions, currentValue, initialValue) {
1339
+ // Use explicit type or detect from initial value
1340
+ const typeToUse = propertyOptions.type || detectType(initialValue);
1341
+ switch (typeToUse) {
1342
+ case Boolean:
1343
+ return attributeValue !== null && attributeValue !== 'false';
1344
+ case Number:
1345
+ return attributeValue !== null ? Number(attributeValue) : null;
1346
+ case String:
1347
+ return attributeValue;
1348
+ case Date:
1349
+ return attributeValue ? new Date(attributeValue) : null;
1350
+ case BigInt:
1351
+ if (attributeValue && attributeValue.endsWith('n')) {
1352
+ return BigInt(attributeValue.slice(0, -1));
1353
+ }
1354
+ else {
1355
+ return attributeValue ? BigInt(attributeValue) : null;
1356
+ }
1357
+ case SimpleArray:
1358
+ return SimpleArray.parse(attributeValue);
1359
+ default:
1360
+ // If no type specified and can't detect, try to infer from current value type
1361
+ if (typeof currentValue === 'number' && attributeValue !== null) {
1362
+ return Number(attributeValue);
1363
+ }
1364
+ else {
1365
+ return attributeValue;
1366
+ }
1367
+ }
1368
+ }
1369
+
1242
1370
  /**
1243
1371
  * Applies core element functionality to a constructor
1244
1372
  * This is shared between @element and @page decorators
@@ -1320,42 +1448,17 @@ function applyElementFunctionality(constructor) {
1320
1448
  const properties = constructor[PROPERTIES];
1321
1449
  if (properties) {
1322
1450
  for (const [propName, propOptions] of properties) {
1323
- // If attribute exists, it always wins
1324
- if (this.hasAttribute(propName)) {
1451
+ // Check for attribute using proper attribute name
1452
+ const attributeName = typeof propOptions.attribute === 'string' ? propOptions.attribute : propName.toLowerCase();
1453
+ if (this.hasAttribute(attributeName)) {
1325
1454
  // Attribute exists, parse and set the property value
1326
- const attrValue = this.getAttribute(propName);
1455
+ const attrValue = this.getAttribute(attributeName);
1327
1456
  // Mark as explicitly set since it came from an attribute
1328
1457
  if (!this[EXPLICITLY_SET_PROPERTIES]) {
1329
1458
  this[EXPLICITLY_SET_PROPERTIES] = new Set();
1330
1459
  }
1331
1460
  this[EXPLICITLY_SET_PROPERTIES].add(propName);
1332
- switch (propOptions.type) {
1333
- case Boolean:
1334
- this[propName] = attrValue !== null && attrValue !== 'false';
1335
- break;
1336
- case Number:
1337
- this[propName] = Number(attrValue);
1338
- break;
1339
- case String:
1340
- this[propName] = attrValue;
1341
- break;
1342
- case Date:
1343
- this[propName] = attrValue ? new Date(attrValue) : null;
1344
- break;
1345
- case BigInt:
1346
- if (attrValue && attrValue.endsWith('n')) {
1347
- this[propName] = BigInt(attrValue.slice(0, -1));
1348
- }
1349
- else {
1350
- this[propName] = attrValue ? BigInt(attrValue) : null;
1351
- }
1352
- break;
1353
- case SimpleArray:
1354
- this[propName] = SimpleArray.parse(attrValue);
1355
- break;
1356
- default:
1357
- this[propName] = attrValue;
1358
- }
1461
+ this[propName] = parseAttributeValue(attrValue, propOptions);
1359
1462
  }
1360
1463
  }
1361
1464
  }
@@ -1530,40 +1633,11 @@ function applyElementFunctionality(constructor) {
1530
1633
  if (properties) {
1531
1634
  for (const [propName, propOptions] of properties) {
1532
1635
  const attributeName = typeof propOptions.attribute === 'string' ? propOptions.attribute : propName.toLowerCase();
1533
- if (attributeName === name) {
1636
+ if (attributeName.toLowerCase() === name.toLowerCase()) {
1534
1637
  // Check if the current property value already matches to avoid feedback loops
1535
1638
  const currentValue = this[PROPERTY_VALUES]?.[propName];
1536
1639
  // Parse the new value based on type
1537
- let parsedValue;
1538
- if (propOptions.type === Boolean) {
1539
- parsedValue = newValue !== null && newValue !== 'false';
1540
- }
1541
- else if (propOptions.type === Number) {
1542
- parsedValue = Number(newValue);
1543
- }
1544
- else if (propOptions.type === Date) {
1545
- parsedValue = newValue ? new Date(newValue) : null;
1546
- }
1547
- else if (propOptions.type === BigInt) {
1548
- if (newValue && newValue.endsWith('n')) {
1549
- parsedValue = BigInt(newValue.slice(0, -1));
1550
- }
1551
- else {
1552
- parsedValue = newValue ? BigInt(newValue) : null;
1553
- }
1554
- }
1555
- else if (propOptions.type === SimpleArray) {
1556
- parsedValue = SimpleArray.parse(newValue);
1557
- }
1558
- else {
1559
- // If no type specified, try to infer from current value type
1560
- if (typeof currentValue === 'number' && newValue !== null) {
1561
- parsedValue = Number(newValue);
1562
- }
1563
- else {
1564
- parsedValue = newValue;
1565
- }
1566
- }
1640
+ const parsedValue = parseAttributeValue(newValue, propOptions, currentValue, undefined);
1567
1641
  // Only update if the value actually changed and avoid infinite loops
1568
1642
  if (currentValue !== parsedValue) {
1569
1643
  // Mark as explicitly set since it came from an attribute change
@@ -1662,11 +1736,18 @@ function property(options) {
1662
1736
  if (options?.reflect && options?.type === Object) {
1663
1737
  console.warn(`⚠️ Property '${propertyKey}' uses reflect:true with Object type.`);
1664
1738
  }
1665
- context.addInitializer(function () {
1666
- // No longer need warnings here since they're at decoration time
1667
- });
1668
1739
  // Return a field initializer function for new decorators
1669
1740
  return function (initialValue) {
1741
+ // Detect type from initial value if not explicitly provided
1742
+ const finalOptions = { ...options };
1743
+ if (!finalOptions.type && initialValue !== undefined) {
1744
+ finalOptions.type = detectType(initialValue);
1745
+ // Update the metadata with the detected type
1746
+ const constructor = this.constructor;
1747
+ if (constructor[PROPERTIES]) {
1748
+ constructor[PROPERTIES].set(propertyKey, finalOptions);
1749
+ }
1750
+ }
1670
1751
  // Set up the property descriptor on first access
1671
1752
  if (!Object.hasOwnProperty.call(this.constructor.prototype, propertyKey)) {
1672
1753
  const descriptor = {
@@ -1674,7 +1755,18 @@ function property(options) {
1674
1755
  if (!this[PROPERTY_VALUES]) {
1675
1756
  this[PROPERTY_VALUES] = {};
1676
1757
  }
1677
- return this[PROPERTY_VALUES][propertyKey];
1758
+ // If we have a stored value, return it
1759
+ if (this[PROPERTY_VALUES][propertyKey] !== undefined) {
1760
+ return this[PROPERTY_VALUES][propertyKey];
1761
+ }
1762
+ // Otherwise check attribute and parse it, or return initial value
1763
+ const attributeName = typeof finalOptions?.attribute === 'string' ? finalOptions?.attribute : propertyKey.toLowerCase();
1764
+ const attrValue = this.getAttribute?.(attributeName);
1765
+ // If attribute exists or we have a type that needs special handling for null (like Boolean)
1766
+ if (attrValue !== null || finalOptions?.type === Boolean) {
1767
+ return parseAttributeValue(attrValue, finalOptions || {}, undefined, initialValue);
1768
+ }
1769
+ return initialValue;
1678
1770
  },
1679
1771
  set(newValue) {
1680
1772
  if (!this[PROPERTY_VALUES]) {
@@ -1691,10 +1783,10 @@ function property(options) {
1691
1783
  this[EXPLICITLY_SET_PROPERTIES].add(propertyKey);
1692
1784
  }
1693
1785
  this[PROPERTY_VALUES][propertyKey] = newValue;
1694
- if (options?.reflect && this.setAttribute && this[PROPERTIES_INITIALIZED] && this[EXPLICITLY_SET_PROPERTIES].has(propertyKey)) {
1695
- const attributeName = typeof options.attribute === 'string' ? options.attribute : propertyKey.toLowerCase();
1786
+ if (finalOptions?.reflect && this.setAttribute && this[PROPERTIES_INITIALIZED] && this[EXPLICITLY_SET_PROPERTIES].has(propertyKey)) {
1787
+ const attributeName = typeof finalOptions.attribute === 'string' ? finalOptions.attribute : propertyKey.toLowerCase();
1696
1788
  if (newValue === null || newValue === undefined || newValue === false ||
1697
- (options?.type === SimpleArray && Array.isArray(newValue) && newValue.length === 0)) {
1789
+ (finalOptions?.type === SimpleArray && Array.isArray(newValue) && newValue.length === 0)) {
1698
1790
  this.removeAttribute(attributeName);
1699
1791
  }
1700
1792
  else {
@@ -1705,7 +1797,7 @@ function property(options) {
1705
1797
  else if (typeof newValue === 'bigint') {
1706
1798
  attributeValue = newValue.toString() + 'n';
1707
1799
  }
1708
- else if (options?.type === SimpleArray && Array.isArray(newValue)) {
1800
+ else if (finalOptions?.type === SimpleArray && Array.isArray(newValue)) {
1709
1801
  attributeValue = SimpleArray.serialize(newValue);
1710
1802
  }
1711
1803
  else {
@@ -1833,63 +1925,6 @@ function queryAll(selector, options = {}) {
1833
1925
  };
1834
1926
  };
1835
1927
  }
1836
- /**
1837
- * SimpleArray type for arrays that can be safely reflected to attributes
1838
- * Supports arrays of: string, number, boolean
1839
- * Uses full-width comma (,) as separator to avoid conflicts
1840
- * Strings cannot contain the full-width comma character
1841
- */
1842
- class SimpleArray {
1843
- static { this.SEPARATOR = ','; } // U+FF0C Full-width comma
1844
- /**
1845
- * Serialize array to string for attribute storage
1846
- */
1847
- static serialize(arr) {
1848
- if (!Array.isArray(arr))
1849
- return '';
1850
- return arr.map(item => {
1851
- if (typeof item === 'string') {
1852
- // Validate string doesn't contain our separator
1853
- if (item.includes(SimpleArray.SEPARATOR)) {
1854
- throw new Error(`SimpleArray strings cannot contain the character "${SimpleArray.SEPARATOR}" (U+FF0C)`);
1855
- }
1856
- return item;
1857
- }
1858
- else if (typeof item === 'number' || typeof item === 'boolean') {
1859
- return String(item);
1860
- }
1861
- else {
1862
- throw new Error(`SimpleArray only supports string, number, and boolean types. Got: ${typeof item}`);
1863
- }
1864
- }).join(SimpleArray.SEPARATOR);
1865
- }
1866
- /**
1867
- * Parse string from attribute back to array
1868
- */
1869
- static parse(str) {
1870
- if (str === null || str === undefined)
1871
- return [];
1872
- // Empty string should not be parsed as containing an empty string
1873
- // since empty arrays don't get reflected (handled by the reflection logic)
1874
- if (str === '')
1875
- return [];
1876
- return str.split(SimpleArray.SEPARATOR).map(item => {
1877
- // Try to parse as number
1878
- if (/^-?\d+\.?\d*$/.test(item)) {
1879
- const num = Number(item);
1880
- if (!isNaN(num))
1881
- return num;
1882
- }
1883
- // Parse as boolean
1884
- if (item === 'true')
1885
- return true;
1886
- if (item === 'false')
1887
- return false;
1888
- // Default to string
1889
- return item;
1890
- });
1891
- }
1892
- }
1893
1928
  function watch(...propertyNames) {
1894
1929
  return function (target, context) {
1895
1930
  const methodName = context.name;
@@ -3192,8 +3227,7 @@ function Router(options) {
3192
3227
  page,
3193
3228
  initialize,
3194
3229
  navigate,
3195
- register,
3196
- context,
3230
+ register
3197
3231
  };
3198
3232
  }
3199
3233