@deephaven/components 0.55.0 → 0.55.1-alpha-theme-spectrum.17

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/css/BaseStyleSheet.css +878 -3622
  2. package/css/BaseStyleSheet.css.map +1 -1
  3. package/dist/AutoCompleteInput.css +4 -4
  4. package/dist/AutoCompleteInput.css.map +1 -1
  5. package/dist/Button.d.ts.map +1 -1
  6. package/dist/Button.js +26 -2
  7. package/dist/Button.js.map +1 -1
  8. package/dist/ComboBox.css +26 -6
  9. package/dist/ComboBox.css.map +1 -1
  10. package/dist/ComboBox.d.ts.map +1 -1
  11. package/dist/ComboBox.js +2 -4
  12. package/dist/ComboBox.js.map +1 -1
  13. package/dist/CustomTimeSelect.css +23 -10
  14. package/dist/CustomTimeSelect.css.map +1 -1
  15. package/dist/CustomTimeSelect.d.ts.map +1 -1
  16. package/dist/CustomTimeSelect.js +2 -5
  17. package/dist/CustomTimeSelect.js.map +1 -1
  18. package/dist/DraggableItemList.css +14 -14
  19. package/dist/DraggableItemList.css.map +1 -1
  20. package/dist/ErrorBoundary.d.ts +26 -0
  21. package/dist/ErrorBoundary.d.ts.map +1 -0
  22. package/dist/ErrorBoundary.js +55 -0
  23. package/dist/ErrorBoundary.js.map +1 -0
  24. package/dist/HierarchicalCheckboxMenu.css +20 -6
  25. package/dist/HierarchicalCheckboxMenu.css.map +1 -1
  26. package/dist/HierarchicalCheckboxMenu.d.ts.map +1 -1
  27. package/dist/HierarchicalCheckboxMenu.js +2 -4
  28. package/dist/HierarchicalCheckboxMenu.js.map +1 -1
  29. package/dist/ItemList.css +1 -1
  30. package/dist/ItemList.css.map +1 -1
  31. package/dist/ItemListItem.css +7 -7
  32. package/dist/ItemListItem.css.map +1 -1
  33. package/dist/LoadingOverlay.css +1 -1
  34. package/dist/LoadingOverlay.css.map +1 -1
  35. package/dist/LoadingSpinner.css +2 -8
  36. package/dist/LoadingSpinner.css.map +1 -1
  37. package/dist/MaskedInput.css.map +1 -1
  38. package/dist/RandomAreaPlotAnimation.d.ts +1 -1
  39. package/dist/RandomAreaPlotAnimation.d.ts.map +1 -1
  40. package/dist/RandomAreaPlotAnimation.js +43 -14
  41. package/dist/RandomAreaPlotAnimation.js.map +1 -1
  42. package/dist/SearchInput.css +28 -12
  43. package/dist/SearchInput.css.map +1 -1
  44. package/dist/SearchInput.d.ts +10 -1
  45. package/dist/SearchInput.d.ts.map +1 -1
  46. package/dist/SearchInput.js +73 -7
  47. package/dist/SearchInput.js.map +1 -1
  48. package/dist/SelectValueList.css +3 -3
  49. package/dist/SelectValueList.css.map +1 -1
  50. package/dist/SocketedButton.css +33 -33
  51. package/dist/SocketedButton.css.map +1 -1
  52. package/dist/ThemeExport.module.css +33 -33
  53. package/dist/ThemeExport.module.css.map +1 -1
  54. package/dist/TimeSlider.css +10 -10
  55. package/dist/TimeSlider.css.map +1 -1
  56. package/dist/TimeSlider.module.css +10 -10
  57. package/dist/TimeSlider.module.css.map +1 -1
  58. package/dist/ToastNotification.css +4 -4
  59. package/dist/ToastNotification.css.map +1 -1
  60. package/dist/UISwitch.css +19 -19
  61. package/dist/UISwitch.css.map +1 -1
  62. package/dist/ValidateLabelInput.css +1 -1
  63. package/dist/ValidateLabelInput.css.map +1 -1
  64. package/dist/context-actions/ContextActions.css +19 -19
  65. package/dist/context-actions/ContextActions.css.map +1 -1
  66. package/dist/index.d.ts +1 -0
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +1 -0
  69. package/dist/index.js.map +1 -1
  70. package/dist/menu-actions/DropdownMenu.css +2 -2
  71. package/dist/menu-actions/DropdownMenu.css.map +1 -1
  72. package/dist/navigation/MenuItem.css +9 -9
  73. package/dist/navigation/MenuItem.css.map +1 -1
  74. package/dist/navigation/Page.css.map +1 -1
  75. package/dist/navigation/Stack.css +2 -2
  76. package/dist/navigation/Stack.css.map +1 -1
  77. package/dist/popper/Popper.css +4 -4
  78. package/dist/popper/Popper.css.map +1 -1
  79. package/dist/shortcuts/GlobalShortcuts.d.ts +2 -0
  80. package/dist/shortcuts/GlobalShortcuts.d.ts.map +1 -1
  81. package/dist/shortcuts/GlobalShortcuts.js +14 -0
  82. package/dist/shortcuts/GlobalShortcuts.js.map +1 -1
  83. package/dist/theme/SpectrumThemeProvider.d.ts.map +1 -1
  84. package/dist/theme/SpectrumThemeProvider.js +1 -0
  85. package/dist/theme/SpectrumThemeProvider.js.map +1 -1
  86. package/dist/theme/ThemeModel.d.ts +12 -6
  87. package/dist/theme/ThemeModel.d.ts.map +1 -1
  88. package/dist/theme/ThemeModel.js +67 -3
  89. package/dist/theme/ThemeModel.js.map +1 -1
  90. package/dist/theme/ThemePicker.d.ts +4 -0
  91. package/dist/theme/ThemePicker.d.ts.map +1 -0
  92. package/dist/theme/ThemePicker.js +25 -0
  93. package/dist/theme/ThemePicker.js.map +1 -0
  94. package/dist/theme/ThemeProvider.d.ts +3 -1
  95. package/dist/theme/ThemeProvider.d.ts.map +1 -1
  96. package/dist/theme/ThemeProvider.js +23 -13
  97. package/dist/theme/ThemeProvider.js.map +1 -1
  98. package/dist/theme/ThemeUtils.d.ts +42 -8
  99. package/dist/theme/ThemeUtils.d.ts.map +1 -1
  100. package/dist/theme/ThemeUtils.js +97 -36
  101. package/dist/theme/ThemeUtils.js.map +1 -1
  102. package/dist/theme/index.d.ts +1 -0
  103. package/dist/theme/index.d.ts.map +1 -1
  104. package/dist/theme/index.js +1 -0
  105. package/dist/theme/index.js.map +1 -1
  106. package/dist/theme/theme-dark/theme-dark-components.css +1 -1
  107. package/dist/theme/theme-dark/theme-dark-components.css.map +1 -1
  108. package/dist/theme/theme-dark/theme-dark-palette.css +1 -1
  109. package/dist/theme/theme-dark/theme-dark-palette.css.map +1 -1
  110. package/dist/theme/theme-dark/theme-dark-semantic-chart.css +1 -1
  111. package/dist/theme/theme-dark/theme-dark-semantic-chart.css.map +1 -1
  112. package/dist/theme/theme-dark/theme-dark-semantic-editor.css +1 -1
  113. package/dist/theme/theme-dark/theme-dark-semantic-editor.css.map +1 -1
  114. package/dist/theme/theme-dark/theme-dark-semantic-grid.css +1 -1
  115. package/dist/theme/theme-dark/theme-dark-semantic-grid.css.map +1 -1
  116. package/dist/theme/theme-dark/theme-dark-semantic.css +1 -1
  117. package/dist/theme/theme-dark/theme-dark-semantic.css.map +1 -1
  118. package/dist/theme/theme-light/theme-light-palette.css +1 -1
  119. package/dist/theme/theme-light/theme-light-palette.css.map +1 -1
  120. package/dist/theme/theme-spectrum/index.d.ts +1 -0
  121. package/dist/theme/theme-spectrum/index.d.ts.map +1 -1
  122. package/dist/theme/theme-spectrum/index.js +3 -3
  123. package/dist/theme/theme-spectrum/index.js.map +1 -1
  124. package/dist/theme/theme-spectrum/theme-spectrum-alias.module.css +1 -1
  125. package/dist/theme/theme-spectrum/theme-spectrum-alias.module.css.map +1 -1
  126. package/dist/theme/theme-spectrum/theme-spectrum-overrides.css +1 -0
  127. package/dist/theme/theme-spectrum/theme-spectrum-overrides.css.map +1 -0
  128. package/dist/theme/theme-svg.css +1 -0
  129. package/dist/theme/theme-svg.css.map +1 -0
  130. package/package.json +7 -7
  131. package/scss/BaseStyleSheet.scss +169 -82
  132. package/scss/bootstrap_imports.scss +49 -0
  133. package/scss/bootstrap_override_functions.scss +31 -0
  134. package/scss/bootstrap_override_mixins_background_variant.scss +16 -0
  135. package/scss/bootstrap_override_mixins_buttons.scss +123 -0
  136. package/scss/bootstrap_override_mixins_forms.scss +231 -0
  137. package/scss/bootstrap_override_mixins_text_emphasis.scss +21 -0
  138. package/scss/bootstrap_overrides.scss +144 -101
  139. package/scss/new_variables.scss +18 -0
  140. package/scss/util.scss +27 -0
  141. package/dist/theme/theme-spectrum/theme-spectrum-overrides.module.css +0 -1
  142. package/dist/theme/theme-spectrum/theme-spectrum-overrides.module.css.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalShortcuts.d.ts","sourceRoot":"","sources":["../../src/shortcuts/GlobalShortcuts.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,gBAAgB;;;;;;;CA0CrB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"GlobalShortcuts.d.ts","sourceRoot":"","sources":["../../src/shortcuts/GlobalShortcuts.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,gBAAgB;;;;;;;;;CAwDrB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -41,6 +41,20 @@ var GLOBAL_SHORTCUTS = {
41
41
  shortcut: [KEY.ESCAPE],
42
42
  macShortcut: [KEY.ESCAPE],
43
43
  isEditable: false
44
+ }),
45
+ NEXT: ShortcutRegistry.createAndAdd({
46
+ id: 'GLOBAL.NEXT',
47
+ name: 'Next',
48
+ shortcut: [KEY.ENTER],
49
+ macShortcut: [KEY.ENTER],
50
+ isEditable: false
51
+ }),
52
+ PREVIOUS: ShortcutRegistry.createAndAdd({
53
+ id: 'GLOBAL.PREVIOUS',
54
+ name: 'Previous',
55
+ shortcut: [MODIFIER.SHIFT, KEY.ENTER],
56
+ macShortcut: [MODIFIER.SHIFT, KEY.ENTER],
57
+ isEditable: false
44
58
  })
45
59
  };
46
60
  export default GLOBAL_SHORTCUTS;
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalShortcuts.js","names":["ShortcutRegistry","MODIFIER","KEY","GLOBAL_SHORTCUTS","COPY","createAndAdd","id","name","shortcut","CTRL","C","macShortcut","CMD","isEditable","PASTE","V","SAVE","S","SELECT_ALL","A","LINKER","L","LINKER_CLOSE","ESCAPE"],"sources":["../../src/shortcuts/GlobalShortcuts.ts"],"sourcesContent":["import ShortcutRegistry from './ShortcutRegistry';\nimport { MODIFIER, KEY } from './Shortcut';\n\nconst GLOBAL_SHORTCUTS = {\n COPY: ShortcutRegistry.createAndAdd({\n id: 'GLOBAL.COPY',\n name: 'Copy',\n shortcut: [MODIFIER.CTRL, KEY.C],\n macShortcut: [MODIFIER.CMD, KEY.C],\n isEditable: false,\n }),\n PASTE: ShortcutRegistry.createAndAdd({\n id: 'GLOBAL.PASTE',\n name: 'Paste',\n shortcut: [MODIFIER.CTRL, KEY.V],\n macShortcut: [MODIFIER.CMD, KEY.V],\n isEditable: false,\n }),\n SAVE: ShortcutRegistry.createAndAdd({\n id: 'GLOBAL.SAVE',\n name: 'Save',\n shortcut: [MODIFIER.CTRL, KEY.S],\n macShortcut: [MODIFIER.CMD, KEY.S],\n isEditable: false,\n }),\n SELECT_ALL: ShortcutRegistry.createAndAdd({\n id: 'GLOBAL.SELECT_ALL',\n name: 'Select All',\n shortcut: [MODIFIER.CTRL, KEY.A],\n macShortcut: [MODIFIER.CMD, KEY.A],\n isEditable: false,\n }),\n LINKER: ShortcutRegistry.createAndAdd({\n id: 'GLOBAL.LINKER',\n name: 'Linker',\n shortcut: [MODIFIER.CTRL, KEY.L],\n macShortcut: [MODIFIER.CMD, KEY.L],\n }),\n LINKER_CLOSE: ShortcutRegistry.createAndAdd({\n id: 'GLOBAL.LINKER_CLOSE',\n name: 'Close Linker Overlay',\n shortcut: [KEY.ESCAPE],\n macShortcut: [KEY.ESCAPE],\n isEditable: false,\n }),\n};\n\nexport default GLOBAL_SHORTCUTS;\n"],"mappings":"OAAOA,gBAAgB;AAAA,SACdC,QAAQ,EAAEC,GAAG;AAEtB,IAAMC,gBAAgB,GAAG;EACvBC,IAAI,EAAEJ,gBAAgB,CAACK,YAAY,CAAC;IAClCC,EAAE,EAAE,aAAa;IACjBC,IAAI,EAAE,MAAM;IACZC,QAAQ,EAAE,CAACP,QAAQ,CAACQ,IAAI,EAAEP,GAAG,CAACQ,CAAC,CAAC;IAChCC,WAAW,EAAE,CAACV,QAAQ,CAACW,GAAG,EAAEV,GAAG,CAACQ,CAAC,CAAC;IAClCG,UAAU,EAAE;EACd,CAAC,CAAC;EACFC,KAAK,EAAEd,gBAAgB,CAACK,YAAY,CAAC;IACnCC,EAAE,EAAE,cAAc;IAClBC,IAAI,EAAE,OAAO;IACbC,QAAQ,EAAE,CAACP,QAAQ,CAACQ,IAAI,EAAEP,GAAG,CAACa,CAAC,CAAC;IAChCJ,WAAW,EAAE,CAACV,QAAQ,CAACW,GAAG,EAAEV,GAAG,CAACa,CAAC,CAAC;IAClCF,UAAU,EAAE;EACd,CAAC,CAAC;EACFG,IAAI,EAAEhB,gBAAgB,CAACK,YAAY,CAAC;IAClCC,EAAE,EAAE,aAAa;IACjBC,IAAI,EAAE,MAAM;IACZC,QAAQ,EAAE,CAACP,QAAQ,CAACQ,IAAI,EAAEP,GAAG,CAACe,CAAC,CAAC;IAChCN,WAAW,EAAE,CAACV,QAAQ,CAACW,GAAG,EAAEV,GAAG,CAACe,CAAC,CAAC;IAClCJ,UAAU,EAAE;EACd,CAAC,CAAC;EACFK,UAAU,EAAElB,gBAAgB,CAACK,YAAY,CAAC;IACxCC,EAAE,EAAE,mBAAmB;IACvBC,IAAI,EAAE,YAAY;IAClBC,QAAQ,EAAE,CAACP,QAAQ,CAACQ,IAAI,EAAEP,GAAG,CAACiB,CAAC,CAAC;IAChCR,WAAW,EAAE,CAACV,QAAQ,CAACW,GAAG,EAAEV,GAAG,CAACiB,CAAC,CAAC;IAClCN,UAAU,EAAE;EACd,CAAC,CAAC;EACFO,MAAM,EAAEpB,gBAAgB,CAACK,YAAY,CAAC;IACpCC,EAAE,EAAE,eAAe;IACnBC,IAAI,EAAE,QAAQ;IACdC,QAAQ,EAAE,CAACP,QAAQ,CAACQ,IAAI,EAAEP,GAAG,CAACmB,CAAC,CAAC;IAChCV,WAAW,EAAE,CAACV,QAAQ,CAACW,GAAG,EAAEV,GAAG,CAACmB,CAAC;EACnC,CAAC,CAAC;EACFC,YAAY,EAAEtB,gBAAgB,CAACK,YAAY,CAAC;IAC1CC,EAAE,EAAE,qBAAqB;IACzBC,IAAI,EAAE,sBAAsB;IAC5BC,QAAQ,EAAE,CAACN,GAAG,CAACqB,MAAM,CAAC;IACtBZ,WAAW,EAAE,CAACT,GAAG,CAACqB,MAAM,CAAC;IACzBV,UAAU,EAAE;EACd,CAAC;AACH,CAAC;AAED,eAAeV,gBAAgB"}
1
+ {"version":3,"file":"GlobalShortcuts.js","names":["ShortcutRegistry","MODIFIER","KEY","GLOBAL_SHORTCUTS","COPY","createAndAdd","id","name","shortcut","CTRL","C","macShortcut","CMD","isEditable","PASTE","V","SAVE","S","SELECT_ALL","A","LINKER","L","LINKER_CLOSE","ESCAPE","NEXT","ENTER","PREVIOUS","SHIFT"],"sources":["../../src/shortcuts/GlobalShortcuts.ts"],"sourcesContent":["import ShortcutRegistry from './ShortcutRegistry';\nimport { MODIFIER, KEY } from './Shortcut';\n\nconst GLOBAL_SHORTCUTS = {\n COPY: ShortcutRegistry.createAndAdd({\n id: 'GLOBAL.COPY',\n name: 'Copy',\n shortcut: [MODIFIER.CTRL, KEY.C],\n macShortcut: [MODIFIER.CMD, KEY.C],\n isEditable: false,\n }),\n PASTE: ShortcutRegistry.createAndAdd({\n id: 'GLOBAL.PASTE',\n name: 'Paste',\n shortcut: [MODIFIER.CTRL, KEY.V],\n macShortcut: [MODIFIER.CMD, KEY.V],\n isEditable: false,\n }),\n SAVE: ShortcutRegistry.createAndAdd({\n id: 'GLOBAL.SAVE',\n name: 'Save',\n shortcut: [MODIFIER.CTRL, KEY.S],\n macShortcut: [MODIFIER.CMD, KEY.S],\n isEditable: false,\n }),\n SELECT_ALL: ShortcutRegistry.createAndAdd({\n id: 'GLOBAL.SELECT_ALL',\n name: 'Select All',\n shortcut: [MODIFIER.CTRL, KEY.A],\n macShortcut: [MODIFIER.CMD, KEY.A],\n isEditable: false,\n }),\n LINKER: ShortcutRegistry.createAndAdd({\n id: 'GLOBAL.LINKER',\n name: 'Linker',\n shortcut: [MODIFIER.CTRL, KEY.L],\n macShortcut: [MODIFIER.CMD, KEY.L],\n }),\n LINKER_CLOSE: ShortcutRegistry.createAndAdd({\n id: 'GLOBAL.LINKER_CLOSE',\n name: 'Close Linker Overlay',\n shortcut: [KEY.ESCAPE],\n macShortcut: [KEY.ESCAPE],\n isEditable: false,\n }),\n NEXT: ShortcutRegistry.createAndAdd({\n id: 'GLOBAL.NEXT',\n name: 'Next',\n shortcut: [KEY.ENTER],\n macShortcut: [KEY.ENTER],\n isEditable: false,\n }),\n PREVIOUS: ShortcutRegistry.createAndAdd({\n id: 'GLOBAL.PREVIOUS',\n name: 'Previous',\n shortcut: [MODIFIER.SHIFT, KEY.ENTER],\n macShortcut: [MODIFIER.SHIFT, KEY.ENTER],\n isEditable: false,\n }),\n};\n\nexport default GLOBAL_SHORTCUTS;\n"],"mappings":"OAAOA,gBAAgB;AAAA,SACdC,QAAQ,EAAEC,GAAG;AAEtB,IAAMC,gBAAgB,GAAG;EACvBC,IAAI,EAAEJ,gBAAgB,CAACK,YAAY,CAAC;IAClCC,EAAE,EAAE,aAAa;IACjBC,IAAI,EAAE,MAAM;IACZC,QAAQ,EAAE,CAACP,QAAQ,CAACQ,IAAI,EAAEP,GAAG,CAACQ,CAAC,CAAC;IAChCC,WAAW,EAAE,CAACV,QAAQ,CAACW,GAAG,EAAEV,GAAG,CAACQ,CAAC,CAAC;IAClCG,UAAU,EAAE;EACd,CAAC,CAAC;EACFC,KAAK,EAAEd,gBAAgB,CAACK,YAAY,CAAC;IACnCC,EAAE,EAAE,cAAc;IAClBC,IAAI,EAAE,OAAO;IACbC,QAAQ,EAAE,CAACP,QAAQ,CAACQ,IAAI,EAAEP,GAAG,CAACa,CAAC,CAAC;IAChCJ,WAAW,EAAE,CAACV,QAAQ,CAACW,GAAG,EAAEV,GAAG,CAACa,CAAC,CAAC;IAClCF,UAAU,EAAE;EACd,CAAC,CAAC;EACFG,IAAI,EAAEhB,gBAAgB,CAACK,YAAY,CAAC;IAClCC,EAAE,EAAE,aAAa;IACjBC,IAAI,EAAE,MAAM;IACZC,QAAQ,EAAE,CAACP,QAAQ,CAACQ,IAAI,EAAEP,GAAG,CAACe,CAAC,CAAC;IAChCN,WAAW,EAAE,CAACV,QAAQ,CAACW,GAAG,EAAEV,GAAG,CAACe,CAAC,CAAC;IAClCJ,UAAU,EAAE;EACd,CAAC,CAAC;EACFK,UAAU,EAAElB,gBAAgB,CAACK,YAAY,CAAC;IACxCC,EAAE,EAAE,mBAAmB;IACvBC,IAAI,EAAE,YAAY;IAClBC,QAAQ,EAAE,CAACP,QAAQ,CAACQ,IAAI,EAAEP,GAAG,CAACiB,CAAC,CAAC;IAChCR,WAAW,EAAE,CAACV,QAAQ,CAACW,GAAG,EAAEV,GAAG,CAACiB,CAAC,CAAC;IAClCN,UAAU,EAAE;EACd,CAAC,CAAC;EACFO,MAAM,EAAEpB,gBAAgB,CAACK,YAAY,CAAC;IACpCC,EAAE,EAAE,eAAe;IACnBC,IAAI,EAAE,QAAQ;IACdC,QAAQ,EAAE,CAACP,QAAQ,CAACQ,IAAI,EAAEP,GAAG,CAACmB,CAAC,CAAC;IAChCV,WAAW,EAAE,CAACV,QAAQ,CAACW,GAAG,EAAEV,GAAG,CAACmB,CAAC;EACnC,CAAC,CAAC;EACFC,YAAY,EAAEtB,gBAAgB,CAACK,YAAY,CAAC;IAC1CC,EAAE,EAAE,qBAAqB;IACzBC,IAAI,EAAE,sBAAsB;IAC5BC,QAAQ,EAAE,CAACN,GAAG,CAACqB,MAAM,CAAC;IACtBZ,WAAW,EAAE,CAACT,GAAG,CAACqB,MAAM,CAAC;IACzBV,UAAU,EAAE;EACd,CAAC,CAAC;EACFW,IAAI,EAAExB,gBAAgB,CAACK,YAAY,CAAC;IAClCC,EAAE,EAAE,aAAa;IACjBC,IAAI,EAAE,MAAM;IACZC,QAAQ,EAAE,CAACN,GAAG,CAACuB,KAAK,CAAC;IACrBd,WAAW,EAAE,CAACT,GAAG,CAACuB,KAAK,CAAC;IACxBZ,UAAU,EAAE;EACd,CAAC,CAAC;EACFa,QAAQ,EAAE1B,gBAAgB,CAACK,YAAY,CAAC;IACtCC,EAAE,EAAE,iBAAiB;IACrBC,IAAI,EAAE,UAAU;IAChBC,QAAQ,EAAE,CAACP,QAAQ,CAAC0B,KAAK,EAAEzB,GAAG,CAACuB,KAAK,CAAC;IACrCd,WAAW,EAAE,CAACV,QAAQ,CAAC0B,KAAK,EAAEzB,GAAG,CAACuB,KAAK,CAAC;IACxCZ,UAAU,EAAE;EACd,CAAC;AACH,CAAC;AAED,eAAeV,gBAAgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"SpectrumThemeProvider.d.ts","sourceRoot":"","sources":["../../src/theme/SpectrumThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAE5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAInD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAChC;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,QAAgB,EAChB,KAAsB,EACtB,WAAW,GACZ,EAAE,0BAA0B,GAAG,GAAG,CAAC,OAAO,CAW1C"}
1
+ {"version":3,"file":"SpectrumThemeProvider.d.ts","sourceRoot":"","sources":["../../src/theme/SpectrumThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAE5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAInD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAChC;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,QAAgB,EAChB,KAAsB,EACtB,WAAW,GACZ,EAAE,0BAA0B,GAAG,GAAG,CAAC,OAAO,CAgB1C"}
@@ -22,6 +22,7 @@ export function SpectrumThemeProvider(_ref) {
22
22
  // won't be needed if https://github.com/adobe/react-spectrum/pull/2669 is merged
23
23
  var [id] = useState(isPortal ? shortid() : null);
24
24
  return /*#__PURE__*/_jsx(Provider, {
25
+ UNSAFE_className: "spectrum-theme-provider",
25
26
  theme: theme,
26
27
  colorScheme: colorScheme,
27
28
  "data-unique-id": id,
@@ -1 +1 @@
1
- {"version":3,"file":"SpectrumThemeProvider.js","names":["useState","Provider","shortid","themeDHDefault","jsx","_jsx","SpectrumThemeProvider","_ref","children","isPortal","theme","colorScheme","id"],"sources":["../../src/theme/SpectrumThemeProvider.tsx"],"sourcesContent":["import { ReactNode, useState } from 'react';\nimport { Provider } from '@adobe/react-spectrum';\nimport type { Theme } from '@react-types/provider';\nimport shortid from 'shortid';\nimport { themeDHDefault } from '../SpectrumUtils';\n\nexport interface SpectrumThemeProviderProps {\n children: ReactNode;\n isPortal?: boolean;\n theme?: Theme;\n colorScheme?: 'light' | 'dark';\n}\n\n/**\n * Wrapper around React Spectrum's theme Provider that provides DH mappings of\n * Spectrum's theme variables to DH's theme variables. Also exposes an optional\n * `isPortal` prop that if provided, adds a unique `data-unique-id` attribute to\n * the Provider. This is needed to force the Provider to render the theme wrapper\n * inside of portals.\n */\nexport function SpectrumThemeProvider({\n children,\n isPortal = false,\n theme = themeDHDefault,\n colorScheme,\n}: SpectrumThemeProviderProps): JSX.Element {\n // a unique ID is used per provider to force it to render the theme wrapper element inside portals\n // based on https://github.com/adobe/react-spectrum/issues/1697#issuecomment-999827266\n // won't be needed if https://github.com/adobe/react-spectrum/pull/2669 is merged\n const [id] = useState(isPortal ? shortid() : null);\n\n return (\n <Provider theme={theme} colorScheme={colorScheme} data-unique-id={id}>\n {children}\n </Provider>\n );\n}\n"],"mappings":"AAAA,SAAoBA,QAAQ,QAAQ,OAAO;AAC3C,SAASC,QAAQ,QAAQ,uBAAuB;AAEhD,OAAOC,OAAO,MAAM,SAAS;AAAC,SACrBC,cAAc;AAAA,SAAAC,GAAA,IAAAC,IAAA;AASvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAAAC,IAAA,EAKO;EAAA,IALN;IACpCC,QAAQ;IACRC,QAAQ,GAAG,KAAK;IAChBC,KAAK,GAAGP,cAAc;IACtBQ;EAC0B,CAAC,GAAAJ,IAAA;EAC3B;EACA;EACA;EACA,IAAM,CAACK,EAAE,CAAC,GAAGZ,QAAQ,CAACS,QAAQ,GAAGP,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;EAElD,oBACEG,IAAA,CAACJ,QAAQ;IAACS,KAAK,EAAEA,KAAM;IAACC,WAAW,EAAEA,WAAY;IAAC,kBAAgBC,EAAG;IAAAJ,QAAA,EAClEA;EAAQ,CACD,CAAC;AAEf"}
1
+ {"version":3,"file":"SpectrumThemeProvider.js","names":["useState","Provider","shortid","themeDHDefault","jsx","_jsx","SpectrumThemeProvider","_ref","children","isPortal","theme","colorScheme","id","UNSAFE_className"],"sources":["../../src/theme/SpectrumThemeProvider.tsx"],"sourcesContent":["import { ReactNode, useState } from 'react';\nimport { Provider } from '@adobe/react-spectrum';\nimport type { Theme } from '@react-types/provider';\nimport shortid from 'shortid';\nimport { themeDHDefault } from '../SpectrumUtils';\n\nexport interface SpectrumThemeProviderProps {\n children: ReactNode;\n isPortal?: boolean;\n theme?: Theme;\n colorScheme?: 'light' | 'dark';\n}\n\n/**\n * Wrapper around React Spectrum's theme Provider that provides DH mappings of\n * Spectrum's theme variables to DH's theme variables. Also exposes an optional\n * `isPortal` prop that if provided, adds a unique `data-unique-id` attribute to\n * the Provider. This is needed to force the Provider to render the theme wrapper\n * inside of portals.\n */\nexport function SpectrumThemeProvider({\n children,\n isPortal = false,\n theme = themeDHDefault,\n colorScheme,\n}: SpectrumThemeProviderProps): JSX.Element {\n // a unique ID is used per provider to force it to render the theme wrapper element inside portals\n // based on https://github.com/adobe/react-spectrum/issues/1697#issuecomment-999827266\n // won't be needed if https://github.com/adobe/react-spectrum/pull/2669 is merged\n const [id] = useState(isPortal ? shortid() : null);\n\n return (\n <Provider\n UNSAFE_className=\"spectrum-theme-provider\"\n theme={theme}\n colorScheme={colorScheme}\n data-unique-id={id}\n >\n {children}\n </Provider>\n );\n}\n"],"mappings":"AAAA,SAAoBA,QAAQ,QAAQ,OAAO;AAC3C,SAASC,QAAQ,QAAQ,uBAAuB;AAEhD,OAAOC,OAAO,MAAM,SAAS;AAAC,SACrBC,cAAc;AAAA,SAAAC,GAAA,IAAAC,IAAA;AASvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAAAC,IAAA,EAKO;EAAA,IALN;IACpCC,QAAQ;IACRC,QAAQ,GAAG,KAAK;IAChBC,KAAK,GAAGP,cAAc;IACtBQ;EAC0B,CAAC,GAAAJ,IAAA;EAC3B;EACA;EACA;EACA,IAAM,CAACK,EAAE,CAAC,GAAGZ,QAAQ,CAACS,QAAQ,GAAGP,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;EAElD,oBACEG,IAAA,CAACJ,QAAQ;IACPY,gBAAgB,EAAC,yBAAyB;IAC1CH,KAAK,EAAEA,KAAM;IACbC,WAAW,EAAEA,WAAY;IACzB,kBAAgBC,EAAG;IAAAJ,QAAA,EAElBA;EAAQ,CACD,CAAC;AAEf"}
@@ -1,16 +1,22 @@
1
1
  export type BaseThemeType = 'dark' | 'light';
2
2
  export type BaseThemeKey = `default-${BaseThemeType}`;
3
- export type ThemePreloadStyleContent = `:root{${string}`;
3
+ export type CssVariableStyleContent = `:root{${string}`;
4
+ export type ThemeCssVariableName = `--dh-${string}`;
5
+ export type ThemePreloadColorVariable = '--dh-color-accent-contrast' | '--dh-color-accent-bg' | '--dh-color-accent-hover-bg' | '--dh-color-accent-down-bg' | '--dh-color-accent-key-focus-bg' | '--dh-color-negative-bg' | '--dh-color-loading-spinner-primary' | '--dh-color-loading-spinner-secondary' | '--dh-color-bg' | '--dh-color-fg' | '--dh-color-input-bg' | '--dh-color-input-fg' | '--dh-color-input-disabled-bg' | '--dh-color-input-border' | '--dh-color-input-placeholder' | '--dh-color-input-focus-border' | '--dh-color-login-form-bg' | '--dh-color-login-status-message' | '--dh-color-login-logo-bg' | '--dh-color-login-footer-fg' | '--dh-color-random-area-plot-animation-fg-fill' | '--dh-color-random-area-plot-animation-fg-stroke' | '--dh-color-random-area-plot-animation-bg' | '--dh-color-random-area-plot-animation-grid';
6
+ export type ThemeIconsRequiringManualColorChanges = '--dh-svg-icon-select-indicator' | '--dh-svg-icon-select-indicator-hover' | '--dh-svg-icon-select-indicator-disabled' | '--dh-svg-icon-error';
4
7
  export declare const DEFAULT_DARK_THEME_KEY = "default-dark";
5
8
  export declare const DEFAULT_LIGHT_THEME_KEY = "default-light";
6
- export declare const DEFAULT_PRELOAD_DATA_VARIABLES: {
7
- '--dh-color-accent': string;
8
- '--dh-color-background': string;
9
- };
9
+ export declare const DEFAULT_PRELOAD_DATA_VARIABLES: Record<ThemePreloadColorVariable, string>;
10
+ /**
11
+ * Some inline SVGs require manually updating their fill color via
12
+ * `updateSVGFillColors`. This object maps these variables to their respective
13
+ * fill color variables.
14
+ */
15
+ export declare const SVG_ICON_MANUAL_COLOR_MAP: Record<ThemeIconsRequiringManualColorChanges, string>;
10
16
  export declare const THEME_CACHE_LOCAL_STORAGE_KEY = "deephaven.themeCache";
11
17
  export interface ThemePreloadData {
12
18
  themeKey: string;
13
- preloadStyleContent?: ThemePreloadStyleContent;
19
+ preloadStyleContent?: CssVariableStyleContent;
14
20
  }
15
21
  export interface ThemeData {
16
22
  baseThemeKey?: BaseThemeKey;
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeModel.d.ts","sourceRoot":"","sources":["../../src/theme/ThemeModel.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC;AAC7C,MAAM,MAAM,YAAY,GAAG,WAAW,aAAa,EAAE,CAAC;AACtD,MAAM,MAAM,wBAAwB,GAAG,SAAS,MAAM,EAAE,CAAC;AAEzD,eAAO,MAAM,sBAAsB,iBAAwC,CAAC;AAC5E,eAAO,MAAM,uBAAuB,kBAAyC,CAAC;AAG9E,eAAO,MAAM,8BAA8B;;;CAGC,CAAC;AAE7C,eAAO,MAAM,6BAA6B,yBAAyB,CAAC;AAEpE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;CAChD;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB"}
1
+ {"version":3,"file":"ThemeModel.d.ts","sourceRoot":"","sources":["../../src/theme/ThemeModel.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC;AAC7C,MAAM,MAAM,YAAY,GAAG,WAAW,aAAa,EAAE,CAAC;AACtD,MAAM,MAAM,uBAAuB,GAAG,SAAS,MAAM,EAAE,CAAC;AACxD,MAAM,MAAM,oBAAoB,GAAG,QAAQ,MAAM,EAAE,CAAC;AAEpD,MAAM,MAAM,yBAAyB,GACjC,4BAA4B,GAC5B,sBAAsB,GACtB,4BAA4B,GAC5B,2BAA2B,GAC3B,gCAAgC,GAChC,wBAAwB,GACxB,oCAAoC,GACpC,sCAAsC,GACtC,eAAe,GACf,eAAe,GACf,qBAAqB,GACrB,qBAAqB,GACrB,8BAA8B,GAC9B,yBAAyB,GACzB,8BAA8B,GAC9B,+BAA+B,GAI/B,0BAA0B,GAC1B,iCAAiC,GACjC,0BAA0B,GAC1B,4BAA4B,GAC5B,+CAA+C,GAC/C,iDAAiD,GACjD,0CAA0C,GAC1C,4CAA4C,CAAC;AAEjD,MAAM,MAAM,qCAAqC,GAC7C,gCAAgC,GAChC,sCAAsC,GACtC,yCAAyC,GACzC,qBAAqB,CAAC;AAE1B,eAAO,MAAM,sBAAsB,iBAAwC,CAAC;AAC5E,eAAO,MAAM,uBAAuB,kBAAyC,CAAC;AA2B9E,eAAO,MAAM,8BAA8B,EAAE,MAAM,CACjD,yBAAyB,EACzB,MAAM,CA+BP,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAC5C,qCAAqC,EACrC,MAAM,CAMP,CAAC;AAEF,eAAO,MAAM,6BAA6B,yBAAyB,CAAC;AAEpE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;CAC/C;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB"}
@@ -1,12 +1,76 @@
1
1
  export var DEFAULT_DARK_THEME_KEY = 'default-dark';
2
2
  export var DEFAULT_LIGHT_THEME_KEY = 'default-light';
3
3
 
4
+ // Hex versions of some of the default dark theme color palette needed for
5
+ // preload defaults.
6
+ var DEFAULT_DARK_THEME_PALETTE = {
7
+ blue: {
8
+ 500: '#2f5bc0',
9
+ 400: '#254ba4',
10
+ 600: '#3b6bda' // accent color
11
+ },
12
+
13
+ red: {
14
+ 600: '#c73f61'
15
+ },
16
+ gray: {
17
+ 50: '#1a171a',
18
+ 75: '#211f22',
19
+ 300: '#373438',
20
+ 400: '#403e41',
21
+ 500: '#5b5a5c',
22
+ 600: '#929192',
23
+ 700: '#c0bfbf',
24
+ 800: '#f0f0ee',
25
+ 900: '#fcfcfa'
26
+ }
27
+ };
28
+
4
29
  // Css properties that are used in preload data with default values.
5
30
  export var DEFAULT_PRELOAD_DATA_VARIABLES = {
6
- '--dh-color-accent': '#4c7dee',
7
- // dark theme --dh-color-blue-700
8
- '--dh-color-background': '#1a171a' // dark theme --dh-color-gray-50
31
+ '--dh-color-accent-contrast': DEFAULT_DARK_THEME_PALETTE.gray[900],
32
+ '--dh-color-accent-bg': DEFAULT_DARK_THEME_PALETTE.blue[600],
33
+ '--dh-color-accent-hover-bg': DEFAULT_DARK_THEME_PALETTE.blue[500],
34
+ '--dh-color-accent-down-bg': DEFAULT_DARK_THEME_PALETTE.blue[400],
35
+ '--dh-color-accent-key-focus-bg': DEFAULT_DARK_THEME_PALETTE.blue[500],
36
+ '--dh-color-negative-bg': DEFAULT_DARK_THEME_PALETTE.red[600],
37
+ '--dh-color-loading-spinner-primary': DEFAULT_DARK_THEME_PALETTE.blue[600],
38
+ '--dh-color-loading-spinner-secondary': "".concat(DEFAULT_DARK_THEME_PALETTE.gray[800], "80"),
39
+ // 50% opacity
40
+ '--dh-color-bg': DEFAULT_DARK_THEME_PALETTE.gray[50],
41
+ '--dh-color-fg': DEFAULT_DARK_THEME_PALETTE.gray[800],
42
+ '--dh-color-input-bg': DEFAULT_DARK_THEME_PALETTE.gray[500],
43
+ '--dh-color-input-fg': DEFAULT_DARK_THEME_PALETTE.gray[800],
44
+ '--dh-color-input-disabled-bg': DEFAULT_DARK_THEME_PALETTE.gray[300],
45
+ '--dh-color-input-border': DEFAULT_DARK_THEME_PALETTE.gray[600],
46
+ '--dh-color-input-placeholder': DEFAULT_DARK_THEME_PALETTE.gray[600],
47
+ '--dh-color-input-focus-border': "".concat(DEFAULT_DARK_THEME_PALETTE.blue[600], "d9"),
48
+ // 85% opacity
49
+ // Preloading login specific variables should only be needed in DHE. Including
50
+ // them for now until we have a way for DHE to configure them. To be addressed
51
+ // by #1679
52
+ '--dh-color-login-form-bg': DEFAULT_DARK_THEME_PALETTE.gray[400],
53
+ '--dh-color-login-status-message': DEFAULT_DARK_THEME_PALETTE.gray[600],
54
+ '--dh-color-login-logo-bg': DEFAULT_DARK_THEME_PALETTE.gray[900],
55
+ '--dh-color-login-footer-fg': DEFAULT_DARK_THEME_PALETTE.gray[700],
56
+ '--dh-color-random-area-plot-animation-fg-fill': "".concat(DEFAULT_DARK_THEME_PALETTE.blue[600], "14"),
57
+ // .08 opacity
58
+ '--dh-color-random-area-plot-animation-fg-stroke': "".concat(DEFAULT_DARK_THEME_PALETTE.blue[600], "33"),
59
+ // .2 opacity
60
+ '--dh-color-random-area-plot-animation-bg': DEFAULT_DARK_THEME_PALETTE.gray[75],
61
+ '--dh-color-random-area-plot-animation-grid': DEFAULT_DARK_THEME_PALETTE.gray[300]
9
62
  };
10
63
 
64
+ /**
65
+ * Some inline SVGs require manually updating their fill color via
66
+ * `updateSVGFillColors`. This object maps these variables to their respective
67
+ * fill color variables.
68
+ */
69
+ export var SVG_ICON_MANUAL_COLOR_MAP = {
70
+ '--dh-svg-icon-select-indicator': '--dh-color-selector-fg',
71
+ '--dh-svg-icon-select-indicator-hover': '--dh-color-selector-hover-fg',
72
+ '--dh-svg-icon-select-indicator-disabled': '--dh-color-selector-disabled-fg',
73
+ '--dh-svg-icon-error': '--dh-color-form-control-error'
74
+ };
11
75
  export var THEME_CACHE_LOCAL_STORAGE_KEY = 'deephaven.themeCache';
12
76
  //# sourceMappingURL=ThemeModel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeModel.js","names":["DEFAULT_DARK_THEME_KEY","DEFAULT_LIGHT_THEME_KEY","DEFAULT_PRELOAD_DATA_VARIABLES","THEME_CACHE_LOCAL_STORAGE_KEY"],"sources":["../../src/theme/ThemeModel.ts"],"sourcesContent":["export type BaseThemeType = 'dark' | 'light';\nexport type BaseThemeKey = `default-${BaseThemeType}`;\nexport type ThemePreloadStyleContent = `:root{${string}`;\n\nexport const DEFAULT_DARK_THEME_KEY = 'default-dark' satisfies BaseThemeKey;\nexport const DEFAULT_LIGHT_THEME_KEY = 'default-light' satisfies BaseThemeKey;\n\n// Css properties that are used in preload data with default values.\nexport const DEFAULT_PRELOAD_DATA_VARIABLES = {\n '--dh-color-accent': '#4c7dee', // dark theme --dh-color-blue-700\n '--dh-color-background': '#1a171a', // dark theme --dh-color-gray-50\n} satisfies Record<`--dh-${string}`, string>;\n\nexport const THEME_CACHE_LOCAL_STORAGE_KEY = 'deephaven.themeCache';\n\nexport interface ThemePreloadData {\n themeKey: string;\n preloadStyleContent?: ThemePreloadStyleContent;\n}\n\nexport interface ThemeData {\n baseThemeKey?: BaseThemeKey;\n themeKey: string;\n name: string;\n styleContent: string;\n}\n\nexport interface ThemeRegistrationData {\n base: ThemeData[];\n custom: ThemeData[];\n}\n"],"mappings":"AAIA,OAAO,IAAMA,sBAAsB,GAAG,cAAqC;AAC3E,OAAO,IAAMC,uBAAuB,GAAG,eAAsC;;AAE7E;AACA,OAAO,IAAMC,8BAA8B,GAAG;EAC5C,mBAAmB,EAAE,SAAS;EAAE;EAChC,uBAAuB,EAAE,SAAS,CAAE;AACtC,CAA4C;;AAE5C,OAAO,IAAMC,6BAA6B,GAAG,sBAAsB"}
1
+ {"version":3,"file":"ThemeModel.js","names":["DEFAULT_DARK_THEME_KEY","DEFAULT_LIGHT_THEME_KEY","DEFAULT_DARK_THEME_PALETTE","blue","red","gray","DEFAULT_PRELOAD_DATA_VARIABLES","concat","SVG_ICON_MANUAL_COLOR_MAP","THEME_CACHE_LOCAL_STORAGE_KEY"],"sources":["../../src/theme/ThemeModel.ts"],"sourcesContent":["export type BaseThemeType = 'dark' | 'light';\nexport type BaseThemeKey = `default-${BaseThemeType}`;\nexport type CssVariableStyleContent = `:root{${string}`;\nexport type ThemeCssVariableName = `--dh-${string}`;\n\nexport type ThemePreloadColorVariable =\n | '--dh-color-accent-contrast'\n | '--dh-color-accent-bg'\n | '--dh-color-accent-hover-bg'\n | '--dh-color-accent-down-bg'\n | '--dh-color-accent-key-focus-bg'\n | '--dh-color-negative-bg'\n | '--dh-color-loading-spinner-primary'\n | '--dh-color-loading-spinner-secondary'\n | '--dh-color-bg'\n | '--dh-color-fg'\n | '--dh-color-input-bg'\n | '--dh-color-input-fg'\n | '--dh-color-input-disabled-bg'\n | '--dh-color-input-border'\n | '--dh-color-input-placeholder'\n | '--dh-color-input-focus-border'\n // Preloading login specific variables should only be needed in DHE. Including\n // them for now until we have a way for DHE to configure them. To be addressed\n // by #1679\n | '--dh-color-login-form-bg'\n | '--dh-color-login-status-message'\n | '--dh-color-login-logo-bg'\n | '--dh-color-login-footer-fg'\n | '--dh-color-random-area-plot-animation-fg-fill'\n | '--dh-color-random-area-plot-animation-fg-stroke'\n | '--dh-color-random-area-plot-animation-bg'\n | '--dh-color-random-area-plot-animation-grid';\n\nexport type ThemeIconsRequiringManualColorChanges =\n | '--dh-svg-icon-select-indicator'\n | '--dh-svg-icon-select-indicator-hover'\n | '--dh-svg-icon-select-indicator-disabled'\n | '--dh-svg-icon-error';\n\nexport const DEFAULT_DARK_THEME_KEY = 'default-dark' satisfies BaseThemeKey;\nexport const DEFAULT_LIGHT_THEME_KEY = 'default-light' satisfies BaseThemeKey;\n\n// Hex versions of some of the default dark theme color palette needed for\n// preload defaults.\nconst DEFAULT_DARK_THEME_PALETTE = {\n blue: {\n 500: '#2f5bc0',\n 400: '#254ba4',\n 600: '#3b6bda', // accent color\n },\n red: {\n 600: '#c73f61',\n },\n gray: {\n 50: '#1a171a',\n 75: '#211f22',\n 300: '#373438',\n 400: '#403e41',\n 500: '#5b5a5c',\n 600: '#929192',\n 700: '#c0bfbf',\n 800: '#f0f0ee',\n 900: '#fcfcfa',\n },\n} as const;\n\n// Css properties that are used in preload data with default values.\nexport const DEFAULT_PRELOAD_DATA_VARIABLES: Record<\n ThemePreloadColorVariable,\n string\n> = {\n '--dh-color-accent-contrast': DEFAULT_DARK_THEME_PALETTE.gray[900],\n '--dh-color-accent-bg': DEFAULT_DARK_THEME_PALETTE.blue[600],\n '--dh-color-accent-hover-bg': DEFAULT_DARK_THEME_PALETTE.blue[500],\n '--dh-color-accent-down-bg': DEFAULT_DARK_THEME_PALETTE.blue[400],\n '--dh-color-accent-key-focus-bg': DEFAULT_DARK_THEME_PALETTE.blue[500],\n '--dh-color-negative-bg': DEFAULT_DARK_THEME_PALETTE.red[600],\n '--dh-color-loading-spinner-primary': DEFAULT_DARK_THEME_PALETTE.blue[600],\n '--dh-color-loading-spinner-secondary': `${DEFAULT_DARK_THEME_PALETTE.gray[800]}80`, // 50% opacity\n '--dh-color-bg': DEFAULT_DARK_THEME_PALETTE.gray[50],\n '--dh-color-fg': DEFAULT_DARK_THEME_PALETTE.gray[800],\n '--dh-color-input-bg': DEFAULT_DARK_THEME_PALETTE.gray[500],\n '--dh-color-input-fg': DEFAULT_DARK_THEME_PALETTE.gray[800],\n '--dh-color-input-disabled-bg': DEFAULT_DARK_THEME_PALETTE.gray[300],\n '--dh-color-input-border': DEFAULT_DARK_THEME_PALETTE.gray[600],\n '--dh-color-input-placeholder': DEFAULT_DARK_THEME_PALETTE.gray[600],\n '--dh-color-input-focus-border': `${DEFAULT_DARK_THEME_PALETTE.blue[600]}d9`, // 85% opacity\n // Preloading login specific variables should only be needed in DHE. Including\n // them for now until we have a way for DHE to configure them. To be addressed\n // by #1679\n '--dh-color-login-form-bg': DEFAULT_DARK_THEME_PALETTE.gray[400],\n '--dh-color-login-status-message': DEFAULT_DARK_THEME_PALETTE.gray[600],\n '--dh-color-login-logo-bg': DEFAULT_DARK_THEME_PALETTE.gray[900],\n '--dh-color-login-footer-fg': DEFAULT_DARK_THEME_PALETTE.gray[700],\n '--dh-color-random-area-plot-animation-fg-fill': `${DEFAULT_DARK_THEME_PALETTE.blue[600]}14`, // .08 opacity\n '--dh-color-random-area-plot-animation-fg-stroke': `${DEFAULT_DARK_THEME_PALETTE.blue[600]}33`, // .2 opacity\n '--dh-color-random-area-plot-animation-bg':\n DEFAULT_DARK_THEME_PALETTE.gray[75],\n '--dh-color-random-area-plot-animation-grid':\n DEFAULT_DARK_THEME_PALETTE.gray[300],\n};\n\n/**\n * Some inline SVGs require manually updating their fill color via\n * `updateSVGFillColors`. This object maps these variables to their respective\n * fill color variables.\n */\nexport const SVG_ICON_MANUAL_COLOR_MAP: Record<\n ThemeIconsRequiringManualColorChanges,\n string\n> = {\n '--dh-svg-icon-select-indicator': '--dh-color-selector-fg',\n '--dh-svg-icon-select-indicator-hover': '--dh-color-selector-hover-fg',\n '--dh-svg-icon-select-indicator-disabled': '--dh-color-selector-disabled-fg',\n '--dh-svg-icon-error': '--dh-color-form-control-error',\n};\n\nexport const THEME_CACHE_LOCAL_STORAGE_KEY = 'deephaven.themeCache';\n\nexport interface ThemePreloadData {\n themeKey: string;\n preloadStyleContent?: CssVariableStyleContent;\n}\n\nexport interface ThemeData {\n baseThemeKey?: BaseThemeKey;\n themeKey: string;\n name: string;\n styleContent: string;\n}\n\nexport interface ThemeRegistrationData {\n base: ThemeData[];\n custom: ThemeData[];\n}\n"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ export declare function ThemePicker(): JSX.Element | null;
3
+ export default ThemePicker;
4
+ //# sourceMappingURL=ThemePicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemePicker.d.ts","sourceRoot":"","sources":["../../src/theme/ThemePicker.tsx"],"names":[],"mappings":";AAIA,wBAAgB,WAAW,IAAI,GAAG,CAAC,OAAO,GAAG,IAAI,CAoBhD;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { useCallback } from 'react';
2
+ import { Item, Picker } from '@adobe/react-spectrum';
3
+ import useTheme from "./useTheme.js";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ export function ThemePicker() {
6
+ var {
7
+ selectedThemeKey,
8
+ setSelectedThemeKey,
9
+ themes
10
+ } = useTheme();
11
+ var onSelectionChange = useCallback(key => {
12
+ setSelectedThemeKey(key);
13
+ }, [setSelectedThemeKey]);
14
+ return /*#__PURE__*/_jsx(Picker, {
15
+ label: "Pick a color scheme",
16
+ items: themes,
17
+ selectedKey: selectedThemeKey,
18
+ onSelectionChange: onSelectionChange,
19
+ children: item => /*#__PURE__*/_jsx(Item, {
20
+ children: item.name
21
+ }, item.themeKey)
22
+ });
23
+ }
24
+ export default ThemePicker;
25
+ //# sourceMappingURL=ThemePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemePicker.js","names":["useCallback","Item","Picker","useTheme","jsx","_jsx","ThemePicker","selectedThemeKey","setSelectedThemeKey","themes","onSelectionChange","key","label","items","selectedKey","children","item","name","themeKey"],"sources":["../../src/theme/ThemePicker.tsx"],"sourcesContent":["import { Key, useCallback } from 'react';\nimport { Item, Picker } from '@adobe/react-spectrum';\nimport useTheme from './useTheme';\n\nexport function ThemePicker(): JSX.Element | null {\n const { selectedThemeKey, setSelectedThemeKey, themes } = useTheme();\n\n const onSelectionChange = useCallback(\n (key: Key) => {\n setSelectedThemeKey(key as string);\n },\n [setSelectedThemeKey]\n );\n\n return (\n <Picker\n label=\"Pick a color scheme\"\n items={themes}\n selectedKey={selectedThemeKey}\n onSelectionChange={onSelectionChange}\n >\n {item => <Item key={item.themeKey}>{item.name}</Item>}\n </Picker>\n );\n}\n\nexport default ThemePicker;\n"],"mappings":"AAAA,SAAcA,WAAW,QAAQ,OAAO;AACxC,SAASC,IAAI,EAAEC,MAAM,QAAQ,uBAAuB;AAAC,OAC9CC,QAAQ;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAEf,OAAO,SAASC,WAAWA,CAAA,EAAuB;EAChD,IAAM;IAAEC,gBAAgB;IAAEC,mBAAmB;IAAEC;EAAO,CAAC,GAAGN,QAAQ,CAAC,CAAC;EAEpE,IAAMO,iBAAiB,GAAGV,WAAW,CAClCW,GAAQ,IAAK;IACZH,mBAAmB,CAACG,GAAa,CAAC;EACpC,CAAC,EACD,CAACH,mBAAmB,CACtB,CAAC;EAED,oBACEH,IAAA,CAACH,MAAM;IACLU,KAAK,EAAC,qBAAqB;IAC3BC,KAAK,EAAEJ,MAAO;IACdK,WAAW,EAAEP,gBAAiB;IAC9BG,iBAAiB,EAAEA,iBAAkB;IAAAK,QAAA,EAEpCC,IAAI,iBAAIX,IAAA,CAACJ,IAAI;MAAAc,QAAA,EAAsBC,IAAI,CAACC;IAAI,GAAzBD,IAAI,CAACE,QAA2B;EAAC,CAC/C,CAAC;AAEb;AAEA,eAAeZ,WAAW"}
@@ -1,8 +1,10 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { ThemeData } from './ThemeModel';
3
+ import './theme-svg.scss';
3
4
  export interface ThemeContextValue {
4
5
  activeThemes: ThemeData[] | null;
5
6
  selectedThemeKey: string;
7
+ themes: ThemeData[];
6
8
  setSelectedThemeKey: (themeKey: string) => void;
7
9
  }
8
10
  export declare const ThemeContext: import("react").Context<ThemeContextValue | null>;
@@ -10,6 +12,6 @@ export interface ThemeProviderProps {
10
12
  themes: ThemeData[] | null;
11
13
  children: ReactNode;
12
14
  }
13
- export declare function ThemeProvider({ themes, children, }: ThemeProviderProps): JSX.Element;
15
+ export declare function ThemeProvider({ themes: customThemes, children, }: ThemeProviderProps): JSX.Element | null;
14
16
  export default ThemeProvider;
15
17
  //# sourceMappingURL=ThemeProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/theme/ThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,SAAS,EAAgC,MAAM,OAAO,CAAC;AAE/E,OAAO,EAA0B,SAAS,EAAE,MAAM,cAAc,CAAC;AAUjE,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACjD;AAID,eAAO,MAAM,YAAY,mDAAgD,CAAC;AAE1E,MAAM,WAAW,kBAAkB;IAMjC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,QAAQ,GACT,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAkElC;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/theme/ThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,SAAS,EAAgC,MAAM,OAAO,CAAC;AAE/E,OAAO,EAA0B,SAAS,EAAE,MAAM,cAAc,CAAC;AAUjE,OAAO,kBAAkB,CAAC;AAE1B,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACjD;AAID,eAAO,MAAM,YAAY,mDAAgD,CAAC;AAE1E,MAAM,WAAW,kBAAkB;IAMjC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EAAE,YAAY,EACpB,QAAQ,GACT,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CA6EzC;AAED,eAAe,aAAa,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import { createContext, useEffect, useMemo, useState } from 'react';
2
2
  import Log from '@deephaven/log';
3
3
  import { DEFAULT_DARK_THEME_KEY } from "./ThemeModel.js";
4
- import { calculatePreloadStyleContent, getActiveThemes, getDefaultBaseThemes, getThemePreloadData, setThemePreloadData } from "./ThemeUtils.js";
4
+ import { calculatePreloadStyleContent, getActiveThemes, getDefaultBaseThemes, getThemePreloadData, setThemePreloadData, overrideSVGFillColors } from "./ThemeUtils.js";
5
5
  import { SpectrumThemeProvider } from "./SpectrumThemeProvider.js";
6
+ import "./theme-svg.css";
6
7
  import { jsx as _jsx } from "react/jsx-runtime";
7
8
  import { Fragment as _Fragment } from "react/jsx-runtime";
8
9
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -10,29 +11,35 @@ var log = Log.module('ThemeProvider');
10
11
  export var ThemeContext = /*#__PURE__*/createContext(null);
11
12
  export function ThemeProvider(_ref) {
12
13
  var {
13
- themes,
14
+ themes: customThemes,
14
15
  children
15
16
  } = _ref;
16
17
  var baseThemes = useMemo(() => getDefaultBaseThemes(), []);
18
+ var [value, setValue] = useState(null);
17
19
  var [selectedThemeKey, setSelectedThemeKey] = useState(() => {
18
20
  var _getThemePreloadData$, _getThemePreloadData;
19
21
  return (_getThemePreloadData$ = (_getThemePreloadData = getThemePreloadData()) === null || _getThemePreloadData === void 0 ? void 0 : _getThemePreloadData.themeKey) !== null && _getThemePreloadData$ !== void 0 ? _getThemePreloadData$ : DEFAULT_DARK_THEME_KEY;
20
22
  });
21
23
 
22
24
  // Calculate active themes once a non-null themes array is provided.
23
- var activeThemes = useMemo(() => themes == null ? null : getActiveThemes(selectedThemeKey, {
25
+ var activeThemes = useMemo(() => customThemes == null ? null : getActiveThemes(selectedThemeKey, {
24
26
  base: baseThemes,
25
- custom: themes !== null && themes !== void 0 ? themes : []
26
- }), [baseThemes, selectedThemeKey, themes]);
27
+ custom: customThemes !== null && customThemes !== void 0 ? customThemes : []
28
+ }), [baseThemes, selectedThemeKey, customThemes]);
29
+ var themes = useMemo(() => [...baseThemes, ...(customThemes !== null && customThemes !== void 0 ? customThemes : [])], [baseThemes, customThemes]);
27
30
  useEffect(function updateThemePreloadData() {
28
31
  // Don't update preload data until themes have been loaded and activated
29
- if (activeThemes == null || themes == null) {
32
+ if (activeThemes == null || customThemes == null) {
30
33
  return;
31
34
  }
35
+
36
+ // Override fill color for certain inline SVGs (the originals are provided
37
+ // by theme-svg.scss)
38
+ overrideSVGFillColors();
32
39
  var preloadStyleContent = calculatePreloadStyleContent();
33
40
  log.debug2('updateThemePreloadData:', {
34
41
  active: activeThemes.map(theme => theme.themeKey),
35
- all: themes.map(theme => theme.themeKey),
42
+ custom: customThemes.map(theme => theme.themeKey),
36
43
  preloadStyleContent,
37
44
  selectedThemeKey
38
45
  });
@@ -40,13 +47,16 @@ export function ThemeProvider(_ref) {
40
47
  themeKey: selectedThemeKey,
41
48
  preloadStyleContent
42
49
  });
50
+ }, [activeThemes, selectedThemeKey, customThemes]);
51
+ useEffect(() => {
52
+ setValue({
53
+ activeThemes,
54
+ selectedThemeKey,
55
+ themes,
56
+ setSelectedThemeKey
57
+ });
43
58
  }, [activeThemes, selectedThemeKey, themes]);
44
- var value = useMemo(() => ({
45
- activeThemes,
46
- selectedThemeKey,
47
- setSelectedThemeKey
48
- }), [activeThemes, selectedThemeKey]);
49
- return /*#__PURE__*/_jsxs(ThemeContext.Provider, {
59
+ return value == null ? null : /*#__PURE__*/_jsxs(ThemeContext.Provider, {
50
60
  value: value,
51
61
  children: [activeThemes == null ? null : /*#__PURE__*/_jsx(_Fragment, {
52
62
  children: activeThemes.map(theme => /*#__PURE__*/_jsx("style", {
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeProvider.js","names":["createContext","useEffect","useMemo","useState","Log","DEFAULT_DARK_THEME_KEY","calculatePreloadStyleContent","getActiveThemes","getDefaultBaseThemes","getThemePreloadData","setThemePreloadData","SpectrumThemeProvider","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","log","module","ThemeContext","ThemeProvider","_ref","themes","children","baseThemes","selectedThemeKey","setSelectedThemeKey","_getThemePreloadData$","_getThemePreloadData","themeKey","activeThemes","base","custom","updateThemePreloadData","preloadStyleContent","debug2","active","map","theme","all","value","Provider","styleContent"],"sources":["../../src/theme/ThemeProvider.tsx"],"sourcesContent":["import { createContext, ReactNode, useEffect, useMemo, useState } from 'react';\nimport Log from '@deephaven/log';\nimport { DEFAULT_DARK_THEME_KEY, ThemeData } from './ThemeModel';\nimport {\n calculatePreloadStyleContent,\n getActiveThemes,\n getDefaultBaseThemes,\n getThemePreloadData,\n setThemePreloadData,\n} from './ThemeUtils';\nimport { SpectrumThemeProvider } from './SpectrumThemeProvider';\n\nexport interface ThemeContextValue {\n activeThemes: ThemeData[] | null;\n selectedThemeKey: string;\n setSelectedThemeKey: (themeKey: string) => void;\n}\n\nconst log = Log.module('ThemeProvider');\n\nexport const ThemeContext = createContext<ThemeContextValue | null>(null);\n\nexport interface ThemeProviderProps {\n /*\n * Additional themes to load in addition to the base themes. If no additional\n * themes are to be loaded, this must be set to an empty array in order to\n * tell the provider to activate the base themes.\n */\n themes: ThemeData[] | null;\n children: ReactNode;\n}\n\nexport function ThemeProvider({\n themes,\n children,\n}: ThemeProviderProps): JSX.Element {\n const baseThemes = useMemo(() => getDefaultBaseThemes(), []);\n\n const [selectedThemeKey, setSelectedThemeKey] = useState<string>(\n () => getThemePreloadData()?.themeKey ?? DEFAULT_DARK_THEME_KEY\n );\n\n // Calculate active themes once a non-null themes array is provided.\n const activeThemes = useMemo(\n () =>\n themes == null\n ? null\n : getActiveThemes(selectedThemeKey, {\n base: baseThemes,\n custom: themes ?? [],\n }),\n [baseThemes, selectedThemeKey, themes]\n );\n\n useEffect(\n function updateThemePreloadData() {\n // Don't update preload data until themes have been loaded and activated\n if (activeThemes == null || themes == null) {\n return;\n }\n\n const preloadStyleContent = calculatePreloadStyleContent();\n\n log.debug2('updateThemePreloadData:', {\n active: activeThemes.map(theme => theme.themeKey),\n all: themes.map(theme => theme.themeKey),\n preloadStyleContent,\n selectedThemeKey,\n });\n\n setThemePreloadData({\n themeKey: selectedThemeKey,\n preloadStyleContent,\n });\n },\n [activeThemes, selectedThemeKey, themes]\n );\n\n const value = useMemo(\n () => ({\n activeThemes,\n selectedThemeKey,\n setSelectedThemeKey,\n }),\n [activeThemes, selectedThemeKey]\n );\n\n return (\n <ThemeContext.Provider value={value}>\n {activeThemes == null ? null : (\n <>\n {activeThemes.map(theme => (\n <style data-theme-key={theme.themeKey} key={theme.themeKey}>\n {theme.styleContent}\n </style>\n ))}\n </>\n )}\n <SpectrumThemeProvider>{children}</SpectrumThemeProvider>\n </ThemeContext.Provider>\n );\n}\n\nexport default ThemeProvider;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ThemeProvider.js","names":["createContext","useEffect","useMemo","useState","Log","DEFAULT_DARK_THEME_KEY","calculatePreloadStyleContent","getActiveThemes","getDefaultBaseThemes","getThemePreloadData","setThemePreloadData","overrideSVGFillColors","SpectrumThemeProvider","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","log","module","ThemeContext","ThemeProvider","_ref","themes","customThemes","children","baseThemes","value","setValue","selectedThemeKey","setSelectedThemeKey","_getThemePreloadData$","_getThemePreloadData","themeKey","activeThemes","base","custom","updateThemePreloadData","preloadStyleContent","debug2","active","map","theme","Provider","styleContent"],"sources":["../../src/theme/ThemeProvider.tsx"],"sourcesContent":["import { createContext, ReactNode, useEffect, useMemo, useState } from 'react';\nimport Log from '@deephaven/log';\nimport { DEFAULT_DARK_THEME_KEY, ThemeData } from './ThemeModel';\nimport {\n calculatePreloadStyleContent,\n getActiveThemes,\n getDefaultBaseThemes,\n getThemePreloadData,\n setThemePreloadData,\n overrideSVGFillColors,\n} from './ThemeUtils';\nimport { SpectrumThemeProvider } from './SpectrumThemeProvider';\nimport './theme-svg.scss';\n\nexport interface ThemeContextValue {\n activeThemes: ThemeData[] | null;\n selectedThemeKey: string;\n themes: ThemeData[];\n setSelectedThemeKey: (themeKey: string) => void;\n}\n\nconst log = Log.module('ThemeProvider');\n\nexport const ThemeContext = createContext<ThemeContextValue | null>(null);\n\nexport interface ThemeProviderProps {\n /*\n * Additional themes to load in addition to the base themes. If no additional\n * themes are to be loaded, this must be set to an empty array in order to\n * tell the provider to activate the base themes.\n */\n themes: ThemeData[] | null;\n children: ReactNode;\n}\n\nexport function ThemeProvider({\n themes: customThemes,\n children,\n}: ThemeProviderProps): JSX.Element | null {\n const baseThemes = useMemo(() => getDefaultBaseThemes(), []);\n\n const [value, setValue] = useState<ThemeContextValue | null>(null);\n\n const [selectedThemeKey, setSelectedThemeKey] = useState<string>(\n () => getThemePreloadData()?.themeKey ?? DEFAULT_DARK_THEME_KEY\n );\n\n // Calculate active themes once a non-null themes array is provided.\n const activeThemes = useMemo(\n () =>\n customThemes == null\n ? null\n : getActiveThemes(selectedThemeKey, {\n base: baseThemes,\n custom: customThemes ?? [],\n }),\n [baseThemes, selectedThemeKey, customThemes]\n );\n\n const themes = useMemo(\n () => [...baseThemes, ...(customThemes ?? [])],\n [baseThemes, customThemes]\n );\n\n useEffect(\n function updateThemePreloadData() {\n // Don't update preload data until themes have been loaded and activated\n if (activeThemes == null || customThemes == null) {\n return;\n }\n\n // Override fill color for certain inline SVGs (the originals are provided\n // by theme-svg.scss)\n overrideSVGFillColors();\n\n const preloadStyleContent = calculatePreloadStyleContent();\n\n log.debug2('updateThemePreloadData:', {\n active: activeThemes.map(theme => theme.themeKey),\n custom: customThemes.map(theme => theme.themeKey),\n preloadStyleContent,\n selectedThemeKey,\n });\n\n setThemePreloadData({\n themeKey: selectedThemeKey,\n preloadStyleContent,\n });\n },\n [activeThemes, selectedThemeKey, customThemes]\n );\n\n useEffect(() => {\n setValue({\n activeThemes,\n selectedThemeKey,\n themes,\n setSelectedThemeKey,\n });\n }, [activeThemes, selectedThemeKey, themes]);\n\n return value == null ? null : (\n <ThemeContext.Provider value={value}>\n {activeThemes == null ? null : (\n <>\n {activeThemes.map(theme => (\n <style data-theme-key={theme.themeKey} key={theme.themeKey}>\n {theme.styleContent}\n </style>\n ))}\n </>\n )}\n <SpectrumThemeProvider>{children}</SpectrumThemeProvider>\n </ThemeContext.Provider>\n );\n}\n\nexport default ThemeProvider;\n"],"mappings":"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"}
@@ -1,15 +1,24 @@
1
- import { ThemeData, ThemePreloadData, ThemePreloadStyleContent, ThemeRegistrationData } from './ThemeModel';
1
+ import { ThemeData, ThemePreloadData, CssVariableStyleContent, ThemeRegistrationData, ThemeCssVariableName } from './ThemeModel';
2
2
  export declare const CSS_VAR_EXPRESSION_PREFIX = "var(--";
3
3
  export declare const TMP_CSS_PROP_PREFIX = "dh-tmp";
4
4
  export declare const NON_WHITESPACE_REGEX: RegExp;
5
5
  export declare const WHITESPACE_REGEX: RegExp;
6
6
  export type VarExpressionResolver = (varExpression: string) => string;
7
7
  /**
8
- * Creates a string containing preload style content for the current theme.
9
- * This resolves the current values of a few CSS variables that can be used
10
- * to style the page before the theme is loaded on next page load.
8
+ * Resolves the current values of CSS variables we want to preload. Preloading
9
+ * happens before themes are fully loaded so that we can style things like the
10
+ * loading spinner and background color which are shown to the user early on in
11
+ * the app lifecycle.
11
12
  */
12
- export declare function calculatePreloadStyleContent(): ThemePreloadStyleContent;
13
+ export declare function calculatePreloadStyleContent(): CssVariableStyleContent;
14
+ /**
15
+ * Create a resolver function for calculating the value of a css variable based
16
+ * on a given element's computed style. If the variable resolves to '', we check
17
+ * DEFAULT_PRELOAD_DATA_VARIABLES for a default value, and if one does not exist,
18
+ * return ''.
19
+ * @param el Element to resolve css variables against
20
+ */
21
+ export declare function createCssVariableResolver(el: Element): (varName: ThemeCssVariableName) => string;
13
22
  /**
14
23
  * Extracts all css variable expressions from the given record and returns
15
24
  * a set of unique expressions.
@@ -57,11 +66,18 @@ export declare function getThemePreloadData(): ThemePreloadData | null;
57
66
  * @returns An array of [start, end] index pairs for each expression
58
67
  */
59
68
  export declare function getExpressionRanges(value: string): [number, number][];
69
+ /**
70
+ * Replace the `fill='...'` attribute in the given SVG content with the given
71
+ * color string.
72
+ * @param svgContent Inline SVG content to replace the fill color in
73
+ * @param fillColor The color to replace the fill color with
74
+ */
75
+ export declare function replaceSVGFillColor(svgContent: string, fillColor: string): string;
60
76
  /**
61
77
  * Make a copy of the given object replacing any css variable expressions
62
78
  * contained in its prop values with values resolved from the given HTML element.
63
- * Variables that resolve to color strings will also be normalized to rgb or
64
- * rgba color strings.
79
+ * Variables that resolve to color strings will also be normalized to 8 digit
80
+ * hex values (or optionally 6 digit hex if `isAlphaOptional` is true).
65
81
  *
66
82
  * Note that the browser will force a reflow when calling `getComputedStyle` if
67
83
  * css properties have changed. In order to avoid a reflow for every property
@@ -74,8 +90,10 @@ export declare function getExpressionRanges(value: string): [number, number][];
74
90
  * @param record An object whose values may contain css var expressions
75
91
  * @param targetElement The element to resolve css variables against. Defaults
76
92
  * to document.body
93
+ * @param isAlphaOptional If true, the alpha value will be dropped from resolved
94
+ * 8 character hex colors if it is 'ff'. Defaults to false.
77
95
  */
78
- export declare function resolveCssVariablesInRecord<T extends Record<string, string>>(record: T, targetElement?: HTMLElement): T;
96
+ export declare function resolveCssVariablesInRecord<T extends Record<string, string>>(record: T, targetElement?: HTMLElement, isAlphaOptional?: boolean): T;
79
97
  /**
80
98
  * Resolve css variable expressions in the given string using the
81
99
  * given resolver and replace the original expressions with the resolved values.
@@ -99,4 +117,20 @@ export declare function getThemeKey(pluginName: string, themeName: string): stri
99
117
  * Preload minimal theme variables from the cache.
100
118
  */
101
119
  export declare function preloadTheme(): void;
120
+ /**
121
+ * Inline SVGs cannot depend on dynamic CSS variables, so we have to statically
122
+ * update them if we want to change their color.
123
+ *
124
+ * This function:
125
+ * 1. Clears any previous overrides
126
+ * 2. Resolves CSS variables containing inline SVG urls
127
+ * 3. Resolves mapped color variables and replaces the `fill='...'` attribute with the result
128
+ * 4. Sets the original CSS variable to the new replaced value
129
+ *
130
+ * Note that it is preferable to use inline SVGs as background-mask values and
131
+ * just change the background color instead of relying on this util, but this
132
+ * is not always possible. e.g. <select> elements don't support pseudo elements,
133
+ * so there's not a good way to set icons via masks.
134
+ */
135
+ export declare function overrideSVGFillColors(): void;
102
136
  //# sourceMappingURL=ThemeUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeUtils.d.ts","sourceRoot":"","sources":["../../src/theme/ThemeUtils.ts"],"names":[],"mappings":"AAgBA,OAAO,EAIL,SAAS,EACT,gBAAgB,EAChB,wBAAwB,EACxB,qBAAqB,EAEtB,MAAM,cAAc,CAAC;AAItB,eAAO,MAAM,yBAAyB,WAAW,CAAC;AAClD,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,oBAAoB,QAAO,CAAC;AACzC,eAAO,MAAM,gBAAgB,QAAO,CAAC;AAErC,MAAM,MAAM,qBAAqB,GAAG,CAAC,aAAa,EAAE,MAAM,KAAK,MAAM,CAAC;AAEtE;;;;GAIG;AACH,wBAAgB,4BAA4B,IAAI,wBAAwB,CAWvE;AAED;;;;GAIG;AACH,wBAAgB,qCAAqC,CACnD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,GAAG,CAAC,MAAM,CAAC,CAcb;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,qBAAqB,GACvC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CA+BtC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,SAAS,EAAE,CAalD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,IAAI,CAU7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAiCrE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1E,MAAM,EAAE,CAAC,EACT,aAAa,GAAE,WAA2B,GACzC,CAAC,CA2CH;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,MAAM,GACZ,MAAM,CAyBR;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAKvE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAUnC"}
1
+ {"version":3,"file":"ThemeUtils.d.ts","sourceRoot":"","sources":["../../src/theme/ThemeUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,SAAS,EACT,gBAAgB,EAChB,uBAAuB,EAEvB,qBAAqB,EAGrB,oBAAoB,EAErB,MAAM,cAAc,CAAC;AAItB,eAAO,MAAM,yBAAyB,WAAW,CAAC;AAClD,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,oBAAoB,QAAO,CAAC;AACzC,eAAO,MAAM,gBAAgB,QAAO,CAAC;AAErC,MAAM,MAAM,qBAAqB,GAAG,CAAC,aAAa,EAAE,MAAM,KAAK,MAAM,CAAC;AAEtE;;;;;GAKG;AACH,wBAAgB,4BAA4B,IAAI,uBAAuB,CAUtE;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,OAAO,GACV,CAAC,OAAO,EAAE,oBAAoB,KAAK,MAAM,CAkB3C;AAED;;;;GAIG;AACH,wBAAgB,qCAAqC,CACnD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,GAAG,CAAC,MAAM,CAAC,CAcb;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,qBAAqB,GACvC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CA+BtC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,SAAS,EAAE,CAgBlD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,IAAI,CAU7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAiCrE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,MAAM,CAKR;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1E,MAAM,EAAE,CAAC,EACT,aAAa,GAAE,WAA2B,EAC1C,eAAe,UAAQ,GACtB,CAAC,CA2CH;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,MAAM,GACZ,MAAM,CAyBR;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAKvE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAWnC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAkB5C"}