@schukai/monster 3.96.3 → 3.97.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.
Files changed (100) hide show
  1. package/CHANGELOG.md +15 -96
  2. package/package.json +1 -1
  3. package/source/components/accessibility/locale-picker.mjs +598 -0
  4. package/source/components/accessibility/style/locale-picker.css +1 -0
  5. package/source/components/accessibility/style/locale-picker.pcss +26 -0
  6. package/source/components/accessibility/stylesheet/locale-picker.mjs +31 -0
  7. package/source/components/content/stylesheet/copy.mjs +2 -2
  8. package/source/components/datatable/stylesheet/change-button.mjs +2 -2
  9. package/source/components/datatable/stylesheet/column-bar.mjs +2 -2
  10. package/source/components/datatable/stylesheet/dataset.mjs +2 -2
  11. package/source/components/datatable/stylesheet/datasource.mjs +1 -1
  12. package/source/components/datatable/stylesheet/datatable.mjs +1 -1
  13. package/source/components/datatable/stylesheet/embedded-pagination.mjs +2 -2
  14. package/source/components/datatable/stylesheet/filter-button.mjs +1 -1
  15. package/source/components/datatable/stylesheet/filter-controls-defaults.mjs +1 -1
  16. package/source/components/datatable/stylesheet/filter-date-range.mjs +1 -1
  17. package/source/components/datatable/stylesheet/filter-range.mjs +1 -1
  18. package/source/components/datatable/stylesheet/filter-select.mjs +2 -2
  19. package/source/components/datatable/stylesheet/filter.mjs +2 -2
  20. package/source/components/datatable/stylesheet/pagination.mjs +1 -1
  21. package/source/components/datatable/stylesheet/save-button.mjs +2 -2
  22. package/source/components/datatable/stylesheet/status.mjs +1 -1
  23. package/source/components/form/stylesheet/action-button.mjs +1 -1
  24. package/source/components/form/stylesheet/api-bar.mjs +1 -1
  25. package/source/components/form/stylesheet/api-button.mjs +1 -1
  26. package/source/components/form/stylesheet/button-bar.mjs +1 -1
  27. package/source/components/form/stylesheet/button.mjs +1 -1
  28. package/source/components/form/stylesheet/confirm-button.mjs +1 -1
  29. package/source/components/form/stylesheet/context-error.mjs +1 -1
  30. package/source/components/form/stylesheet/context-help.mjs +1 -1
  31. package/source/components/form/stylesheet/field-set.mjs +1 -1
  32. package/source/components/form/stylesheet/form.mjs +1 -1
  33. package/source/components/form/stylesheet/input-group.mjs +1 -1
  34. package/source/components/form/stylesheet/message-state-button.mjs +1 -1
  35. package/source/components/form/stylesheet/password.mjs +1 -1
  36. package/source/components/form/stylesheet/popper-button.mjs +1 -1
  37. package/source/components/form/stylesheet/select.mjs +1 -1
  38. package/source/components/form/stylesheet/state-button.mjs +1 -1
  39. package/source/components/form/stylesheet/toggle-switch.mjs +1 -1
  40. package/source/components/form/stylesheet/tree-select.mjs +1 -1
  41. package/source/components/host/stylesheet/call-button.mjs +2 -2
  42. package/source/components/host/stylesheet/config-manager.mjs +1 -1
  43. package/source/components/host/stylesheet/host.mjs +2 -2
  44. package/source/components/host/stylesheet/overlay.mjs +2 -2
  45. package/source/components/host/stylesheet/toggle-button.mjs +2 -2
  46. package/source/components/host/stylesheet/viewer.mjs +2 -2
  47. package/source/components/layout/stylesheet/collapse.mjs +2 -2
  48. package/source/components/layout/stylesheet/details.mjs +2 -2
  49. package/source/components/layout/stylesheet/iframe.mjs +1 -1
  50. package/source/components/layout/stylesheet/panel.mjs +2 -2
  51. package/source/components/layout/stylesheet/popper.mjs +1 -1
  52. package/source/components/layout/stylesheet/slider.mjs +2 -2
  53. package/source/components/layout/stylesheet/split-panel.mjs +1 -1
  54. package/source/components/layout/stylesheet/tabs.mjs +2 -2
  55. package/source/components/layout/stylesheet/width-toggle.mjs +1 -1
  56. package/source/components/navigation/stylesheet/table-of-content.mjs +2 -2
  57. package/source/components/notify/stylesheet/message.mjs +2 -2
  58. package/source/components/notify/stylesheet/notify.mjs +1 -1
  59. package/source/components/state/stylesheet/log.mjs +1 -1
  60. package/source/components/state/stylesheet/state.mjs +1 -1
  61. package/source/components/style/property.css +1 -0
  62. package/source/components/style/theme.css +4 -4
  63. package/source/components/stylesheet/badge.mjs +1 -1
  64. package/source/components/stylesheet/border.mjs +1 -1
  65. package/source/components/stylesheet/button.mjs +1 -1
  66. package/source/components/stylesheet/card.mjs +1 -1
  67. package/source/components/stylesheet/color.mjs +1 -1
  68. package/source/components/stylesheet/common.mjs +1 -1
  69. package/source/components/stylesheet/control.mjs +1 -1
  70. package/source/components/stylesheet/data-grid.mjs +1 -1
  71. package/source/components/stylesheet/display.mjs +1 -1
  72. package/source/components/stylesheet/floating-ui.mjs +1 -1
  73. package/source/components/stylesheet/form.mjs +1 -1
  74. package/source/components/stylesheet/host.mjs +1 -1
  75. package/source/components/stylesheet/icons.mjs +1 -1
  76. package/source/components/stylesheet/link.mjs +1 -1
  77. package/source/components/stylesheet/mixin/badge.mjs +1 -1
  78. package/source/components/stylesheet/mixin/button.mjs +1 -1
  79. package/source/components/stylesheet/mixin/hover.mjs +1 -1
  80. package/source/components/stylesheet/mixin/icon.mjs +1 -1
  81. package/source/components/stylesheet/mixin/media.mjs +1 -1
  82. package/source/components/stylesheet/mixin/property.mjs +1 -1
  83. package/source/components/stylesheet/mixin/skeleton.mjs +1 -1
  84. package/source/components/stylesheet/mixin/spinner.mjs +1 -1
  85. package/source/components/stylesheet/mixin/typography.mjs +1 -1
  86. package/source/components/stylesheet/normalize.mjs +1 -1
  87. package/source/components/stylesheet/popper.mjs +1 -1
  88. package/source/components/stylesheet/property.mjs +2 -2
  89. package/source/components/stylesheet/ripple.mjs +1 -1
  90. package/source/components/stylesheet/skeleton.mjs +1 -1
  91. package/source/components/stylesheet/space.mjs +1 -1
  92. package/source/components/stylesheet/spinner.mjs +1 -1
  93. package/source/components/stylesheet/table.mjs +1 -1
  94. package/source/components/stylesheet/theme.mjs +1 -1
  95. package/source/components/stylesheet/typography.mjs +1 -1
  96. package/source/components/tree-menu/stylesheet/tree-menu.mjs +1 -1
  97. package/source/i18n/locale.mjs +151 -151
  98. package/source/i18n/map/languages.mjs +104 -0
  99. package/source/i18n/util.mjs +139 -0
  100. package/test/cases/i18n/util.mjs +295 -0
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -25,7 +25,7 @@ try {
25
25
  PropertyStyleSheet.insertRule(
26
26
  `
27
27
  @layer property {
28
- :after,:before,:root{--monster-font-family:-apple-system,BlinkMacSystemFont,\"Quicksand\",\"Segoe UI\",\"Roboto\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\";--monster-font-family-monospace:\"Consolas\",\"Courier New\",\"Roboto Mono\",\"Source Code Pro\",\"Fira Mono\",monospace;--monster-color-primary-1:var(--monster-color-gray-6);--monster-color-primary-2:var(--monster-color-gray-6);--monster-color-primary-3:var(--monster-color-cinnamon-1);--monster-color-primary-4:var(--monster-color-cinnamon-1);--monster-bg-color-primary-1:var(--monster-color-gray-1);--monster-bg-color-primary-2:var(--monster-color-gray-2);--monster-bg-color-primary-3:var(--monster-color-gray-6);--monster-bg-color-primary-4:var(--monster-color-gray-4)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-primary-1:var(--monster-color-gray-1);--monster-color-primary-2:var(--monster-color-gray-1);--monster-color-primary-3:var(--monster-color-gray-6);--monster-color-primary-4:var(--monster-color-gray-6);--monster-bg-color-primary-1:var(--monster-color-gray-6);--monster-bg-color-primary-2:var(--monster-color-gray-3);--monster-bg-color-primary-3:var(--monster-color-gray-2);--monster-bg-color-primary-4:var(--monster-color-gray-1)}}:after,:before,:root{--monster-color-secondary-1:var(--monster-color-red-4);--monster-color-secondary-2:var(--monster-color-red-4);--monster-color-secondary-3:var(--monster-color-red-1);--monster-color-secondary-4:var(--monster-color-red-1);--monster-bg-color-secondary-1:var(--monster-color-gray-1);--monster-bg-color-secondary-2:var(--monster-color-red-2);--monster-bg-color-secondary-3:var(--monster-color-red-3);--monster-bg-color-secondary-4:var(--monster-color-red-6)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-secondary-1:var(--monster-color-red-1);--monster-color-secondary-2:var(--monster-color-red-1);--monster-color-secondary-3:var(--monster-color-red-6);--monster-color-secondary-4:var(--monster-color-red-4);--monster-bg-color-secondary-1:var(--monster-color-gray-6);--monster-bg-color-secondary-2:var(--monster-color-red-3);--monster-bg-color-secondary-3:var(--monster-color-red-2);--monster-bg-color-secondary-4:var(--monster-color-red-1)}}:after,:before,:root{--monster-color-tertiary-1:var(--monster-color-magenta-4);--monster-color-tertiary-2:var(--monster-color-magenta-4);--monster-color-tertiary-3:var(--monster-color-magenta-6);--monster-color-tertiary-4:var(--monster-color-magenta-1);--monster-bg-color-tertiary-1:var(--monster-color-gray-1);--monster-bg-color-tertiary-2:var(--monster-color-magenta-1);--monster-bg-color-tertiary-3:var(--monster-color-magenta-2);--monster-bg-color-tertiary-4:var(--monster-color-magenta-6)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-tertiary-1:var(--monster-color-magenta-1);--monster-color-tertiary-2:var(--monster-color-magenta-6);--monster-color-tertiary-3:var(--monster-color-magenta-4);--monster-color-tertiary-4:var(--monster-color-magenta-4);--monster-bg-color-tertiary-1:var(--monster-color-gray-6);--monster-bg-color-tertiary-2:var(--monster-color-magenta-2);--monster-bg-color-tertiary-3:var(--monster-color-magenta-1);--monster-bg-color-tertiary-4:var(--monster-color-magenta-1)}}:after,:before,:root{--monster-color-destructive-1:var(--monster-color-red-1);--monster-color-destructive-2:var(--monster-color-red-4);--monster-color-destructive-3:var(--monster-color-red-6);--monster-color-destructive-4:var(--monster-color-red-1);--monster-bg-color-destructive-1:var(--monster-color-red-4);--monster-bg-color-destructive-2:var(--monster-color-gray-1);--monster-bg-color-destructive-3:var(--monster-color-red-2);--monster-bg-color-destructive-4:var(--monster-color-red-5)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-destructive-1:var(--monster-color-red-1);--monster-color-destructive-2:var(--monster-color-red-3);--monster-color-destructive-3:var(--monster-color-red-4);--monster-color-destructive-4:var(--monster-color-red-1);--monster-bg-color-destructive-1:var(--monster-color-red-5);--monster-bg-color-destructive-2:var(--monster-color-gray-6);--monster-bg-color-destructive-3:var(--monster-color-red-1);--monster-bg-color-destructive-4:var(--monster-color-red-4)}}:after,:before,:root{--monster-color-success-1:var(--monster-color-green-1);--monster-color-success-2:var(--monster-color-green-4);--monster-color-success-3:var(--monster-color-green-6);--monster-color-success-4:var(--monster-color-green-1);--monster-bg-color-success-1:var(--monster-color-green-3);--monster-bg-color-success-2:var(--monster-color-gray-1);--monster-bg-color-success-3:var(--monster-color-green-2);--monster-bg-color-success-4:var(--monster-color-green-5)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-success-1:var(--monster-color-green-1);--monster-color-success-2:var(--monster-color-green-2);--monster-color-success-3:var(--monster-color-green-4);--monster-color-success-4:var(--monster-color-green-1);--monster-bg-color-success-1:var(--monster-color-green-5);--monster-bg-color-success-2:var(--monster-color-gray-6);--monster-bg-color-success-3:var(--monster-color-green-1);--monster-bg-color-success-4:var(--monster-color-green-3)}}:after,:before,:root{--monster-color-warning-1:var(--monster-color-orange-1);--monster-color-warning-2:var(--monster-color-orange-4);--monster-color-warning-3:var(--monster-color-orange-6);--monster-color-warning-4:var(--monster-color-orange-1);--monster-bg-color-warning-1:var(--monster-color-orange-3);--monster-bg-color-warning-2:var(--monster-color-gray-1);--monster-bg-color-warning-3:var(--monster-color-orange-2);--monster-bg-color-warning-4:var(--monster-color-orange-5)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-warning-1:var(--monster-color-orange-1);--monster-color-warning-2:var(--monster-color-orange-3);--monster-color-warning-3:var(--monster-color-orange-4);--monster-color-warning-4:var(--monster-color-orange-1);--monster-bg-color-warning-1:var(--monster-color-orange-5);--monster-bg-color-warning-2:var(--monster-color-gray-6);--monster-bg-color-warning-3:var(--monster-color-orange-1);--monster-bg-color-warning-4:var(--monster-color-orange-3)}}:after,:before,:root{--monster-color-error-1:var(--monster-color-red-1);--monster-color-error-2:var(--monster-color-red-4);--monster-color-error-3:var(--monster-color-red-6);--monster-color-error-4:var(--monster-color-red-1);--monster-bg-color-error-1:var(--monster-color-red-4);--monster-bg-color-error-2:var(--monster-color-gray-1);--monster-bg-color-error-3:var(--monster-color-red-2);--monster-bg-color-error-4:var(--monster-color-red-5)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-error-1:var(--monster-color-red-1);--monster-color-error-2:var(--monster-color-red-3);--monster-color-error-3:var(--monster-color-red-4);--monster-color-error-4:var(--monster-color-red-1);--monster-bg-color-error-1:var(--monster-color-red-5);--monster-bg-color-error-2:var(--monster-color-gray-6);--monster-bg-color-error-3:var(--monster-color-red-1);--monster-bg-color-error-4:var(--monster-color-red-4)}}:after,:before,:root{--monster-color-selection-1:var(--monster-color-gray-6);--monster-color-selection-2:var(--monster-color-gray-6);--monster-color-selection-3:var(--monster-color-gray-6);--monster-color-selection-4:var(--monster-color-gray-1);--monster-bg-color-selection-1:var(--monster-color-yellow-2);--monster-bg-color-selection-2:var(--monster-color-yellow-1);--monster-bg-color-selection-3:var(--monster-color-yellow-2);--monster-bg-color-selection-4:var(--monster-color-yellow-6)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-selection-1:var(--monster-color-gray-6);--monster-color-selection-2:var(--monster-color-gray-6);--monster-color-selection-3:var(--monster-color-gray-6);--monster-color-selection-4:var(--monster-color-gray-1);--monster-bg-color-selection-1:var(--monster-color-yellow-2);--monster-bg-color-selection-2:var(--monster-color-yellow-1);--monster-bg-color-selection-3:var(--monster-color-yellow-2);--monster-bg-color-selection-4:var(--monster-color-yellow-6)}}:after,:before,:root{--monster-color-primary-disabled-1:var(--monster-color-gray-4);--monster-color-primary-disabled-2:var(--monster-color-gray-4);--monster-color-primary-disabled-3:var(--monster-color-gray-4);--monster-color-primary-disabled-4:var(--monster-color-gray-4);--monster-bg-color-primary-disabled-1:var(--monster-color-gray-1);--monster-bg-color-primary-disabled-2:var(--monster-color-gray-2);--monster-bg-color-primary-disabled-3:var(--monster-color-gray-3);--monster-bg-color-primary-disabled-4:var(--monster-color-gray-6)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-primary-disabled-1:var(--monster-color-gray-4);--monster-color-primary-disabled-2:var(--monster-color-gray-4);--monster-color-primary-disabled-3:var(--monster-color-gray-3);--monster-color-primary-disabled-4:var(--monster-color-gray-3);--monster-bg-color-primary-disabled-1:var(--monster-color-gray-6);--monster-bg-color-primary-disabled-2:var(--monster-color-gray-3);--monster-bg-color-primary-disabled-3:var(--monster-color-gray-2);--monster-bg-color-primary-disabled-4:var(--monster-color-gray-1)}}:after,:before,:root{--monster-color-gradient-1:#833ab4;--monster-color-gradient-2:#fd1d1d;--monster-color-gradient-3:#fcb045;--monster-box-shadow-1:none;--monster-box-shadow-2:-1px 1px 10px 1px hsla(0,0%,76%,.61);--monster-text-shadow:none;--monster-theme-control-bg-color:var(--monster-color-seashell-1);--monster-theme-control-color:var(--monster-color-seashell-6);--monster-theme-control-hover-color:var(--monster-color-seashell-6);--monster-theme-control-hover-bg-color:var(--monster-color-seashell-2);--monster-theme-control-border-width:2px;--monster-theme-control-border-style:solid;--monster-theme-control-border-radius:0;--monster-theme-control-border-color:var(--monster-color-primary-1)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-theme-control-bg-color:var(--monster-color-gray-5);--monster-theme-control-color:var(--monster-color-gray-1);--monster-theme-control-border-color:var(--monster-color-gray-3);--monster-theme-control-hover-color:var(--monster-color-gray-1);--monster-theme-control-hover-bg-color:var(--monster-color-gray-6)}}:after,:before,:root{--monster-theme-on-color:var(--monster-color-green-1);--monster-theme-on-bg-color:var(--monster-color-green-5);--monster-theme-off-color:var(--monster-color-gray-1);--monster-theme-off-bg-color:var(--monster-color-gray-4)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-theme-on-color:var(--monster-color-gray-6);--monster-theme-on-bg-color:var(--monster-color-gray-1);--monster-theme-off-color:var(--monster-color-gray-1);--monster-theme-off-bg-color:var(--monster-color-gray-5)}}:after,:before,:root{--monster-border-style:solid;--monster-border-width:3px;--monster-border-radius:0;--monster-popper-witharrrow-distance:-4px;--monster-z-index-default:0;--monster-z-index-outline:10;--monster-z-index-dropdown:200;--monster-z-index-dropdown-overlay:210;--monster-z-index-sticky:300;--monster-z-index-sticky-overlay:310;--monster-z-index-fixed:400;--monster-z-index-fixed-overlay:410;--monster-z-index-modal-backdrop:500;--monster-z-index-modal-backdrop-overlay:510;--monster-z-index-offcanvas:600;--monster-z-index-offcanvas-overlay:610;--monster-z-index-modal:700;--monster-z-index-modal-overlay:710;--monster-z-index-popover:800;--monster-z-index-popover-overlay:810;--monster-z-index-tooltip:800;--monster-z-index-tooltip-overlay:910;--monster-space-0:0;--monster-space-1:2px;--monster-space-2:4px;--monster-space-3:6px;--monster-space-4:10px;--monster-space-5:16px;--monster-space-6:26px;--monster-space-7:42px;--monster-breakpoint-0:480px;--monster-breakpoint-4:480px;--monster-breakpoint-7:768px;--monster-breakpoint-9:992px;--monster-breakpoint-12:1200px;--monster-dragger-width:2px;--monster-dragger-handle-width:4px;--monster-dragger-handle-height:50px}
28
+ :after,:before,:root{--monster-font-family:-apple-system,BlinkMacSystemFont,\"Quicksand\",\"Segoe UI\",\"Roboto\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\";--monster-font-family-monospace:\"Consolas\",\"Courier New\",\"Roboto Mono\",\"Source Code Pro\",\"Fira Mono\",monospace;--monster-color-primary-1:var(--monster-color-gray-6);--monster-color-primary-2:var(--monster-color-gray-6);--monster-color-primary-3:var(--monster-color-cinnamon-1);--monster-color-primary-4:var(--monster-color-cinnamon-1);--monster-bg-color-primary-1:var(--monster-color-gray-1);--monster-bg-color-primary-2:var(--monster-color-gray-2);--monster-bg-color-primary-3:var(--monster-color-gray-6);--monster-bg-color-primary-4:var(--monster-color-gray-4)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-primary-1:var(--monster-color-gray-1);--monster-color-primary-2:var(--monster-color-gray-1);--monster-color-primary-3:var(--monster-color-gray-6);--monster-color-primary-4:var(--monster-color-gray-6);--monster-bg-color-primary-1:var(--monster-color-gray-6);--monster-bg-color-primary-2:var(--monster-color-gray-3);--monster-bg-color-primary-3:var(--monster-color-gray-2);--monster-bg-color-primary-4:var(--monster-color-gray-1)}}:after,:before,:root{--monster-color-secondary-1:var(--monster-color-red-4);--monster-color-secondary-2:var(--monster-color-red-4);--monster-color-secondary-3:var(--monster-color-red-1);--monster-color-secondary-4:var(--monster-color-red-1);--monster-bg-color-secondary-1:var(--monster-color-gray-1);--monster-bg-color-secondary-2:var(--monster-color-red-2);--monster-bg-color-secondary-3:var(--monster-color-red-3);--monster-bg-color-secondary-4:var(--monster-color-red-6)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-secondary-1:var(--monster-color-red-1);--monster-color-secondary-2:var(--monster-color-red-1);--monster-color-secondary-3:var(--monster-color-red-6);--monster-color-secondary-4:var(--monster-color-red-4);--monster-bg-color-secondary-1:var(--monster-color-gray-6);--monster-bg-color-secondary-2:var(--monster-color-red-3);--monster-bg-color-secondary-3:var(--monster-color-red-2);--monster-bg-color-secondary-4:var(--monster-color-red-1)}}:after,:before,:root{--monster-color-tertiary-1:var(--monster-color-magenta-4);--monster-color-tertiary-2:var(--monster-color-magenta-4);--monster-color-tertiary-3:var(--monster-color-magenta-6);--monster-color-tertiary-4:var(--monster-color-magenta-1);--monster-bg-color-tertiary-1:var(--monster-color-gray-1);--monster-bg-color-tertiary-2:var(--monster-color-magenta-1);--monster-bg-color-tertiary-3:var(--monster-color-magenta-2);--monster-bg-color-tertiary-4:var(--monster-color-magenta-6)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-tertiary-1:var(--monster-color-magenta-1);--monster-color-tertiary-2:var(--monster-color-magenta-6);--monster-color-tertiary-3:var(--monster-color-magenta-4);--monster-color-tertiary-4:var(--monster-color-magenta-4);--monster-bg-color-tertiary-1:var(--monster-color-gray-6);--monster-bg-color-tertiary-2:var(--monster-color-magenta-2);--monster-bg-color-tertiary-3:var(--monster-color-magenta-1);--monster-bg-color-tertiary-4:var(--monster-color-magenta-1)}}:after,:before,:root{--monster-color-destructive-1:var(--monster-color-red-1);--monster-color-destructive-2:var(--monster-color-red-4);--monster-color-destructive-3:var(--monster-color-red-6);--monster-color-destructive-4:var(--monster-color-red-1);--monster-bg-color-destructive-1:var(--monster-color-red-4);--monster-bg-color-destructive-2:var(--monster-color-gray-1);--monster-bg-color-destructive-3:var(--monster-color-red-2);--monster-bg-color-destructive-4:var(--monster-color-red-5)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-destructive-1:var(--monster-color-red-1);--monster-color-destructive-2:var(--monster-color-red-3);--monster-color-destructive-3:var(--monster-color-red-4);--monster-color-destructive-4:var(--monster-color-red-1);--monster-bg-color-destructive-1:var(--monster-color-red-5);--monster-bg-color-destructive-2:var(--monster-color-gray-6);--monster-bg-color-destructive-3:var(--monster-color-red-1);--monster-bg-color-destructive-4:var(--monster-color-red-4)}}:after,:before,:root{--monster-color-success-1:var(--monster-color-green-1);--monster-color-success-2:var(--monster-color-green-4);--monster-color-success-3:var(--monster-color-green-6);--monster-color-success-4:var(--monster-color-green-1);--monster-bg-color-success-1:var(--monster-color-green-3);--monster-bg-color-success-2:var(--monster-color-gray-1);--monster-bg-color-success-3:var(--monster-color-green-2);--monster-bg-color-success-4:var(--monster-color-green-5)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-success-1:var(--monster-color-green-1);--monster-color-success-2:var(--monster-color-green-2);--monster-color-success-3:var(--monster-color-green-4);--monster-color-success-4:var(--monster-color-green-1);--monster-bg-color-success-1:var(--monster-color-green-5);--monster-bg-color-success-2:var(--monster-color-gray-6);--monster-bg-color-success-3:var(--monster-color-green-1);--monster-bg-color-success-4:var(--monster-color-green-3)}}:after,:before,:root{--monster-color-warning-1:var(--monster-color-orange-1);--monster-color-warning-2:var(--monster-color-orange-4);--monster-color-warning-3:var(--monster-color-orange-6);--monster-color-warning-4:var(--monster-color-orange-1);--monster-bg-color-warning-1:var(--monster-color-orange-3);--monster-bg-color-warning-2:var(--monster-color-gray-1);--monster-bg-color-warning-3:var(--monster-color-orange-2);--monster-bg-color-warning-4:var(--monster-color-orange-5)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-warning-1:var(--monster-color-orange-1);--monster-color-warning-2:var(--monster-color-orange-3);--monster-color-warning-3:var(--monster-color-orange-4);--monster-color-warning-4:var(--monster-color-orange-1);--monster-bg-color-warning-1:var(--monster-color-orange-5);--monster-bg-color-warning-2:var(--monster-color-gray-6);--monster-bg-color-warning-3:var(--monster-color-orange-1);--monster-bg-color-warning-4:var(--monster-color-orange-3)}}:after,:before,:root{--monster-color-error-1:var(--monster-color-red-1);--monster-color-error-2:var(--monster-color-red-4);--monster-color-error-3:var(--monster-color-red-6);--monster-color-error-4:var(--monster-color-red-1);--monster-bg-color-error-1:var(--monster-color-red-4);--monster-bg-color-error-2:var(--monster-color-gray-1);--monster-bg-color-error-3:var(--monster-color-red-2);--monster-bg-color-error-4:var(--monster-color-red-5)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-error-1:var(--monster-color-red-1);--monster-color-error-2:var(--monster-color-red-3);--monster-color-error-3:var(--monster-color-red-4);--monster-color-error-4:var(--monster-color-red-1);--monster-bg-color-error-1:var(--monster-color-red-5);--monster-bg-color-error-2:var(--monster-color-gray-6);--monster-bg-color-error-3:var(--monster-color-red-1);--monster-bg-color-error-4:var(--monster-color-red-4)}}:after,:before,:root{--monster-color-selection-1:var(--monster-color-gray-6);--monster-color-selection-2:var(--monster-color-gray-6);--monster-color-selection-3:var(--monster-color-gray-6);--monster-color-selection-4:var(--monster-color-gray-1);--monster-bg-color-selection-1:var(--monster-color-yellow-2);--monster-bg-color-selection-2:var(--monster-color-yellow-1);--monster-bg-color-selection-3:var(--monster-color-yellow-2);--monster-bg-color-selection-4:var(--monster-color-yellow-6)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-selection-1:var(--monster-color-gray-6);--monster-color-selection-2:var(--monster-color-gray-6);--monster-color-selection-3:var(--monster-color-gray-6);--monster-color-selection-4:var(--monster-color-gray-1);--monster-bg-color-selection-1:var(--monster-color-yellow-2);--monster-bg-color-selection-2:var(--monster-color-yellow-1);--monster-bg-color-selection-3:var(--monster-color-yellow-2);--monster-bg-color-selection-4:var(--monster-color-yellow-6)}}:after,:before,:root{--monster-color-primary-disabled-1:var(--monster-color-gray-4);--monster-color-primary-disabled-2:var(--monster-color-gray-4);--monster-color-primary-disabled-3:var(--monster-color-gray-4);--monster-color-primary-disabled-4:var(--monster-color-gray-4);--monster-bg-color-primary-disabled-1:var(--monster-color-gray-1);--monster-bg-color-primary-disabled-2:var(--monster-color-gray-2);--monster-bg-color-primary-disabled-3:var(--monster-color-gray-3);--monster-bg-color-primary-disabled-4:var(--monster-color-gray-6)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-primary-disabled-1:var(--monster-color-gray-4);--monster-color-primary-disabled-2:var(--monster-color-gray-4);--monster-color-primary-disabled-3:var(--monster-color-gray-3);--monster-color-primary-disabled-4:var(--monster-color-gray-3);--monster-bg-color-primary-disabled-1:var(--monster-color-gray-6);--monster-bg-color-primary-disabled-2:var(--monster-color-gray-3);--monster-bg-color-primary-disabled-3:var(--monster-color-gray-2);--monster-bg-color-primary-disabled-4:var(--monster-color-gray-1)}}:after,:before,:root{--monster-color-gradient-1:#833ab4;--monster-color-gradient-2:#fd1d1d;--monster-color-gradient-3:#fcb045;--monster-box-shadow-1:none;--monster-box-shadow-2:-1px 1px 10px 1px hsla(0,0%,76%,.61);--monster-text-shadow:none;--monster-theme-control-bg-color:var(--monster-color-seashell-1);--monster-theme-control-color:var(--monster-color-seashell-6);--monster-theme-control-hover-color:var(--monster-color-seashell-6);--monster-theme-control-hover-bg-color:var(--monster-color-seashell-2);--monster-theme-control-border-width:2px;--monster-theme-control-border-style:solid;--monster-theme-control-border-radius:0;--monster-theme-control-border-color:var(--monster-color-primary-1)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-theme-control-bg-color:var(--monster-color-gray-5);--monster-theme-control-color:var(--monster-color-gray-1);--monster-theme-control-border-color:var(--monster-color-gray-3);--monster-theme-control-hover-color:var(--monster-color-gray-1);--monster-theme-control-hover-bg-color:var(--monster-color-gray-6)}}:after,:before,:root{--monster-theme-on-color:var(--monster-color-green-1);--monster-theme-on-bg-color:var(--monster-color-green-5);--monster-theme-off-color:var(--monster-color-gray-1);--monster-theme-off-bg-color:var(--monster-color-gray-4)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-theme-on-color:var(--monster-color-gray-6);--monster-theme-on-bg-color:var(--monster-color-gray-1);--monster-theme-off-color:var(--monster-color-gray-1);--monster-theme-off-bg-color:var(--monster-color-gray-5)}}:after,:before,:root{--monster-border-style:solid;--monster-border-width:3px;--monster-border-radius:0;--monster-outline-width:1px;--monster-popper-witharrrow-distance:-4px;--monster-z-index-default:0;--monster-z-index-outline:10;--monster-z-index-dropdown:200;--monster-z-index-dropdown-overlay:210;--monster-z-index-sticky:300;--monster-z-index-sticky-overlay:310;--monster-z-index-fixed:400;--monster-z-index-fixed-overlay:410;--monster-z-index-modal-backdrop:500;--monster-z-index-modal-backdrop-overlay:510;--monster-z-index-offcanvas:600;--monster-z-index-offcanvas-overlay:610;--monster-z-index-modal:700;--monster-z-index-modal-overlay:710;--monster-z-index-popover:800;--monster-z-index-popover-overlay:810;--monster-z-index-tooltip:800;--monster-z-index-tooltip-overlay:910;--monster-space-0:0;--monster-space-1:2px;--monster-space-2:4px;--monster-space-3:6px;--monster-space-4:10px;--monster-space-5:16px;--monster-space-6:26px;--monster-space-7:42px;--monster-breakpoint-0:480px;--monster-breakpoint-4:480px;--monster-breakpoint-7:768px;--monster-breakpoint-9:992px;--monster-breakpoint-12:1200px;--monster-dragger-width:2px;--monster-dragger-handle-width:4px;--monster-dragger-handle-height:50px}
29
29
  }`,
30
30
  0,
31
31
  );
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright © schukai GmbH and all contributing authors, 2024. All rights reserved.
2
+ * Copyright © schukai GmbH and all contributing authors, 2025. All rights reserved.
3
3
  * Node module: @schukai/monster
4
4
  *
5
5
  * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
@@ -12,12 +12,12 @@
12
12
  * SPDX-License-Identifier: AGPL-3.0
13
13
  */
14
14
 
15
- import { instanceSymbol } from "../constants.mjs";
16
- import { Base } from "../types/base.mjs";
17
- import { validateString } from "../types/validate.mjs";
18
- import { clone } from "../util/clone.mjs";
15
+ import {instanceSymbol} from "../constants.mjs";
16
+ import {Base} from "../types/base.mjs";
17
+ import {validateString} from "../types/validate.mjs";
18
+ import {clone} from "../util/clone.mjs";
19
19
 
20
- export { Locale, parseLocale };
20
+ export {Locale, parseLocale};
21
21
 
22
22
  /**
23
23
  * @type {symbol}
@@ -69,116 +69,116 @@ const localeStringSymbol = Symbol("localeString");
69
69
  * @see https://datatracker.ietf.org/doc/html/rfc3066
70
70
  */
71
71
  class Locale extends Base {
72
- /**
73
- * @param {string} language
74
- * @param {string} [region]
75
- * @param {string} [script]
76
- * @param {string} [variants]
77
- * @param {string} [extlang]
78
- * @param {string} [privateUse]
79
- * @throws {Error} unsupported locale
80
- */
81
- constructor(language, region, script, variants, extlang, privateUse) {
82
- super();
72
+ /**
73
+ * @param {string} language
74
+ * @param {string} [region]
75
+ * @param {string} [script]
76
+ * @param {string} [variants]
77
+ * @param {string} [extlang]
78
+ * @param {string} [privateUse]
79
+ * @throws {Error} unsupported locale
80
+ */
81
+ constructor(language, region, script, variants, extlang, privateUse) {
82
+ super();
83
83
 
84
- this[propertiesSymbol] = {
85
- language: language === undefined ? undefined : validateString(language),
86
- script: script === undefined ? undefined : validateString(script),
87
- region: region === undefined ? undefined : validateString(region),
88
- variants: variants === undefined ? undefined : validateString(variants),
89
- extlang: extlang === undefined ? undefined : validateString(extlang),
90
- privateUse:
91
- privateUse === undefined ? undefined : validateString(privateUse),
92
- };
84
+ this[propertiesSymbol] = {
85
+ language: language === undefined ? undefined : validateString(language),
86
+ script: script === undefined ? undefined : validateString(script),
87
+ region: region === undefined ? undefined : validateString(region),
88
+ variants: variants === undefined ? undefined : validateString(variants),
89
+ extlang: extlang === undefined ? undefined : validateString(extlang),
90
+ privateUse:
91
+ privateUse === undefined ? undefined : validateString(privateUse),
92
+ };
93
93
 
94
- const s = [];
95
- if (language !== undefined) s.push(language);
96
- if (script !== undefined) s.push(script);
97
- if (region !== undefined) s.push(region);
98
- if (variants !== undefined) s.push(variants);
99
- if (extlang !== undefined) s.push(extlang);
100
- if (privateUse !== undefined) s.push(privateUse);
94
+ const s = [];
95
+ if (language !== undefined) s.push(language);
96
+ if (script !== undefined) s.push(script);
97
+ if (region !== undefined) s.push(region);
98
+ if (variants !== undefined) s.push(variants);
99
+ if (extlang !== undefined) s.push(extlang);
100
+ if (privateUse !== undefined) s.push(privateUse);
101
101
 
102
- if (s.length === 0) {
103
- throw new Error("unsupported locale");
104
- }
102
+ if (s.length === 0) {
103
+ throw new Error("unsupported locale");
104
+ }
105
105
 
106
- this[localeStringSymbol] = s.join("-");
107
- }
106
+ this[localeStringSymbol] = s.join("-");
107
+ }
108
108
 
109
- /**
110
- * This method is called by the `instanceof` operator.
111
- * @return {symbol}
112
- * @since 3.27.0
113
- */
114
- static get [instanceSymbol]() {
115
- return Symbol.for("@schukai/monster/i18n/locale@@instance");
116
- }
109
+ /**
110
+ * This method is called by the `instanceof` operator.
111
+ * @return {symbol}
112
+ * @since 3.27.0
113
+ */
114
+ static get [instanceSymbol]() {
115
+ return Symbol.for("@schukai/monster/i18n/locale@@instance");
116
+ }
117
117
 
118
- /**
119
- * @return {string}
120
- */
121
- get localeString() {
122
- return this[localeStringSymbol];
123
- }
118
+ /**
119
+ * @return {string}
120
+ */
121
+ get localeString() {
122
+ return this[localeStringSymbol];
123
+ }
124
124
 
125
- /**
126
- * @return {string|undefined}
127
- */
128
- get language() {
129
- return this[propertiesSymbol].language;
130
- }
125
+ /**
126
+ * @return {string|undefined}
127
+ */
128
+ get language() {
129
+ return this[propertiesSymbol].language;
130
+ }
131
131
 
132
- /**
133
- * @return {string|undefined}
134
- */
135
- get region() {
136
- return this[propertiesSymbol].region;
137
- }
132
+ /**
133
+ * @return {string|undefined}
134
+ */
135
+ get region() {
136
+ return this[propertiesSymbol].region;
137
+ }
138
138
 
139
- /**
140
- * @return {string|undefined}
141
- */
142
- get script() {
143
- return this[propertiesSymbol].script;
144
- }
139
+ /**
140
+ * @return {string|undefined}
141
+ */
142
+ get script() {
143
+ return this[propertiesSymbol].script;
144
+ }
145
145
 
146
- /**
147
- * @return {string|undefined}
148
- */
149
- get variants() {
150
- return this[propertiesSymbol].variants;
151
- }
146
+ /**
147
+ * @return {string|undefined}
148
+ */
149
+ get variants() {
150
+ return this[propertiesSymbol].variants;
151
+ }
152
152
 
153
- /**
154
- * @return {string|undefined}
155
- */
156
- get extlang() {
157
- return this[propertiesSymbol].extlang;
158
- }
153
+ /**
154
+ * @return {string|undefined}
155
+ */
156
+ get extlang() {
157
+ return this[propertiesSymbol].extlang;
158
+ }
159
159
 
160
- /**
161
- * @return {string|undefined}
162
- */
163
- get privateUse() {
164
- return this[propertiesSymbol].privateValue;
165
- }
160
+ /**
161
+ * @return {string|undefined}
162
+ */
163
+ get privateUse() {
164
+ return this[propertiesSymbol].privateValue;
165
+ }
166
166
 
167
- /**
168
- * @return {string}
169
- */
170
- toString() {
171
- return `${this.localeString}`;
172
- }
167
+ /**
168
+ * @return {string}
169
+ */
170
+ toString() {
171
+ return `${this.localeString}`;
172
+ }
173
173
 
174
- /**
175
- * The structure has the following: language, script, region, variants, extlang, privateUse
176
- *
177
- * @return {Monster.I18n.LocaleMap}
178
- */
179
- getMap() {
180
- return clone(this[propertiesSymbol]);
181
- }
174
+ /**
175
+ * The structure has the following: language, script, region, variants, extlang, privateUse
176
+ *
177
+ * @return {Monster.I18n.LocaleMap}
178
+ */
179
+ getMap() {
180
+ return clone(this[propertiesSymbol]);
181
+ }
182
182
  }
183
183
 
184
184
  /**
@@ -260,63 +260,63 @@ class Locale extends Base {
260
260
  * @throws {Error} unsupported locale
261
261
  */
262
262
  function parseLocale(locale) {
263
- locale = validateString(locale).replace(/_/g, "-");
263
+ locale = validateString(locale).replace(/_/g, "-");
264
264
 
265
- let language;
266
- let region;
267
- let variants;
268
- let parts;
269
- let script;
270
- let extlang;
271
- const regexRegular =
272
- "(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)";
273
- const regexIrregular =
274
- "(en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)";
275
- const regexGrandfathered = `(${regexIrregular}|${regexRegular})`;
276
- const regexPrivateUse = "(x(-[A-Za-z0-9]{1,8})+)";
277
- const regexSingleton = "[0-9A-WY-Za-wy-z]";
278
- const regexExtension = `(${regexSingleton}(-[A-Za-z0-9]{2,8})+)`;
279
- const regexVariant = "([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3})";
280
- const regexRegion = "([A-Za-z]{2}|[0-9]{3})";
281
- const regexScript = "([A-Za-z]{4})";
282
- const regexExtlang = "([A-Za-z]{3}(-[A-Za-z]{3}){0,2})";
283
- const regexLanguage = `(([A-Za-z]{2,3}(-${regexExtlang})?)|[A-Za-z]{4}|[A-Za-z]{5,8})`;
284
- const regexLangtag = `(${regexLanguage}(-${regexScript})?(-${regexRegion})?(-${regexVariant})*(-${regexExtension})*(-${regexPrivateUse})?)`;
285
- const regexLanguageTag = `^(${regexGrandfathered}|${regexLangtag}|${regexPrivateUse})$`;
286
- const regex = new RegExp(regexLanguageTag);
287
- let match;
265
+ let language;
266
+ let region;
267
+ let variants;
268
+ let parts;
269
+ let script;
270
+ let extlang;
271
+ const regexRegular =
272
+ "(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)";
273
+ const regexIrregular =
274
+ "(en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)";
275
+ const regexGrandfathered = `(${regexIrregular}|${regexRegular})`;
276
+ const regexPrivateUse = "(x(-[A-Za-z0-9]{1,8})+)";
277
+ const regexSingleton = "[0-9A-WY-Za-wy-z]";
278
+ const regexExtension = `(${regexSingleton}(-[A-Za-z0-9]{2,8})+)`;
279
+ const regexVariant = "([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3})";
280
+ const regexRegion = "([A-Za-z]{2}|[0-9]{3})";
281
+ const regexScript = "([A-Za-z]{4})";
282
+ const regexExtlang = "([A-Za-z]{3}(-[A-Za-z]{3}){0,2})";
283
+ const regexLanguage = `(([A-Za-z]{2,3}(-${regexExtlang})?)|[A-Za-z]{4}|[A-Za-z]{5,8})`;
284
+ const regexLangtag = `(${regexLanguage}(-${regexScript})?(-${regexRegion})?(-${regexVariant})*(-${regexExtension})*(-${regexPrivateUse})?)`;
285
+ const regexLanguageTag = `^(${regexGrandfathered}|${regexLangtag}|${regexPrivateUse})$`;
286
+ const regex = new RegExp(regexLanguageTag);
287
+ let match;
288
288
 
289
- if ((match = regex.exec(locale)) !== null) {
290
- if (match.index === regex.lastIndex) {
291
- regex.lastIndex++;
292
- }
293
- }
289
+ if ((match = regex.exec(locale)) !== null) {
290
+ if (match.index === regex.lastIndex) {
291
+ regex.lastIndex++;
292
+ }
293
+ }
294
294
 
295
- if (match === undefined || match === null) {
296
- throw new Error("unsupported locale");
297
- }
295
+ if (match === undefined || match === null) {
296
+ throw new Error("unsupported locale");
297
+ }
298
298
 
299
- if (match[6] !== undefined) {
300
- language = match[6];
299
+ if (match[6] !== undefined) {
300
+ language = match[6];
301
301
 
302
- parts = language.split("-");
303
- if (parts.length > 1) {
304
- language = parts[0];
305
- extlang = parts[1];
306
- }
307
- }
302
+ parts = language.split("-");
303
+ if (parts.length > 1) {
304
+ language = parts[0];
305
+ extlang = parts[1];
306
+ }
307
+ }
308
308
 
309
- if (match[14] !== undefined) {
310
- region = match[14];
311
- }
309
+ if (match[14] !== undefined) {
310
+ region = match[14];
311
+ }
312
312
 
313
- if (match[12] !== undefined) {
314
- script = match[12];
315
- }
313
+ if (match[12] !== undefined) {
314
+ script = match[12];
315
+ }
316
316
 
317
- if (match[16] !== undefined) {
318
- variants = match[16];
319
- }
317
+ if (match[16] !== undefined) {
318
+ variants = match[16];
319
+ }
320
320
 
321
- return new Locale(language, region, script, variants, extlang);
321
+ return new Locale(language, region, script, variants, extlang);
322
322
  }