solid-ui 5.0.0-0 → 5.0.0-2

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 (110) hide show
  1. package/dist/chunks/{account-CWdjQDsQ.js → account-C4JpDQFa.js} +7 -7
  2. package/dist/chunks/{account-CWdjQDsQ.js.map → account-C4JpDQFa.js.map} +1 -1
  3. package/dist/chunks/{auth-DdvFEHuV.js → auth-DfCfMOuM.js} +85 -81
  4. package/dist/chunks/auth-DfCfMOuM.js.map +1 -0
  5. package/dist/chunks/{avatar-3eUQtxXZ.js → avatar-C677VD9J.js} +2 -2
  6. package/dist/chunks/{avatar-3eUQtxXZ.js.map → avatar-C677VD9J.js.map} +1 -1
  7. package/dist/chunks/{chunk.64OG2H45-BFgXEuP7.js → chunk.KB3IOPVF-Ckx3HIiR.js} +10 -3
  8. package/dist/chunks/chunk.KB3IOPVF-Ckx3HIiR.js.map +1 -0
  9. package/dist/chunks/{combobox-D3eGdicW.js → combobox-BZ9n8wQw.js} +3 -3
  10. package/dist/chunks/combobox-BZ9n8wQw.js.map +1 -0
  11. package/dist/chunks/{guard-6zSfmr4k.js → guard-DcrczXhs.js} +2 -2
  12. package/dist/chunks/{guard-6zSfmr4k.js.map → guard-DcrczXhs.js.map} +1 -1
  13. package/dist/chunks/{index.esm-Bu7WXI60.js → index.esm-AZPmKqjU.js} +1944 -1489
  14. package/dist/chunks/index.esm-AZPmKqjU.js.map +1 -0
  15. package/dist/chunks/{jsonld-B2M5QgXx.js → jsonld-CDR2WyN_.js} +4 -4
  16. package/dist/chunks/{jsonld-B2M5QgXx.js.map → jsonld-CDR2WyN_.js.map} +1 -1
  17. package/dist/chunks/{login-button-Boh1eEJ5.js → login-button-CRQbpCob.js} +2 -2
  18. package/dist/chunks/{login-button-Boh1eEJ5.js.map → login-button-CRQbpCob.js.map} +1 -1
  19. package/dist/chunks/{logout-button-BJfE_daI.js → logout-button-H-ckaICm.js} +2 -2
  20. package/dist/chunks/{logout-button-BJfE_daI.js.map → logout-button-H-ckaICm.js.map} +1 -1
  21. package/dist/chunks/{menu-hMtmUkel.js → menu-DhnJDuBz.js} +277 -234
  22. package/dist/chunks/menu-DhnJDuBz.js.map +1 -0
  23. package/dist/chunks/{provider-BJ8rXsnl.js → provider-v6Wz9BOu.js} +2 -2
  24. package/dist/chunks/{provider-BJ8rXsnl.js.map → provider-v6Wz9BOu.js.map} +1 -1
  25. package/dist/chunks/{rdf-form-PagO7EXg.js → rdf-form-B2zTR8Qv.js} +21 -21
  26. package/dist/chunks/{rdf-form-PagO7EXg.js.map → rdf-form-B2zTR8Qv.js.map} +1 -1
  27. package/dist/chunks/{rdf-input-Dsbbxbva.js → rdf-input-DeDhyQ3p.js} +38 -38
  28. package/dist/chunks/{rdf-input-Dsbbxbva.js.map → rdf-input-DeDhyQ3p.js.map} +1 -1
  29. package/dist/chunks/{signup-button-14Bh_nyp.js → signup-button-Cy6FwVhE.js} +2 -2
  30. package/dist/chunks/{signup-button-14Bh_nyp.js.map → signup-button-Cy6FwVhE.js.map} +1 -1
  31. package/dist/chunks/{src-CZXvZVWH.js → src-Ca8thhHS.js} +5696 -5649
  32. package/dist/chunks/src-Ca8thhHS.js.map +1 -0
  33. package/dist/chunks/{style-BsMewYKg.js → style-Dpwrc8CC.js} +4 -4
  34. package/dist/chunks/{style-BsMewYKg.js.map → style-Dpwrc8CC.js.map} +1 -1
  35. package/dist/components/account.js +1 -1
  36. package/dist/components/avatar.js +1 -1
  37. package/dist/components/combobox/Combobox.styles.cjs.js +1 -1
  38. package/dist/components/combobox/Combobox.styles.cjs.js.map +1 -1
  39. package/dist/components/combobox/Combobox.styles.esm.js +1 -1
  40. package/dist/components/combobox/Combobox.styles.esm.js.map +1 -1
  41. package/dist/components/combobox.js +1 -1
  42. package/dist/components/guard.js +1 -1
  43. package/dist/components/login-button.js +1 -1
  44. package/dist/components/login-modal/LoginModal.cjs.js +1 -1
  45. package/dist/components/login-modal/LoginModal.cjs.js.map +1 -1
  46. package/dist/components/login-modal/LoginModal.d.ts.map +1 -1
  47. package/dist/components/login-modal/LoginModal.esm.js +1 -1
  48. package/dist/components/login-modal/LoginModal.esm.js.map +1 -1
  49. package/dist/components/login-modal.js +1 -1
  50. package/dist/components/logout-button.js +1 -1
  51. package/dist/components/menu/Menu.cjs.js +1 -1
  52. package/dist/components/menu/Menu.cjs.js.map +1 -1
  53. package/dist/components/menu/Menu.esm.js +1 -1
  54. package/dist/components/menu/Menu.esm.js.map +1 -1
  55. package/dist/components/menu.js +1 -1
  56. package/dist/components/provider.js +1 -1
  57. package/dist/components/rdf-form/RDFForm.cjs.js +1 -1
  58. package/dist/components/rdf-form/RDFForm.cjs.js.map +1 -1
  59. package/dist/components/rdf-form/RDFForm.esm.js +1 -1
  60. package/dist/components/rdf-form/RDFForm.esm.js.map +1 -1
  61. package/dist/components/rdf-form.js +1 -1
  62. package/dist/components/rdf-input.js +1 -1
  63. package/dist/components/signup-button.js +1 -1
  64. package/dist/components.js +12 -12
  65. package/dist/index.js +4 -4
  66. package/dist/lib/auth/SolidAuth.cjs.js +1 -1
  67. package/dist/lib/auth/SolidAuth.cjs.js.map +1 -1
  68. package/dist/lib/auth/SolidAuth.d.ts.map +1 -1
  69. package/dist/lib/auth/SolidAuth.esm.js +15 -11
  70. package/dist/lib/auth/SolidAuth.esm.js.map +1 -1
  71. package/dist/lib/file-explorer/context.cjs.js.map +1 -1
  72. package/dist/lib/file-explorer/context.d.ts +1 -1
  73. package/dist/lib/file-explorer/context.d.ts.map +1 -1
  74. package/dist/lib/file-explorer/context.esm.js.map +1 -1
  75. package/dist/lib/table.cjs.js +1 -1
  76. package/dist/lib/table.cjs.js.map +1 -1
  77. package/dist/lib/table.esm.js +2 -2
  78. package/dist/lib/table.esm.js.map +1 -1
  79. package/dist/lib/tabs.cjs.js +1 -1
  80. package/dist/lib/tabs.cjs.js.map +1 -1
  81. package/dist/lib/tabs.esm.js +1 -1
  82. package/dist/lib/tabs.esm.js.map +1 -1
  83. package/dist/loader.js +4 -4
  84. package/dist/login/login.cjs.js +1 -1
  85. package/dist/login/login.cjs.js.map +1 -1
  86. package/dist/login/login.esm.js +1 -1
  87. package/dist/login/login.esm.js.map +1 -1
  88. package/dist/solid-ui.js +106 -90
  89. package/dist/solid-ui.min.js +106 -90
  90. package/dist/solid-ui.min.js.map +1 -1
  91. package/dist/utils/index.cjs.js +1 -1
  92. package/dist/utils/index.cjs.js.map +1 -1
  93. package/dist/utils/index.esm.js +2 -2
  94. package/dist/utils/index.esm.js.map +1 -1
  95. package/dist/v2/components/auth/loginButton/LoginButton.d.ts.map +1 -1
  96. package/dist/widgets/dragAndDrop.cjs.js +1 -1
  97. package/dist/widgets/dragAndDrop.cjs.js.map +1 -1
  98. package/dist/widgets/dragAndDrop.esm.js +22 -18
  99. package/dist/widgets/dragAndDrop.esm.js.map +1 -1
  100. package/dist/widgets/forms.cjs.js +2 -2
  101. package/dist/widgets/forms.cjs.js.map +1 -1
  102. package/dist/widgets/forms.esm.js +4 -4
  103. package/dist/widgets/forms.esm.js.map +1 -1
  104. package/package.json +4 -4
  105. package/dist/chunks/auth-DdvFEHuV.js.map +0 -1
  106. package/dist/chunks/chunk.64OG2H45-BFgXEuP7.js.map +0 -1
  107. package/dist/chunks/combobox-D3eGdicW.js.map +0 -1
  108. package/dist/chunks/index.esm-Bu7WXI60.js.map +0 -1
  109. package/dist/chunks/menu-hMtmUkel.js.map +0 -1
  110. package/dist/chunks/src-CZXvZVWH.js.map +0 -1
@@ -1,13 +1,13 @@
1
- import { a as e, o as t } from "./auth-DdvFEHuV.js";
1
+ import { a as e, o as t } from "./auth-DfCfMOuM.js";
2
2
  import { b as n, c as r, g as i, i as a, o, p as s, u as c } from "./components-BHoVP7zE.js";
3
3
  import "./chevron-down-ujxRg3MD.js";
4
4
  import "./button-CnmrOsEf.js";
5
- import "./avatar-3eUQtxXZ.js";
6
- import "./login-button-Boh1eEJ5.js";
7
- import "./logout-button-BJfE_daI.js";
5
+ import "./avatar-C677VD9J.js";
6
+ import "./login-button-CRQbpCob.js";
7
+ import "./logout-button-H-ckaICm.js";
8
8
  import "./menu-item-BdCkmJol.js";
9
- import "./menu-hMtmUkel.js";
10
- import "./signup-button-14Bh_nyp.js";
9
+ import "./menu-DhnJDuBz.js";
10
+ import "./signup-button-Cy6FwVhE.js";
11
11
  //#region ~icons/lucide/log-in
12
12
  var l = class extends HTMLElement {
13
13
  constructor() {
@@ -291,4 +291,4 @@ var z = R;
291
291
  //#endregion
292
292
  export { R as n, z as t };
293
293
 
294
- //# sourceMappingURL=account-CWdjQDsQ.js.map
294
+ //# sourceMappingURL=account-C4JpDQFa.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"account-CWdjQDsQ.js","names":["consume","html","nothing","property","customElement","WebComponent","authContext","DEFAULT_AUTH_CONTEXT","styles","_classDecs","_Account","_Account2","_A","WeakMap","_B","_ref","_menuItemsDecs","type","Array","_authDecs","context","subscribe","_Account3","Account","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_menuItems","_init_auth","_defineProperty","_classPrivateFieldGet","menuItems","v","_classPrivateFieldSet","auth","connectedCallback","unsubscribeSessionUpdated","onSessionUpdated","requestUpdate","disconnectedCallback","render","initialized","account","map","menuItem","href","selected","onSelected","label","e","c","_initClass","_applyDecs","_Class","_identity","initializing","component","loggedIn","default","Account"],"sources":["../../src/components/account/Account.styles.css","../../src/components/account/Account.ts","../../src/components/account/index.ts"],"sourcesContent":[":host {\n --image-size: 1.875rem; /* 30px */\n\n display: inline-flex;\n flex-direction: row;\n gap: 10px;\n}\n\n:host([data-state-initializing]) {\n icon-svg-spinners-180-ring {\n width: var(--image-size);\n height: var(--image-size);\n }\n}\n\n:host([data-state-loggedIn]) {\n --padding: 4px;\n --border-width: 1px;\n\n button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 5px;\n background-color: var(--solid-ui-color-body-grey);\n padding: var(--padding);\n border-radius: calc((var(--image-size) + 2 * var(--padding) + 2 * var(--border-width)) / 2);\n color: var(--solid-ui-color-white);\n\n solid-ui-avatar {\n width: var(--image-size);\n height: var(--image-size);\n border: var(--border-width) solid var(--solid-ui-color-white);\n border-radius: 50%;\n }\n\n icon-lucide-chevron-down {\n width: 16px;\n height: 16px;\n }\n }\n}\n","import { consume } from '@lit/context'\nimport { html, nothing, TemplateResult } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { customElement, WebComponent } from '@/lib/components'\nimport { authContext, AuthContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\n\nimport '@/components/avatar'\nimport '@/components/button'\nimport '@/components/login-button'\nimport '@/components/logout-button'\nimport '@/components/menu-item'\nimport '@/components/menu'\nimport '@/components/signup-button'\nimport '~icons/lucide/chevron-down'\nimport '~icons/lucide/log-in'\nimport '~icons/lucide/log-out'\nimport '~icons/lucide/user'\nimport '~icons/svg-spinners/180-ring'\n\nimport styles from './Account.styles.css'\n\nexport interface AccountMenuItem {\n label: string | TemplateResult\n href?: string\n selected?: boolean\n onSelected?(): void\n}\n\n@customElement('solid-ui-account')\nexport default class Account extends WebComponent {\n static styles = styles\n static states = {\n initializing: (component: Account) => !component.auth.initialized,\n loggedIn: (component: Account) => !!component.auth.account,\n }\n\n @property({ type: Array })\n accessor menuItems: AccountMenuItem[] = []\n\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n private unsubscribeSessionUpdated?: () => void\n\n connectedCallback () {\n super.connectedCallback()\n\n this.unsubscribeSessionUpdated = this.auth.onSessionUpdated(() => this.requestUpdate())\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.unsubscribeSessionUpdated?.()\n }\n\n protected render () {\n if (!this.auth.initialized) {\n return html`\n <icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>\n `\n }\n\n if (!this.auth.account) {\n return html`\n <solid-ui-login-button>\n <solid-ui-button slot=\"trigger\">\n <icon-lucide-user slot=\"left-icon\"></icon-lucide-user>\n Log In\n </solid-ui-button>\n </solid-ui-login-button>\n <solid-ui-signup-button>\n <solid-ui-button slot=\"trigger\" variant=\"outline\">\n <icon-lucide-log-in slot=\"left-icon\"></icon-lucide-log-in>\n Sign Up\n </solid-ui-button>\n </solid-ui-signup-button>\n `\n }\n\n return html`\n <solid-ui-menu placement=\"bottom-end\">\n <button type=\"button\" slot=\"trigger\">\n <solid-ui-avatar></solid-ui-avatar>\n <icon-lucide-chevron-down slot=\"right-icon\"></icon-lucide-chevron-down>\n </button>\n\n ${this.menuItems.map(menuItem => html`\n <solid-ui-menu-item .href=${menuItem.href ?? nothing} ?selected=${menuItem.selected} @solid-ui-select=${() => menuItem.onSelected?.()}>\n ${menuItem.label}\n </solid-ui-menu-item>\n `)}\n <solid-ui-logout-button>\n <solid-ui-menu-item slot=\"trigger\">\n <icon-lucide-log-out slot=\"left-icon\"></icon-lucide-log-out>\n Sign out\n </solid-ui-menu-item>\n </solid-ui-logout-button>\n </solid-ui-menu>\n `\n }\n}\n","import Account, { type AccountMenuItem } from './Account'\n\nexport { Account, type AccountMenuItem }\nexport default Account\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACmByCS,IAAA,CASxCL,EAAc,kBAAkB,CAAC;AAAA,IAAAM;AAAA,KAAAC,KAAAC,kBAAA,IAAAC,QAAA,GAAAC,kBAAA,IAAAD,QAAA,GAAAE,KAAAC,IAQ/Bb,EAAS,EAAEc,MAAMC,MAAM,CAAC,GAACC,IAGzBnB,EAAQ;CAAEoB,SAASd;CAAae,WAAW;AAAK,CAAC,GAAC,cAAAC,IAXrD,cACqCjB,EAAa;CAAAmB,YAAA,GAAAC,GAAA;EAWSK,AAXT,MAAA,GAAAL,CAAA,GAAAC,EAAA,MAAAd,IAAAe,EAAA,IAAA,GAAAC,EAAA,MAQR,CAAA,CAAE,EAAA,GAAAF,EAAA,MAAAZ,GAAAe,EAAA,MAGLtB,CAAoB,CAAA,GAAAuB,EAAA,MAAA,6BAAA,KAAA,CAAA;CAAA;CAAA,KAAAf,KAAA;EAAA,OAAAgB,EAAAnB,GAAA,IAAA;CAAA;CAAA,IAHhDoB,UAASC,GAAA;EAAAC,EAAAtB,GAAA,MAAAqB,CAAA;CAAA;CAAA,IAGDE,OAAI;EAAA,OAAAJ,EAAAjB,GAAA,IAAA;CAAA;CAAA,IAAJqB,KAAIF,GAAA;EAAAC,EAAApB,GAAA,MAAAmB,CAAA;CAAA;CAIrBG,oBAAqB;EAGnB,AAFA,MAAMA,kBAAkB,GAExB,KAAKC,4BAA4B,KAAKF,KAAKG,uBAAuB,KAAKC,cAAc,CAAC;CACxF;CAEAC,uBAAwB;EAGtB,AAFA,MAAMA,qBAAqB,GAE3B,KAAKH,4BAA4B;CACnC;CAEUI,SAAU;EAwBlB,OAvBK,KAAKN,KAAKO,cAMV,KAAKP,KAAKQ,UAiBR1C,CAAI;;;;;;;cAOD,KAAK+B,UAAUY,KAAIC,MAAY5C,CAAI;4CACL4C,EAASC,QAAQ5C,EAAO,aAAc2C,EAASE,SAAQ,0BAA2BF,EAASG,aAAa,EAAC;sBAC/HH,EAASI,MAAK;;aAEvB,EAAC;;;;;;;;QA3BDhD,CAAI;;;;;;;;;;;;;UANJA,CAAI;;;CA0Cf;AACF,GAAC,CAAAiD,GAAA,CAAAtB,GAAAC,GAAAF,IAAAwB,GAAA,CAAAzC,GAAA0C,MAAAC,EAAA/B,GAAA,CAAA;CAAAN;CAAA;CAAA;AAAA,GAAA;CAAAG;CAAA;CAAA;AAAA,CAAA,GAAAV,GAAA,GAAA,KAAA,GAxEoCJ,CAAY,GAAAiB,IAAAgC,IAAA,cAAAC,EAAA;CAAA/B,cAAA;EAAA,MAAAd,CAAA,GAAAoB,EAAA,MAAA,UAC/BtB,CAAM,GAAAsB,EAAA,MAAA,UACN;GACd0B,eAAeC,MAAuB,CAACA,EAAUtB,KAAKO;GACtDgB,WAAWD,MAAuB,CAAC,CAACA,EAAUtB,KAAKQ;EACrD,CAAC,GAAAS,EAAA;CAAA;AAAA,GAAAtB,EAAAwB,GAAA3C,GAAA,KAAA,CAAA,GAAA2C,GAAA;;;AC/BH,IAAA,IAAeM"}
1
+ {"version":3,"file":"account-C4JpDQFa.js","names":["consume","html","nothing","property","customElement","WebComponent","authContext","DEFAULT_AUTH_CONTEXT","styles","_classDecs","_Account","_Account2","_A","WeakMap","_B","_ref","_menuItemsDecs","type","Array","_authDecs","context","subscribe","_Account3","Account","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_menuItems","_init_auth","_defineProperty","_classPrivateFieldGet","menuItems","v","_classPrivateFieldSet","auth","connectedCallback","unsubscribeSessionUpdated","onSessionUpdated","requestUpdate","disconnectedCallback","render","initialized","account","map","menuItem","href","selected","onSelected","label","e","c","_initClass","_applyDecs","_Class","_identity","initializing","component","loggedIn","default","Account"],"sources":["../../src/components/account/Account.styles.css","../../src/components/account/Account.ts","../../src/components/account/index.ts"],"sourcesContent":[":host {\n --image-size: 1.875rem; /* 30px */\n\n display: inline-flex;\n flex-direction: row;\n gap: 10px;\n}\n\n:host([data-state-initializing]) {\n icon-svg-spinners-180-ring {\n width: var(--image-size);\n height: var(--image-size);\n }\n}\n\n:host([data-state-loggedIn]) {\n --padding: 4px;\n --border-width: 1px;\n\n button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 5px;\n background-color: var(--solid-ui-color-body-grey);\n padding: var(--padding);\n border-radius: calc((var(--image-size) + 2 * var(--padding) + 2 * var(--border-width)) / 2);\n color: var(--solid-ui-color-white);\n\n solid-ui-avatar {\n width: var(--image-size);\n height: var(--image-size);\n border: var(--border-width) solid var(--solid-ui-color-white);\n border-radius: 50%;\n }\n\n icon-lucide-chevron-down {\n width: 16px;\n height: 16px;\n }\n }\n}\n","import { consume } from '@lit/context'\nimport { html, nothing, TemplateResult } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { customElement, WebComponent } from '@/lib/components'\nimport { authContext, AuthContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\n\nimport '@/components/avatar'\nimport '@/components/button'\nimport '@/components/login-button'\nimport '@/components/logout-button'\nimport '@/components/menu-item'\nimport '@/components/menu'\nimport '@/components/signup-button'\nimport '~icons/lucide/chevron-down'\nimport '~icons/lucide/log-in'\nimport '~icons/lucide/log-out'\nimport '~icons/lucide/user'\nimport '~icons/svg-spinners/180-ring'\n\nimport styles from './Account.styles.css'\n\nexport interface AccountMenuItem {\n label: string | TemplateResult\n href?: string\n selected?: boolean\n onSelected?(): void\n}\n\n@customElement('solid-ui-account')\nexport default class Account extends WebComponent {\n static styles = styles\n static states = {\n initializing: (component: Account) => !component.auth.initialized,\n loggedIn: (component: Account) => !!component.auth.account,\n }\n\n @property({ type: Array })\n accessor menuItems: AccountMenuItem[] = []\n\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n private unsubscribeSessionUpdated?: () => void\n\n connectedCallback () {\n super.connectedCallback()\n\n this.unsubscribeSessionUpdated = this.auth.onSessionUpdated(() => this.requestUpdate())\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.unsubscribeSessionUpdated?.()\n }\n\n protected render () {\n if (!this.auth.initialized) {\n return html`\n <icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>\n `\n }\n\n if (!this.auth.account) {\n return html`\n <solid-ui-login-button>\n <solid-ui-button slot=\"trigger\">\n <icon-lucide-user slot=\"left-icon\"></icon-lucide-user>\n Log In\n </solid-ui-button>\n </solid-ui-login-button>\n <solid-ui-signup-button>\n <solid-ui-button slot=\"trigger\" variant=\"outline\">\n <icon-lucide-log-in slot=\"left-icon\"></icon-lucide-log-in>\n Sign Up\n </solid-ui-button>\n </solid-ui-signup-button>\n `\n }\n\n return html`\n <solid-ui-menu placement=\"bottom-end\">\n <button type=\"button\" slot=\"trigger\">\n <solid-ui-avatar></solid-ui-avatar>\n <icon-lucide-chevron-down slot=\"right-icon\"></icon-lucide-chevron-down>\n </button>\n\n ${this.menuItems.map(menuItem => html`\n <solid-ui-menu-item .href=${menuItem.href ?? nothing} ?selected=${menuItem.selected} @solid-ui-select=${() => menuItem.onSelected?.()}>\n ${menuItem.label}\n </solid-ui-menu-item>\n `)}\n <solid-ui-logout-button>\n <solid-ui-menu-item slot=\"trigger\">\n <icon-lucide-log-out slot=\"left-icon\"></icon-lucide-log-out>\n Sign out\n </solid-ui-menu-item>\n </solid-ui-logout-button>\n </solid-ui-menu>\n `\n }\n}\n","import Account, { type AccountMenuItem } from './Account'\n\nexport { Account, type AccountMenuItem }\nexport default Account\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACmByCS,IAAA,CASxCL,EAAc,kBAAkB,CAAC;AAAA,IAAAM;AAAA,KAAAC,KAAAC,kBAAA,IAAAC,QAAA,GAAAC,kBAAA,IAAAD,QAAA,GAAAE,KAAAC,IAQ/Bb,EAAS,EAAEc,MAAMC,MAAM,CAAC,GAACC,IAGzBnB,EAAQ;CAAEoB,SAASd;CAAae,WAAW;AAAK,CAAC,GAAC,cAAAC,IAXrD,cACqCjB,EAAa;CAAAmB,YAAA,GAAAC,GAAA;EAWSK,AAXT,MAAA,GAAAL,CAAA,GAAAC,EAAA,MAAAd,IAAAe,EAAA,IAAA,GAAAC,EAAA,MAQR,CAAA,CAAE,EAAA,GAAAF,EAAA,MAAAZ,GAAAe,EAAA,MAGLtB,CAAoB,CAAA,GAAAuB,EAAA,MAAA,6BAAA,KAAA,CAAA;CAAA;CAAA,KAAAf,KAAA;EAAA,OAAAgB,EAAAnB,GAAA,IAAA;CAAA;CAAA,IAHhDoB,UAASC,GAAA;EAAAC,EAAAtB,GAAA,MAAAqB,CAAA;CAAA;CAAA,IAGDE,OAAI;EAAA,OAAAJ,EAAAjB,GAAA,IAAA;CAAA;CAAA,IAAJqB,KAAIF,GAAA;EAAAC,EAAApB,GAAA,MAAAmB,CAAA;CAAA;CAIrBG,oBAAqB;EAGnB,AAFA,MAAMA,kBAAkB,GAExB,KAAKC,4BAA4B,KAAKF,KAAKG,uBAAuB,KAAKC,cAAc,CAAC;CACxF;CAEAC,uBAAwB;EAGtB,AAFA,MAAMA,qBAAqB,GAE3B,KAAKH,4BAA4B;CACnC;CAEUI,SAAU;EAwBlB,OAvBK,KAAKN,KAAKO,cAMV,KAAKP,KAAKQ,UAiBR1C,CAAI;;;;;;;cAOD,KAAK+B,UAAUY,KAAIC,MAAY5C,CAAI;4CACL4C,EAASC,QAAQ5C,EAAO,aAAc2C,EAASE,SAAQ,0BAA2BF,EAASG,aAAa,EAAC;sBAC/HH,EAASI,MAAK;;aAEvB,EAAC;;;;;;;;QA3BDhD,CAAI;;;;;;;;;;;;;UANJA,CAAI;;;CA0Cf;AACF,GAAC,CAAAiD,GAAA,CAAAtB,GAAAC,GAAAF,IAAAwB,GAAA,CAAAzC,GAAA0C,MAAAC,EAAA/B,GAAA,CAAA;CAAAN;CAAA;CAAA;AAAA,GAAA;CAAAG;CAAA;CAAA;AAAA,CAAA,GAAAV,GAAA,GAAA,KAAA,GAxEoCJ,CAAY,GAAAiB,IAAAgC,IAAA,cAAAC,EAAA;CAAA/B,cAAA;EAAA,MAAAd,CAAA,GAAAoB,EAAA,MAAA,UAC/BtB,CAAM,GAAAsB,EAAA,MAAA,UACN;GACd0B,eAAeC,MAAuB,CAACA,EAAUtB,KAAKO;GACtDgB,WAAWD,MAAuB,CAAC,CAACA,EAAUtB,KAAKQ;EACrD,CAAC,GAAAS,EAAA;CAAA;AAAA,GAAAtB,EAAAwB,GAAA3C,GAAA,KAAA,CAAA,GAAA2C,GAAA;;;AC/BH,IAAA,IAAeM"}
@@ -1,16 +1,16 @@
1
- import { i as e, m as t, n, r } from "./index.esm-Bu7WXI60.js";
2
- import { b as i, c as a, g as o, i as s, o as c, p as l, r as u, u as d, x as f } from "./components-BHoVP7zE.js";
3
- import { t as p } from "./query-BYu9q8lA.js";
4
- import { t as m } from "./dialogs-D2n-R0lI.js";
1
+ import { h as e, i as t, m as n, n as r, r as i } from "./index.esm-AZPmKqjU.js";
2
+ import { b as a, c as o, g as s, i as c, o as l, p as u, r as d, u as f, x as p } from "./components-BHoVP7zE.js";
3
+ import { t as m } from "./query-BYu9q8lA.js";
4
+ import { t as h } from "./dialogs-D2n-R0lI.js";
5
5
  import "./chevron-down-ujxRg3MD.js";
6
6
  import "./dialog-D9Ellvjx.js";
7
7
  import "./button-CnmrOsEf.js";
8
8
  import "./dialog-content-B2FmmQvH.js";
9
9
  import "./dialog-footer-CxjoqQJF.js";
10
- import "./combobox-D3eGdicW.js";
10
+ import "./combobox-BZ9n8wQw.js";
11
11
  import "./combobox-option-BcXpUnWu.js";
12
12
  //#region node_modules/solid-logic/dist/issuer/issuerLogic.esm.js
13
- var h = [
13
+ var g = [
14
14
  {
15
15
  name: "Solid Community",
16
16
  uri: "https://solidcommunity.net"
@@ -28,8 +28,8 @@ var h = [
28
28
  uri: "https://login.inrupt.com"
29
29
  }
30
30
  ];
31
- function g() {
32
- let e = [...h], { host: t, origin: n } = new URL(location.href);
31
+ function _() {
32
+ let e = [...g], { host: t, origin: n } = new URL(location.href);
33
33
  return e.map(({ uri: e }) => new URL(e).host).includes(t) || e.unshift({
34
34
  name: t,
35
35
  uri: n
@@ -37,13 +37,13 @@ function g() {
37
37
  }
38
38
  //#endregion
39
39
  //#region src/lib/auth/Account.ts
40
- var _ = class {
40
+ var v = class {
41
41
  webId;
42
42
  avatarUrl;
43
43
  constructor(e, t) {
44
44
  this.webId = e, this.avatarUrl = t;
45
45
  }
46
- }, v = class {
46
+ }, y = class {
47
47
  initialized = !1;
48
48
  account = null;
49
49
  async login() {
@@ -58,25 +58,25 @@ var _ = class {
58
58
  onSessionUpdated() {
59
59
  return () => void 0;
60
60
  }
61
- }, y = new v(), b = f(Symbol("auth")), x = l`.error-message{color:var(--solid-ui-color-error);font-size:var(--solid-ui-font-size-sm);text-align:center;width:100%;font-weight:500}solid-ui-combobox{width:100%}solid-ui-button{flex:1}`, S, C, w, T, E, D, O, k, A, j, M, N, P, F, ee, I, L, R, z, B, V, H, U, W, G;
62
- function K(e, t, n) {
61
+ }, b = new y(), x = p(Symbol("auth")), S = u`.error-message{color:var(--solid-ui-color-error);font-size:var(--solid-ui-font-size-sm);text-align:center;width:100%;font-weight:500}solid-ui-combobox{width:100%}solid-ui-button{flex:1}`, C, w, T, E, D, O, k, A, j, ee, M, N, P, F, I, L, R, z, B, V, H, U, W, G, K;
62
+ function q(e, t, n) {
63
63
  te(e, t), t.set(e, n);
64
64
  }
65
65
  function te(e, t) {
66
66
  if (t.has(e)) throw TypeError("Cannot initialize the same private elements twice on an object");
67
67
  }
68
- function q(e, t, n) {
69
- return e.set(Y(e, t), n), n;
68
+ function J(e, t, n) {
69
+ return e.set(X(e, t), n), n;
70
70
  }
71
- function J(e, t) {
72
- return e.get(Y(e, t));
71
+ function Y(e, t) {
72
+ return e.get(X(e, t));
73
73
  }
74
- function Y(e, t, n) {
74
+ function X(e, t, n) {
75
75
  if (typeof e == "function" ? e === t : e.has(t)) return arguments.length < 3 ? t : n;
76
76
  throw TypeError("Private element is not present on this object");
77
77
  }
78
- function X(e, t, n) {
79
- return (t = Z(t)) in e ? Object.defineProperty(e, t, {
78
+ function Z(e, t, n) {
79
+ return (t = Q(t)) in e ? Object.defineProperty(e, t, {
80
80
  value: n,
81
81
  enumerable: !0,
82
82
  configurable: !0,
@@ -106,13 +106,13 @@ function ne(e, t, n, r, i, a) {
106
106
  n || Array.isArray(_) || (_ = [_]);
107
107
  var b = {}, x = [], S = i === 3 ? "get" : i === 4 || p ? "set" : "value";
108
108
  d ? (f || p ? b = {
109
- get: Q(function() {
109
+ get: ie(function() {
110
110
  return v(this);
111
111
  }, r, "get"),
112
112
  set: function(e) {
113
113
  t[4](this, e);
114
114
  }
115
- } : b[S] = v, f || Q(b[S], r, i === 2 ? "" : S)) : f || (b = Object.getOwnPropertyDescriptor(e, r));
115
+ } : b[S] = v, f || ie(b[S], r, i === 2 ? "" : S)) : f || (b = Object.getOwnPropertyDescriptor(e, r));
116
116
  }
117
117
  for (var C = e, w = _.length - 1; w >= 0; w -= n ? 2 : 1) {
118
118
  var T = _[w], E = n ? _[w - 1] : void 0, D = {}, O = {
@@ -172,7 +172,7 @@ function ne(e, t, n, r, i, a) {
172
172
  if (arguments.length >= 6) var d = a[Symbol.metadata || Symbol.for("Symbol.metadata")];
173
173
  var f = Object.create(d ?? null), p = function(e, t, n, r) {
174
174
  var i, a, o = [], c = function(t) {
175
- return ie(t) === e;
175
+ return ae(t) === e;
176
176
  }, u = /* @__PURE__ */ new Map();
177
177
  function d(e) {
178
178
  e && o.push(s.bind(null, e));
@@ -186,7 +186,7 @@ function ne(e, t, n, r, i, a) {
186
186
  if (!0 === x || x === 3 && m !== 4 || x === 4 && m !== 3) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h);
187
187
  u.set(b, !(m > 2) || m);
188
188
  }
189
- l(v ? e : e.prototype, p, _, g ? "#" + h : Z(h), m, r, v ? a ||= [] : i ||= [], o, v, g, y, m === 1, v && g ? c : n);
189
+ l(v ? e : e.prototype, p, _, g ? "#" + h : Q(h), m, r, v ? a ||= [] : i ||= [], o, v, g, y, m === 1, v && g ? c : n);
190
190
  }
191
191
  }
192
192
  return d(i), d(a), o;
@@ -199,7 +199,7 @@ function ne(e, t, n, r, i, a) {
199
199
  }
200
200
  };
201
201
  }
202
- function Z(e) {
202
+ function Q(e) {
203
203
  var t = re(e, "string");
204
204
  return typeof t == "symbol" ? t : t + "";
205
205
  }
@@ -213,7 +213,7 @@ function re(e, t) {
213
213
  }
214
214
  return (t === "string" ? String : Number)(e);
215
215
  }
216
- function Q(e, t, n) {
216
+ function ie(e, t, n) {
217
217
  typeof t == "symbol" && (t = (t = t.description) ? "[" + t + "]" : "");
218
218
  try {
219
219
  Object.defineProperty(e, "name", {
@@ -223,75 +223,75 @@ function Q(e, t, n) {
223
223
  } catch {}
224
224
  return e;
225
225
  }
226
- function ie(e) {
226
+ function ae(e) {
227
227
  if (Object(e) !== e) throw TypeError("right-hand side of 'in' should be an object, got " + (e === null ? "null" : typeof e));
228
228
  return e;
229
229
  }
230
- function ae(e) {
230
+ function oe(e) {
231
231
  return e;
232
232
  }
233
- M = [o("solid-ui-login-modal")];
233
+ M = [s("solid-ui-login-modal")];
234
234
  var $;
235
- new (W = (w = /*#__PURE__*/ new WeakMap(), T = /*#__PURE__*/ new WeakMap(), E = /*#__PURE__*/ new WeakMap(), D = /*#__PURE__*/ new WeakMap(), O = /*#__PURE__*/ new WeakMap(), k = /*#__PURE__*/ new WeakMap(), G = (N = s({
235
+ new (G = (T = /*#__PURE__*/ new WeakMap(), E = /*#__PURE__*/ new WeakMap(), D = /*#__PURE__*/ new WeakMap(), O = /*#__PURE__*/ new WeakMap(), k = /*#__PURE__*/ new WeakMap(), A = /*#__PURE__*/ new WeakMap(), K = (N = c({
236
236
  type: String,
237
237
  reflect: !0
238
- }), F = u(), I = u(), R = u(), B = i({
239
- context: b,
238
+ }), F = d(), L = d(), z = d(), V = a({
239
+ context: x,
240
240
  subscribe: !0
241
- }), H = p("solid-ui-dialog"), "issuerUrl"), C = class extends c {
241
+ }), U = m("solid-ui-dialog"), "issuerUrl"), w = class extends l {
242
242
  constructor(...e) {
243
- super(...e), K(this, w, (A(this), P(this, ""))), K(this, T, ee(this, "")), K(this, E, L(this, !1)), K(this, D, z(this, !1)), K(this, O, V(this, y)), K(this, k, U(this, null));
243
+ super(...e), q(this, T, (j(this), P(this, ""))), q(this, E, I(this, "")), q(this, D, R(this, !1)), q(this, O, B(this, !1)), q(this, k, H(this, b)), q(this, A, W(this, null));
244
244
  }
245
- get [G]() {
246
- return J(w, this);
245
+ get [K]() {
246
+ return Y(T, this);
247
247
  }
248
248
  set issuerUrl(e) {
249
- q(w, this, e);
249
+ J(T, this, e);
250
250
  }
251
251
  get issuerInputValue() {
252
- return J(T, this);
252
+ return Y(E, this);
253
253
  }
254
254
  set issuerInputValue(e) {
255
- q(T, this, e);
255
+ J(E, this, e);
256
256
  }
257
257
  get failed() {
258
- return J(E, this);
258
+ return Y(D, this);
259
259
  }
260
260
  set failed(e) {
261
- q(E, this, e);
261
+ J(D, this, e);
262
262
  }
263
263
  get submitting() {
264
- return J(D, this);
264
+ return Y(O, this);
265
265
  }
266
266
  set submitting(e) {
267
- q(D, this, e);
267
+ J(O, this, e);
268
268
  }
269
269
  get auth() {
270
- return J(O, this);
270
+ return Y(k, this);
271
271
  }
272
272
  set auth(e) {
273
- q(O, this, e);
273
+ J(k, this, e);
274
274
  }
275
275
  get dialog() {
276
- return J(k, this);
276
+ return Y(A, this);
277
277
  }
278
278
  set dialog(e) {
279
- q(k, this, e);
279
+ J(A, this, e);
280
280
  }
281
281
  connectedCallback() {
282
- super.connectedCallback(), this.issuerInputValue = typeof localStorage < "u" && localStorage.getItem("loginIssuer") || this.issuerUrl || "";
282
+ super.connectedCallback(), this.issuerInputValue = typeof localStorage < "u" && localStorage.getItem("loginIssuer") || this.issuerUrl || _()[0]?.uri || "";
283
283
  }
284
284
  render() {
285
- let e = g();
286
- return d`
285
+ let e = _();
286
+ return f`
287
287
  <solid-ui-dialog title="Select an identity provider">
288
288
  <form @submit=${this.onSubmit}>
289
289
  <solid-ui-dialog-content>
290
290
  <solid-ui-combobox label="Solid Identity Provider" .value=${this.issuerInputValue} @input=${this.onIssuerInputChange}>
291
- ${e.map((e) => d`<solid-ui-combobox-option value="${e.uri}">${e.name}</solid-ui-combobox-option>`)}
291
+ ${e.map((e) => f`<solid-ui-combobox-option value="${e.uri}">${e.name}</solid-ui-combobox-option>`)}
292
292
  </solid-ui-combobox>
293
293
 
294
- ${this.failed ? d`<p class="error-message">Something went wrong</p>` : a}
294
+ ${this.failed ? f`<p class="error-message">Something went wrong</p>` : o}
295
295
  </solid-ui-dialog-content>
296
296
 
297
297
  <solid-ui-dialog-footer>
@@ -328,7 +328,7 @@ new (W = (w = /*#__PURE__*/ new WeakMap(), T = /*#__PURE__*/ new WeakMap(), E =
328
328
  }
329
329
  }
330
330
  }
331
- }, {e: [P, ee, L, z, V, U, A], c: [$, j]} = ne(C, [
331
+ }, {e: [P, I, R, B, H, W, j], c: [$, ee]} = ne(w, [
332
332
  [
333
333
  N,
334
334
  1,
@@ -340,84 +340,88 @@ new (W = (w = /*#__PURE__*/ new WeakMap(), T = /*#__PURE__*/ new WeakMap(), E =
340
340
  "issuerInputValue"
341
341
  ],
342
342
  [
343
- I,
343
+ L,
344
344
  1,
345
345
  "failed"
346
346
  ],
347
347
  [
348
- R,
348
+ z,
349
349
  1,
350
350
  "submitting"
351
351
  ],
352
352
  [
353
- B,
353
+ V,
354
354
  1,
355
355
  "auth"
356
356
  ],
357
357
  [
358
- H,
358
+ U,
359
359
  1,
360
360
  "dialog"
361
361
  ]
362
- ], M, 0, void 0, c), C), S = class extends ae {
362
+ ], M, 0, void 0, l), w), C = class extends oe {
363
363
  constructor() {
364
- super($), X(this, "styles", x), j();
364
+ super($), Z(this, "styles", S), ee();
365
365
  }
366
- }, X(S, W, void 0), S)();
366
+ }, Z(C, G, void 0), C)();
367
367
  //#endregion
368
368
  //#region src/components/login-modal/index.ts
369
- var oe = $, se = "https://solidproject.org/get_a_pod";
370
- function ce(n) {
371
- let r = e.store, i = r.sym(n), a = r.any(i, t.sioc("avatar")) || r.any(i, t.foaf("img")) || r.any(i, t.vcard("logo")) || r.any(i, t.vcard("hasPhoto")) || r.any(i, t.vcard("photo")) || r.any(i, t.foaf("depiction"));
369
+ var se = $, ce = "https://solidproject.org/get_a_pod";
370
+ function le(n) {
371
+ let r = t.store, i = r.sym(n), a = r.any(i, e.sioc("avatar")) || r.any(i, e.foaf("img")) || r.any(i, e.vcard("logo")) || r.any(i, e.vcard("hasPhoto")) || r.any(i, e.vcard("photo")) || r.any(i, e.foaf("depiction"));
372
372
  return a ? a.value : void 0;
373
373
  }
374
- var le = class {
374
+ var ue = class {
375
375
  _initialized = !1;
376
376
  profileLoaded = !1;
377
377
  listeners = [];
378
- constructor(e = se) {
378
+ constructor(e = ce) {
379
379
  this.signupUrl = e;
380
380
  }
381
381
  async initialize() {
382
- await r.checkUser(), this._initialized = !0, this.listeners.forEach((e) => e());
382
+ r.events.on("sessionRestore", () => {
383
+ t.store.updater.flagAuthorizationMetadata();
384
+ }), n(r.events, () => {
385
+ r.info?.isLoggedIn && window.location.reload();
386
+ }), await i.checkUser(), this._initialized = !0, this.listeners.forEach((e) => e());
383
387
  }
384
388
  async loadProfile() {
385
- this.profileLoaded || !this.account || (this.profileLoaded = !0, await e.profile.loadMe(), this.listeners.forEach((e) => e()));
389
+ !this.profileLoaded && this.account && (this.profileLoaded = !0, await t.profile.loadMe(), this.listeners.forEach((e) => e()));
386
390
  }
387
391
  get initialized() {
388
392
  return this._initialized;
389
393
  }
390
394
  get account() {
391
- let e = n.webId ?? n.info?.webId;
392
- return !(n.isActive ?? n.info?.isLoggedIn ?? !!e) || !e ? null : new _(e, ce(e));
395
+ let e = r.webId ?? r.info?.webId;
396
+ return !(r.isActive ?? r.info?.isLoggedIn ?? !!e) || !e ? null : new v(e, le(e));
393
397
  }
394
- async login(t) {
395
- if (!t) {
396
- m(oe);
398
+ async login(e) {
399
+ if (!e) {
400
+ h(se);
397
401
  return;
398
402
  }
399
- e.store.updater.flagAuthorizationMetadata();
400
- let r = new URL(window.location.href).hash;
401
- r && window.localStorage.setItem("preLoginRedirectHash", r), window.localStorage.setItem("loginIssuer", t);
403
+ t.store.updater.flagAuthorizationMetadata();
404
+ let n = new URL(window.location.href).hash;
405
+ n && window.localStorage.setItem("preLoginRedirectHash", n), window.localStorage.setItem("loginIssuer", e);
402
406
  let i = new URL(window.location.href);
403
- i.hash = "", await n.login(t, i.href);
407
+ i.hash = "", await r.login(e, i.href);
404
408
  }
405
409
  async signup() {
406
410
  window.open(this.signupUrl, "_blank", "noopener,noreferrer");
407
411
  }
408
412
  async logout() {
409
- await n.logout();
413
+ await r.logout();
410
414
  }
411
415
  onSessionUpdated(e) {
412
- let t = n, r = () => {
416
+ let t = r, n = () => {
413
417
  e();
414
418
  };
415
- return this.listeners.push(r), typeof t.addEventListener == "function" ? t.addEventListener("sessionStateChange", r) : (n.events.on("login", r), n.events.on("logout", r), n.events.on("sessionRestore", r)), () => {
416
- this.listeners = this.listeners.filter((e) => e !== r), typeof t.removeEventListener == "function" ? t.removeEventListener("sessionStateChange", r) : (n.events.off("login", r), n.events.off("logout", r), n.events.off("sessionRestore", r));
419
+ return this.listeners.push(n), typeof t.addEventListener == "function" ? t.addEventListener("sessionStateChange", n) : (r.events.on("login", n), r.events.on("logout", n), r.events.on("sessionRestore", n)), () => {
420
+ this.listeners = this.listeners.filter((e) => e !== n), typeof t.removeEventListener == "function" ? t.removeEventListener("sessionStateChange", n) : (r.events.off("login", n), r.events.off("logout", n), r.events.off("sessionRestore", n));
417
421
  };
418
422
  }
419
423
  };
420
424
  //#endregion
421
- export { y as a, _ as c, $ as i, g as l, le as n, b as o, oe as r, v as s, se as t };
425
+ export { b as a, v as c, $ as i, _ as l, ue as n, x as o, se as r, y as s, ce as t };
422
426
 
423
- //# sourceMappingURL=auth-DdvFEHuV.js.map
427
+ //# sourceMappingURL=auth-DfCfMOuM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-DfCfMOuM.js","names":["Account","webId","avatarUrl","constructor","NoopAuth","initialized","account","login","Error","signup","logout","onSessionUpdated","undefined","createContext","NoopAuth","DEFAULT_AUTH_CONTEXT","authContext","Symbol","customElement","WebComponent","html","nothing","consume","property","query","state","authContext","DEFAULT_AUTH_CONTEXT","getSuggestedIssuers","styles","_classDecs","_LoginModal","_LoginModal2","_A","WeakMap","_B","_C","_D","_E","_F","_ref","_issuerUrlDecs","type","String","reflect","_issuerInputValueDecs","_failedDecs","_submittingDecs","_authDecs","context","subscribe","_dialogDecs","_LoginModal3","LoginModal","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_issuerUrl","_init_issuerInputValue","_init_failed","_init_submitting","_init_auth","_init_dialog","_classPrivateFieldGet","issuerUrl","v","_classPrivateFieldSet","issuerInputValue","failed","submitting","auth","dialog","connectedCallback","localStorage","getItem","uri","render","suggestedIssuers","onSubmit","onIssuerInputChange","map","issuer","name","close","e","target","value","preventDefault","login","error","console","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default","LoginModal","Account","ns","authn","authSession","reloadOnIdentityReplaced","solidLogicSingleton","showDialog","LoginModal","DEFAULT_SIGNUP_URL","findAccountImage","webId","store","me","sym","image","any","sioc","foaf","vcard","value","undefined","SolidAuth","_initialized","profileLoaded","listeners","constructor","signupUrl","initialize","events","on","updater","flagAuthorizationMetadata","info","isLoggedIn","window","location","reload","checkUser","forEach","listener","loadProfile","account","profile","loadMe","initialized","isActive","Boolean","avatarUrl","login","loginUrl","preLoginRedirectHash","URL","href","hash","localStorage","setItem","locationUrl","signup","open","logout","onSessionUpdated","callback","sessionEventTarget","push","addEventListener","filter","_listener","removeEventListener","off"],"sources":["../../node_modules/solid-logic/dist/issuer/issuerLogic.esm.js","../../src/lib/auth/Account.ts","../../src/lib/auth/NoopAuth.ts","../../src/lib/auth/context.ts","../../src/components/login-modal/LoginModal.styles.css","../../src/components/login-modal/LoginModal.ts","../../src/components/login-modal/index.ts","../../src/lib/auth/SolidAuth.ts"],"sourcesContent":["//#region src/issuer/issuerLogic.ts\nvar e = [\n\t{\n\t\tname: \"Solid Community\",\n\t\turi: \"https://solidcommunity.net\"\n\t},\n\t{\n\t\tname: \"Solid Web\",\n\t\turi: \"https://solidweb.org\"\n\t},\n\t{\n\t\tname: \"Solid Web ME\",\n\t\turi: \"https://solidweb.me\"\n\t},\n\t{\n\t\tname: \"Inrupt.com\",\n\t\turi: \"https://login.inrupt.com\"\n\t}\n];\nfunction t() {\n\tlet t = [...e], { host: n, origin: r } = new URL(location.href);\n\treturn t.map(({ uri: e }) => new URL(e).host).includes(n) || t.unshift({\n\t\tname: n,\n\t\turi: r\n\t}), t;\n}\n//#endregion\nexport { t as getSuggestedIssuers };\n\n//# sourceMappingURL=issuerLogic.esm.js.map","export default class Account {\n public readonly webId: string\n public readonly avatarUrl?: string\n\n constructor (webId: string, avatarUrl?: string) {\n this.webId = webId\n this.avatarUrl = avatarUrl\n }\n}\n","import { AuthContext } from './context'\n\nexport default class NoopAuth implements AuthContext {\n public readonly initialized = false\n public readonly account = null\n\n async login () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n async signup () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n async logout () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n onSessionUpdated () {\n return () => undefined\n }\n}\n","import { createContext } from '@lit/context'\nimport NoopAuth from './NoopAuth'\nimport Account from './Account'\n\nexport interface AuthContext {\n initialized: boolean;\n account: Account | null;\n login(loginUrl?: string): Promise<void>;\n loadProfile?(): Promise<void>;\n signup(): Promise<void>;\n logout(): Promise<void>;\n onSessionUpdated(callback: () => unknown): () => void;\n}\n\nexport const DEFAULT_AUTH_CONTEXT = new NoopAuth()\nexport const authContext = createContext<AuthContext>(Symbol('auth'))\n",".error-message {\n color: var(--solid-ui-color-error);\n font-size: var(--solid-ui-font-size-sm);\n font-weight: 500;\n text-align: center;\n width: 100%;\n}\n\nsolid-ui-combobox {\n width: 100%;\n}\n\nsolid-ui-button {\n flex: 1;\n}\n","import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { consume } from '@lit/context'\nimport { property, query, state } from 'lit/decorators.js'\nimport { AuthContext, authContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\nimport { getSuggestedIssuers } from 'solid-logic'\nimport type Dialog from '@/components/dialog'\nimport type Combobox from '@/components/combobox'\n\nimport '~icons/lucide/chevron-down'\nimport '@/components/dialog'\nimport '@/components/dialog-content'\nimport '@/components/dialog-footer'\nimport '@/components/button'\nimport '@/components/combobox'\nimport '@/components/combobox-option'\n\nimport styles from './LoginModal.styles.css'\n\n@customElement('solid-ui-login-modal')\nexport default class LoginModal extends WebComponent {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor issuerUrl = ''\n\n @state()\n private accessor issuerInputValue = ''\n\n @state()\n private accessor failed: boolean = false\n\n @state()\n private accessor submitting: boolean = false\n\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n @query('solid-ui-dialog')\n private accessor dialog: Dialog | null = null\n\n connectedCallback () {\n super.connectedCallback()\n\n this.issuerInputValue =\n (typeof localStorage !== 'undefined' && localStorage.getItem('loginIssuer')) ||\n this.issuerUrl ||\n getSuggestedIssuers()[0]?.uri ||\n ''\n }\n\n protected render () {\n const suggestedIssuers = getSuggestedIssuers()\n\n return html`\n <solid-ui-dialog title=\"Select an identity provider\">\n <form @submit=${this.onSubmit}>\n <solid-ui-dialog-content>\n <solid-ui-combobox label=\"Solid Identity Provider\" .value=${this.issuerInputValue} @input=${this.onIssuerInputChange}>\n ${suggestedIssuers.map(issuer => html`<solid-ui-combobox-option value=\"${issuer.uri}\">${issuer.name}</solid-ui-combobox-option>`)}\n </solid-ui-combobox>\n\n ${this.failed ? html`<p class=\"error-message\">Something went wrong</p>` : nothing}\n </solid-ui-dialog-content>\n\n <solid-ui-dialog-footer>\n <solid-ui-button\n variant=\"secondary\"\n @click=\"${() => this.dialog?.close()}\"\n >\n Cancel\n </solid-ui-button>\n <solid-ui-button\n ?disabled=${!this.issuerInputValue || this.submitting}\n ?loading=${this.submitting}\n type=\"submit\"\n >\n Login\n </solid-ui-button>\n </solid-ui-dialog-footer>\n </form>\n </solid-ui-dialog>\n `\n }\n\n private onIssuerInputChange (e: Event) {\n this.issuerInputValue = String((e.target as Combobox).value)\n }\n\n private async onSubmit (e: Event) {\n e.preventDefault()\n\n this.failed = false\n\n if (!this.issuerInputValue) {\n return\n }\n\n this.submitting = true\n\n try {\n await this.auth.login(this.issuerInputValue)\n } catch (error) {\n console.error(error)\n\n this.failed = true\n } finally {\n this.submitting = false\n }\n }\n}\n","import LoginModal from './LoginModal'\n\nexport { LoginModal }\nexport default LoginModal\n","import Account from '@/lib/auth/Account'\nimport ns from '@/lib/ns'\nimport { authn, authSession, reloadOnIdentityReplaced, solidLogicSingleton } from 'solid-logic'\nimport { AuthContext } from '@/lib/auth'\nimport { showDialog } from '@/lib/dialogs'\n\nimport LoginModal from '@/components/login-modal'\n\nexport const DEFAULT_SIGNUP_URL = 'https://solidproject.org/get_a_pod'\n\nfunction findAccountImage (webId: string): string | undefined {\n const store = solidLogicSingleton.store\n const me = store.sym(webId)\n const image =\n store.any(me, ns.sioc('avatar')) ||\n store.any(me, ns.foaf('img')) ||\n store.any(me, ns.vcard('logo')) ||\n store.any(me, ns.vcard('hasPhoto')) ||\n store.any(me, ns.vcard('photo')) ||\n store.any(me, ns.foaf('depiction'))\n\n return image ? (image as any).value : undefined\n}\n\nexport default class SolidAuth implements AuthContext {\n private _initialized = false\n private profileLoaded = false\n private listeners: (() => unknown)[] = []\n\n constructor (public signupUrl: string = DEFAULT_SIGNUP_URL) {}\n\n async initialize () {\n authSession.events.on('sessionRestore', () => {\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n })\n\n // An identity that was actively established was replaced while the session\n // stayed active (A -> B, e.g. from another tab): everything fetched under\n // the previous identity is stale, so the app reloads. A logout is not a\n // reload case here — the derived info already reports logged out and the\n // logout path runs its own cleanup and navigation.\n reloadOnIdentityReplaced(authSession.events, () => {\n if (authSession.info?.isLoggedIn) window.location.reload()\n })\n\n await authn.checkUser()\n\n this._initialized = true\n this.listeners.forEach(listener => listener())\n }\n\n async loadProfile () {\n if (this.profileLoaded || !this.account) {\n return\n }\n\n this.profileLoaded = true\n\n await solidLogicSingleton.profile.loadMe()\n\n this.listeners.forEach(listener => listener())\n }\n\n get initialized (): boolean {\n return this._initialized\n }\n\n get account (): Account | null {\n const webId: string | undefined = authSession.webId ?? authSession.info?.webId\n const isActive: boolean = authSession.isActive ?? authSession.info?.isLoggedIn ?? Boolean(webId)\n\n if (!isActive || !webId) {\n return null\n }\n\n const avatarUrl = findAccountImage(webId)\n\n return new Account(webId, avatarUrl)\n }\n\n async login (loginUrl?: string) {\n if (!loginUrl) {\n showDialog(LoginModal)\n\n return\n }\n\n // clear authorization metadata from store\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n\n const preLoginRedirectHash = new URL(window.location.href).hash\n if (preLoginRedirectHash) {\n window.localStorage.setItem('preLoginRedirectHash', preLoginRedirectHash)\n }\n window.localStorage.setItem('loginIssuer', loginUrl)\n\n const locationUrl = new URL(window.location.href)\n\n locationUrl.hash = ''\n\n await authSession.login(loginUrl, locationUrl.href)\n }\n\n async signup () {\n window.open(this.signupUrl, '_blank', 'noopener,noreferrer')\n }\n\n async logout () {\n await authSession.logout()\n }\n\n onSessionUpdated (callback: () => unknown) {\n const sessionEventTarget = authSession as unknown as EventTarget\n const listener = () => {\n callback()\n }\n\n this.listeners.push(listener)\n\n if (typeof sessionEventTarget.addEventListener === 'function') {\n sessionEventTarget.addEventListener('sessionStateChange', listener)\n } else {\n authSession.events.on('login', listener)\n authSession.events.on('logout', listener)\n authSession.events.on('sessionRestore', listener)\n }\n\n return () => {\n this.listeners = this.listeners.filter(_listener => _listener !== listener)\n\n if (typeof sessionEventTarget.removeEventListener === 'function') {\n sessionEventTarget.removeEventListener('sessionStateChange', listener)\n } else {\n authSession.events.off('login', listener)\n authSession.events.off('logout', listener)\n authSession.events.off('sessionRestore', listener)\n }\n }\n }\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { a as e, o as t } from "./auth-DdvFEHuV.js";
1
+ import { a as e, o as t } from "./auth-DfCfMOuM.js";
2
2
  import { b as n, g as r, o as i, p as a, u as o } from "./components-BHoVP7zE.js";
3
3
  //#region ~icons/lucide/circle-user
4
4
  var s = class extends HTMLElement {
@@ -226,4 +226,4 @@ var M = j;
226
226
  //#endregion
227
227
  export { j as n, M as t };
228
228
 
229
- //# sourceMappingURL=avatar-3eUQtxXZ.js.map
229
+ //# sourceMappingURL=avatar-C677VD9J.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"avatar-3eUQtxXZ.js","names":["customElement","WebComponent","consume","html","authContext","DEFAULT_AUTH_CONTEXT","styles","_classDecs","_Avatar","_Avatar2","_A","WeakMap","_ref","_authDecs","context","subscribe","_Avatar3","Avatar","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_auth","_defineProperty","_classPrivateFieldGet","auth","v","_classPrivateFieldSet","connectedCallback","loadProfile","unsubscribeSessionUpdated","onSessionUpdated","requestUpdate","disconnectedCallback","render","account","avatarUrl","e","c","_initClass","_applyDecs","_Class","_identity","fallback","component","default","Avatar"],"sources":["../../src/components/avatar/Avatar.styles.css","../../src/components/avatar/Avatar.ts","../../src/components/avatar/index.ts"],"sourcesContent":[":host {\n --size: 150px;\n\n display: inline-flex;\n overflow: hidden;\n width: var(--size);\n height: var(--size);\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n}\n\n:host([data-state-fallback]) {\n background: var(--solid-ui-color-gray-100);\n justify-content: center;\n align-items: center;\n\n icon-lucide-circle-user {\n color: var(--solid-ui-color-gray-200);\n width: 50%;\n height: 50%;\n }\n}\n","import { customElement, WebComponent } from '@/lib/components'\nimport { consume } from '@lit/context'\nimport { html } from 'lit'\nimport { authContext, AuthContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\n\nimport '~icons/lucide/circle-user'\n\nimport styles from './Avatar.styles.css'\n\n@customElement('solid-ui-avatar')\nexport default class Avatar extends WebComponent {\n static styles = styles\n static states = {\n fallback: (component: Avatar) => !component.auth.account?.avatarUrl,\n }\n\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n private unsubscribeSessionUpdated?: () => void\n\n connectedCallback () {\n super.connectedCallback()\n\n this.auth.loadProfile?.()\n\n this.unsubscribeSessionUpdated = this.auth.onSessionUpdated(() => {\n this.auth.loadProfile?.()\n this.requestUpdate()\n })\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.unsubscribeSessionUpdated?.()\n }\n\n protected render () {\n if (!this.auth.account?.avatarUrl) {\n return html`\n <icon-lucide-circle-user></icon-lucide-circle-user>\n `\n }\n\n return html`\n <img src=\"${this.auth.account?.avatarUrl}\" alt=\"\" />\n `\n }\n}\n","import Avatar from './Avatar'\n\nexport { Avatar }\nexport default Avatar\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACOwCO,IAAA,CAEvCP,EAAc,iBAAiB,CAAC;AAAA,IAAAQ;AAAA,KAAAC,KAAAC,kBAAA,IAAAC,QAAA,GAAAC,KAAAC,IAO9BX,EAAQ;CAAEY,SAASV;CAAaW,WAAW;AAAK,CAAC,GAAC,SAAAC,IAPrD,cACoCf,EAAa;CAAAiB,YAAA,GAAAC,GAAA;EAOUI,AAPV,MAAA,GAAAJ,CAAA,GAAAC,EAAA,MAAAV,IAAAW,EAAA,IAAA,GAAAC,EAAA,MAOVjB,CAAoB,EAAA,GAAAkB,EAAA,MAAA,6BAAA,KAAA,CAAA;CAAA;CAAA,KAAAX,KAAA;EAAA,OAAAY,EAAAd,GAAA,IAAA;CAAA;CAAA,IAAxCe,KAAIC,GAAA;EAAAC,EAAAjB,GAAA,MAAAgB,CAAA;CAAA;CAIrBE,oBAAqB;EAKnB,AAJA,MAAMA,kBAAkB,GAExB,KAAKH,KAAKI,cAAc,GAExB,KAAKC,4BAA4B,KAAKL,KAAKM,uBAAuB;GAEhE,AADA,KAAKN,KAAKI,cAAc,GACxB,KAAKG,cAAc;EACrB,CAAC;CACH;CAEAC,uBAAwB;EAGtB,AAFA,MAAMA,qBAAqB,GAE3B,KAAKH,4BAA4B;CACnC;CAEUI,SAAU;EAOlB,OANK,KAAKT,KAAKU,SAASC,YAMjBjC,CAAI;oBACK,KAAKsB,KAAKU,SAASC,UAAS;QANnCjC,CAAI;;;CAQf;AACF,GAAC,CAAAkC,GAAA,CAAAf,GAAAD,IAAAiB,GAAA,CAAA9B,GAAA+B,MAAAC,EAAAxB,GAAA,CAAA;CAAAH;CAAA;CAAA;AAAA,CAAA,GAAAN,GAAA,GAAA,KAAA,GAvCmCN,CAAY,GAAAe,IAAAyB,IAAA,cAAAC,EAAA;CAAAxB,cAAA;EAAA,MAAAV,CAAA,GAAAe,EAAA,MAAA,UAC9BjB,CAAM,GAAAiB,EAAA,MAAA,UACN,EACdoB,WAAWC,MAAsB,CAACA,EAAUnB,KAAKU,SAASC,UAC5D,CAAC,GAAAG,EAAA;CAAA;AAAA,GAAAhB,EAAAkB,GAAAhC,GAAA,KAAA,CAAA,GAAAgC,GAAA;;;ACXH,IAAA,IAAeK"}
1
+ {"version":3,"file":"avatar-C677VD9J.js","names":["customElement","WebComponent","consume","html","authContext","DEFAULT_AUTH_CONTEXT","styles","_classDecs","_Avatar","_Avatar2","_A","WeakMap","_ref","_authDecs","context","subscribe","_Avatar3","Avatar","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_auth","_defineProperty","_classPrivateFieldGet","auth","v","_classPrivateFieldSet","connectedCallback","loadProfile","unsubscribeSessionUpdated","onSessionUpdated","requestUpdate","disconnectedCallback","render","account","avatarUrl","e","c","_initClass","_applyDecs","_Class","_identity","fallback","component","default","Avatar"],"sources":["../../src/components/avatar/Avatar.styles.css","../../src/components/avatar/Avatar.ts","../../src/components/avatar/index.ts"],"sourcesContent":[":host {\n --size: 150px;\n\n display: inline-flex;\n overflow: hidden;\n width: var(--size);\n height: var(--size);\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n}\n\n:host([data-state-fallback]) {\n background: var(--solid-ui-color-gray-100);\n justify-content: center;\n align-items: center;\n\n icon-lucide-circle-user {\n color: var(--solid-ui-color-gray-200);\n width: 50%;\n height: 50%;\n }\n}\n","import { customElement, WebComponent } from '@/lib/components'\nimport { consume } from '@lit/context'\nimport { html } from 'lit'\nimport { authContext, AuthContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\n\nimport '~icons/lucide/circle-user'\n\nimport styles from './Avatar.styles.css'\n\n@customElement('solid-ui-avatar')\nexport default class Avatar extends WebComponent {\n static styles = styles\n static states = {\n fallback: (component: Avatar) => !component.auth.account?.avatarUrl,\n }\n\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n private unsubscribeSessionUpdated?: () => void\n\n connectedCallback () {\n super.connectedCallback()\n\n this.auth.loadProfile?.()\n\n this.unsubscribeSessionUpdated = this.auth.onSessionUpdated(() => {\n this.auth.loadProfile?.()\n this.requestUpdate()\n })\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.unsubscribeSessionUpdated?.()\n }\n\n protected render () {\n if (!this.auth.account?.avatarUrl) {\n return html`\n <icon-lucide-circle-user></icon-lucide-circle-user>\n `\n }\n\n return html`\n <img src=\"${this.auth.account?.avatarUrl}\" alt=\"\" />\n `\n }\n}\n","import Avatar from './Avatar'\n\nexport { Avatar }\nexport default Avatar\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACOwCO,IAAA,CAEvCP,EAAc,iBAAiB,CAAC;AAAA,IAAAQ;AAAA,KAAAC,KAAAC,kBAAA,IAAAC,QAAA,GAAAC,KAAAC,IAO9BX,EAAQ;CAAEY,SAASV;CAAaW,WAAW;AAAK,CAAC,GAAC,SAAAC,IAPrD,cACoCf,EAAa;CAAAiB,YAAA,GAAAC,GAAA;EAOUI,AAPV,MAAA,GAAAJ,CAAA,GAAAC,EAAA,MAAAV,IAAAW,EAAA,IAAA,GAAAC,EAAA,MAOVjB,CAAoB,EAAA,GAAAkB,EAAA,MAAA,6BAAA,KAAA,CAAA;CAAA;CAAA,KAAAX,KAAA;EAAA,OAAAY,EAAAd,GAAA,IAAA;CAAA;CAAA,IAAxCe,KAAIC,GAAA;EAAAC,EAAAjB,GAAA,MAAAgB,CAAA;CAAA;CAIrBE,oBAAqB;EAKnB,AAJA,MAAMA,kBAAkB,GAExB,KAAKH,KAAKI,cAAc,GAExB,KAAKC,4BAA4B,KAAKL,KAAKM,uBAAuB;GAEhE,AADA,KAAKN,KAAKI,cAAc,GACxB,KAAKG,cAAc;EACrB,CAAC;CACH;CAEAC,uBAAwB;EAGtB,AAFA,MAAMA,qBAAqB,GAE3B,KAAKH,4BAA4B;CACnC;CAEUI,SAAU;EAOlB,OANK,KAAKT,KAAKU,SAASC,YAMjBjC,CAAI;oBACK,KAAKsB,KAAKU,SAASC,UAAS;QANnCjC,CAAI;;;CAQf;AACF,GAAC,CAAAkC,GAAA,CAAAf,GAAAD,IAAAiB,GAAA,CAAA9B,GAAA+B,MAAAC,EAAAxB,GAAA,CAAA;CAAAH;CAAA;CAAA;AAAA,CAAA,GAAAN,GAAA,GAAA,KAAA,GAvCmCN,CAAY,GAAAe,IAAAyB,IAAA,cAAAC,EAAA;CAAAxB,cAAA;EAAA,MAAAV,CAAA,GAAAe,EAAA,MAAA,UAC9BjB,CAAM,GAAAiB,EAAA,MAAA,UACN,EACdoB,WAAWC,MAAsB,CAACA,EAAUnB,KAAKU,SAASC,UAC5D,CAAC,GAAAG,EAAA;CAAA;AAAA,GAAAhB,EAAAkB,GAAAhC,GAAA,KAAA,CAAA,GAAAgC,GAAA;;;ACXH,IAAA,IAAeK"}
@@ -387,6 +387,7 @@ var A = class {
387
387
  $code: "en",
388
388
  $name: "English",
389
389
  $dir: "ltr",
390
+ allTagsRemoved: "All tags removed",
390
391
  am: "AM",
391
392
  autosizeColumn: "Autosize column",
392
393
  captions: "Captions",
@@ -510,10 +511,16 @@ var A = class {
510
511
  sortColumn: "Sort column",
511
512
  sortDescending: "Sort descending",
512
513
  startDate: "Start date",
514
+ tagAdded: (e) => `${e} added`,
515
+ tagAlreadyAdded: (e) => `${e} is already added`,
516
+ tagInputKeyboardHelp: "Press Backspace or Delete to remove this tag.",
517
+ tagRemoved: (e) => `${e} removed`,
513
518
  time: "Time",
514
519
  timeInputKeyboardHelp: "Use arrow keys to change values; press Alt+Down Arrow to open the time picker.",
515
520
  today: "Today",
516
521
  toggleColorFormat: "Toggle color format",
522
+ tooFewTags: (e) => e === 1 ? "Add at least 1 tag" : `Add at least ${e} tags`,
523
+ tooManyTags: (e) => e === 1 ? "Add no more than 1 tag" : `Add no more than ${e} tags`,
517
524
  unmute: "Unmute",
518
525
  unpin: "Unpin",
519
526
  unpinColumn: "Unpin column",
@@ -1374,7 +1381,7 @@ var kt = {
1374
1381
  }
1375
1382
  });
1376
1383
  //#endregion
1377
- //#region node_modules/@awesome.me/webawesome/dist/chunks/chunk.64OG2H45.js
1384
+ //#region node_modules/@awesome.me/webawesome/dist/chunks/chunk.KB3IOPVF.js
1378
1385
  function Nt(e) {
1379
1386
  return typeof e == "object" && !!e && "getBoundingClientRect" in e && ("contextElement" in e ? e instanceof Element : !0);
1380
1387
  }
@@ -1404,7 +1411,7 @@ var Pt = !!globalThis?.HTMLElement?.prototype.hasOwnProperty("popover"), $ = cla
1404
1411
  this.anchorEl instanceof HTMLSlotElement && (this.anchorEl = this.anchorEl.assignedElements({ flatten: !0 })[0]), this.anchorEl && this.start();
1405
1412
  }
1406
1413
  start() {
1407
- !this.anchorEl || !this.active || !this.isConnected || (this.popup?.showPopover?.(), this.cleanup = yt(this.anchorEl, this.popup, () => {
1414
+ this.anchorEl && this.active && this.isConnected && (this.popup?.showPopover?.(), this.cleanup = yt(this.anchorEl, this.popup, () => {
1408
1415
  this.reposition();
1409
1416
  }));
1410
1417
  }
@@ -1539,4 +1546,4 @@ $.css = c, f([a(".popup")], $.prototype, "popup", 2), f([a(".arrow")], $.prototy
1539
1546
  //#endregion
1540
1547
  export { xt as a, f as c, bt as i, o as l, Tt as n, ne as o, St as r, S as s, yt as t };
1541
1548
 
1542
- //# sourceMappingURL=chunk.64OG2H45-BFgXEuP7.js.map
1549
+ //# sourceMappingURL=chunk.KB3IOPVF-Ckx3HIiR.js.map