@schukai/monster 3.116.0 → 3.117.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,22 @@
2
2
 
3
3
 
4
4
 
5
+ ## [3.117.0] - 2025-04-23
6
+
7
+ ### Add Features
8
+
9
+ - **login:** send success event [#305](https://gitlab.schukai.com/oss/libraries/javascript/monster/issues/305)
10
+
11
+
12
+
13
+ ## [3.116.1] - 2025-04-17
14
+
15
+ ### Bug Fixes
16
+
17
+ - update/add new parts for desin the login control
18
+
19
+
20
+
5
21
  ## [3.116.0] - 2025-04-14
6
22
 
7
23
  ### Add Features
package/package.json CHANGED
@@ -1 +1 @@
1
- {"author":"schukai GmbH","dependencies":{"@floating-ui/dom":"^1.6.13","@popperjs/core":"^2.11.8","buffer":"^6.0.3"},"description":"Monster is a simple library for creating fast, robust and lightweight websites.","homepage":"https://monsterjs.org/","keywords":["framework","web","dom","css","sass","mobile-first","app","front-end","templates","schukai","core","shopcloud","alvine","monster","buildmap","stack","observer","observable","uuid","node","nodelist","css-in-js","logger","log","theme"],"license":"AGPL 3.0","main":"source/monster.mjs","module":"source/monster.mjs","name":"@schukai/monster","repository":{"type":"git","url":"https://gitlab.schukai.com/oss/libraries/javascript/monster.git"},"type":"module","version":"3.116.0"}
1
+ {"author":"schukai GmbH","dependencies":{"@floating-ui/dom":"^1.6.13","@popperjs/core":"^2.11.8","buffer":"^6.0.3"},"description":"Monster is a simple library for creating fast, robust and lightweight websites.","homepage":"https://monsterjs.org/","keywords":["framework","web","dom","css","sass","mobile-first","app","front-end","templates","schukai","core","shopcloud","alvine","monster","buildmap","stack","observer","observable","uuid","node","nodelist","css-in-js","logger","log","theme"],"license":"AGPL 3.0","main":"source/monster.mjs","module":"source/monster.mjs","name":"@schukai/monster","repository":{"type":"git","url":"https://gitlab.schukai.com/oss/libraries/javascript/monster.git"},"type":"module","version":"3.117.0"}
@@ -414,10 +414,10 @@ function getTemplate() {
414
414
  </div>
415
415
  <div data-monster-role="container" part="container">
416
416
  <div class="collapse-alignment" part="content">
417
- <slot part="content"></slot>
417
+ <slot></slot>
418
418
  </div>
419
419
  <monster-collapse data-monster-role="collapse" part="collapse">
420
- <slot name="extended" part="extended"></slot>
420
+ <slot name="extended"></slot>
421
421
  </monster-collapse>
422
422
  </div>
423
423
  </div>`;
@@ -129,6 +129,9 @@ const digitsCollapseSymbol = Symbol("digitsCollapse");
129
129
  * @since 3.113.0
130
130
  * @copyright schukai GmbH
131
131
  * @summary A beautiful Login that can make your life easier and also looks good. It supports a lot of features.
132
+ *
133
+ * @fires login-success
134
+ * @fires redirect-to-first-success-url
132
135
  */
133
136
  class Login extends CustomElement {
134
137
  /**
@@ -352,10 +355,18 @@ class Login extends CustomElement {
352
355
  * @returns {Login}
353
356
  */
354
357
  openLoggedIn() {
355
- this[loggedInCollapseSymbol].open();
358
+
359
+ fireCustomEvent(self, "login-success", {
360
+ self,
361
+ });
356
362
 
357
363
  if (this.getOption("features.redirectToFirstSuccessUrl")) {
358
364
  setTimeout(() => {
365
+
366
+ fireCustomEvent(self, "redirect-to-first-success-url", {
367
+ self,
368
+ });
369
+
359
370
  const successUrl = this.getOption("successUrls");
360
371
  if (successUrl.length > 0) {
361
372
  const success = successUrl[0].url;
@@ -368,6 +379,8 @@ class Login extends CustomElement {
368
379
  return;
369
380
  }
370
381
 
382
+ this[loggedInCollapseSymbol].open();
383
+
371
384
  return this;
372
385
  }
373
386
 
@@ -1543,9 +1556,20 @@ function getTemplate() {
1543
1556
 
1544
1557
  <monster-collapse data-monster-option-openByDefault="true"
1545
1558
  data-monster-role="login-collapse"
1559
+ exportparts="control:collapse-login-control,
1560
+ container:collapse-login-container,
1561
+ deco:collapse-login-deco"
1546
1562
  part="login-collapse"
1547
1563
  >
1548
- <monster-field-set part="login-field-set">
1564
+ <monster-field-set
1565
+ exportparts="
1566
+ control:field-set-login-control,
1567
+ header:field-set-login-header,
1568
+ title:field-set-login-title,
1569
+ container:field-set-login-container,
1570
+ content:field-set-login-content,
1571
+ collapse:field-set-login-collapse"
1572
+ part="login-field-set">
1549
1573
  <slot name="login-header"></slot>
1550
1574
  <label part="login-label" data-monster-replace="path:labels.username"></label>
1551
1575
  <input type="text" name="username" autofocus autocomplete="off">
@@ -1555,6 +1579,13 @@ function getTemplate() {
1555
1579
  <div data-monster-attributes="class path:classes.passwordInvalid"></div>
1556
1580
  <monster-message-state-button id="loginButton"
1557
1581
  part="login-button"
1582
+ exportparts="
1583
+ control:login-button-control,
1584
+ button:login-button-button,
1585
+ popper:login-button-popper,
1586
+ message:login-button-message,
1587
+ button-button:login-button-button,
1588
+ button-control:login-button-control"
1558
1589
  data-monster-replace="path:labels.login"></monster-message-state-button>
1559
1590
  <a href="#" data-monster-role="forgot-password-link" part="forgot-password-link"
1560
1591
  data-monster-attributes="class path:features.forgotPassword | ?::hidden"
@@ -1564,19 +1595,37 @@ function getTemplate() {
1564
1595
 
1565
1596
 
1566
1597
  </monster-collapse>
1567
- <monster-collapse data-monster-role="forgot-password-collapse" part="forgot-password-collapse">
1568
-
1569
- <monster-field-set part="forgot-password-field-set">
1598
+ <monster-collapse data-monster-role="forgot-password-collapse"
1599
+ exportparts="control:collapse-forgot-password-control,
1600
+ container:collapse-forgot-password-container,
1601
+ deco:collapse-forgot-password-deco"
1602
+ part="forgot-password-collapse">
1603
+
1604
+ <monster-field-set part="forgot-password-field-set"
1605
+ exportparts="
1606
+ control:field-set-forgot-password-control,
1607
+ header:field-set-forgot-password-header,
1608
+ title:field-set-forgot-password-title,
1609
+ container:field-set-forgot-password-container,
1610
+ content:field-set-forgot-password-content,
1611
+ collapse:field-set-forgot-password-collapse">
1570
1612
  <slot name="forgot-password-header"></slot>
1571
1613
  <label part="forgot-password-label" data-monster-replace="path:labels.mailAddress"></label>
1572
1614
  <input type="email" name="email"
1573
1615
  data-monster-attributes="accesskey path:accessKeys.username"
1574
1616
  autocomplete="off">
1575
1617
  <div data-monster-attributes="class path:classes.emailInvalid"></div>
1576
- <monster-message-state-button id="requestLinkButton"
1577
- part="request-link-button"
1578
- data-monster-attributes="accesskey path:accessKeys.password"
1579
- data-monster-replace="path:labels.requestLink"></monster-message-state-button>
1618
+ <monster-message-state-button id="requestLinkButton"
1619
+ part="request-link-button"
1620
+ exportparts="
1621
+ control:forgot-password-button-control,
1622
+ button:forgot-password-button-button,
1623
+ popper:forgot-password-button-popper,
1624
+ message:forgot-password-button-message,
1625
+ button-button:forgot-password-button-button,
1626
+ button-control:forgot-password-button-control"
1627
+ data-monster-attributes="accesskey path:accessKeys.password"
1628
+ data-monster-replace="path:labels.requestLink"></monster-message-state-button>
1580
1629
  <a href="#"
1581
1630
  data-monster-attributes="accesskey path:accessKeys.loginLink"
1582
1631
  data-monster-role="login-link"
@@ -1586,18 +1635,38 @@ function getTemplate() {
1586
1635
  </monster-field-set>
1587
1636
 
1588
1637
  </monster-collapse>
1589
- <monster-collapse data-monster-role="second-factor-collapse" part="second-factor--collapse">
1590
-
1591
- <monster-field-set part="second-factor-field-set">
1638
+ <monster-collapse data-monster-role="second-factor-collapse"
1639
+ exportparts="control:collapse-second-factor-control,
1640
+ container:collapse-second-factor-container,
1641
+ deco:collapse-second-factor-deco"
1642
+ part="second-factor-collapse">
1643
+
1644
+ <monster-field-set part="second-factor-field-set"
1645
+ exportparts="
1646
+ control:field-set-second-factor-control,
1647
+ header:field-set-second-factor-header,
1648
+ title:field-set-second-factor-title,
1649
+ container:field-set-second-factor-container,
1650
+ content:field-set-second-factor-content,
1651
+ collapse:field-set-second-factor-collapse">
1592
1652
  <slot name="second-factor-header"></slot>
1593
1653
  <label part="second-factor-label" data-monster-replace="path:labels.secondFactor"></label>
1594
1654
  <div>
1595
1655
  <monster-digits data-monster-attributes="data-monster-option-digits path:digits"
1596
1656
  id="secondFactorControl"></monster-digits>
1597
1657
  </div>
1598
- <monster-message-state-button id="secondFactorButton"
1599
- part="secondFactor-digits-button"
1600
- data-monster-replace="path:labels.sendSecondFactorDigits"></monster-message-state-button>
1658
+ <!-- SECOND FACTOR COLLAPSE -->
1659
+ <monster-message-state-button id="secondFactorButton"
1660
+ part="secondFactor-digits-button"
1661
+ exportparts="
1662
+ control:second-factor-button-control,
1663
+ button:second-factor-button-button,
1664
+ popper:second-factor-button-popper,
1665
+ message:second-factor-button-message,
1666
+ button-button:second-factor-button-button,
1667
+ button-control:second-factor-button-control"
1668
+ data-monster-replace="path:labels.sendSecondFactorDigits"></monster-message-state-button>
1669
+
1601
1670
  <a href="#" data-monster-role="reset-login-process-link"
1602
1671
  part="reset-login-process-link"
1603
1672
  data-monster-replace="path:labels.resetLoginProcess"></a>
@@ -1605,9 +1674,20 @@ function getTemplate() {
1605
1674
  </monster-field-set>
1606
1675
 
1607
1676
  </monster-collapse>
1608
- <monster-collapse data-monster-role="digits-collapse" part="digits-collapse">
1609
-
1610
- <monster-field-set part="digits-field-set">
1677
+ <monster-collapse data-monster-role="digits-collapse"
1678
+ exportparts="control:collapse-digits-control,
1679
+ container:collapse-digits-container,
1680
+ deco:collapse-digits-deco"
1681
+ part="digits-collapse">
1682
+
1683
+ <monster-field-set part="digits-field-set"
1684
+ exportparts="
1685
+ control:field-set-digits-control,
1686
+ header:field-set-digits-header,
1687
+ title:field-set-digits-title,
1688
+ container:field-set-digits-container,
1689
+ content:field-set-digits-content,
1690
+ collapse:field-set-digits-collapse">
1611
1691
  <slot name="digits-header"></slot>
1612
1692
  <label part="digits-label" data-monster-replace="path:labels.digits"></label>
1613
1693
  <div>
@@ -1616,6 +1696,13 @@ function getTemplate() {
1616
1696
  </div>
1617
1697
  <monster-message-state-button id="digitsButton"
1618
1698
  part="digits-button"
1699
+ exportparts="
1700
+ control:digits-button-control,
1701
+ button:digits-button-button,
1702
+ popper:digits-button-popper,
1703
+ message:digits-button-message,
1704
+ button-button:digits-button-button,
1705
+ button-control:digits-button-control"
1619
1706
  data-monster-replace="path:labels.sendDigits"></monster-message-state-button>
1620
1707
  <a href="#" data-monster-role="reset-login-process-link"
1621
1708
  part="reset-login-process-link"
@@ -1624,7 +1711,12 @@ function getTemplate() {
1624
1711
  </monster-field-set>
1625
1712
 
1626
1713
  </monster-collapse>
1627
- <monster-collapse data-monster-role="logged-in-collapse" part="logged-in-collapse">
1714
+ <monster-collapse data-monster-role="logged-in-collapse"
1715
+ exportparts="
1716
+ control:collapse-success-control,
1717
+ container:collapse-success-container,
1718
+ deco:collapse-success-deco"
1719
+ part="logged-in-collapse">
1628
1720
  <div>
1629
1721
  <slot name="logged-in-header"></slot>
1630
1722
  <ul data-monster-insert="urls path:successUrls"></ul>