@aquera/nile-elements 2.0.9 → 2.0.11

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 (142) hide show
  1. package/README.md +11 -0
  2. package/demo/app-shell.html +852 -0
  3. package/demo/nxtgen-classes.css +5 -5
  4. package/demo/nxtgen-dark.css +25 -25
  5. package/demo/nxtgen-properties.css +2 -2
  6. package/demo/nxtgen-utilities.css +5 -5
  7. package/demo/nxtgen.css +5 -5
  8. package/demo/utilities.css +2 -2
  9. package/demo/variables.css +2 -2
  10. package/dist/index.cjs.js +1 -1
  11. package/dist/index.esm.js +1 -1
  12. package/dist/index.js +594 -308
  13. package/dist/internal/app-shell-utility-control-styles.cjs.js +2 -0
  14. package/dist/internal/app-shell-utility-control-styles.cjs.js.map +1 -0
  15. package/dist/internal/app-shell-utility-control-styles.esm.js +16 -0
  16. package/dist/nile-app-shell/index.cjs.js +1 -1
  17. package/dist/nile-app-shell/index.esm.js +1 -1
  18. package/dist/nile-app-shell/nile-app-shell.cjs.js +1 -1
  19. package/dist/nile-app-shell/nile-app-shell.cjs.js.map +1 -1
  20. package/dist/nile-app-shell/nile-app-shell.css.cjs.js +1 -1
  21. package/dist/nile-app-shell/nile-app-shell.css.cjs.js.map +1 -1
  22. package/dist/nile-app-shell/nile-app-shell.css.esm.js +270 -92
  23. package/dist/nile-app-shell/nile-app-shell.esm.js +61 -10
  24. package/dist/nile-app-shell/shell-controller.cjs.js.map +1 -1
  25. package/dist/nile-app-shell-main/nile-app-shell-main.cjs.js.map +1 -1
  26. package/dist/nile-app-shell-nav-toggle/index.cjs.js +1 -1
  27. package/dist/nile-app-shell-nav-toggle/index.esm.js +1 -1
  28. package/dist/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.cjs.js +1 -1
  29. package/dist/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.cjs.js.map +1 -1
  30. package/dist/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.css.cjs.js +1 -1
  31. package/dist/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.css.cjs.js.map +1 -1
  32. package/dist/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.css.esm.js +7 -3
  33. package/dist/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.esm.js +3 -3
  34. package/dist/nile-app-shell-panel/index.cjs.js +1 -1
  35. package/dist/nile-app-shell-panel/index.esm.js +1 -1
  36. package/dist/nile-app-shell-panel/nile-app-shell-panel.cjs.js +1 -1
  37. package/dist/nile-app-shell-panel/nile-app-shell-panel.cjs.js.map +1 -1
  38. package/dist/nile-app-shell-panel/nile-app-shell-panel.css.cjs.js +1 -1
  39. package/dist/nile-app-shell-panel/nile-app-shell-panel.css.cjs.js.map +1 -1
  40. package/dist/nile-app-shell-panel/nile-app-shell-panel.css.esm.js +29 -7
  41. package/dist/nile-app-shell-panel/nile-app-shell-panel.esm.js +18 -5
  42. package/dist/nile-app-shell-side-nav/nile-app-shell-side-nav.cjs.js.map +1 -1
  43. package/dist/nile-app-shell-side-nav/nile-app-shell-side-nav.css.cjs.js.map +1 -1
  44. package/dist/nile-badge/nile-badge.css.cjs.js +1 -1
  45. package/dist/nile-badge/nile-badge.css.cjs.js.map +1 -1
  46. package/dist/nile-badge/nile-badge.css.esm.js +2 -2
  47. package/dist/nile-button-toggle/nile-button-toggle.css.cjs.js +1 -1
  48. package/dist/nile-button-toggle/nile-button-toggle.css.cjs.js.map +1 -1
  49. package/dist/nile-button-toggle/nile-button-toggle.css.esm.js +2 -2
  50. package/dist/nile-code-editor/nile-code-editor.cjs.js +1 -1
  51. package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
  52. package/dist/nile-code-editor/nile-code-editor.esm.js +1 -1
  53. package/dist/nile-menu-item/nile-menu-item.css.cjs.js +1 -1
  54. package/dist/nile-menu-item/nile-menu-item.css.cjs.js.map +1 -1
  55. package/dist/nile-menu-item/nile-menu-item.css.esm.js +1 -1
  56. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js +1 -1
  57. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js.map +1 -1
  58. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.esm.js +5 -2
  59. package/dist/nile-toast/nile-toast.css.cjs.js +1 -1
  60. package/dist/nile-toast/nile-toast.css.cjs.js.map +1 -1
  61. package/dist/nile-toast/nile-toast.css.esm.js +5 -5
  62. package/dist/src/internal/app-shell-utility-control-styles.d.ts +12 -0
  63. package/dist/src/internal/app-shell-utility-control-styles.js +29 -0
  64. package/dist/src/internal/app-shell-utility-control-styles.js.map +1 -0
  65. package/dist/src/nile-app-shell/nile-app-shell-regions.test.d.ts +3 -0
  66. package/dist/src/nile-app-shell/nile-app-shell-regions.test.js +206 -0
  67. package/dist/src/nile-app-shell/nile-app-shell-regions.test.js.map +1 -1
  68. package/dist/src/nile-app-shell/nile-app-shell.css.d.ts +1 -9
  69. package/dist/src/nile-app-shell/nile-app-shell.css.js +270 -99
  70. package/dist/src/nile-app-shell/nile-app-shell.css.js.map +1 -1
  71. package/dist/src/nile-app-shell/nile-app-shell.d.ts +90 -122
  72. package/dist/src/nile-app-shell/nile-app-shell.js +224 -143
  73. package/dist/src/nile-app-shell/nile-app-shell.js.map +1 -1
  74. package/dist/src/nile-app-shell/nile-app-shell.test.d.ts +3 -0
  75. package/dist/src/nile-app-shell/nile-app-shell.test.js +898 -29
  76. package/dist/src/nile-app-shell/nile-app-shell.test.js.map +1 -1
  77. package/dist/src/nile-app-shell/shell-controller.d.ts +1 -8
  78. package/dist/src/nile-app-shell/shell-controller.js +2 -14
  79. package/dist/src/nile-app-shell/shell-controller.js.map +1 -1
  80. package/dist/src/nile-app-shell-main/nile-app-shell-main.d.ts +2 -6
  81. package/dist/src/nile-app-shell-main/nile-app-shell-main.js +2 -6
  82. package/dist/src/nile-app-shell-main/nile-app-shell-main.js.map +1 -1
  83. package/dist/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.css.d.ts +1 -4
  84. package/dist/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.css.js +7 -5
  85. package/dist/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.css.js.map +1 -1
  86. package/dist/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.d.ts +4 -8
  87. package/dist/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.js +5 -6
  88. package/dist/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.js.map +1 -1
  89. package/dist/src/nile-app-shell-panel/nile-app-shell-panel.css.js +28 -5
  90. package/dist/src/nile-app-shell-panel/nile-app-shell-panel.css.js.map +1 -1
  91. package/dist/src/nile-app-shell-panel/nile-app-shell-panel.d.ts +18 -13
  92. package/dist/src/nile-app-shell-panel/nile-app-shell-panel.js +45 -16
  93. package/dist/src/nile-app-shell-panel/nile-app-shell-panel.js.map +1 -1
  94. package/dist/src/nile-app-shell-side-nav/nile-app-shell-side-nav.css.d.ts +1 -4
  95. package/dist/src/nile-app-shell-side-nav/nile-app-shell-side-nav.css.js +1 -4
  96. package/dist/src/nile-app-shell-side-nav/nile-app-shell-side-nav.css.js.map +1 -1
  97. package/dist/src/nile-app-shell-side-nav/nile-app-shell-side-nav.d.ts +4 -12
  98. package/dist/src/nile-app-shell-side-nav/nile-app-shell-side-nav.js +4 -12
  99. package/dist/src/nile-app-shell-side-nav/nile-app-shell-side-nav.js.map +1 -1
  100. package/dist/src/nile-badge/nile-badge.css.js +2 -2
  101. package/dist/src/nile-badge/nile-badge.css.js.map +1 -1
  102. package/dist/src/nile-button-toggle/nile-button-toggle.css.js +2 -2
  103. package/dist/src/nile-button-toggle/nile-button-toggle.css.js.map +1 -1
  104. package/dist/src/nile-code-editor/nile-code-editor.d.ts +1 -1
  105. package/dist/src/nile-code-editor/nile-code-editor.js +2 -2
  106. package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
  107. package/dist/src/nile-menu-item/nile-menu-item.css.js +1 -1
  108. package/dist/src/nile-menu-item/nile-menu-item.css.js.map +1 -1
  109. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +5 -2
  110. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js.map +1 -1
  111. package/dist/src/nile-toast/nile-toast.css.js +5 -5
  112. package/dist/src/nile-toast/nile-toast.css.js.map +1 -1
  113. package/dist/src/version.js +1 -1
  114. package/dist/src/version.js.map +1 -1
  115. package/dist/tsconfig.tsbuildinfo +1 -1
  116. package/dist/version.cjs.js +1 -1
  117. package/dist/version.cjs.js.map +1 -1
  118. package/dist/version.esm.js +1 -1
  119. package/package.json +1 -1
  120. package/plop-templates/lit/lit.test.ts.hbs +22 -0
  121. package/plop-templates/lit/lit.ts.hbs +10 -5
  122. package/plopfile.js +12 -0
  123. package/src/internal/app-shell-utility-control-styles.ts +30 -0
  124. package/src/nile-app-shell/nile-app-shell-regions.test.ts +248 -0
  125. package/src/nile-app-shell/nile-app-shell.css.ts +270 -99
  126. package/src/nile-app-shell/nile-app-shell.test.ts +1120 -29
  127. package/src/nile-app-shell/nile-app-shell.ts +241 -148
  128. package/src/nile-app-shell/shell-controller.ts +2 -14
  129. package/src/nile-app-shell-main/nile-app-shell-main.ts +2 -6
  130. package/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.css.ts +7 -5
  131. package/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.ts +7 -11
  132. package/src/nile-app-shell-panel/nile-app-shell-panel.css.ts +28 -5
  133. package/src/nile-app-shell-panel/nile-app-shell-panel.ts +44 -16
  134. package/src/nile-app-shell-side-nav/nile-app-shell-side-nav.css.ts +1 -4
  135. package/src/nile-app-shell-side-nav/nile-app-shell-side-nav.ts +4 -12
  136. package/src/nile-badge/nile-badge.css.ts +2 -2
  137. package/src/nile-button-toggle/nile-button-toggle.css.ts +2 -2
  138. package/src/nile-code-editor/nile-code-editor.ts +2 -2
  139. package/src/nile-menu-item/nile-menu-item.css.ts +1 -1
  140. package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +5 -2
  141. package/src/nile-toast/nile-toast.css.ts +5 -5
  142. package/vscode-html-custom-data.json +114 -37
@@ -1 +1 @@
1
- {"version":3,"file":"nile-badge.css.js","sourceRoot":"","sources":["../../../src/nile-badge/nile-badge.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgMxB,CAAC;AACF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * Tag CSS\n */\nexport const styles = css`\n :host {\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n .badge {\n padding: var(--nile-spacing-xxs, var(--ng-spacing-xxs)) var(--nile-spacing-sm, var(--ng-spacing-md-alt));\n border-radius: var(--nile-radius-radius-xs, var(--ng-radius-full));\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n height: var(--nile-height-22px, var(--ng-height-24px));\n }\n\n .badge__content {\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-sm));\n font-style: normal;\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));\n line-height: var(--nile-type-scale-5, var(--ng-line-height-text-sm));\n letter-spacing: 0.2px;\n }\n\n .badge--primary {\n background: var(--nile-badge-color-background-primary, var(--ng-componentcolors-utility-brand-50));\n color: var(--nile-badge-color-font-primary, var(--ng-componentcolors-utility-brand-700));\n }\n\n .badge--normal {\n background: var(--nile-badge-color-background-normal, var(--ng-componentcolors-utility-gray-50));\n }\n\n .badge--info {\n background: var(--nile-badge-color-background-info, var(--ng-componentcolors-utility-blue-light-50));\n }\n\n /* for v2 */\n\n .badge--pill-outline {\n background: transparent ;\n }\n .badge--pink {\n color: var(--nile-badge-color-font-pink, var(--ng-componentcolors-utility-pink-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-pink, var(--ng-componentcolors-utility-pink-200));\n background: var(--nile-badge-color-background-pink, var(--ng-componentcolors-utility-pink-50));\n }\n\n .badge--orange {\n color: var(--nile-badge-color-font-orange, var(--ng-componentcolors-utility-orange-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-orange, var(--ng-componentcolors-utility-orange-dark-200));\n background: var(--nile-badge-color-background-orange, var(--ng-componentcolors-utility-orange-dark-50));\n }\n\n .badge--purple {\n color: var(--nile-badge-color-font-purple, var(--ng-componentcolors-utility-purple-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-purple, var(--ng-componentcolors-utility-purple-200));\n background: var(--nile-badge-color-background-purple, var(--ng-componentcolors-utility-purple-50));\n }\n\n .badge--indigo {\n color: var(--nile-badge-color-font-indigo, var(--ng-componentcolors-utility-indigo-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-indigo, var(--ng-componentcolors-utility-indigo-200));\n background: var(--nile-badge-color-background-indigo, var(--ng-componentcolors-utility-indigo-50));\n }\n\n .badge--blue {\n color: var(--nile-badge-color-font-blue, var(--ng-componentcolors-utility-blue-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-blue, var(--ng-componentcolors-utility-blue-200));\n background: var(--nile-badge-color-background-blue, var(--ng-componentcolors-utility-blue-50));\n }\n .badge--blue-light {\n color:var(--nile-badge-color-font-bluelight, var(--ng-componentcolors-utility-blue-light-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-bluelight, var(--ng-componentcolors-utility-blue-light-200));\n background: var(--nile-badge-color-background-bluelight, var(--ng-componentcolors-utility-blue-light-50));\n }\n\n .badge--gray-blue {\n color: var(--nile-badge-color-font-grayblue, var(--ng-componentcolors-utility-gray-blue-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-grayblue, var(--ng-componentcolors-utility-gray-blue-200));\n background: var(--nile-badge-color-background-grayblue, var(--ng-componentcolors-utility-gray-blue-50));\n }\n\n .badge--success {\n color: var(--nile-badge-color-font-success, var(--ng-componentcolors-utility-success-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-success, var(--ng-componentcolors-utility-success-200));\n background: var(--nile-badge-color-background-success, var(--ng-componentcolors-utility-success-50));\n }\n .badge--warning {\n color: var(--nile-badge-color-font-warning, var(--ng-componentcolors-utility-warning-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-warning, var(--ng-componentcolors-utility-warning-200));\n background: var(--nile-badge-color-background-warning, var(--ng-componentcolors-utility-warning-50));\n }\n\n .badge--error {\n color: var(--nile-badge-color-font-error, var(--ng-componentcolors-utility-error-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-error, var(--ng-componentcolors-utility-error-200));\n background: var(--nile-badge-color-background-error, var(--ng-componentcolors-utility-error-50));\n }\n\n .badge--brand {\n color: var(--nile-badge-color-font-brand, var(--ng-componentcolors-utility-brand-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-brand, var(--ng-componentcolors-utility-brand-200));\n background: var(--nile-badge-color-background-brand, var(--ng-componentcolors-utility-brand-50));\n }\n\n .badge--gray {\n color: var(--nile-badge-color-font-gray, var(--ng-componentcolors-utility-gray-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-gray, var(--ng-componentcolors-utility-gray-200));\n background: var(--nile-badge-color-background-gray, var(--ng-componentcolors-utility-gray-50));\n }\n\n .badge--pink.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-pink, var(--ng-componentcolors-utility-pink-200));\n }\n\n .badge--orange.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-orange, var(--ng-componentcolors-utility-orange-dark-200));\n }\n\n .badge--purple.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-purple, var(--ng-componentcolors-utility-purple-200));\n }\n\n .badge--indigo.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-indigo, var(--ng-componentcolors-utility-indigo-200));\n }\n\n .badge--blue.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-blue, var(--ng-componentcolors-utility-blue-200));\n }\n\n .badge--blue-light.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-bluelight, var(--ng-componentcolors-utility-blue-light-200));\n }\n\n .badge--gray-blue.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-gray, var(--ng-componentcolors-utility-gray-blue-200));\n }\n\n .badge--success.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-success, var(--ng-componentcolors-utility-success-200));\n }\n\n .badge--warning.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-warning, var(--ng-componentcolors-utility-warning-200));\n }\n\n .badge--error.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-error, var(--ng-componentcolors-utility-error-200));\n }\n\n .badge--brand.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-brand, var(--ng-componentcolors-utility-brand-200));\n }\n\n .badge--gray.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-gray, var(--ng-componentcolors-utility-gray-200));\n }\n\n\n\n .badge--rounded {\n padding: var(--nile-spacing-xxs, var(--ng-spacing-xxs)) var(--nile-spacing-md, var(--ng-spacing-md-alt));\n border-radius: var(--nile-radius-full, var(--ng-radius-full));\n }\n`;\nexport default [styles];\n\n"]}
1
+ {"version":3,"file":"nile-badge.css.js","sourceRoot":"","sources":["../../../src/nile-badge/nile-badge.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgMxB,CAAC;AACF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * Tag CSS\n */\nexport const styles = css`\n :host {\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n .badge {\n padding: var(--nile-spacing-xxs, var(--ng-spacing-xxs)) var(--nile-spacing-sm, var(--ng-spacing-md-alt));\n border-radius: var(--nile-radius-radius-xs, var(--ng-radius-full));\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n height: var(--nile-height-22px, var(--ng-height-24px));\n }\n\n .badge__content {\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-sm));\n font-style: normal;\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));\n line-height: var(--nile-type-scale-5, var(--ng-line-height-text-sm));\n letter-spacing: 0.2px;\n }\n\n .badge--primary {\n background: var(--nile-badge-color-background-primary, var(--ng-componentcolors-utility-brand-50));\n color: var(--nile-badge-color-font-primary, var(--ng-componentcolors-utility-brand-700));\n }\n\n .badge--normal {\n background: var(--nile-badge-color-background-normal, var(--ng-componentcolors-utility-gray-50));\n }\n\n .badge--info {\n background: var(--nile-badge-color-background-info, var(--ng-componentcolors-utility-blue-light-50));\n }\n\n /* for v2 */\n\n .badge--pill-outline {\n background: transparent ;\n }\n .badge--pink {\n color: var(--nile-badge-color-font-pink, var(--ng-componentcolors-utility-pink-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-pink, var(--ng-componentcolors-utility-pink-200));\n background: var(--nile-badge-color-background-pink, var(--ng-componentcolors-utility-pink-50));\n }\n\n .badge--orange {\n color: var(--nile-badge-color-font-orange, var(--ng-componentcolors-utility-orange-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-orange, var(--ng-componentcolors-utility-orange-dark-200));\n background: var(--nile-badge-color-background-orange, var(--ng-componentcolors-utility-orange-dark-50));\n }\n\n .badge--purple {\n color: var(--nile-badge-color-font-purple, var(--ng-componentcolors-utility-purple-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-purple, var(--ng-componentcolors-utility-purple-200));\n background: var(--nile-badge-color-background-purple, var(--ng-componentcolors-utility-purple-50));\n }\n\n .badge--indigo {\n color: var(--nile-badge-color-font-indigo, var(--ng-componentcolors-utility-indigo-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-indigo, var(--ng-componentcolors-utility-indigo-200));\n background: var(--nile-badge-color-background-indigo, var(--ng-componentcolors-utility-indigo-50));\n }\n\n .badge--blue {\n color: var(--nile-badge-color-font-blue, var(--ng-componentcolors-utility-blue-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-blue, var(--ng-componentcolors-utility-blue-200));\n background: var(--nile-badge-color-background-blue, var(--ng-componentcolors-utility-blue-50));\n }\n .badge--blue-light {\n color:var(--nile-badge-color-font-bluelight, var(--ng-componentcolors-utility-blue-light-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-bluelight, var(--ng-componentcolors-utility-blue-light-200));\n background: var(--nile-badge-color-background-bluelight, var(--ng-componentcolors-utility-blue-light-50));\n }\n\n .badge--gray-blue {\n color: var(--nile-badge-color-font-grayblue, var(--ng-componentcolors-utility-gray-blue-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-grayblue, var(--ng-componentcolors-utility-gray-blue-200));\n background: var(--nile-badge-color-background-grayblue, var(--ng-componentcolors-utility-gray-blue-50));\n }\n\n .badge--success {\n color: var(--nile-badge-color-font-success, var(--ng-componentcolors-utility-success-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-success, var(--ng-componentcolors-utility-success-200));\n background: var(--nile-badge-color-background-success, var(--ng-componentcolors-utility-success-50));\n }\n .badge--warning {\n color: var(--nile-badge-color-font-warning, var(--ng-componentcolors-utility-warning-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-warning, var(--ng-componentcolors-utility-warning-200));\n background: var(--nile-badge-color-background-warning, var(--ng-componentcolors-utility-warning-50));\n }\n\n .badge--error {\n color: var(--nile-badge-color-font-error, var(--ng-componentcolors-utility-error-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-error, var(--ng-componentcolors-utility-error-200));\n background: var(--nile-badge-color-background-error, var(--ng-componentcolors-utility-error-50));\n }\n\n .badge--brand {\n color: var(--nile-badge-color-font-brand, var(--ng-componentcolors-utility-brand-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-brand, var(--ng-componentcolors-utility-brand-200));\n background: var(--nile-badge-color-background-brand, var(--ng-componentcolors-utility-brand-50));\n }\n\n .badge--gray {\n color: var(--nile-badge-color-font-gray, var(--ng-componentcolors-utility-gray-700));\n border-width: var(--nile-badge-color-border-width, var(--ng-border-width-1));\n border-style: solid;\n border-color: var(--nile-badge-color-border-color-gray, var(--ng-componentcolors-utility-gray-300));\n background: var(--nile-badge-color-background-gray, var(--ng-componentcolors-utility-gray-50));\n }\n\n .badge--pink.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-pink, var(--ng-componentcolors-utility-pink-200));\n }\n\n .badge--orange.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-orange, var(--ng-componentcolors-utility-orange-dark-200));\n }\n\n .badge--purple.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-purple, var(--ng-componentcolors-utility-purple-200));\n }\n\n .badge--indigo.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-indigo, var(--ng-componentcolors-utility-indigo-200));\n }\n\n .badge--blue.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-blue, var(--ng-componentcolors-utility-blue-200));\n }\n\n .badge--blue-light.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-bluelight, var(--ng-componentcolors-utility-blue-light-200));\n }\n\n .badge--gray-blue.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-gray, var(--ng-componentcolors-utility-gray-blue-200));\n }\n\n .badge--success.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-success, var(--ng-componentcolors-utility-success-200));\n }\n\n .badge--warning.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-warning, var(--ng-componentcolors-utility-warning-200));\n }\n\n .badge--error.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-error, var(--ng-componentcolors-utility-error-200));\n }\n\n .badge--brand.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-brand, var(--ng-componentcolors-utility-brand-200));\n }\n\n .badge--gray.badge--pill-outline {\n border: var(--nile-badge-color-border-width-pill-outline, var(--ng-border-width-1)) solid var(--nile-badge-color-pill-outline-gray, var(--ng-componentcolors-utility-gray-300));\n }\n\n\n\n .badge--rounded {\n padding: var(--nile-spacing-xxs, var(--ng-spacing-xxs)) var(--nile-spacing-md, var(--ng-spacing-md-alt));\n border-radius: var(--nile-radius-full, var(--ng-radius-full));\n }\n`;\nexport default [styles];\n\n"]}
@@ -72,12 +72,12 @@ export const styles = css `
72
72
 
73
73
  .nile-button-toggle__active {
74
74
  background-color: var( --nile-colors-neutral-500, var(--ng-colors-bg-brand-primary) );
75
- color: var(--nile-colors-dark-900, var(--ng-colors-bg-brand-solid));
75
+ color: var(--nile-colors-dark-900, var(--ng-colors-text-brand-primary-900));
76
76
  }
77
77
 
78
78
  .nile-button-toggle__active:hover {
79
79
  background-color: var(--nile-colors-neutral-500, var(--ng-colors-bg-brand-primary));
80
- color: var(--nile-colors-dark-900, var(--ng-colors-bg-brand-solid));
80
+ color: var(--nile-colors-dark-900, var(--ng-colors-text-brand-primary-900));
81
81
  }
82
82
 
83
83
  .nile-button-toggle__disabled {
@@ -1 +1 @@
1
- {"version":3,"file":"nile-button-toggle.css.js","sourceRoot":"","sources":["../../../src/nile-button-toggle/nile-button-toggle.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2ExB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * ButtonToggle CSS\n */\nexport const styles = css`\n :host {\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n .nile-button-toggle {\n display: flex;\n padding: var(--nile-spacing-sm, var(--ng-spacing-md))\n var(--nile-spacing-xl, var(--ng-spacing-xl))\n var(--nile-spacing-sm, var(--ng-spacing-md))\n var(--nile-spacing-14px, var(--ng-spacing-xl));\n border: 1px solid var(--nile-colors-neutral-500, var(--ng-colors-border-primary));\n cursor: pointer;\n border-radius: var(--nile-radius-radius-xs, var(--ng-radius-md));\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-semibold));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n text-align: center;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n line-height: var(--nile-line-height-xsmall, var(--ng-line-height-text-sm));\n letter-spacing: 0.2px;\n justify-content: center;\n align-items: center;\n gap: var(--nile-spacing-md, var(--ng-spacing-md));\n height: 40px;\n box-sizing: border-box;\n }\n\n .nile-button-toggle:hover {\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary-hover));\n }\n\n .nile-button-toggle:active {\n background: var(--nile-colors-neutral-400, var(--ng-colors-bg-primary-hover));\n }\n\n .nile-button-toggle__initial {\n border-radius: \n var(--nile-radius-radius-xs, var(--ng-radius-md)) \n var(--nile-radius-radius-none, var(--ng-radius-none)) \n var(--nile-radius-radius-none, var(--ng-radius-none)) \n var(--nile-radius-radius-xs, var(--ng-radius-md));\n }\n\n .nile-button-toggle__end {\n border-radius: \n var(--nile-radius-radius-none, var(--ng-radius-none))\n var(--nile-radius-radius-xs, var(--ng-radius-md))\n var(--nile-radius-radius-xs, var(--ng-radius-md))\n var(--nile-radius-radius-none, var(--ng-radius-none));\n border-left: var(--nile-radius-radius-none, var(--ng-radius-none));\n }\n\n .nile-button-toggle__middle {\n border-width: 1px 1px 1px 0;\n border-style: solid;\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-primary));\n border-radius: var(--nile-radius-radius-none, var(--ng-radius-none));\n }\n\n .nile-button-toggle__active {\n background-color: var( --nile-colors-neutral-500, var(--ng-colors-bg-brand-primary) );\n color: var(--nile-colors-dark-900, var(--ng-colors-bg-brand-solid));\n }\n\n .nile-button-toggle__active:hover {\n background-color: var(--nile-colors-neutral-500, var(--ng-colors-bg-brand-primary));\n color: var(--nile-colors-dark-900, var(--ng-colors-bg-brand-solid));\n }\n\n .nile-button-toggle__disabled {\n cursor: not-allowed;\n }\n`;\n\nexport default [styles];\n"]}
1
+ {"version":3,"file":"nile-button-toggle.css.js","sourceRoot":"","sources":["../../../src/nile-button-toggle/nile-button-toggle.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2ExB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * ButtonToggle CSS\n */\nexport const styles = css`\n :host {\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n .nile-button-toggle {\n display: flex;\n padding: var(--nile-spacing-sm, var(--ng-spacing-md))\n var(--nile-spacing-xl, var(--ng-spacing-xl))\n var(--nile-spacing-sm, var(--ng-spacing-md))\n var(--nile-spacing-14px, var(--ng-spacing-xl));\n border: 1px solid var(--nile-colors-neutral-500, var(--ng-colors-border-primary));\n cursor: pointer;\n border-radius: var(--nile-radius-radius-xs, var(--ng-radius-md));\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-semibold));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n text-align: center;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n line-height: var(--nile-line-height-xsmall, var(--ng-line-height-text-sm));\n letter-spacing: 0.2px;\n justify-content: center;\n align-items: center;\n gap: var(--nile-spacing-md, var(--ng-spacing-md));\n height: 40px;\n box-sizing: border-box;\n }\n\n .nile-button-toggle:hover {\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary-hover));\n }\n\n .nile-button-toggle:active {\n background: var(--nile-colors-neutral-400, var(--ng-colors-bg-primary-hover));\n }\n\n .nile-button-toggle__initial {\n border-radius: \n var(--nile-radius-radius-xs, var(--ng-radius-md)) \n var(--nile-radius-radius-none, var(--ng-radius-none)) \n var(--nile-radius-radius-none, var(--ng-radius-none)) \n var(--nile-radius-radius-xs, var(--ng-radius-md));\n }\n\n .nile-button-toggle__end {\n border-radius: \n var(--nile-radius-radius-none, var(--ng-radius-none))\n var(--nile-radius-radius-xs, var(--ng-radius-md))\n var(--nile-radius-radius-xs, var(--ng-radius-md))\n var(--nile-radius-radius-none, var(--ng-radius-none));\n border-left: var(--nile-radius-radius-none, var(--ng-radius-none));\n }\n\n .nile-button-toggle__middle {\n border-width: 1px 1px 1px 0;\n border-style: solid;\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-primary));\n border-radius: var(--nile-radius-radius-none, var(--ng-radius-none));\n }\n\n .nile-button-toggle__active {\n background-color: var( --nile-colors-neutral-500, var(--ng-colors-bg-brand-primary) );\n color: var(--nile-colors-dark-900, var(--ng-colors-text-brand-primary-900));\n }\n\n .nile-button-toggle__active:hover {\n background-color: var(--nile-colors-neutral-500, var(--ng-colors-bg-brand-primary));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-brand-primary-900));\n }\n\n .nile-button-toggle__disabled {\n cursor: not-allowed;\n }\n`;\n\nexport default [styles];\n"]}
@@ -138,7 +138,7 @@ export declare class NileCodeEditor extends NileElement {
138
138
  * paints a dark editor theme over a light page.
139
139
  */
140
140
  private isDarkTheme;
141
- /** Applied in dark only so light is untouched.*/
141
+ /** One Dark in dark mode; light keeps CodeMirror's own active-line highlight. */
142
142
  getDarkThemeExtension(): Extension;
143
143
  getDefaultSyntaxHighlightingExtension(): Extension;
144
144
  getCustomThemeExtension(): Extension;
@@ -567,9 +567,9 @@ let NileCodeEditor = class NileCodeEditor extends NileElement {
567
567
  // Rec. 601 luma; the surface is dark if the page background is dark.
568
568
  return (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000 < 128;
569
569
  }
570
- /** Applied in dark only so light is untouched.*/
570
+ /** One Dark in dark mode; light keeps CodeMirror's own active-line highlight. */
571
571
  getDarkThemeExtension() {
572
- return this.isDarkTheme() ? [oneDarkTheme, highlightActiveLine()] : [];
572
+ return [highlightActiveLine(), ...(this.isDarkTheme() ? [oneDarkTheme] : [])];
573
573
  }
574
574
  getDefaultSyntaxHighlightingExtension() {
575
575
  if (this.disableSyntaxHighlighting)
@@ -1 +1 @@
1
- {"version":3,"file":"nile-code-editor.js","sourceRoot":"","sources":["../../../src/nile-code-editor/nile-code-editor.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n html,\n CSSResultArray,\n TemplateResult,\n PropertyValueMap,\n} from 'lit';\n\nimport { customElement, query, property } from 'lit/decorators.js';\nimport { styles } from './nile-code-editor.css';\nimport { EditorView } from 'codemirror';\nimport { ViewUpdate, placeholder, tooltips, highlightActiveLine } from '@codemirror/view';\nimport { \n Compartment,\n EditorState,\n Extension\n} from '@codemirror/state';\nimport { StyleSpec } from 'style-mod';\nimport {\n syntaxHighlighting,\n defaultHighlightStyle,\n} from '@codemirror/language';\n\nimport { lineNumbers } from '@codemirror/view';\nimport {\n javascript,\n javascriptLanguage,\n} from '@codemirror/lang-javascript';\nimport { sql } from '@codemirror/lang-sql';\nimport { json } from '@codemirror/lang-json';\nimport { html as htmlLang } from '@codemirror/lang-html';\nimport { autocompletion,acceptCompletion, closeCompletion,CompletionContext,CompletionResult, completionStatus } from '@codemirror/autocomplete';\nimport NileElement from '../internal/nile-element';\nimport { basicSetup } from './extensionSetup';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { Theme as DefaultTheme, customisedThemeCss, fontFamily, readOnlyTheme, oneDarkTheme, oneDarkHighlightStyle } from './theme';\nimport { keymap } from '@codemirror/view';\n\n// Choose the appropriate mode for your use case\n\n/**\n * Nile icon component.\n *\n * @tag nile-code-editor\n *\n */\n@customElement('nile-code-editor')\nexport class NileCodeEditor extends NileElement {\n \n @query('.code__editor__container') codeEditor: HTMLInputElement;\n\n @property({ type: String, reflect: true , attribute: true }) value = '';\n\n @property({ type: String, reflect: true , attribute: true }) expandIcon = \"var(--nile-icon-expand-2, var(--ng-icon-expand-06))\";\n\n @property({ type: String, reflect: true , attribute: true }) placeholder = \"\";\n\n @property({ type: Object, reflect: true , attribute: true }) customAutoCompletions: object | any = {};\n\n @property({ type: Array, reflect: true , attribute: true }) customCompletionsPaths: string[] = [];\n\n @property({ type: String, reflect: true , attribute: true}) language: 'javascript' | 'sql' | 'json' | 'html' = 'javascript';\n\n @property({ type: String, reflect: true , attribute: 'error-message' }) errorMessage: string = '';\n\n @property({ type: Boolean, reflect: true , attribute: true }) error: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) enableSearch: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) noborder: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) multiline: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) enableFoldGutters: boolean = false;\n \n @property({ type: Boolean, reflect: true , attribute: true }) allowVariableInCustomSuggestion: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) lineNumbers: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: false }) disableSyntaxHighlighting: boolean = false;\n\n @property({ type: Object, attribute: false }) customThemeCSS: object | null = customisedThemeCss;\n\n @property({ type: Boolean, reflect: true , attribute: true }) lineNumbersMultiline: boolean = true;\n\n @property({ type: Boolean, reflect: true , attribute: true }) hasScroller: boolean = true;\n\n @property({ type: Boolean, reflect: true , attribute: true }) expandable: boolean = true;\n\n @property({ type: Boolean, reflect: true , attribute: true}) readonly: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true}) disabled: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true}) debounce: boolean = false;\n\n @property({ type: Number, reflect: true , attribute: true}) debounceTimeout: number = 200;\n\n @property({ type: Boolean, reflect: true , attribute: true}) aboveCursor: boolean = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) tabCompletion: boolean = true;\n\n @property({ type: Boolean, reflect: true, attribute: true }) defaultFont: boolean = false;\n\n @property({ type: Object, attribute: false }) autoCompleteStyle: { width?: string; multiline?: boolean } | undefined = undefined;\n\n @property({ type: Boolean, reflect: true, attribute: true }) hideReadOnlyCursor: boolean = false; \n\n public view: EditorView;\n public viewState:EditorState;\n private timeOut: any = null;\n private resizeObserver?: ResizeObserver;\n\n // Compartments for initialiazing and switching extensions\n private lineNumbersComp = new Compartment();\n private restrictSingleLineComp = new Compartment();\n private readOnlyComp = new Compartment();\n private customCompletionComp = new Compartment();\n private placeholderComp = new Compartment();\n private defaultSyntaxHighlightingComp = new Compartment();\n private themeComp = new Compartment();\n private autoCompletionComp = new Compartment();\n private autoCompleteStyleComp = new Compartment();\n private darkThemeComp = new Compartment();\n\n private isSpacePressed:boolean = false;\n\n // Swaps the One Dark theme in and out when the app switches between light and dark.\n private themeObserver?: MutationObserver;\n private colorSchemeQuery?: MediaQueryList;\n private onThemeChange = () => {\n this.view?.dispatch({\n effects: [\n this.darkThemeComp.reconfigure(this.getDarkThemeExtension()),\n this.defaultSyntaxHighlightingComp.reconfigure(this.getDefaultSyntaxHighlightingExtension()),\n ]\n });\n };\n /**\n * The styles for CodeEditor\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.themeObserver = new MutationObserver(this.onThemeChange);\n this.themeObserver.observe(document.documentElement, { attributes: true, attributeFilter: ['data-theme'] });\n this.colorSchemeQuery = window.matchMedia?.('(prefers-color-scheme: dark)');\n this.colorSchemeQuery?.addEventListener('change', this.onThemeChange);\n this.emit('nile-init',undefined,false);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.resizeObserver?.disconnect();\n this.themeObserver?.disconnect();\n this.colorSchemeQuery?.removeEventListener('change', this.onThemeChange);\n this.view.destroy()\n this.emit('nile-destroy',undefined,false);\n }\n\n firstUpdated() {\n this.createNewView()\n \n if (this.autoCompleteStyle?.width) {\n this.resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n const width = entry.contentRect.width;\n this.updateAutocompleteWidth(width);\n }\n });\n this.resizeObserver.observe(this.codeEditor);\n }\n \n this.emit('nile-after-init',{ \n codeMirrorInstance: this.view, \n createNewView: this.createNewView, \n insertAtCursor: this.insertBetweenCode \n }, false )\n }\n\n getTabCompletionKeymap() {\n return this.tabCompletion\n ? keymap.of([\n {\n key: 'Tab',\n run: acceptCompletion,\n }\n ])\n : [];\n }\n\n protected updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void{\n super.updated(changedProperties);\n if (changedProperties.has('value') && this.view.state.doc.toString()!=this.value) {\n // Editor has already been initialized, update its state\n this.singleLineMultiLineToggle();\n }\n if (changedProperties.has('multiline')) {\n this.view.dispatch({\n effects: [\n this.lineNumbersComp.reconfigure(this.getLineNumbersExension()),\n this.restrictSingleLineComp.reconfigure(this.getSingleLineExtension())\n ],\n })\n this.singleLineMultiLineToggle();\n }\n if (changedProperties.has('readonly')) {\n this.view.dispatch({ \n effects: [\n this.readOnlyComp.reconfigure(this.getReadOnlyExtension()),\n ]\n })\n }\n if (changedProperties.has('disabled') && this.view) {\n this.view.dispatch({ \n effects: [\n this.readOnlyComp.reconfigure(this.getReadOnlyExtension()),\n ]\n })\n }\n if (changedProperties.has('aboveCursor')) {\n this.view.dispatch({\n effects: [\n this.autoCompletionComp.reconfigure(\n autocompletion({ aboveCursor: this.aboveCursor })\n )\n ]\n });\n } \n if (changedProperties.has('placeholder')) {\n this.view.dispatch({ \n effects: [\n this.placeholderComp.reconfigure(this.getPlaceholderExtension()),\n ]\n })\n }\n if (changedProperties.has('lineNumbers') || changedProperties.has('lineNumbersMultiline')) {\n this.view.dispatch({ \n effects: [\n this.lineNumbersComp.reconfigure(this.getLineNumbersExension()),\n ]\n })\n }\n if(changedProperties.has('customAutoCompletions') || changedProperties.has('customCompletionsPaths')){\n this.view.dispatch({ \n effects: [\n this.customCompletionComp.reconfigure(javascriptLanguage.data.of({\n autocomplete: this.customAutocomplete\n }))\n ]\n })\n }\n if(changedProperties.has('disableSyntaxHighlighting')){\n this.view.dispatch({ \n effects: [\n this.defaultSyntaxHighlightingComp.reconfigure(this.getDefaultSyntaxHighlightingExtension())\n ]\n })\n }\n if(changedProperties.has('customThemeCSS')){\n this.view.dispatch({ \n effects: [\n this.themeComp.reconfigure(this.getCustomThemeExtension())\n ]\n })\n }\n if(changedProperties.has('autoCompleteStyle') && this.view){\n if (this.autoCompleteStyle?.width) {\n if (!this.resizeObserver) {\n this.resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n const width = entry.contentRect.width;\n this.updateAutocompleteWidth(width);\n }\n });\n this.resizeObserver.observe(this.codeEditor);\n }\n } else {\n this.resizeObserver?.disconnect();\n this.resizeObserver = undefined;\n }\n \n this.view.dispatch({ \n effects: [\n this.autoCompleteStyleComp.reconfigure(this.getAutoCompleteStyleExtension())\n ]\n })\n }\n }\n\n public render(): TemplateResult {\n const hasErrorMessage = !!this.errorMessage;\n const hasError = !!this.error;\n const noborder = !!this.noborder;\n const noScrollbar = !this.hasScroller\n return html`<div\n part=\"code-editor-base\"\n class=${classMap({\n 'code__editor__container': true,\n 'noborder': noborder,\n 'error': hasError || hasErrorMessage,\n 'code__editor__singleline': !this.multiline,\n 'no-scroller': noScrollbar,\n 'disabled': this.disabled\n })}\n tabindex=${this.disabled ? '-1' : '0'}\n >\n ${this.expandable && !this.disabled\n ? html` \n <div @click=\"${(e: CustomEvent) => this.emit('nile-expand')}\" class=\"expand__icon__container\">\n <nile-glyph\n name=\"${this.expandIcon}\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-fill))\"\n size=\"16\"\n color=\"var(--nile-colors-dark-900, var(--ng-colors-fg-primary-900))\"\n ></nile-glyph>\n </div>`\n : ''}\n </div>\n ${hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``}`;\n }\n\n createNewView(emitEvent=true){\n if(this.view) this.view.destroy();\n this.createState()\n this.view = new EditorView({\n state: this.viewState,\n parent: this.codeEditor\n });\n\n this.view.dom.addEventListener('keydown', (e: KeyboardEvent) => {\n this.checkForSpaceKey(e);\n this.handleEscapeKey(e);\n }, true);\n if (emitEvent) this.emit('nile-after-update', { createNewView: this.createNewView, codeMirrorInstance: this.view, }, false );\n }\n\n checkForSpaceKey(e: KeyboardEvent) {\n if (e.code === 'Space' && !e.ctrlKey) {\n this.isSpacePressed = true;\n } else {\n this.isSpacePressed = false;\n }\n }\n\n public closeCompletion() {\n if (this.view) {\n closeCompletion(this.view);\n }\n }\n\n handleEscapeKey(e: KeyboardEvent) {\n if (e.key === 'Escape' && this.view && completionStatus(this.view.state) !== null) {\n e.stopPropagation(); \n e.preventDefault(); \n closeCompletion(this.view);\n }\n }\n\n createState(){\n const lineNumbersExtension = this.lineNumbersComp.of(this.getLineNumbersExension());\n const readOnlyExtension = this.readOnlyComp.of(this.getReadOnlyExtension());\n const restrictSingleLineExtension = this.restrictSingleLineComp.of(this.getSingleLineExtension())\n const placeholderExtension = this.placeholderComp.of(this.getPlaceholderExtension())\n const customThemeExtension=this.themeComp.of(this.getCustomThemeExtension());\n const defaultSyntaxHighlightingExtension = this.defaultSyntaxHighlightingComp.of(this.getDefaultSyntaxHighlightingExtension());\n const autoCompleteStyleExtension = this.autoCompleteStyleComp.of(this.getAutoCompleteStyleExtension());\n const language = this.getLanguageExtension()\n const customAutoCompletions = this.customCompletionComp.of(javascriptLanguage.data.of({\n autocomplete: this.customAutocomplete\n }));\n\n this.viewState = EditorState.create({\n doc: !this.multiline ? convertToSingleLine(this.value) : this.value,\n extensions: [\n basicSetup({\n highlightActiveLine: false,\n foldGutter: this.enableFoldGutters,\n enableSearch:this.enableSearch\n }),\n lineNumbersExtension,\n readOnlyExtension,\n restrictSingleLineExtension,\n customAutoCompletions,\n placeholderExtension,\n defaultSyntaxHighlightingExtension,\n this.autoCompletionComp.of(\n autocompletion({ aboveCursor: this.aboveCursor })\n ),\n language,\n // Before customThemeExtension so the tokenised autocomplete popup styles still win.\n this.darkThemeComp.of(this.getDarkThemeExtension()),\n customThemeExtension,\n autoCompleteStyleExtension,\n this.getTabCompletionKeymap(),\n EditorView.updateListener.of((v: ViewUpdate) => {\n if (v.docChanged) {\n this.debounce ? this.emitAfterTimeout({ value: this.view.state.doc.toString() }) : this.emit('nile-change', { value: this.view.state.doc.toString() })\n }\n }),\n EditorView.domEventHandlers({\n focus: () => this.dispatchEvent(new Event('nile-focus')),\n blur: () => this.dispatchEvent(new Event('nile-blur')),\n }),\n ],\n });\n return this.viewState\n }\n /**\n * Custom autocomplete handler for code editor suggestions\n * @param context CompletionContext from CodeMirror\n * @returns CompletionResult with suggestions or null if no suggestions\n */\n customAutocomplete = (context: CompletionContext): CompletionResult | null => {\n // Getting the valid last line, last text from the code editor\n const text = context.state.doc.sliceString(0, context.pos);\n const lastWord = text.split('\\n').at(-1)?.split(' ').at(-1) || '';\n const [textBeforeCursor, baseTextAfterSeperation] = splitStringAtLastSeparator(lastWord);\n \n return this.getNestedSuggestions(context, textBeforeCursor, baseTextAfterSeperation) \n || this.getTopLevelSuggestions(context, textBeforeCursor);\n };\n\n /**\n * Gets nested property suggestions based on the current path\n * @param context CompletionContext from CodeMirror\n * @param textBeforeCursor Text before cursor position\n * @param baseTextAfterSeperation Text after the last separator (. or [)\n * @returns CompletionResult with nested suggestions or null\n */\n getNestedSuggestions(context: CompletionContext, textBeforeCursor: string, baseTextAfterSeperation: string) {\n // Return early if not a valid path or not ending with . or [\n if (!isValidPath(textBeforeCursor) || !['.', '['].includes(textBeforeCursor.at(-1)!)) {\n return null;\n }\n\n const path = parsePath(textBeforeCursor);\n if (!path) return null;\n\n const textAfterSeperation = baseTextAfterSeperation.replace(/[\"'\\[]/g, '');\n const isInString = textAfterSeperation !== baseTextAfterSeperation;\n const isBracket = textBeforeCursor.at(-1) === '[';\n\n // Return null if we're in a string after a dot\n if (textBeforeCursor.at(-1) === '.' && isInString) return null;\n\n // Get nested properties and filter by text after separation if it exists\n let resolved = resolveNestedProperties(this.customAutoCompletions, path);\n if (!resolved || typeof resolved !== 'object') return null;\n\n if (textAfterSeperation) {\n resolved = Object.fromEntries(\n Object.entries(resolved).filter(([key]) => \n key.toLowerCase().startsWith(textAfterSeperation.toLowerCase())\n )\n );\n }\n\n return {\n from: context.pos - textAfterSeperation.length,\n options: Object.keys(resolved).map(key => ({\n label: key,\n type: 'property',\n info: `Key of ${path[path.length - 1]}`,\n apply: !this.allowVariableInCustomSuggestion && (isBracket && !isInString) \n ? `'${key}'` \n : key,\n boost: 999\n }))\n };\n }\n\n /**\n * Gets top level suggestions based on custom completions and paths\n * @param context CompletionContext from CodeMirror\n * @param textBeforeCursor Text before cursor position\n * @returns CompletionResult with top level suggestions or null\n */\n getTopLevelSuggestions(context: CompletionContext,textBeforeCursor:string){\n const baseMatch: any = textBeforeCursor.match(/([a-zA-Z_$][\\w$]*)$/);\n \n if (!baseMatch) {\n const trimmedText = textBeforeCursor.trim();\n if (trimmedText === '' && !this.isSpacePressed) {\n const optionsList = Object.keys(this.customAutoCompletions).filter(key => \n Object.keys(this.customAutoCompletions[key]).length\n );\n \n const options = optionsList.map((key) => ({\n label: key,\n type: 'property',\n apply: key,\n boost: 999\n }));\n \n if(this.customCompletionsPaths.length){\n this.customCompletionsPaths.forEach(path => {\n options.push({\n label: ''+path,\n type: 'property',\n apply: ''+path,\n boost: 998\n });\n });\n }\n \n return {\n from: context.pos,\n options: options\n };\n }\n return null;\n }\n \n const optionsList = Object.keys(this.customAutoCompletions).filter(key => \n Object.keys(this.customAutoCompletions[key]).length && \n key.toLowerCase().startsWith(textBeforeCursor.toLowerCase())\n );\n \n const options=optionsList.map((key) => ({\n label: key,\n type: 'property',\n apply: key,\n boost: 999\n }))\n if(this.customCompletionsPaths.length){\n this.customCompletionsPaths\n .filter(path=>path.toLocaleLowerCase().includes(textBeforeCursor.toLocaleLowerCase()))\n .forEach(path=>{\n options.push({\n label: ''+path,\n type: 'property',\n apply: ''+path,\n boost: 998\n })\n })\n }\n return {\n from: context.pos - baseMatch[1].length,\n options: options\n }\n }\n\n emitAfterTimeout(value:any){\n if(this.timeOut) clearTimeout(this.timeOut);\n this.timeOut=setTimeout(()=> this.emit('nile-change', value, false), this.debounceTimeout)\n }\n \n public focusAtPosition(pos: number=this.view.state.doc.toString().length): void {\n if (this.view) {\n this.view.dispatch({\n selection: { anchor: pos },\n });\n this.view.focus();\n }\n }\n\n public insertBetweenCode=(text: string) => {\n const transaction = this.view.state.changeByRange(range => {\n const { from, to } = range;\n return { changes: { from:from, to, insert: text }, range };\n });\n this.view.dispatch(transaction);\n }\n\n singleLineMultiLineToggle() {\n this.view.dispatch({\n changes: {\n from: 0,\n to: this.view.state.doc.length,\n insert: !this.multiline\n ? convertToSingleLine(this.value)\n : this.value,\n },\n });\n }\n\n //EXTENSION CONFIGURATIONS\n getLineNumbersExension() {\n return (!this.multiline && this.lineNumbers) || (this.multiline && this.lineNumbersMultiline) ? lineNumbers() : [];\n }\n \n getLanguageExtension():Extension{\n switch(this.language){\n case 'sql':\n return sql();\n case 'json':\n return json();\n case 'html':\n return htmlLang();\n default:\n return javascript(); \n }\n }\n\n getReadOnlyExtension() {\n if (this.disabled) {\n return [\n EditorState.readOnly.of(true),\n EditorView.editable.of(false),\n ];\n }\n\n if (this.readonly) {\n const extensions = [EditorState.readOnly.of(true)];\n if (this.hideReadOnlyCursor) {\n extensions.push(EditorView.theme(readOnlyTheme));\n }\n return extensions;\n }\n\n return [];\n }\n\n getSingleLineExtension() {\n return !this.multiline ? EditorState.transactionFilter.of(tr =>\n tr.newDoc.lines > 1 ? [] : tr\n ) : [];\n }\n\n getPlaceholderExtension(){\n return this.placeholder ? placeholder(this.placeholder) : [];\n }\n \n /** Parses a token value (#rgb, #rrggbb, #rrggbbaa or rgb()/rgba()) into r/g/b. */\n private parseColor(value: string): [number, number, number] | null {\n const hex = value.match(/^#([0-9a-f]{3,8})$/i)?.[1];\n if (hex) {\n const full = hex.length <= 4 ? hex.slice(0, 3).replace(/./g, c => c + c) : hex.slice(0, 6);\n if (full.length !== 6) return null;\n return [0, 2, 4].map(i => parseInt(full.slice(i, i + 2), 16)) as [number, number, number];\n }\n const parts = value.match(/^rgba?\\(([^)]+)\\)$/i)?.[1].split(/[\\s,/]+/).map(Number);\n return parts && parts.length >= 3 && parts.slice(0, 3).every(n => !isNaN(n))\n ? [parts[0], parts[1], parts[2]]\n : null;\n }\n\n /**\n * An explicit `data-theme` on the document root wins. Otherwise decide from the\n * tokens the page actually resolved to, NOT from `prefers-color-scheme` — a page\n * can load the light-only token sheet on a dark-mode OS, and trusting the OS there\n * paints a dark editor theme over a light page.\n */\n private isDarkTheme(): boolean {\n const theme = document.documentElement.getAttribute('data-theme');\n if (theme === 'dark') return true;\n if (theme === 'light') return false;\n\n const bg = getComputedStyle(document.documentElement)\n .getPropertyValue('--ng-colors-bg-primary')\n .trim();\n const rgb = this.parseColor(bg);\n // No NxtGen tokens on the page (e.g. the enterprise sheet, which has no dark mode).\n if (!rgb) return false;\n // Rec. 601 luma; the surface is dark if the page background is dark.\n return (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000 < 128;\n }\n\n /** Applied in dark only so light is untouched.*/\n getDarkThemeExtension(): Extension {\n return this.isDarkTheme() ? [oneDarkTheme, highlightActiveLine()] : [];\n }\n\n getDefaultSyntaxHighlightingExtension(){\n if (this.disableSyntaxHighlighting) return [];\n const highlightStyle = this.isDarkTheme() ? oneDarkHighlightStyle : defaultHighlightStyle;\n return syntaxHighlighting(highlightStyle, { fallback: true });\n }\n\n getCustomThemeExtension(): Extension {\n if(this.customThemeCSS) {\n if(this.defaultFont){\n return [EditorView.theme(this.customThemeCSS as { [selector: string]: StyleSpec }), EditorView.theme(customisedThemeCss),EditorView.theme(fontFamily)];\n }\n return [EditorView.theme(this.customThemeCSS as { [selector: string]: StyleSpec }), EditorView.theme(customisedThemeCss)];\n }\n if(this.defaultFont){\n return [EditorView.theme(customisedThemeCss), EditorView.theme(fontFamily)];\n }\n return [EditorView.theme(customisedThemeCss)];\n }\n\n getAutoCompleteStyleExtension(width?: number): Extension {\n if (this.autoCompleteStyle?.width) {\n const containerWidth = width || (this.codeEditor ? this.codeEditor.getBoundingClientRect().width : 300);\n const widthPercentage = parseFloat(this.autoCompleteStyle.width.replace('%', ''));\n const codeEditorWidth = (containerWidth * widthPercentage) / 100;\n \n const multilineStyles: { [key: string]: string } = this.autoCompleteStyle.multiline ? {\n overflow: \"visible\",\n textOverflow: \"unset\",\n whiteSpace: \"normal\",\n wordWrap: \"break-word\"\n } : {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\"\n };\n \n return [ \n tooltips({\n position: \"fixed\", \n tooltipSpace: () => {\n const rect = this.codeEditor.getBoundingClientRect();\n return {\n left: rect.left,\n top: 0,\n right: rect.right,\n bottom: 1000\n };\n }\n }),\n EditorView.theme({\n \".cm-tooltip.cm-tooltip-autocomplete\": {\n maxWidth: (codeEditorWidth - 15) + \"px !important\"\n },\n \".cm-tooltip.cm-tooltip-autocomplete > ul > li\": {\n ...multilineStyles,\n maxWidth: \"100%\"\n },\n \".cm-tooltip.cm-tooltip-autocomplete > ul\": {\n minWidth: \"unset !important\"\n }\n })\n ];\n }\n return [];\n }\n\n private updateAutocompleteWidth(width: number) {\n if (this.view) {\n this.view.dispatch({\n effects: this.autoCompleteStyleComp.reconfigure(this.getAutoCompleteStyleExtension(width))\n });\n }\n }\n\n restrictSingleLine() {\n return EditorState.transactionFilter.of(tr =>\n tr.newDoc.lines > 1 ? [] : tr\n );\n }\n /* #endregion */\n}\n\nexport default NileCodeEditor;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-code-editor': NileCodeEditor;\n }\n}\n\n/**\n * Parses a string path into an array of keys representing nested object access\n * @param text The path string to parse (e.g. \"foo.bar[0].baz\")\n * @returns Array of keys if valid path, null otherwise\n * @example\n * parsePath(\"foo.bar[0]\") // returns [\"foo\", \"bar\", \"0\"]\n * parsePath(\"invalid\") // returns null\n */\nfunction parsePath(text: string) {\n const regex = /([a-zA-Z_$][\\w$]*)(\\[(?:[^\\]]+)\\]|\\.[a-zA-Z_$][\\w$]*)*/g;\n const matches = [...text.matchAll(regex)];\n if (matches.length > 0) {\n const base = matches[0][1]; // The base object name\n const keys = [base];\n // Extract keys from dot or bracket notation\n const pathMatches = text.match(/\\[(.*?)\\]|\\.(\\w+)/g) || [];\n for (const match of pathMatches) {\n if (match.startsWith('[')) {\n keys.push(match.slice(1, -1).replace(/['\"]/g, '')); // Remove brackets and quotes\n } else if (match.startsWith('.')) {\n keys.push(match.slice(1));\n }\n }\n return keys;\n }\n return null;\n};\n\n/**\n * Splits a path string at the last separator (. or [)\n * @param input The path string to split\n * @returns Array containing [path up to last separator, remainder after separator]\n * @example\n * splitStringAtLastSeparator(\"foo.bar[0]\") // returns [\"foo.bar[\", \"0\"]\n */\nfunction splitStringAtLastSeparator(input:string) {\n const lastSeparatorIndex = Math.max(input.lastIndexOf('.'), input.lastIndexOf('['));\n if (lastSeparatorIndex === -1) return [input, ''];\n return [input.slice(0, lastSeparatorIndex + 1), input.slice(lastSeparatorIndex + 1)];\n}\n\n/**\n * Traverses an object using an array of keys to access nested properties\n * @param obj The object to traverse\n * @param keys Array of keys defining the path to the desired property\n * @returns The value at the specified path, or null if path is invalid\n * @example\n * resolveNestedProperties({foo: {bar: 123}}, [\"foo\", \"bar\"]) // returns 123\n */\nfunction resolveNestedProperties (obj:any, keys:any[]){\n return keys.reduce((acc, key) => {\n if (acc && typeof acc === 'object') {\n return acc[key];\n }\n return null;\n }, obj);\n};\n\n/**\n * Validates if a string represents a valid object path format\n * @param path The path string to validate\n * @returns Boolean indicating if path format is valid\n * @example\n * isValidPath(\"foo.bar[0]\") // returns true\n * isValidPath(\"foo..bar\") // returns false\n */\nfunction isValidPath(path: string) {\n // Regex to validate the format of the string\n const regex = /^([a-zA-Z_$][\\w$]*)(\\.[a-zA-Z_$][\\w$]*|\\[\\s*(['\"]?[a-zA-Z0-9_$]*['\"]?)\\s*\\])*([\\.\\[])?$/;\n // Test the string against the regex\n return regex.test(path);\n}\n\n/**\n * Converts multi-line code into a single line by removing line breaks and extra whitespace\n * @param code The code string to convert\n * @returns Single line version of the code\n * @example\n * convertToSingleLine(\"foo\\n bar\") // returns \"foo bar\"\n */\nfunction convertToSingleLine(code: string) {\n if (!code) return '';\n // Remove line breaks and unnecessary whitespace\n return code.replace(/\\s+/g, ' ').trim();\n}\n\n"]}
1
+ {"version":3,"file":"nile-code-editor.js","sourceRoot":"","sources":["../../../src/nile-code-editor/nile-code-editor.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n html,\n CSSResultArray,\n TemplateResult,\n PropertyValueMap,\n} from 'lit';\n\nimport { customElement, query, property } from 'lit/decorators.js';\nimport { styles } from './nile-code-editor.css';\nimport { EditorView } from 'codemirror';\nimport { ViewUpdate, placeholder, tooltips, highlightActiveLine } from '@codemirror/view';\nimport { \n Compartment,\n EditorState,\n Extension\n} from '@codemirror/state';\nimport { StyleSpec } from 'style-mod';\nimport {\n syntaxHighlighting,\n defaultHighlightStyle,\n} from '@codemirror/language';\n\nimport { lineNumbers } from '@codemirror/view';\nimport {\n javascript,\n javascriptLanguage,\n} from '@codemirror/lang-javascript';\nimport { sql } from '@codemirror/lang-sql';\nimport { json } from '@codemirror/lang-json';\nimport { html as htmlLang } from '@codemirror/lang-html';\nimport { autocompletion,acceptCompletion, closeCompletion,CompletionContext,CompletionResult, completionStatus } from '@codemirror/autocomplete';\nimport NileElement from '../internal/nile-element';\nimport { basicSetup } from './extensionSetup';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { Theme as DefaultTheme, customisedThemeCss, fontFamily, readOnlyTheme, oneDarkTheme, oneDarkHighlightStyle } from './theme';\nimport { keymap } from '@codemirror/view';\n\n// Choose the appropriate mode for your use case\n\n/**\n * Nile icon component.\n *\n * @tag nile-code-editor\n *\n */\n@customElement('nile-code-editor')\nexport class NileCodeEditor extends NileElement {\n \n @query('.code__editor__container') codeEditor: HTMLInputElement;\n\n @property({ type: String, reflect: true , attribute: true }) value = '';\n\n @property({ type: String, reflect: true , attribute: true }) expandIcon = \"var(--nile-icon-expand-2, var(--ng-icon-expand-06))\";\n\n @property({ type: String, reflect: true , attribute: true }) placeholder = \"\";\n\n @property({ type: Object, reflect: true , attribute: true }) customAutoCompletions: object | any = {};\n\n @property({ type: Array, reflect: true , attribute: true }) customCompletionsPaths: string[] = [];\n\n @property({ type: String, reflect: true , attribute: true}) language: 'javascript' | 'sql' | 'json' | 'html' = 'javascript';\n\n @property({ type: String, reflect: true , attribute: 'error-message' }) errorMessage: string = '';\n\n @property({ type: Boolean, reflect: true , attribute: true }) error: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) enableSearch: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) noborder: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) multiline: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) enableFoldGutters: boolean = false;\n \n @property({ type: Boolean, reflect: true , attribute: true }) allowVariableInCustomSuggestion: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true }) lineNumbers: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: false }) disableSyntaxHighlighting: boolean = false;\n\n @property({ type: Object, attribute: false }) customThemeCSS: object | null = customisedThemeCss;\n\n @property({ type: Boolean, reflect: true , attribute: true }) lineNumbersMultiline: boolean = true;\n\n @property({ type: Boolean, reflect: true , attribute: true }) hasScroller: boolean = true;\n\n @property({ type: Boolean, reflect: true , attribute: true }) expandable: boolean = true;\n\n @property({ type: Boolean, reflect: true , attribute: true}) readonly: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true}) disabled: boolean = false;\n\n @property({ type: Boolean, reflect: true , attribute: true}) debounce: boolean = false;\n\n @property({ type: Number, reflect: true , attribute: true}) debounceTimeout: number = 200;\n\n @property({ type: Boolean, reflect: true , attribute: true}) aboveCursor: boolean = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) tabCompletion: boolean = true;\n\n @property({ type: Boolean, reflect: true, attribute: true }) defaultFont: boolean = false;\n\n @property({ type: Object, attribute: false }) autoCompleteStyle: { width?: string; multiline?: boolean } | undefined = undefined;\n\n @property({ type: Boolean, reflect: true, attribute: true }) hideReadOnlyCursor: boolean = false; \n\n public view: EditorView;\n public viewState:EditorState;\n private timeOut: any = null;\n private resizeObserver?: ResizeObserver;\n\n // Compartments for initialiazing and switching extensions\n private lineNumbersComp = new Compartment();\n private restrictSingleLineComp = new Compartment();\n private readOnlyComp = new Compartment();\n private customCompletionComp = new Compartment();\n private placeholderComp = new Compartment();\n private defaultSyntaxHighlightingComp = new Compartment();\n private themeComp = new Compartment();\n private autoCompletionComp = new Compartment();\n private autoCompleteStyleComp = new Compartment();\n private darkThemeComp = new Compartment();\n\n private isSpacePressed:boolean = false;\n\n // Swaps the One Dark theme in and out when the app switches between light and dark.\n private themeObserver?: MutationObserver;\n private colorSchemeQuery?: MediaQueryList;\n private onThemeChange = () => {\n this.view?.dispatch({\n effects: [\n this.darkThemeComp.reconfigure(this.getDarkThemeExtension()),\n this.defaultSyntaxHighlightingComp.reconfigure(this.getDefaultSyntaxHighlightingExtension()),\n ]\n });\n };\n /**\n * The styles for CodeEditor\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.themeObserver = new MutationObserver(this.onThemeChange);\n this.themeObserver.observe(document.documentElement, { attributes: true, attributeFilter: ['data-theme'] });\n this.colorSchemeQuery = window.matchMedia?.('(prefers-color-scheme: dark)');\n this.colorSchemeQuery?.addEventListener('change', this.onThemeChange);\n this.emit('nile-init',undefined,false);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.resizeObserver?.disconnect();\n this.themeObserver?.disconnect();\n this.colorSchemeQuery?.removeEventListener('change', this.onThemeChange);\n this.view.destroy()\n this.emit('nile-destroy',undefined,false);\n }\n\n firstUpdated() {\n this.createNewView()\n \n if (this.autoCompleteStyle?.width) {\n this.resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n const width = entry.contentRect.width;\n this.updateAutocompleteWidth(width);\n }\n });\n this.resizeObserver.observe(this.codeEditor);\n }\n \n this.emit('nile-after-init',{ \n codeMirrorInstance: this.view, \n createNewView: this.createNewView, \n insertAtCursor: this.insertBetweenCode \n }, false )\n }\n\n getTabCompletionKeymap() {\n return this.tabCompletion\n ? keymap.of([\n {\n key: 'Tab',\n run: acceptCompletion,\n }\n ])\n : [];\n }\n\n protected updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void{\n super.updated(changedProperties);\n if (changedProperties.has('value') && this.view.state.doc.toString()!=this.value) {\n // Editor has already been initialized, update its state\n this.singleLineMultiLineToggle();\n }\n if (changedProperties.has('multiline')) {\n this.view.dispatch({\n effects: [\n this.lineNumbersComp.reconfigure(this.getLineNumbersExension()),\n this.restrictSingleLineComp.reconfigure(this.getSingleLineExtension())\n ],\n })\n this.singleLineMultiLineToggle();\n }\n if (changedProperties.has('readonly')) {\n this.view.dispatch({ \n effects: [\n this.readOnlyComp.reconfigure(this.getReadOnlyExtension()),\n ]\n })\n }\n if (changedProperties.has('disabled') && this.view) {\n this.view.dispatch({ \n effects: [\n this.readOnlyComp.reconfigure(this.getReadOnlyExtension()),\n ]\n })\n }\n if (changedProperties.has('aboveCursor')) {\n this.view.dispatch({\n effects: [\n this.autoCompletionComp.reconfigure(\n autocompletion({ aboveCursor: this.aboveCursor })\n )\n ]\n });\n } \n if (changedProperties.has('placeholder')) {\n this.view.dispatch({ \n effects: [\n this.placeholderComp.reconfigure(this.getPlaceholderExtension()),\n ]\n })\n }\n if (changedProperties.has('lineNumbers') || changedProperties.has('lineNumbersMultiline')) {\n this.view.dispatch({ \n effects: [\n this.lineNumbersComp.reconfigure(this.getLineNumbersExension()),\n ]\n })\n }\n if(changedProperties.has('customAutoCompletions') || changedProperties.has('customCompletionsPaths')){\n this.view.dispatch({ \n effects: [\n this.customCompletionComp.reconfigure(javascriptLanguage.data.of({\n autocomplete: this.customAutocomplete\n }))\n ]\n })\n }\n if(changedProperties.has('disableSyntaxHighlighting')){\n this.view.dispatch({ \n effects: [\n this.defaultSyntaxHighlightingComp.reconfigure(this.getDefaultSyntaxHighlightingExtension())\n ]\n })\n }\n if(changedProperties.has('customThemeCSS')){\n this.view.dispatch({ \n effects: [\n this.themeComp.reconfigure(this.getCustomThemeExtension())\n ]\n })\n }\n if(changedProperties.has('autoCompleteStyle') && this.view){\n if (this.autoCompleteStyle?.width) {\n if (!this.resizeObserver) {\n this.resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n const width = entry.contentRect.width;\n this.updateAutocompleteWidth(width);\n }\n });\n this.resizeObserver.observe(this.codeEditor);\n }\n } else {\n this.resizeObserver?.disconnect();\n this.resizeObserver = undefined;\n }\n \n this.view.dispatch({ \n effects: [\n this.autoCompleteStyleComp.reconfigure(this.getAutoCompleteStyleExtension())\n ]\n })\n }\n }\n\n public render(): TemplateResult {\n const hasErrorMessage = !!this.errorMessage;\n const hasError = !!this.error;\n const noborder = !!this.noborder;\n const noScrollbar = !this.hasScroller\n return html`<div\n part=\"code-editor-base\"\n class=${classMap({\n 'code__editor__container': true,\n 'noborder': noborder,\n 'error': hasError || hasErrorMessage,\n 'code__editor__singleline': !this.multiline,\n 'no-scroller': noScrollbar,\n 'disabled': this.disabled\n })}\n tabindex=${this.disabled ? '-1' : '0'}\n >\n ${this.expandable && !this.disabled\n ? html` \n <div @click=\"${(e: CustomEvent) => this.emit('nile-expand')}\" class=\"expand__icon__container\">\n <nile-glyph\n name=\"${this.expandIcon}\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-fill))\"\n size=\"16\"\n color=\"var(--nile-colors-dark-900, var(--ng-colors-fg-primary-900))\"\n ></nile-glyph>\n </div>`\n : ''}\n </div>\n ${hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``}`;\n }\n\n createNewView(emitEvent=true){\n if(this.view) this.view.destroy();\n this.createState()\n this.view = new EditorView({\n state: this.viewState,\n parent: this.codeEditor\n });\n\n this.view.dom.addEventListener('keydown', (e: KeyboardEvent) => {\n this.checkForSpaceKey(e);\n this.handleEscapeKey(e);\n }, true);\n if (emitEvent) this.emit('nile-after-update', { createNewView: this.createNewView, codeMirrorInstance: this.view, }, false );\n }\n\n checkForSpaceKey(e: KeyboardEvent) {\n if (e.code === 'Space' && !e.ctrlKey) {\n this.isSpacePressed = true;\n } else {\n this.isSpacePressed = false;\n }\n }\n\n public closeCompletion() {\n if (this.view) {\n closeCompletion(this.view);\n }\n }\n\n handleEscapeKey(e: KeyboardEvent) {\n if (e.key === 'Escape' && this.view && completionStatus(this.view.state) !== null) {\n e.stopPropagation(); \n e.preventDefault(); \n closeCompletion(this.view);\n }\n }\n\n createState(){\n const lineNumbersExtension = this.lineNumbersComp.of(this.getLineNumbersExension());\n const readOnlyExtension = this.readOnlyComp.of(this.getReadOnlyExtension());\n const restrictSingleLineExtension = this.restrictSingleLineComp.of(this.getSingleLineExtension())\n const placeholderExtension = this.placeholderComp.of(this.getPlaceholderExtension())\n const customThemeExtension=this.themeComp.of(this.getCustomThemeExtension());\n const defaultSyntaxHighlightingExtension = this.defaultSyntaxHighlightingComp.of(this.getDefaultSyntaxHighlightingExtension());\n const autoCompleteStyleExtension = this.autoCompleteStyleComp.of(this.getAutoCompleteStyleExtension());\n const language = this.getLanguageExtension()\n const customAutoCompletions = this.customCompletionComp.of(javascriptLanguage.data.of({\n autocomplete: this.customAutocomplete\n }));\n\n this.viewState = EditorState.create({\n doc: !this.multiline ? convertToSingleLine(this.value) : this.value,\n extensions: [\n basicSetup({\n highlightActiveLine: false,\n foldGutter: this.enableFoldGutters,\n enableSearch:this.enableSearch\n }),\n lineNumbersExtension,\n readOnlyExtension,\n restrictSingleLineExtension,\n customAutoCompletions,\n placeholderExtension,\n defaultSyntaxHighlightingExtension,\n this.autoCompletionComp.of(\n autocompletion({ aboveCursor: this.aboveCursor })\n ),\n language,\n // Before customThemeExtension so the tokenised autocomplete popup styles still win.\n this.darkThemeComp.of(this.getDarkThemeExtension()),\n customThemeExtension,\n autoCompleteStyleExtension,\n this.getTabCompletionKeymap(),\n EditorView.updateListener.of((v: ViewUpdate) => {\n if (v.docChanged) {\n this.debounce ? this.emitAfterTimeout({ value: this.view.state.doc.toString() }) : this.emit('nile-change', { value: this.view.state.doc.toString() })\n }\n }),\n EditorView.domEventHandlers({\n focus: () => this.dispatchEvent(new Event('nile-focus')),\n blur: () => this.dispatchEvent(new Event('nile-blur')),\n }),\n ],\n });\n return this.viewState\n }\n /**\n * Custom autocomplete handler for code editor suggestions\n * @param context CompletionContext from CodeMirror\n * @returns CompletionResult with suggestions or null if no suggestions\n */\n customAutocomplete = (context: CompletionContext): CompletionResult | null => {\n // Getting the valid last line, last text from the code editor\n const text = context.state.doc.sliceString(0, context.pos);\n const lastWord = text.split('\\n').at(-1)?.split(' ').at(-1) || '';\n const [textBeforeCursor, baseTextAfterSeperation] = splitStringAtLastSeparator(lastWord);\n \n return this.getNestedSuggestions(context, textBeforeCursor, baseTextAfterSeperation) \n || this.getTopLevelSuggestions(context, textBeforeCursor);\n };\n\n /**\n * Gets nested property suggestions based on the current path\n * @param context CompletionContext from CodeMirror\n * @param textBeforeCursor Text before cursor position\n * @param baseTextAfterSeperation Text after the last separator (. or [)\n * @returns CompletionResult with nested suggestions or null\n */\n getNestedSuggestions(context: CompletionContext, textBeforeCursor: string, baseTextAfterSeperation: string) {\n // Return early if not a valid path or not ending with . or [\n if (!isValidPath(textBeforeCursor) || !['.', '['].includes(textBeforeCursor.at(-1)!)) {\n return null;\n }\n\n const path = parsePath(textBeforeCursor);\n if (!path) return null;\n\n const textAfterSeperation = baseTextAfterSeperation.replace(/[\"'\\[]/g, '');\n const isInString = textAfterSeperation !== baseTextAfterSeperation;\n const isBracket = textBeforeCursor.at(-1) === '[';\n\n // Return null if we're in a string after a dot\n if (textBeforeCursor.at(-1) === '.' && isInString) return null;\n\n // Get nested properties and filter by text after separation if it exists\n let resolved = resolveNestedProperties(this.customAutoCompletions, path);\n if (!resolved || typeof resolved !== 'object') return null;\n\n if (textAfterSeperation) {\n resolved = Object.fromEntries(\n Object.entries(resolved).filter(([key]) => \n key.toLowerCase().startsWith(textAfterSeperation.toLowerCase())\n )\n );\n }\n\n return {\n from: context.pos - textAfterSeperation.length,\n options: Object.keys(resolved).map(key => ({\n label: key,\n type: 'property',\n info: `Key of ${path[path.length - 1]}`,\n apply: !this.allowVariableInCustomSuggestion && (isBracket && !isInString) \n ? `'${key}'` \n : key,\n boost: 999\n }))\n };\n }\n\n /**\n * Gets top level suggestions based on custom completions and paths\n * @param context CompletionContext from CodeMirror\n * @param textBeforeCursor Text before cursor position\n * @returns CompletionResult with top level suggestions or null\n */\n getTopLevelSuggestions(context: CompletionContext,textBeforeCursor:string){\n const baseMatch: any = textBeforeCursor.match(/([a-zA-Z_$][\\w$]*)$/);\n \n if (!baseMatch) {\n const trimmedText = textBeforeCursor.trim();\n if (trimmedText === '' && !this.isSpacePressed) {\n const optionsList = Object.keys(this.customAutoCompletions).filter(key => \n Object.keys(this.customAutoCompletions[key]).length\n );\n \n const options = optionsList.map((key) => ({\n label: key,\n type: 'property',\n apply: key,\n boost: 999\n }));\n \n if(this.customCompletionsPaths.length){\n this.customCompletionsPaths.forEach(path => {\n options.push({\n label: ''+path,\n type: 'property',\n apply: ''+path,\n boost: 998\n });\n });\n }\n \n return {\n from: context.pos,\n options: options\n };\n }\n return null;\n }\n \n const optionsList = Object.keys(this.customAutoCompletions).filter(key => \n Object.keys(this.customAutoCompletions[key]).length && \n key.toLowerCase().startsWith(textBeforeCursor.toLowerCase())\n );\n \n const options=optionsList.map((key) => ({\n label: key,\n type: 'property',\n apply: key,\n boost: 999\n }))\n if(this.customCompletionsPaths.length){\n this.customCompletionsPaths\n .filter(path=>path.toLocaleLowerCase().includes(textBeforeCursor.toLocaleLowerCase()))\n .forEach(path=>{\n options.push({\n label: ''+path,\n type: 'property',\n apply: ''+path,\n boost: 998\n })\n })\n }\n return {\n from: context.pos - baseMatch[1].length,\n options: options\n }\n }\n\n emitAfterTimeout(value:any){\n if(this.timeOut) clearTimeout(this.timeOut);\n this.timeOut=setTimeout(()=> this.emit('nile-change', value, false), this.debounceTimeout)\n }\n \n public focusAtPosition(pos: number=this.view.state.doc.toString().length): void {\n if (this.view) {\n this.view.dispatch({\n selection: { anchor: pos },\n });\n this.view.focus();\n }\n }\n\n public insertBetweenCode=(text: string) => {\n const transaction = this.view.state.changeByRange(range => {\n const { from, to } = range;\n return { changes: { from:from, to, insert: text }, range };\n });\n this.view.dispatch(transaction);\n }\n\n singleLineMultiLineToggle() {\n this.view.dispatch({\n changes: {\n from: 0,\n to: this.view.state.doc.length,\n insert: !this.multiline\n ? convertToSingleLine(this.value)\n : this.value,\n },\n });\n }\n\n //EXTENSION CONFIGURATIONS\n getLineNumbersExension() {\n return (!this.multiline && this.lineNumbers) || (this.multiline && this.lineNumbersMultiline) ? lineNumbers() : [];\n }\n \n getLanguageExtension():Extension{\n switch(this.language){\n case 'sql':\n return sql();\n case 'json':\n return json();\n case 'html':\n return htmlLang();\n default:\n return javascript(); \n }\n }\n\n getReadOnlyExtension() {\n if (this.disabled) {\n return [\n EditorState.readOnly.of(true),\n EditorView.editable.of(false),\n ];\n }\n\n if (this.readonly) {\n const extensions = [EditorState.readOnly.of(true)];\n if (this.hideReadOnlyCursor) {\n extensions.push(EditorView.theme(readOnlyTheme));\n }\n return extensions;\n }\n\n return [];\n }\n\n getSingleLineExtension() {\n return !this.multiline ? EditorState.transactionFilter.of(tr =>\n tr.newDoc.lines > 1 ? [] : tr\n ) : [];\n }\n\n getPlaceholderExtension(){\n return this.placeholder ? placeholder(this.placeholder) : [];\n }\n \n /** Parses a token value (#rgb, #rrggbb, #rrggbbaa or rgb()/rgba()) into r/g/b. */\n private parseColor(value: string): [number, number, number] | null {\n const hex = value.match(/^#([0-9a-f]{3,8})$/i)?.[1];\n if (hex) {\n const full = hex.length <= 4 ? hex.slice(0, 3).replace(/./g, c => c + c) : hex.slice(0, 6);\n if (full.length !== 6) return null;\n return [0, 2, 4].map(i => parseInt(full.slice(i, i + 2), 16)) as [number, number, number];\n }\n const parts = value.match(/^rgba?\\(([^)]+)\\)$/i)?.[1].split(/[\\s,/]+/).map(Number);\n return parts && parts.length >= 3 && parts.slice(0, 3).every(n => !isNaN(n))\n ? [parts[0], parts[1], parts[2]]\n : null;\n }\n\n /**\n * An explicit `data-theme` on the document root wins. Otherwise decide from the\n * tokens the page actually resolved to, NOT from `prefers-color-scheme` — a page\n * can load the light-only token sheet on a dark-mode OS, and trusting the OS there\n * paints a dark editor theme over a light page.\n */\n private isDarkTheme(): boolean {\n const theme = document.documentElement.getAttribute('data-theme');\n if (theme === 'dark') return true;\n if (theme === 'light') return false;\n\n const bg = getComputedStyle(document.documentElement)\n .getPropertyValue('--ng-colors-bg-primary')\n .trim();\n const rgb = this.parseColor(bg);\n // No NxtGen tokens on the page (e.g. the enterprise sheet, which has no dark mode).\n if (!rgb) return false;\n // Rec. 601 luma; the surface is dark if the page background is dark.\n return (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000 < 128;\n }\n\n /** One Dark in dark mode; light keeps CodeMirror's own active-line highlight. */\n getDarkThemeExtension(): Extension {\n return [highlightActiveLine(), ...(this.isDarkTheme() ? [oneDarkTheme] : [])];\n }\n\n getDefaultSyntaxHighlightingExtension(){\n if (this.disableSyntaxHighlighting) return [];\n const highlightStyle = this.isDarkTheme() ? oneDarkHighlightStyle : defaultHighlightStyle;\n return syntaxHighlighting(highlightStyle, { fallback: true });\n }\n\n getCustomThemeExtension(): Extension {\n if(this.customThemeCSS) {\n if(this.defaultFont){\n return [EditorView.theme(this.customThemeCSS as { [selector: string]: StyleSpec }), EditorView.theme(customisedThemeCss),EditorView.theme(fontFamily)];\n }\n return [EditorView.theme(this.customThemeCSS as { [selector: string]: StyleSpec }), EditorView.theme(customisedThemeCss)];\n }\n if(this.defaultFont){\n return [EditorView.theme(customisedThemeCss), EditorView.theme(fontFamily)];\n }\n return [EditorView.theme(customisedThemeCss)];\n }\n\n getAutoCompleteStyleExtension(width?: number): Extension {\n if (this.autoCompleteStyle?.width) {\n const containerWidth = width || (this.codeEditor ? this.codeEditor.getBoundingClientRect().width : 300);\n const widthPercentage = parseFloat(this.autoCompleteStyle.width.replace('%', ''));\n const codeEditorWidth = (containerWidth * widthPercentage) / 100;\n \n const multilineStyles: { [key: string]: string } = this.autoCompleteStyle.multiline ? {\n overflow: \"visible\",\n textOverflow: \"unset\",\n whiteSpace: \"normal\",\n wordWrap: \"break-word\"\n } : {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\"\n };\n \n return [ \n tooltips({\n position: \"fixed\", \n tooltipSpace: () => {\n const rect = this.codeEditor.getBoundingClientRect();\n return {\n left: rect.left,\n top: 0,\n right: rect.right,\n bottom: 1000\n };\n }\n }),\n EditorView.theme({\n \".cm-tooltip.cm-tooltip-autocomplete\": {\n maxWidth: (codeEditorWidth - 15) + \"px !important\"\n },\n \".cm-tooltip.cm-tooltip-autocomplete > ul > li\": {\n ...multilineStyles,\n maxWidth: \"100%\"\n },\n \".cm-tooltip.cm-tooltip-autocomplete > ul\": {\n minWidth: \"unset !important\"\n }\n })\n ];\n }\n return [];\n }\n\n private updateAutocompleteWidth(width: number) {\n if (this.view) {\n this.view.dispatch({\n effects: this.autoCompleteStyleComp.reconfigure(this.getAutoCompleteStyleExtension(width))\n });\n }\n }\n\n restrictSingleLine() {\n return EditorState.transactionFilter.of(tr =>\n tr.newDoc.lines > 1 ? [] : tr\n );\n }\n /* #endregion */\n}\n\nexport default NileCodeEditor;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-code-editor': NileCodeEditor;\n }\n}\n\n/**\n * Parses a string path into an array of keys representing nested object access\n * @param text The path string to parse (e.g. \"foo.bar[0].baz\")\n * @returns Array of keys if valid path, null otherwise\n * @example\n * parsePath(\"foo.bar[0]\") // returns [\"foo\", \"bar\", \"0\"]\n * parsePath(\"invalid\") // returns null\n */\nfunction parsePath(text: string) {\n const regex = /([a-zA-Z_$][\\w$]*)(\\[(?:[^\\]]+)\\]|\\.[a-zA-Z_$][\\w$]*)*/g;\n const matches = [...text.matchAll(regex)];\n if (matches.length > 0) {\n const base = matches[0][1]; // The base object name\n const keys = [base];\n // Extract keys from dot or bracket notation\n const pathMatches = text.match(/\\[(.*?)\\]|\\.(\\w+)/g) || [];\n for (const match of pathMatches) {\n if (match.startsWith('[')) {\n keys.push(match.slice(1, -1).replace(/['\"]/g, '')); // Remove brackets and quotes\n } else if (match.startsWith('.')) {\n keys.push(match.slice(1));\n }\n }\n return keys;\n }\n return null;\n};\n\n/**\n * Splits a path string at the last separator (. or [)\n * @param input The path string to split\n * @returns Array containing [path up to last separator, remainder after separator]\n * @example\n * splitStringAtLastSeparator(\"foo.bar[0]\") // returns [\"foo.bar[\", \"0\"]\n */\nfunction splitStringAtLastSeparator(input:string) {\n const lastSeparatorIndex = Math.max(input.lastIndexOf('.'), input.lastIndexOf('['));\n if (lastSeparatorIndex === -1) return [input, ''];\n return [input.slice(0, lastSeparatorIndex + 1), input.slice(lastSeparatorIndex + 1)];\n}\n\n/**\n * Traverses an object using an array of keys to access nested properties\n * @param obj The object to traverse\n * @param keys Array of keys defining the path to the desired property\n * @returns The value at the specified path, or null if path is invalid\n * @example\n * resolveNestedProperties({foo: {bar: 123}}, [\"foo\", \"bar\"]) // returns 123\n */\nfunction resolveNestedProperties (obj:any, keys:any[]){\n return keys.reduce((acc, key) => {\n if (acc && typeof acc === 'object') {\n return acc[key];\n }\n return null;\n }, obj);\n};\n\n/**\n * Validates if a string represents a valid object path format\n * @param path The path string to validate\n * @returns Boolean indicating if path format is valid\n * @example\n * isValidPath(\"foo.bar[0]\") // returns true\n * isValidPath(\"foo..bar\") // returns false\n */\nfunction isValidPath(path: string) {\n // Regex to validate the format of the string\n const regex = /^([a-zA-Z_$][\\w$]*)(\\.[a-zA-Z_$][\\w$]*|\\[\\s*(['\"]?[a-zA-Z0-9_$]*['\"]?)\\s*\\])*([\\.\\[])?$/;\n // Test the string against the regex\n return regex.test(path);\n}\n\n/**\n * Converts multi-line code into a single line by removing line breaks and extra whitespace\n * @param code The code string to convert\n * @returns Single line version of the code\n * @example\n * convertToSingleLine(\"foo\\n bar\") // returns \"foo bar\"\n */\nfunction convertToSingleLine(code: string) {\n if (!code) return '';\n // Remove line breaks and unnecessary whitespace\n return code.replace(/\\s+/g, ' ').trim();\n}\n\n"]}
@@ -92,7 +92,7 @@ export const styles = css `
92
92
  }
93
93
 
94
94
  :host(:hover:not([active], [aria-disabled='true'], :focus-visible)) .menu-item {
95
- background-color: var(--nile-colors-neutral-100,var(--ng-colors-bg-secondary-hover));
95
+ background-color: var(--nile-colors-neutral-100,var(--ng-colors-bg-primary-hover));
96
96
  color: var(--nile-colors-dark-900,var(--ng-colors-text-secondary-hover));
97
97
  }
98
98
 
@@ -1 +1 @@
1
- {"version":3,"file":"nile-menu-item.css.js","sourceRoot":"","sources":["../../../src/nile-menu-item/nile-menu-item.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkIxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * MenuItem CSS\n */\nexport const styles = css`\n :host {\n box-sizing: border-box;\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n [hidden] {\n display: none !important;\n }\n\n :host {\n display: block;\n }\n\n :host([inert]) {\n display: none;\n }\n\n .menu-item {\n position: relative;\n display: flex;\n align-items: stretch;\n font-size: var(--nile-font-size-rem-large ,var(--ng-font-size-text-sm));\n font-weight: var(--nile-font-weight-regular,var(--ng-font-weight-semibold));\n line-height: var(--nile-line-height-1-8,var(--ng-line-height-text-md));\n letter-spacing: normal;\n color: var(--nile-color-dark-1, var(--ng-colors-text-secondary-700));\n min-height:40px;\n transition: 150ms fill;\n user-select: none;\n white-space: nowrap;\n cursor: pointer;\n padding: var(--nile-spacing-none, var(--ng-spacing-md)) var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .menu-item.menu-item--active {\n background-color: var(--nile-colors-primary-100, var(--ng-colors-bg-brand-primary));\n color: var(--nile-colors-primary-600, var(--ng-colors-bg-brand-solid));\n }\n\n .menu-item.menu-item--disabled {\n outline: none;\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .menu-item .menu-item__label {\n margin: auto var(--nile-spacing-none,var(--ng-spacing-none));\n display: inline-flex;\n }\n\n .menu-item .menu-item__prefix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n }\n\n .menu-item .menu-item__prefix::slotted(*) {\n margin-inline-end: var(--nile-font-size-rem-xsmall,var(--ng-spacing-md));\n }\n\n .menu-item .menu-item__suffix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n }\n\n .menu-item .menu-item__suffix::slotted(*) {\n margin-inline-start: var(--nile-font-size-rem-xsmall,var(--ng-spacing-md));\n }\n\n :host(:focus-visible) {\n outline: none;\n }\n\n :host(:hover:not([active], [aria-disabled='true'], :focus-visible)) .menu-item {\n background-color: var(--nile-colors-neutral-100,var(--ng-colors-bg-secondary-hover));\n color: var(--nile-colors-dark-900,var(--ng-colors-text-secondary-hover));\n }\n\n :host([active]:hover:not([aria-disabled='true'], :focus-visible)) .menu-item {\n background-color: var(--nile-colors-primary-100, var(--ng-colors-bg-brand-primary));\n color: var(--nile-colors-primary-600, var(--ng-colors-bg-brand-solid));\n }\n\n :host(:focus-visible) .menu-item {\n outline: none;\n background-color: var(--nile-colors-blue-500,var(--ng-colors-bg-active));\n color: var(--nile-colors-white-base,var(--ng-colors-text-primary-900));\n opacity: 1;\n }\n\n .menu-item .menu-item__check,\n .menu-item .menu-item__chevron {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1.5em;\n visibility: hidden;\n }\n\n .menu-item--checked .menu-item__check,\n .menu-item--has-submenu .menu-item__chevron {\n visibility: visible;\n }\n\n .menu-item .menu-item__checkbox {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n margin-inline-end: var(--nile-font-size-rem-xsmall, var(--ng-spacing-md));\n pointer-events: none;\n }\n \n @media (forced-colors: active) {\n :host(:hover:not([aria-disabled='true'])) .menu-item,\n :host(:focus-visible) .menu-item {\n outline: dashed 1px SelectedItem;\n outline-offset: -1px;\n }\n }\n`;\n\nexport default [styles];\n"]}
1
+ {"version":3,"file":"nile-menu-item.css.js","sourceRoot":"","sources":["../../../src/nile-menu-item/nile-menu-item.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkIxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * MenuItem CSS\n */\nexport const styles = css`\n :host {\n box-sizing: border-box;\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n [hidden] {\n display: none !important;\n }\n\n :host {\n display: block;\n }\n\n :host([inert]) {\n display: none;\n }\n\n .menu-item {\n position: relative;\n display: flex;\n align-items: stretch;\n font-size: var(--nile-font-size-rem-large ,var(--ng-font-size-text-sm));\n font-weight: var(--nile-font-weight-regular,var(--ng-font-weight-semibold));\n line-height: var(--nile-line-height-1-8,var(--ng-line-height-text-md));\n letter-spacing: normal;\n color: var(--nile-color-dark-1, var(--ng-colors-text-secondary-700));\n min-height:40px;\n transition: 150ms fill;\n user-select: none;\n white-space: nowrap;\n cursor: pointer;\n padding: var(--nile-spacing-none, var(--ng-spacing-md)) var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .menu-item.menu-item--active {\n background-color: var(--nile-colors-primary-100, var(--ng-colors-bg-brand-primary));\n color: var(--nile-colors-primary-600, var(--ng-colors-bg-brand-solid));\n }\n\n .menu-item.menu-item--disabled {\n outline: none;\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .menu-item .menu-item__label {\n margin: auto var(--nile-spacing-none,var(--ng-spacing-none));\n display: inline-flex;\n }\n\n .menu-item .menu-item__prefix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n }\n\n .menu-item .menu-item__prefix::slotted(*) {\n margin-inline-end: var(--nile-font-size-rem-xsmall,var(--ng-spacing-md));\n }\n\n .menu-item .menu-item__suffix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n }\n\n .menu-item .menu-item__suffix::slotted(*) {\n margin-inline-start: var(--nile-font-size-rem-xsmall,var(--ng-spacing-md));\n }\n\n :host(:focus-visible) {\n outline: none;\n }\n\n :host(:hover:not([active], [aria-disabled='true'], :focus-visible)) .menu-item {\n background-color: var(--nile-colors-neutral-100,var(--ng-colors-bg-primary-hover));\n color: var(--nile-colors-dark-900,var(--ng-colors-text-secondary-hover));\n }\n\n :host([active]:hover:not([aria-disabled='true'], :focus-visible)) .menu-item {\n background-color: var(--nile-colors-primary-100, var(--ng-colors-bg-brand-primary));\n color: var(--nile-colors-primary-600, var(--ng-colors-bg-brand-solid));\n }\n\n :host(:focus-visible) .menu-item {\n outline: none;\n background-color: var(--nile-colors-blue-500,var(--ng-colors-bg-active));\n color: var(--nile-colors-white-base,var(--ng-colors-text-primary-900));\n opacity: 1;\n }\n\n .menu-item .menu-item__check,\n .menu-item .menu-item__chevron {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1.5em;\n visibility: hidden;\n }\n\n .menu-item--checked .menu-item__check,\n .menu-item--has-submenu .menu-item__chevron {\n visibility: visible;\n }\n\n .menu-item .menu-item__checkbox {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n margin-inline-end: var(--nile-font-size-rem-xsmall, var(--ng-spacing-md));\n pointer-events: none;\n }\n \n @media (forced-colors: active) {\n :host(:hover:not([aria-disabled='true'])) .menu-item,\n :host(:focus-visible) .menu-item {\n outline: dashed 1px SelectedItem;\n outline-offset: -1px;\n }\n }\n`;\n\nexport default [styles];\n"]}
@@ -10,6 +10,7 @@ export const styles = css `
10
10
  position: relative;
11
11
  display: block;
12
12
  font-family: inherit;
13
+ color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));
13
14
  }
14
15
 
15
16
 
@@ -39,6 +40,7 @@ export const styles = css `
39
40
  width: 100%;
40
41
  padding: 12px;
41
42
  background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
43
+ color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));
42
44
  border-radius: 0 0 8px 8px;
43
45
  outline: none;
44
46
  tab-size: 4;
@@ -79,6 +81,7 @@ nile-rte-preview {
79
81
  background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
80
82
  box-sizing: border-box;
81
83
  word-wrap: break-word;
84
+ color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));
82
85
  }
83
86
 
84
87
  nile-rich-text-editor[disabled] nile-rte-preview {
@@ -244,7 +247,7 @@ nile-rte-preview figure.rte-image img {
244
247
  nile-rte-preview figure.rte-image figcaption {
245
248
  margin-top: 6px;
246
249
  font-size: 0.875em;
247
- color: var(--nile-colors-neutral-600, var(--ng-colors-text-secondary));
250
+ color: var(--nile-colors-neutral-600, var(--ng-colors-text-tertiary-600));
248
251
  }
249
252
 
250
253
  .editor figure.rte-image {
@@ -271,7 +274,7 @@ nile-rich-text-editor[disabled] .editor figure.rte-image {
271
274
 
272
275
  .editor.empty::before {
273
276
  content: attr(data-placeholder);
274
- color: var(--nile-colors-neutral-500, var(--ng-colors-text-secondary));
277
+ color: var(--nile-colors-neutral-500, var(--ng-colors-text-placeholder));
275
278
  position: absolute;
276
279
  font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));
277
280
  pointer-events: none;
@@ -1 +1 @@
1
- {"version":3,"file":"nile-rich-text-editor.css.js","sourceRoot":"","sources":["../../../src/nile-rich-text-editor/nile-rich-text-editor.css.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+RxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":[" \nimport { css } from 'lit';\n\nexport const styles = css`\n .editor { all: revert;\n }\n .rte-container .editor.safari {\n -webkit-user-modify: read-write;\n }\n\n nile-rich-text-editor {\n position: relative;\n display: block;\n font-family: inherit;\n }\n\n\n .rte-container {\n width: 100%;\n border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-sizing: border-box;\n }\n\n \n .rte-container nile-rte-toolbar {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px;\n border-bottom: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: 8px 8px 0 0;\n width: 100%; \n box-sizing: border-box; \n}\n\n .rte-container .editor {\n min-height: 160px;\n width: 100%;\n padding: 12px;\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: 0 0 8px 8px;\n outline: none;\n tab-size: 4;\n -moz-tab-size: 4;\n word-break: break-word;\n box-sizing: border-box;\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n }\n\n nile-rich-text-editor[disabled] .rte-container {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n cursor: not-allowed !important;\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n }\n\n nile-rich-text-editor[disabled] .rte-container nile-rte-toolbar {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n cursor: not-allowed !important;\n } \n\n nile-rich-text-editor[disabled] .rte-container .editor {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n pointer-events: none;\n user-select: none;\n -webkit-user-select: none;\n -webkit-user-modify: read-only;\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n }\n\nnile-rte-preview {\n display: block;\n width: 100%;\n margin-top: 16px; \n padding: 12px;\n border: 1px dashed var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-sizing: border-box;\n word-wrap: break-word;\n}\n\n nile-rich-text-editor[disabled] nile-rte-preview {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n cursor: not-allowed ;\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n user-select: none;\n -webkit-user-select: none;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n}\n\n nile-rte-toolbar-item nile-button::part(base) {\n width: 32px;\n height: 32px;\n padding: 0px 6px;\n border: none;\n }\n\n nile-rte-toolbar-item > button,\n nile-rte-toolbar button {\n border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md));\n cursor: pointer;\n }\n\n nile-rte-toolbar-item > button nile-icon { pointer-events: none; }\n\n nile-rte-toolbar-item > button.active {\n border-color: #2563eb;\n background: var(--nile-colors-white-base);\n }\n\n .editor p { margin: 1em 0; }\n .editor h1, .preview h1 {\n font-size: 2em;\n margin: 0.67em 0;\n font-weight: bold;\n }\n .editor h2, .preview h2 {\n font-size: 1.5em;\n margin: 0.83em 0;\n font-weight: bold;\n }\n .editor h3 { font-size: 1.17em; }\n .editor h4 { font-size: 1em; }\n .editor h5 { font-size: 0.83em; }\n .editor h6 { font-size: 0.67em; }\n\n\n .editor.single-line {\n min-height: 50px;\n max-height: 50px;\n line-height: 1.2;\n overflow-x: auto;\n white-space: nowrap;\n padding: 0px 12px 0px 12px;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n nile-rte-preview.single-line {\n min-height: 50px;\n max-height: 50px;\n line-height: 1.2;\n padding: 0px 12px 0px 12px;\n overflow-x: auto;\n white-space: nowrap;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n nile-rte-divider { \n margin: 0 4px;\n display: inline-block;\n height: 24px;\n width: 1px;\n background: var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n }\n \n .editor ul,\n .editor ol {\n list-style-position: outside;\n padding-inline-start: 24px;\n }\n\n\n \n \n\n nile-rte-toolbar-item nile-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n}\n\nnile-rte-toolbar-item nile-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500)); \n}\n\nnile-rte-link nile-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n}\n\nnile-rte-link nile-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500));\n}\n\n.editor a {\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-tertiary-600));\n cursor: pointer;\n text-decoration: none;\n}\n\n.editor a:hover {\n text-decoration: none;\n}\n\nnile-rich-text-editor[disabled] .editor a {\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.editor figure.rte-image,\nnile-rte-preview figure.rte-image {\n margin: 1em 0;\n width: fit-content;\n max-width: 100%;\n}\n\n.editor > figure.rte-image:first-child,\nnile-rte-preview > figure.rte-image:first-child {\n margin-top: 0;\n}\n\n.editor figure.rte-image[data-align='center'],\nnile-rte-preview figure.rte-image[data-align='center'] {\n margin-left: auto;\n margin-right: auto;\n}\n\n.editor figure.rte-image[data-align='right'],\nnile-rte-preview figure.rte-image[data-align='right'] {\n margin-left: auto;\n}\n\n.editor figure.rte-image[data-align='justify'],\nnile-rte-preview figure.rte-image[data-align='justify'] {\n width: 100%;\n}\n\n.editor figure.rte-image[data-align='justify'] img,\nnile-rte-preview figure.rte-image[data-align='justify'] img {\n width: 100%;\n}\n\n.editor figure.rte-image img,\nnile-rte-preview figure.rte-image img {\n max-width: 100%;\n height: auto;\n display: block;\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md));\n}\n\n.editor figure.rte-image figcaption,\nnile-rte-preview figure.rte-image figcaption {\n margin-top: 6px;\n font-size: 0.875em;\n color: var(--nile-colors-neutral-600, var(--ng-colors-text-secondary));\n}\n\n.editor figure.rte-image {\n cursor: pointer;\n}\n\n.editor figure.rte-image:hover img {\n outline: 2px solid var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n outline-offset: 2px;\n}\n\nnile-rte-image nile-button.rte-image-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n}\n\nnile-rte-image nile-button.rte-image-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500));\n}\n\nnile-rich-text-editor[disabled] .editor figure.rte-image {\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.editor.empty::before {\n content: attr(data-placeholder);\n color: var(--nile-colors-neutral-500, var(--ng-colors-text-secondary));\n position: absolute;\n font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));\n pointer-events: none;\n user-select: none;\n padding-top: 16px;\n opacity: 0.7;\n}\n\n\n\n \n\n\n\n`;\n\nexport default [styles];\n"]}
1
+ {"version":3,"file":"nile-rich-text-editor.css.js","sourceRoot":"","sources":["../../../src/nile-rich-text-editor/nile-rich-text-editor.css.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkSxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":[" \nimport { css } from 'lit';\n\nexport const styles = css`\n .editor { all: revert;\n }\n .rte-container .editor.safari {\n -webkit-user-modify: read-write;\n }\n\n nile-rich-text-editor {\n position: relative;\n display: block;\n font-family: inherit;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n }\n\n\n .rte-container {\n width: 100%;\n border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-sizing: border-box;\n }\n\n \n .rte-container nile-rte-toolbar {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px;\n border-bottom: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: 8px 8px 0 0;\n width: 100%; \n box-sizing: border-box; \n}\n\n .rte-container .editor {\n min-height: 160px;\n width: 100%;\n padding: 12px;\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n border-radius: 0 0 8px 8px;\n outline: none;\n tab-size: 4;\n -moz-tab-size: 4;\n word-break: break-word;\n box-sizing: border-box;\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n }\n\n nile-rich-text-editor[disabled] .rte-container {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n cursor: not-allowed !important;\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n }\n\n nile-rich-text-editor[disabled] .rte-container nile-rte-toolbar {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n cursor: not-allowed !important;\n } \n\n nile-rich-text-editor[disabled] .rte-container .editor {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n pointer-events: none;\n user-select: none;\n -webkit-user-select: none;\n -webkit-user-modify: read-only;\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n }\n\nnile-rte-preview {\n display: block;\n width: 100%;\n margin-top: 16px; \n padding: 12px;\n border: 1px dashed var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-sizing: border-box;\n word-wrap: break-word;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n}\n\n nile-rich-text-editor[disabled] nile-rte-preview {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n cursor: not-allowed ;\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n user-select: none;\n -webkit-user-select: none;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n}\n\n nile-rte-toolbar-item nile-button::part(base) {\n width: 32px;\n height: 32px;\n padding: 0px 6px;\n border: none;\n }\n\n nile-rte-toolbar-item > button,\n nile-rte-toolbar button {\n border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md));\n cursor: pointer;\n }\n\n nile-rte-toolbar-item > button nile-icon { pointer-events: none; }\n\n nile-rte-toolbar-item > button.active {\n border-color: #2563eb;\n background: var(--nile-colors-white-base);\n }\n\n .editor p { margin: 1em 0; }\n .editor h1, .preview h1 {\n font-size: 2em;\n margin: 0.67em 0;\n font-weight: bold;\n }\n .editor h2, .preview h2 {\n font-size: 1.5em;\n margin: 0.83em 0;\n font-weight: bold;\n }\n .editor h3 { font-size: 1.17em; }\n .editor h4 { font-size: 1em; }\n .editor h5 { font-size: 0.83em; }\n .editor h6 { font-size: 0.67em; }\n\n\n .editor.single-line {\n min-height: 50px;\n max-height: 50px;\n line-height: 1.2;\n overflow-x: auto;\n white-space: nowrap;\n padding: 0px 12px 0px 12px;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n nile-rte-preview.single-line {\n min-height: 50px;\n max-height: 50px;\n line-height: 1.2;\n padding: 0px 12px 0px 12px;\n overflow-x: auto;\n white-space: nowrap;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n nile-rte-divider { \n margin: 0 4px;\n display: inline-block;\n height: 24px;\n width: 1px;\n background: var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n }\n \n .editor ul,\n .editor ol {\n list-style-position: outside;\n padding-inline-start: 24px;\n }\n\n\n \n \n\n nile-rte-toolbar-item nile-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n}\n\nnile-rte-toolbar-item nile-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500)); \n}\n\nnile-rte-link nile-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n}\n\nnile-rte-link nile-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500));\n}\n\n.editor a {\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-tertiary-600));\n cursor: pointer;\n text-decoration: none;\n}\n\n.editor a:hover {\n text-decoration: none;\n}\n\nnile-rich-text-editor[disabled] .editor a {\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.editor figure.rte-image,\nnile-rte-preview figure.rte-image {\n margin: 1em 0;\n width: fit-content;\n max-width: 100%;\n}\n\n.editor > figure.rte-image:first-child,\nnile-rte-preview > figure.rte-image:first-child {\n margin-top: 0;\n}\n\n.editor figure.rte-image[data-align='center'],\nnile-rte-preview figure.rte-image[data-align='center'] {\n margin-left: auto;\n margin-right: auto;\n}\n\n.editor figure.rte-image[data-align='right'],\nnile-rte-preview figure.rte-image[data-align='right'] {\n margin-left: auto;\n}\n\n.editor figure.rte-image[data-align='justify'],\nnile-rte-preview figure.rte-image[data-align='justify'] {\n width: 100%;\n}\n\n.editor figure.rte-image[data-align='justify'] img,\nnile-rte-preview figure.rte-image[data-align='justify'] img {\n width: 100%;\n}\n\n.editor figure.rte-image img,\nnile-rte-preview figure.rte-image img {\n max-width: 100%;\n height: auto;\n display: block;\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md));\n}\n\n.editor figure.rte-image figcaption,\nnile-rte-preview figure.rte-image figcaption {\n margin-top: 6px;\n font-size: 0.875em;\n color: var(--nile-colors-neutral-600, var(--ng-colors-text-tertiary-600));\n}\n\n.editor figure.rte-image {\n cursor: pointer;\n}\n\n.editor figure.rte-image:hover img {\n outline: 2px solid var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n outline-offset: 2px;\n}\n\nnile-rte-image nile-button.rte-image-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n}\n\nnile-rte-image nile-button.rte-image-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500));\n}\n\nnile-rich-text-editor[disabled] .editor figure.rte-image {\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.editor.empty::before {\n content: attr(data-placeholder);\n color: var(--nile-colors-neutral-500, var(--ng-colors-text-placeholder));\n position: absolute;\n font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));\n pointer-events: none;\n user-select: none;\n padding-top: 16px;\n opacity: 0.7;\n}\n\n\n\n \n\n\n\n`;\n\nexport default [styles];\n"]}
@@ -56,7 +56,7 @@ export const styles = css `
56
56
  }
57
57
 
58
58
  .alert--success {
59
- border: 1px solid var(--nile-toast-color-border-success, var(--ng-colors-border-secondary-alt));
59
+ border: 1px solid var(--nile-toast-color-border-success, var(--ng-colors-border-primary));
60
60
  background: var(--nile-toast-color-background-success, var(--ng-colors-bg-primary-alt));
61
61
  box-shadow: var(--nile-toast-color-box-shadow, var(--ng-shadow-xs));
62
62
  }
@@ -66,7 +66,7 @@ export const styles = css `
66
66
  }
67
67
 
68
68
  .alert--info {
69
- border: 1px solid var(--nile-toast-color-border-info, var(--ng-colors-border-secondary-alt));
69
+ border: 1px solid var(--nile-toast-color-border-info, var(--ng-colors-border-primary));
70
70
  background: var(--nile-toast-color-background-info, var(--ng-colors-bg-primary-alt));
71
71
  box-shadow: var(--nile-toast-color-box-shadow, var(--ng-shadow-xs));
72
72
  }
@@ -76,7 +76,7 @@ export const styles = css `
76
76
  }
77
77
 
78
78
  .alert--warning {
79
- border: 1px solid var(--nile-toast-color-border-warning, var(--ng-colors-border-secondary-alt));
79
+ border: 1px solid var(--nile-toast-color-border-warning, var(--ng-colors-border-primary));
80
80
  background: var(--nile-toast-color-background-warning, var(--ng-colors-bg-primary-alt));
81
81
  box-shadow: var(--nile-toast-color-box-shadow, var(--ng-shadow-xs));
82
82
  }
@@ -86,7 +86,7 @@ export const styles = css `
86
86
  }
87
87
 
88
88
  .alert--error {
89
- border: 1px solid var(--nile-toast-color-border-error, var(--ng-colors-border-secondary-alt));
89
+ border: 1px solid var(--nile-toast-color-border-error, var(--ng-colors-border-primary));
90
90
  background: var(--nile-toast-color-background-error, var(--ng-colors-bg-primary-alt));
91
91
  box-shadow: var(--nile-toast-color-box-shadow, var(--ng-shadow-xs));
92
92
  }
@@ -96,7 +96,7 @@ export const styles = css `
96
96
  }
97
97
 
98
98
  .alert--gray {
99
- border: 1px solid var(--nile-toast-color-border-gray, var(--ng-colors-border-secondary-alt));
99
+ border: 1px solid var(--nile-toast-color-border-gray, var(--ng-colors-border-primary));
100
100
  background: var(--nile-toast-color-background-gray, var(--ng-colors-bg-primary-alt));
101
101
  box-shadow: var(--nile-toast-color-box-shadow, var(--ng-shadow-xs));
102
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nile-toast.css.js","sourceRoot":"","sources":["../../../src/nile-toast/nile-toast.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4LxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * Toast CSS\n */\nexport const styles = css`\n :host {\n display: contents;\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n\n /* For better DX, we'll reset the margin here so the base part can inherit it */\n margin: var(--nile-spacing-none);\n }\n\n .alert {\n max-width: 100%;\n box-sizing: border-box;\n position: relative;\n display: flex;\n align-items: flex-start;\n border: solid 2px;\n border-radius: var(--nile-radius-md, var(--ng-radius-xl));\n margin: inherit;\n padding: var(--nile-spacing-xl, var(--ng-spacing-xl));\n gap: var(--nile-spacing-xl, var(--ng-spacing-xl));\n width: max-content;\n min-width: 400px;\n }\n\n .alert:not(.alert--has-icon) .alert__icon,\n .alert:not(.alert--closable) .alert__close-button {\n display: none;\n }\n\n .alert__prefix-icon-container {\n background-color: var(--nile-colors-red-500);\n border-radius: var(--nile-radius-sm);\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .alert__icon {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n font-size: var(--nile-type-scale-1);\n }\n\n .alert--success {\n border: 1px solid var(--nile-toast-color-border-success, var(--ng-colors-border-secondary-alt));\n background: var(--nile-toast-color-background-success, var(--ng-colors-bg-primary-alt));\n box-shadow: var(--nile-toast-color-box-shadow, var(--ng-shadow-xs));\n }\n\n .alert--success .alert__prefix-icon-container {\n background: var(--nile-toast-color-icon-background-color-success, var(--ng-colors-bg-primary-alt));\n }\n\n .alert--info {\n border: 1px solid var(--nile-toast-color-border-info, var(--ng-colors-border-secondary-alt));\n background: var(--nile-toast-color-background-info, var(--ng-colors-bg-primary-alt));\n box-shadow: var(--nile-toast-color-box-shadow, var(--ng-shadow-xs));\n }\n\n .alert--info .alert__prefix-icon-container {\n background: var(--nile-toast-color-icon-background-color-info, var(--ng-colors-bg-primary-alt));\n }\n\n .alert--warning {\n border: 1px solid var(--nile-toast-color-border-warning, var(--ng-colors-border-secondary-alt));\n background: var(--nile-toast-color-background-warning, var(--ng-colors-bg-primary-alt));\n box-shadow: var(--nile-toast-color-box-shadow, var(--ng-shadow-xs));\n }\n\n .alert--warning .alert__prefix-icon-container {\n background: var(--nile-toast-color-icon-background-color-warning, var(--ng-colors-bg-primary-alt));\n }\n\n .alert--error {\n border: 1px solid var(--nile-toast-color-border-error, var(--ng-colors-border-secondary-alt));\n background: var(--nile-toast-color-background-error, var(--ng-colors-bg-primary-alt));\n box-shadow: var(--nile-toast-color-box-shadow, var(--ng-shadow-xs));\n }\n\n .alert--error .alert__prefix-icon-container {\n background: var(--nile-toast-color-icon-background-color-error, var(--ng-colors-bg-primary-alt));\n }\n\n .alert--gray {\n border: 1px solid var(--nile-toast-color-border-gray, var(--ng-colors-border-secondary-alt));\n background: var(--nile-toast-color-background-gray, var(--ng-colors-bg-primary-alt));\n box-shadow: var(--nile-toast-color-box-shadow, var(--ng-shadow-xs));\n }\n\n .alert--gray .alert__prefix-icon-container {\n background: var(--nile-toast-color-icon-background-color-gray, var(--ng-colors-bg-primary-alt));\n }\n\n .alert--black {\n border: 1px solid var(--nile-toast-color-border-black);\n background: var(--nile-toast-color-background-black);\n box-shadow: var(--nile-toast-color-box-black);\n }\n\n .alert--black .alert__prefix-icon-container {\n background: var(--nile-toast-color-icon-background-color-black);\n }\n\n .alert__message {\n flex: 1 1 auto;\n overflow: hidden;\n display: flex;\n align-items: center;\n flex-direction: column;\n align-items: flex-start;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-display));\n font-size: var(--nile-type-scale-3);\n color: var(--nile-colors-dark-900);\n gap: var(--nile-spacing-sm, var(--ng-spacing-sm));\n }\n\n .alert__message--title {\n font-weight: var(--nile-font-weight-semi-bold, var(--ng-font-weight-semiboldibold));\n color:var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n }\n\n .alert__message--content {\n font-weight:var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n color:var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n }\n\n .alert__message--content-only {\n }\n\n .alert__close-button {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n }\n\n .alert__tags {\n display: flex;\n flex-wrap: wrap;\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n margin-top: var(--nile-spacing-xs, var(--ng-spacing-xs));\n }\n\n .alert__tag {\n height: 24px;\n display: flex;\n border-radius: var(--nile-radius-sm, var(--ng-radius-sm));\n border: 1px solid var(--nile-colors-neutral-400);\n background: var(--nile-colors-white-base);\n }\n\n .alert__tag-content {\n border-left: 1px solid var(--nile-colors-neutral-400);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-sm, var(--ng-spacing-sm));\n\n color: var(--nile-colors-dark-900, var(--ng-colors-text-tertiary-600));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-display));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-style: normal;\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-semibold));\n line-height: var(--nile-line-height-xsmall, var(--ng-line-height-text-sm));\n letter-spacing: 0.2px;\n }\n\n .alert__tag-image {\n height: 24px;\n width: 24px;\n border-radius: var(--nile-radius-radius-xs, var(--ng-radius-xs)) var(--nile-radius-radius-none, var(--ng-radius-none)) var(--nile-radius-radius-none, var(--ng-radius-none)) var(--nile-radius-radius-xs, var(--ng-radius-xs));\n }\n\n .alert__prefix-img {\n height: 24px;\n border-radius: var(--nile-radius-sm, var(--ng-radius-sm));\n }\n\n .alert--no-content{\n align-items:center ;\n }\n\n [hidden] {\n display: none;\n }\n`;\n\nexport default [styles];\n"]}
1
+ {"version":3,"file":"nile-toast.css.js","sourceRoot":"","sources":["../../../src/nile-toast/nile-toast.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4LxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * Toast CSS\n */\nexport const styles = css`\n :host {\n display: contents;\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n\n /* For better DX, we'll reset the margin here so the base part can inherit it */\n margin: var(--nile-spacing-none);\n }\n\n .alert {\n max-width: 100%;\n box-sizing: border-box;\n position: relative;\n display: flex;\n align-items: flex-start;\n border: solid 2px;\n border-radius: var(--nile-radius-md, var(--ng-radius-xl));\n margin: inherit;\n padding: var(--nile-spacing-xl, var(--ng-spacing-xl));\n gap: var(--nile-spacing-xl, var(--ng-spacing-xl));\n width: max-content;\n min-width: 400px;\n }\n\n .alert:not(.alert--has-icon) .alert__icon,\n .alert:not(.alert--closable) .alert__close-button {\n display: none;\n }\n\n .alert__prefix-icon-container {\n background-color: var(--nile-colors-red-500);\n border-radius: var(--nile-radius-sm);\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .alert__icon {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n font-size: var(--nile-type-scale-1);\n }\n\n .alert--success {\n border: 1px solid var(--nile-toast-color-border-success, var(--ng-colors-border-primary));\n background: var(--nile-toast-color-background-success, var(--ng-colors-bg-primary-alt));\n box-shadow: var(--nile-toast-color-box-shadow, var(--ng-shadow-xs));\n }\n\n .alert--success .alert__prefix-icon-container {\n background: var(--nile-toast-color-icon-background-color-success, var(--ng-colors-bg-primary-alt));\n }\n\n .alert--info {\n border: 1px solid var(--nile-toast-color-border-info, var(--ng-colors-border-primary));\n background: var(--nile-toast-color-background-info, var(--ng-colors-bg-primary-alt));\n box-shadow: var(--nile-toast-color-box-shadow, var(--ng-shadow-xs));\n }\n\n .alert--info .alert__prefix-icon-container {\n background: var(--nile-toast-color-icon-background-color-info, var(--ng-colors-bg-primary-alt));\n }\n\n .alert--warning {\n border: 1px solid var(--nile-toast-color-border-warning, var(--ng-colors-border-primary));\n background: var(--nile-toast-color-background-warning, var(--ng-colors-bg-primary-alt));\n box-shadow: var(--nile-toast-color-box-shadow, var(--ng-shadow-xs));\n }\n\n .alert--warning .alert__prefix-icon-container {\n background: var(--nile-toast-color-icon-background-color-warning, var(--ng-colors-bg-primary-alt));\n }\n\n .alert--error {\n border: 1px solid var(--nile-toast-color-border-error, var(--ng-colors-border-primary));\n background: var(--nile-toast-color-background-error, var(--ng-colors-bg-primary-alt));\n box-shadow: var(--nile-toast-color-box-shadow, var(--ng-shadow-xs));\n }\n\n .alert--error .alert__prefix-icon-container {\n background: var(--nile-toast-color-icon-background-color-error, var(--ng-colors-bg-primary-alt));\n }\n\n .alert--gray {\n border: 1px solid var(--nile-toast-color-border-gray, var(--ng-colors-border-primary));\n background: var(--nile-toast-color-background-gray, var(--ng-colors-bg-primary-alt));\n box-shadow: var(--nile-toast-color-box-shadow, var(--ng-shadow-xs));\n }\n\n .alert--gray .alert__prefix-icon-container {\n background: var(--nile-toast-color-icon-background-color-gray, var(--ng-colors-bg-primary-alt));\n }\n\n .alert--black {\n border: 1px solid var(--nile-toast-color-border-black);\n background: var(--nile-toast-color-background-black);\n box-shadow: var(--nile-toast-color-box-black);\n }\n\n .alert--black .alert__prefix-icon-container {\n background: var(--nile-toast-color-icon-background-color-black);\n }\n\n .alert__message {\n flex: 1 1 auto;\n overflow: hidden;\n display: flex;\n align-items: center;\n flex-direction: column;\n align-items: flex-start;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-display));\n font-size: var(--nile-type-scale-3);\n color: var(--nile-colors-dark-900);\n gap: var(--nile-spacing-sm, var(--ng-spacing-sm));\n }\n\n .alert__message--title {\n font-weight: var(--nile-font-weight-semi-bold, var(--ng-font-weight-semiboldibold));\n color:var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n }\n\n .alert__message--content {\n font-weight:var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n color:var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n }\n\n .alert__message--content-only {\n }\n\n .alert__close-button {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n }\n\n .alert__tags {\n display: flex;\n flex-wrap: wrap;\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n margin-top: var(--nile-spacing-xs, var(--ng-spacing-xs));\n }\n\n .alert__tag {\n height: 24px;\n display: flex;\n border-radius: var(--nile-radius-sm, var(--ng-radius-sm));\n border: 1px solid var(--nile-colors-neutral-400);\n background: var(--nile-colors-white-base);\n }\n\n .alert__tag-content {\n border-left: 1px solid var(--nile-colors-neutral-400);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-sm, var(--ng-spacing-sm));\n\n color: var(--nile-colors-dark-900, var(--ng-colors-text-tertiary-600));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-display));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-style: normal;\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-semibold));\n line-height: var(--nile-line-height-xsmall, var(--ng-line-height-text-sm));\n letter-spacing: 0.2px;\n }\n\n .alert__tag-image {\n height: 24px;\n width: 24px;\n border-radius: var(--nile-radius-radius-xs, var(--ng-radius-xs)) var(--nile-radius-radius-none, var(--ng-radius-none)) var(--nile-radius-radius-none, var(--ng-radius-none)) var(--nile-radius-radius-xs, var(--ng-radius-xs));\n }\n\n .alert__prefix-img {\n height: 24px;\n border-radius: var(--nile-radius-sm, var(--ng-radius-sm));\n }\n\n .alert--no-content{\n align-items:center ;\n }\n\n [hidden] {\n display: none;\n }\n`;\n\nexport default [styles];\n"]}
@@ -12,7 +12,7 @@
12
12
  // @aquera/nile/lib/version.js into dist/index.js, so on the CDN build it is
13
13
  // frozen at this package's build time. The stylesheet is the live source.
14
14
  import { NILE_VERSION as BUILT_IN_NILE_VERSION } from '@aquera/nile/lib/version.js';
15
- export const NILE_ELEMENTS_VERSION = '2.0.9';
15
+ export const NILE_ELEMENTS_VERSION = '2.0.11';
16
16
  function readStylesheetNileVersion() {
17
17
  if (typeof window === 'undefined' || typeof getComputedStyle !== 'function') {
18
18
  return null;