apex-grid 3.4.0 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/CHANGELOG.md +439 -0
  2. package/LICENSE.md +125 -0
  3. package/README.md +107 -14
  4. package/components/cell.d.ts +30 -4
  5. package/components/cell.js +199 -53
  6. package/components/cell.js.map +1 -1
  7. package/components/filter-row.d.ts +2 -0
  8. package/components/filter-row.js +82 -28
  9. package/components/filter-row.js.map +1 -1
  10. package/components/grid.d.ts +257 -20
  11. package/components/grid.js +463 -99
  12. package/components/grid.js.map +1 -1
  13. package/components/group-header-row.js +28 -25
  14. package/components/group-header-row.js.map +1 -1
  15. package/components/header-row.d.ts +7 -5
  16. package/components/header-row.js +19 -9
  17. package/components/header-row.js.map +1 -1
  18. package/components/header.js +36 -22
  19. package/components/header.js.map +1 -1
  20. package/components/row.d.ts +19 -3
  21. package/components/row.js +96 -22
  22. package/components/row.js.map +1 -1
  23. package/components/toolbar.js +2 -1
  24. package/components/toolbar.js.map +1 -1
  25. package/components/virtualizer.d.ts +45 -1
  26. package/components/virtualizer.js +184 -3
  27. package/components/virtualizer.js.map +1 -1
  28. package/controllers/dom.d.ts +4 -4
  29. package/controllers/dom.js +40 -22
  30. package/controllers/dom.js.map +1 -1
  31. package/controllers/editing.d.ts +104 -37
  32. package/controllers/editing.js +230 -78
  33. package/controllers/editing.js.map +1 -1
  34. package/controllers/expansion.d.ts +14 -5
  35. package/controllers/expansion.js +24 -1
  36. package/controllers/expansion.js.map +1 -1
  37. package/controllers/filter.d.ts +10 -2
  38. package/controllers/filter.js +62 -17
  39. package/controllers/filter.js.map +1 -1
  40. package/controllers/history.d.ts +45 -8
  41. package/controllers/history.js +58 -20
  42. package/controllers/history.js.map +1 -1
  43. package/controllers/navigation.d.ts +68 -13
  44. package/controllers/navigation.js +196 -51
  45. package/controllers/navigation.js.map +1 -1
  46. package/controllers/pagination.d.ts +6 -0
  47. package/controllers/pagination.js +10 -2
  48. package/controllers/pagination.js.map +1 -1
  49. package/controllers/reorder.js +42 -24
  50. package/controllers/reorder.js.map +1 -1
  51. package/controllers/resize.d.ts +17 -2
  52. package/controllers/resize.js +16 -6
  53. package/controllers/resize.js.map +1 -1
  54. package/controllers/row-pin.d.ts +20 -2
  55. package/controllers/row-pin.js +16 -9
  56. package/controllers/row-pin.js.map +1 -1
  57. package/controllers/row-reorder.d.ts +31 -11
  58. package/controllers/row-reorder.js +117 -37
  59. package/controllers/row-reorder.js.map +1 -1
  60. package/controllers/selection.d.ts +11 -4
  61. package/controllers/selection.js +26 -11
  62. package/controllers/selection.js.map +1 -1
  63. package/controllers/sort.d.ts +22 -2
  64. package/controllers/sort.js +29 -23
  65. package/controllers/sort.js.map +1 -1
  66. package/controllers/state.d.ts +65 -10
  67. package/controllers/state.js +86 -6
  68. package/controllers/state.js.map +1 -1
  69. package/controllers/tree.d.ts +15 -10
  70. package/controllers/tree.js +0 -0
  71. package/controllers/tree.js.map +1 -1
  72. package/custom-elements.json +3589 -452
  73. package/docs/assets/hierarchy.js +1 -1
  74. package/docs/assets/highlight.css +15 -8
  75. package/docs/assets/navigation.js +1 -1
  76. package/docs/assets/search.js +1 -1
  77. package/docs/classes/ApexGrid.html +660 -0
  78. package/docs/classes/ApexGridPaginator.html +36 -0
  79. package/docs/classes/ApexGridToolbar.html +67 -0
  80. package/docs/functions/localize.html +2 -2
  81. package/docs/functions/setup.html +1 -2
  82. package/docs/hierarchy.html +1 -1
  83. package/docs/index.html +105 -15
  84. package/docs/interfaces/ApexCellValidationFailedEvent.html +3 -2
  85. package/docs/interfaces/ApexCellValueChangedEvent.html +4 -2
  86. package/docs/interfaces/ApexCellValueChangingEvent.html +3 -2
  87. package/docs/interfaces/ApexColumnMovedEvent.html +2 -2
  88. package/docs/interfaces/ApexColumnMovingEvent.html +1 -1
  89. package/docs/interfaces/ApexDetailContext.html +2 -2
  90. package/docs/interfaces/ApexGridEventMap.html +9 -6
  91. package/docs/interfaces/ApexRowEditEndedEvent.html +2 -1
  92. package/docs/interfaces/ApexRowEditStartedEvent.html +2 -1
  93. package/docs/interfaces/ApexRowMovingEvent.html +9 -3
  94. package/docs/interfaces/ApexRowPinningEvent.html +1 -1
  95. package/docs/interfaces/ApexTreeRowExpandedEvent.html +4 -1
  96. package/docs/interfaces/ApexTreeRowExpandingEvent.html +4 -1
  97. package/docs/interfaces/BaseApexCellContext.html +1 -1
  98. package/docs/interfaces/BaseApexEditorContext.html +1 -1
  99. package/docs/interfaces/BaseColumnConfiguration.html +3 -3
  100. package/docs/interfaces/BaseFilterExpression.html +2 -2
  101. package/docs/interfaces/CSVExportOptions.html +13 -5
  102. package/docs/interfaces/DataPipelineConfiguration.html +2 -2
  103. package/docs/interfaces/EditingHistoryConfiguration.html +1 -1
  104. package/docs/interfaces/ExportFormat.html +2 -2
  105. package/docs/interfaces/ExportOptions.html +5 -3
  106. package/docs/interfaces/GridExpansionConfiguration.html +6 -2
  107. package/docs/interfaces/GridRowPinningConfiguration.html +1 -1
  108. package/docs/interfaces/GridRowReorderingConfiguration.html +2 -2
  109. package/docs/interfaces/PaginationConfiguration.html +1 -1
  110. package/docs/interfaces/PaginationState.html +1 -1
  111. package/docs/interfaces/SetStateResult.html +3 -2
  112. package/docs/interfaces/ValidatorContext.html +7 -2
  113. package/docs/media/_token-values.scss +118 -0
  114. package/docs/media/package.json +5 -5
  115. package/docs/media/state-persistence.html +0 -10
  116. package/docs/modules.html +1 -1
  117. package/docs/types/DataPipelineParams.html +2 -2
  118. package/docs/types/EditMode.html +2 -2
  119. package/docs/types/ExportSource.html +6 -4
  120. package/docs/types/GridLocaleText.html +1 -1
  121. package/docs/types/OperandKeys.html +9 -0
  122. package/docs/types/PaginationMode.html +1 -1
  123. package/docs/variables/EN_LOCALE.html +3 -3
  124. package/docs/variables/esLocale.html +1 -1
  125. package/i18n/en.d.ts +19 -0
  126. package/i18n/en.js +19 -0
  127. package/i18n/en.js.map +1 -1
  128. package/i18n/es.js +19 -0
  129. package/i18n/es.js.map +1 -1
  130. package/index.d.ts +2 -0
  131. package/index.js +2 -0
  132. package/index.js.map +1 -1
  133. package/internal/column-types.d.ts +27 -1
  134. package/internal/column-types.js +75 -49
  135. package/internal/column-types.js.map +1 -1
  136. package/internal/constants.d.ts +1 -2
  137. package/internal/constants.js +0 -4
  138. package/internal/constants.js.map +1 -1
  139. package/internal/document-styles.d.ts +30 -0
  140. package/internal/document-styles.js +48 -0
  141. package/internal/document-styles.js.map +1 -0
  142. package/internal/export.d.ts +39 -7
  143. package/internal/export.js +35 -34
  144. package/internal/export.js.map +1 -1
  145. package/internal/feature-module.d.ts +82 -3
  146. package/internal/feature-module.js +11 -0
  147. package/internal/feature-module.js.map +1 -1
  148. package/internal/index.d.ts +6 -4
  149. package/internal/index.js +5 -3
  150. package/internal/index.js.map +1 -1
  151. package/internal/normalize-case.d.ts +8 -1
  152. package/internal/normalize-case.js +3 -2
  153. package/internal/normalize-case.js.map +1 -1
  154. package/internal/state-snapshot.d.ts +60 -8
  155. package/internal/state-snapshot.js +87 -19
  156. package/internal/state-snapshot.js.map +1 -1
  157. package/internal/types.d.ts +17 -2
  158. package/internal/types.js.map +1 -1
  159. package/internal/utils.d.ts +48 -6
  160. package/internal/utils.js +35 -21
  161. package/internal/utils.js.map +1 -1
  162. package/internal/validators.js +1 -0
  163. package/internal/validators.js.map +1 -1
  164. package/operations/filter/operands/number.js +9 -6
  165. package/operations/filter/operands/number.js.map +1 -1
  166. package/operations/filter/operands/string.js +2 -3
  167. package/operations/filter/operands/string.js.map +1 -1
  168. package/operations/filter/types.d.ts +13 -1
  169. package/operations/filter/types.js.map +1 -1
  170. package/operations/filter.d.ts +6 -0
  171. package/operations/filter.js +23 -7
  172. package/operations/filter.js.map +1 -1
  173. package/operations/quick-filter.js +2 -5
  174. package/operations/quick-filter.js.map +1 -1
  175. package/operations/sort.d.ts +21 -2
  176. package/operations/sort.js +41 -14
  177. package/operations/sort.js.map +1 -1
  178. package/package.json +8 -4
  179. package/setup.d.ts +23 -11
  180. package/setup.js +19 -21
  181. package/setup.js.map +1 -1
  182. package/styles/_common.css.js +1 -1
  183. package/styles/_common.css.js.map +1 -1
  184. package/styles/_token-values.css.d.ts +1 -0
  185. package/styles/_token-values.css.js +3 -0
  186. package/styles/_token-values.css.js.map +1 -0
  187. package/styles/_tokens.css.js +1 -1
  188. package/styles/_tokens.css.js.map +1 -1
  189. package/styles/body-cell/body-cell.css.js +1 -1
  190. package/styles/body-cell/body-cell.css.js.map +1 -1
  191. package/styles/body-cell/cell-renderers.css.js +1 -1
  192. package/styles/body-cell/cell-renderers.css.js.map +1 -1
  193. package/styles/body-row/body-row.css.js +1 -1
  194. package/styles/body-row/body-row.css.js.map +1 -1
  195. package/styles/document-tokens.css.d.ts +1 -0
  196. package/styles/document-tokens.css.js +3 -0
  197. package/styles/document-tokens.css.js.map +1 -0
  198. package/styles/filter-row/filter-row.css.js +1 -1
  199. package/styles/filter-row/filter-row.css.js.map +1 -1
  200. package/styles/grid/_grid.base.css.js +1 -1
  201. package/styles/grid/_grid.base.css.js.map +1 -1
  202. package/styles/grid/grid.css.js +1 -1
  203. package/styles/grid/grid.css.js.map +1 -1
  204. package/styles/group-header-row/group-header-row.css.js +1 -1
  205. package/styles/group-header-row/group-header-row.css.js.map +1 -1
  206. package/styles/header-cell/header-cell.css.js +1 -1
  207. package/styles/header-cell/header-cell.css.js.map +1 -1
  208. package/styles/header-row/header-row.base.css.js +1 -1
  209. package/styles/header-row/header-row.base.css.js.map +1 -1
  210. package/styles/paginator/paginator.css.js +1 -1
  211. package/styles/paginator/paginator.css.js.map +1 -1
  212. package/styles/toolbar/toolbar.css.js +1 -1
  213. package/styles/toolbar/toolbar.css.js.map +1 -1
  214. package/tokens.css +78 -0
  215. package/LICENSE +0 -80
  216. package/docs/media/LICENSE +0 -80
  217. package/docs/media/_tokens.scss +0 -193
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}:host{--ig-size: 1;grid-row:toolbar-row;display:block;background:var(--igx-header-background, var(--header-background, var(--ag-surface-elevated)));color:var(--igx-header-text-color, var(--header-text-color, var(--ag-text-muted)));border-block-end:1px solid var(--igx-header-border-color, var(--header-border-color, var(--ag-hairline)));z-index:calc(var(--z-index-base) + 4);position:sticky;inset-block-start:0;inset-inline-start:0;box-sizing:border-box;width:var(--apex-host-width, 100%);max-width:var(--apex-host-width, 100%)}[part=toolbar]{display:flex;align-items:center;gap:.5rem;padding:var(--ag-toolbar-pad)}[part=toolbar-search]{flex:1;max-width:22.5rem}[part=search-field]{display:inline-flex;align-items:center;inline-size:100%;block-size:1.875rem;padding:0 .625rem;gap:.375rem;background:var(--ag-surface);color:var(--ag-text-body);border:.0625rem solid var(--ag-brand-line);border-radius:8px;transition:border-color var(--ag-dur-fast) var(--ag-ease),box-shadow var(--ag-dur-fast) var(--ag-ease);box-sizing:border-box}[part=search-field]:focus-within{border-color:color-mix(in srgb, var(--ag-brand) 50%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--ag-brand) 14%, transparent)}[part=search-icon]{inline-size:1rem;block-size:1rem;flex-shrink:0;opacity:.65;color:currentcolor}[part=search-input]{flex:1;min-inline-size:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0);color:inherit;border:0;outline:0;padding:0;margin:0;font:inherit;font-size:var(--ag-fs-cell);line-height:1}[part=search-input]::-moz-placeholder{color:var(--ag-text-subtle);opacity:1}[part=search-input]::placeholder{color:var(--ag-text-subtle);opacity:1}[part=search-input]::-webkit-search-cancel-button,[part=search-input]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}[part=toolbar-actions]{display:inline-flex;align-items:center;gap:.25rem;margin-inline-start:auto}[part=toolbar-action]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;gap:.3125rem;border:.0625rem solid rgba(0,0,0,0);border-radius:var(--ag-radius-sm);background:rgba(0,0,0,0);color:var(--ag-text-body);cursor:pointer;font:inherit;font-size:var(--ag-fs-cell);font-weight:var(--ag-fw-regular);line-height:1;min-block-size:1.75rem;padding:0 .625rem;transition:background-color var(--ag-dur-fast) var(--ag-ease),border-color var(--ag-dur-fast) var(--ag-ease),color var(--ag-dur-fast) var(--ag-ease);white-space:nowrap}[part=toolbar-action]:hover{background:var(--ag-brand-softer);color:var(--ag-brand-strong)}[part=toolbar-action]:focus-visible{outline:0;border-color:color-mix(in srgb, var(--ag-brand) 50%, transparent);box-shadow:0 0 0 .1875rem color-mix(in srgb, var(--ag-brand) 14%, transparent)}[part=toolbar-action][data-action-id=create-chart]{border-color:var(--ag-hairline);font-weight:var(--ag-fw-semibold)}[part=toolbar-action][data-action-id=create-chart]:hover{border-color:color-mix(in srgb, var(--ag-brand) 40%, transparent);background:var(--ag-brand-softer);color:var(--ag-brand-strong)}[part=toolbar-action][data-action-id=ask-ai]{background:var(--ag-brand);border-color:var(--ag-brand);color:var(--ag-text-on-brand);font-weight:var(--ag-fw-semibold)}[part=toolbar-action][data-action-id=ask-ai]:hover{background:var(--ag-brand-strong);border-color:var(--ag-brand-strong);color:var(--ag-text-on-brand)}[part=toolbar-action][data-action-id=ask-ai]:focus-visible{border-color:var(--ag-brand-strong)}[part=export]{position:relative}[part=export-trigger]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0);border:.0625rem solid rgba(0,0,0,0);color:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.125rem;min-inline-size:1.75rem;min-block-size:1.75rem;padding:0 .375rem;border-radius:var(--ag-radius-sm);transition:background-color var(--ag-dur-fast) var(--ag-ease),border-color var(--ag-dur-fast) var(--ag-ease),color var(--ag-dur-fast) var(--ag-ease)}[part=export-trigger]:hover{background:var(--ag-brand-softer);color:var(--ag-brand-strong)}[part=export-trigger]:focus-visible{outline:0;border-color:color-mix(in srgb, var(--ag-brand) 50%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--ag-brand) 14%, transparent)}[part=export-icon]{inline-size:1rem;block-size:1rem}[part=export-caret]{inline-size:.75rem;block-size:.75rem;opacity:.65}[part=export-menu]{position:absolute;inset-block-start:calc(100% + 0.25rem);inset-inline-end:0;margin:0;padding:.25rem 0;min-inline-size:11.25rem;background:var(--igx-cell-editor-background, var(--ag-surface));color:var(--ag-text-body);border:.0625rem solid var(--ag-brand-line);border-radius:var(--ag-radius-sm);box-shadow:0 .125rem .25rem rgba(0,0,0,.06),0 .375rem 1rem rgba(0,0,0,.12);list-style:none;z-index:calc(var(--z-index-base) + 10)}[part=export-menu][hidden]{display:none}[part=export-menu] li{margin:0;padding:0}[part=export-menu-item]{display:block;inline-size:100%;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0);color:inherit;border:0;margin:0;padding:.5rem .75rem;font:inherit;font-size:.8125rem;cursor:pointer;min-block-size:1.5rem}[part=export-menu-item]:hover{background:var(--ag-brand-softer);color:var(--ag-brand-strong)}[part=export-menu-item]:focus-visible{outline:0;background:var(--ag-brand-soft);box-shadow:inset 0 0 0 .125rem var(--ag-brand)}`;
2
+ export const styles = css `:host{--ig-size: 1;grid-row:toolbar-row;display:block;background:var(--header-background, var(--_ag-surface-elevated));color:var(--header-text-color, var(--_ag-text-muted));border-block-end:1px solid var(--header-border-color, var(--_ag-hairline));z-index:calc(var(--z-index-base) + 4);position:sticky;inset-block-start:0;inset-inline-start:0;box-sizing:border-box;width:var(--apex-host-width, 100%);max-width:var(--apex-host-width, 100%)}[part=toolbar]{display:flex;align-items:center;gap:.5rem;padding:var(--_ag-toolbar-pad)}[part=toolbar-search]{flex:1;max-width:22.5rem}[part=search-field]{display:inline-flex;align-items:center;inline-size:100%;block-size:1.875rem;padding:0 .625rem;gap:.375rem;background:var(--_ag-surface);color:var(--_ag-text-body);border:.0625rem solid var(--_ag-brand-line);border-radius:8px;transition:border-color var(--_ag-dur-fast) var(--_ag-ease),box-shadow var(--_ag-dur-fast) var(--_ag-ease);box-sizing:border-box}[part=search-field]:focus-within{border-color:color-mix(in srgb, var(--_ag-brand) 50%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--_ag-brand) 14%, transparent)}[part=search-icon]{inline-size:1rem;block-size:1rem;flex-shrink:0;opacity:.65;color:currentcolor}[part=search-input]{flex:1;min-inline-size:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0);color:inherit;border:0;outline:0;padding:0;margin:0;font:inherit;font-size:var(--_ag-fs-cell);line-height:1}[part=search-input]::-moz-placeholder{color:var(--_ag-text-subtle);opacity:1}[part=search-input]::placeholder{color:var(--_ag-text-subtle);opacity:1}[part=search-input]::-webkit-search-cancel-button,[part=search-input]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}[part=toolbar-actions]{display:inline-flex;align-items:center;gap:.25rem;margin-inline-start:auto}[part=toolbar-action]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;gap:.3125rem;border:.0625rem solid rgba(0,0,0,0);border-radius:var(--_ag-radius-sm);background:rgba(0,0,0,0);color:var(--_ag-text-body);cursor:pointer;font:inherit;font-size:var(--_ag-fs-cell);font-weight:var(--_ag-fw-regular);line-height:1;min-block-size:1.75rem;padding:0 .625rem;transition:background-color var(--_ag-dur-fast) var(--_ag-ease),border-color var(--_ag-dur-fast) var(--_ag-ease),color var(--_ag-dur-fast) var(--_ag-ease);white-space:nowrap}[part=toolbar-action]:hover{background:var(--_ag-brand-softer);color:var(--_ag-brand-strong)}[part=toolbar-action]:focus-visible{outline:0;border-color:color-mix(in srgb, var(--_ag-brand) 50%, transparent);box-shadow:0 0 0 .1875rem color-mix(in srgb, var(--_ag-brand) 14%, transparent)}[part=toolbar-action][data-action-id=create-chart]{border-color:var(--_ag-hairline);font-weight:var(--_ag-fw-semibold)}[part=toolbar-action][data-action-id=create-chart]:hover{border-color:color-mix(in srgb, var(--_ag-brand) 40%, transparent);background:var(--_ag-brand-softer);color:var(--_ag-brand-strong)}[part=toolbar-action][data-action-id=ask-ai]{background:var(--_ag-brand);border-color:var(--_ag-brand);color:var(--_ag-text-on-brand);font-weight:var(--_ag-fw-semibold)}[part=toolbar-action][data-action-id=ask-ai]:hover{background:var(--_ag-brand-strong);border-color:var(--_ag-brand-strong);color:var(--_ag-text-on-brand)}[part=toolbar-action][data-action-id=ask-ai]:focus-visible{border-color:var(--_ag-brand-strong)}[part=export]{position:relative}[part=export-trigger]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0);border:.0625rem solid rgba(0,0,0,0);color:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.125rem;min-inline-size:1.75rem;min-block-size:1.75rem;padding:0 .375rem;border-radius:var(--_ag-radius-sm);transition:background-color var(--_ag-dur-fast) var(--_ag-ease),border-color var(--_ag-dur-fast) var(--_ag-ease),color var(--_ag-dur-fast) var(--_ag-ease)}[part=export-trigger]:hover{background:var(--_ag-brand-softer);color:var(--_ag-brand-strong)}[part=export-trigger]:focus-visible{outline:0;border-color:color-mix(in srgb, var(--_ag-brand) 50%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--_ag-brand) 14%, transparent)}[part=export-icon]{inline-size:1rem;block-size:1rem}[part=export-caret]{inline-size:.75rem;block-size:.75rem;opacity:.65}[part=export-menu]{position:absolute;inset-block-start:calc(100% + 0.25rem);inset-inline-end:0;margin:0;padding:.25rem 0;min-inline-size:11.25rem;background:var(--_ag-surface);color:var(--_ag-text-body);border:.0625rem solid var(--_ag-brand-line);border-radius:var(--_ag-radius-sm);box-shadow:0 .125rem .25rem rgba(0,0,0,.06),0 .375rem 1rem rgba(0,0,0,.12);list-style:none;z-index:calc(var(--z-index-base) + 10)}[part=export-menu][hidden]{display:none}[part=export-menu] li{margin:0;padding:0}[part=export-menu-item]{display:block;inline-size:100%;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0);color:inherit;border:0;margin:0;padding:.5rem .75rem;font:inherit;font-size:.8125rem;cursor:pointer;min-block-size:1.5rem}[part=export-menu-item]:hover{background:var(--_ag-brand-softer);color:var(--_ag-brand-strong)}[part=export-menu-item]:focus-visible{outline:0;background:var(--_ag-brand-soft);box-shadow:inset 0 0 0 .125rem var(--_ag-brand)}@media(forced-colors: active){[part=search-field]:focus-within,[part=toolbar-action]:focus-visible,[part=toolbar-action][data-action-id=ask-ai]:focus-visible,[part=export-trigger]:focus-visible,[part=export-menu-item]:focus-visible{outline:0.125rem solid Highlight;outline-offset:0.0625rem}[part=export-menu-item]:focus-visible{outline-offset:-0.125rem}}`;
3
3
  //# sourceMappingURL=toolbar.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.css.js","sourceRoot":"","sources":["../../../src/styles/toolbar/toolbar.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,4oLAA4oL,CAAC","sourcesContent":["import { css } from 'lit';\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}:host{--ig-size: 1;grid-row:toolbar-row;display:block;background:var(--igx-header-background, var(--header-background, var(--ag-surface-elevated)));color:var(--igx-header-text-color, var(--header-text-color, var(--ag-text-muted)));border-block-end:1px solid var(--igx-header-border-color, var(--header-border-color, var(--ag-hairline)));z-index:calc(var(--z-index-base) + 4);position:sticky;inset-block-start:0;inset-inline-start:0;box-sizing:border-box;width:var(--apex-host-width, 100%);max-width:var(--apex-host-width, 100%)}[part=toolbar]{display:flex;align-items:center;gap:.5rem;padding:var(--ag-toolbar-pad)}[part=toolbar-search]{flex:1;max-width:22.5rem}[part=search-field]{display:inline-flex;align-items:center;inline-size:100%;block-size:1.875rem;padding:0 .625rem;gap:.375rem;background:var(--ag-surface);color:var(--ag-text-body);border:.0625rem solid var(--ag-brand-line);border-radius:8px;transition:border-color var(--ag-dur-fast) var(--ag-ease),box-shadow var(--ag-dur-fast) var(--ag-ease);box-sizing:border-box}[part=search-field]:focus-within{border-color:color-mix(in srgb, var(--ag-brand) 50%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--ag-brand) 14%, transparent)}[part=search-icon]{inline-size:1rem;block-size:1rem;flex-shrink:0;opacity:.65;color:currentcolor}[part=search-input]{flex:1;min-inline-size:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0);color:inherit;border:0;outline:0;padding:0;margin:0;font:inherit;font-size:var(--ag-fs-cell);line-height:1}[part=search-input]::-moz-placeholder{color:var(--ag-text-subtle);opacity:1}[part=search-input]::placeholder{color:var(--ag-text-subtle);opacity:1}[part=search-input]::-webkit-search-cancel-button,[part=search-input]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}[part=toolbar-actions]{display:inline-flex;align-items:center;gap:.25rem;margin-inline-start:auto}[part=toolbar-action]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;gap:.3125rem;border:.0625rem solid rgba(0,0,0,0);border-radius:var(--ag-radius-sm);background:rgba(0,0,0,0);color:var(--ag-text-body);cursor:pointer;font:inherit;font-size:var(--ag-fs-cell);font-weight:var(--ag-fw-regular);line-height:1;min-block-size:1.75rem;padding:0 .625rem;transition:background-color var(--ag-dur-fast) var(--ag-ease),border-color var(--ag-dur-fast) var(--ag-ease),color var(--ag-dur-fast) var(--ag-ease);white-space:nowrap}[part=toolbar-action]:hover{background:var(--ag-brand-softer);color:var(--ag-brand-strong)}[part=toolbar-action]:focus-visible{outline:0;border-color:color-mix(in srgb, var(--ag-brand) 50%, transparent);box-shadow:0 0 0 .1875rem color-mix(in srgb, var(--ag-brand) 14%, transparent)}[part=toolbar-action][data-action-id=create-chart]{border-color:var(--ag-hairline);font-weight:var(--ag-fw-semibold)}[part=toolbar-action][data-action-id=create-chart]:hover{border-color:color-mix(in srgb, var(--ag-brand) 40%, transparent);background:var(--ag-brand-softer);color:var(--ag-brand-strong)}[part=toolbar-action][data-action-id=ask-ai]{background:var(--ag-brand);border-color:var(--ag-brand);color:var(--ag-text-on-brand);font-weight:var(--ag-fw-semibold)}[part=toolbar-action][data-action-id=ask-ai]:hover{background:var(--ag-brand-strong);border-color:var(--ag-brand-strong);color:var(--ag-text-on-brand)}[part=toolbar-action][data-action-id=ask-ai]:focus-visible{border-color:var(--ag-brand-strong)}[part=export]{position:relative}[part=export-trigger]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0);border:.0625rem solid rgba(0,0,0,0);color:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.125rem;min-inline-size:1.75rem;min-block-size:1.75rem;padding:0 .375rem;border-radius:var(--ag-radius-sm);transition:background-color var(--ag-dur-fast) var(--ag-ease),border-color var(--ag-dur-fast) var(--ag-ease),color var(--ag-dur-fast) var(--ag-ease)}[part=export-trigger]:hover{background:var(--ag-brand-softer);color:var(--ag-brand-strong)}[part=export-trigger]:focus-visible{outline:0;border-color:color-mix(in srgb, var(--ag-brand) 50%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--ag-brand) 14%, transparent)}[part=export-icon]{inline-size:1rem;block-size:1rem}[part=export-caret]{inline-size:.75rem;block-size:.75rem;opacity:.65}[part=export-menu]{position:absolute;inset-block-start:calc(100% + 0.25rem);inset-inline-end:0;margin:0;padding:.25rem 0;min-inline-size:11.25rem;background:var(--igx-cell-editor-background, var(--ag-surface));color:var(--ag-text-body);border:.0625rem solid var(--ag-brand-line);border-radius:var(--ag-radius-sm);box-shadow:0 .125rem .25rem rgba(0,0,0,.06),0 .375rem 1rem rgba(0,0,0,.12);list-style:none;z-index:calc(var(--z-index-base) + 10)}[part=export-menu][hidden]{display:none}[part=export-menu] li{margin:0;padding:0}[part=export-menu-item]{display:block;inline-size:100%;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0);color:inherit;border:0;margin:0;padding:.5rem .75rem;font:inherit;font-size:.8125rem;cursor:pointer;min-block-size:1.5rem}[part=export-menu-item]:hover{background:var(--ag-brand-softer);color:var(--ag-brand-strong)}[part=export-menu-item]:focus-visible{outline:0;background:var(--ag-brand-soft);box-shadow:inset 0 0 0 .125rem var(--ag-brand)}`;"]}
1
+ {"version":3,"file":"toolbar.css.js","sourceRoot":"","sources":["../../../src/styles/toolbar/toolbar.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,2lLAA2lL,CAAC","sourcesContent":["import { css } from 'lit';\nexport const styles = css`:host{--ig-size: 1;grid-row:toolbar-row;display:block;background:var(--header-background, var(--_ag-surface-elevated));color:var(--header-text-color, var(--_ag-text-muted));border-block-end:1px solid var(--header-border-color, var(--_ag-hairline));z-index:calc(var(--z-index-base) + 4);position:sticky;inset-block-start:0;inset-inline-start:0;box-sizing:border-box;width:var(--apex-host-width, 100%);max-width:var(--apex-host-width, 100%)}[part=toolbar]{display:flex;align-items:center;gap:.5rem;padding:var(--_ag-toolbar-pad)}[part=toolbar-search]{flex:1;max-width:22.5rem}[part=search-field]{display:inline-flex;align-items:center;inline-size:100%;block-size:1.875rem;padding:0 .625rem;gap:.375rem;background:var(--_ag-surface);color:var(--_ag-text-body);border:.0625rem solid var(--_ag-brand-line);border-radius:8px;transition:border-color var(--_ag-dur-fast) var(--_ag-ease),box-shadow var(--_ag-dur-fast) var(--_ag-ease);box-sizing:border-box}[part=search-field]:focus-within{border-color:color-mix(in srgb, var(--_ag-brand) 50%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--_ag-brand) 14%, transparent)}[part=search-icon]{inline-size:1rem;block-size:1rem;flex-shrink:0;opacity:.65;color:currentcolor}[part=search-input]{flex:1;min-inline-size:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0);color:inherit;border:0;outline:0;padding:0;margin:0;font:inherit;font-size:var(--_ag-fs-cell);line-height:1}[part=search-input]::-moz-placeholder{color:var(--_ag-text-subtle);opacity:1}[part=search-input]::placeholder{color:var(--_ag-text-subtle);opacity:1}[part=search-input]::-webkit-search-cancel-button,[part=search-input]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}[part=toolbar-actions]{display:inline-flex;align-items:center;gap:.25rem;margin-inline-start:auto}[part=toolbar-action]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;gap:.3125rem;border:.0625rem solid rgba(0,0,0,0);border-radius:var(--_ag-radius-sm);background:rgba(0,0,0,0);color:var(--_ag-text-body);cursor:pointer;font:inherit;font-size:var(--_ag-fs-cell);font-weight:var(--_ag-fw-regular);line-height:1;min-block-size:1.75rem;padding:0 .625rem;transition:background-color var(--_ag-dur-fast) var(--_ag-ease),border-color var(--_ag-dur-fast) var(--_ag-ease),color var(--_ag-dur-fast) var(--_ag-ease);white-space:nowrap}[part=toolbar-action]:hover{background:var(--_ag-brand-softer);color:var(--_ag-brand-strong)}[part=toolbar-action]:focus-visible{outline:0;border-color:color-mix(in srgb, var(--_ag-brand) 50%, transparent);box-shadow:0 0 0 .1875rem color-mix(in srgb, var(--_ag-brand) 14%, transparent)}[part=toolbar-action][data-action-id=create-chart]{border-color:var(--_ag-hairline);font-weight:var(--_ag-fw-semibold)}[part=toolbar-action][data-action-id=create-chart]:hover{border-color:color-mix(in srgb, var(--_ag-brand) 40%, transparent);background:var(--_ag-brand-softer);color:var(--_ag-brand-strong)}[part=toolbar-action][data-action-id=ask-ai]{background:var(--_ag-brand);border-color:var(--_ag-brand);color:var(--_ag-text-on-brand);font-weight:var(--_ag-fw-semibold)}[part=toolbar-action][data-action-id=ask-ai]:hover{background:var(--_ag-brand-strong);border-color:var(--_ag-brand-strong);color:var(--_ag-text-on-brand)}[part=toolbar-action][data-action-id=ask-ai]:focus-visible{border-color:var(--_ag-brand-strong)}[part=export]{position:relative}[part=export-trigger]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0);border:.0625rem solid rgba(0,0,0,0);color:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.125rem;min-inline-size:1.75rem;min-block-size:1.75rem;padding:0 .375rem;border-radius:var(--_ag-radius-sm);transition:background-color var(--_ag-dur-fast) var(--_ag-ease),border-color var(--_ag-dur-fast) var(--_ag-ease),color var(--_ag-dur-fast) var(--_ag-ease)}[part=export-trigger]:hover{background:var(--_ag-brand-softer);color:var(--_ag-brand-strong)}[part=export-trigger]:focus-visible{outline:0;border-color:color-mix(in srgb, var(--_ag-brand) 50%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--_ag-brand) 14%, transparent)}[part=export-icon]{inline-size:1rem;block-size:1rem}[part=export-caret]{inline-size:.75rem;block-size:.75rem;opacity:.65}[part=export-menu]{position:absolute;inset-block-start:calc(100% + 0.25rem);inset-inline-end:0;margin:0;padding:.25rem 0;min-inline-size:11.25rem;background:var(--_ag-surface);color:var(--_ag-text-body);border:.0625rem solid var(--_ag-brand-line);border-radius:var(--_ag-radius-sm);box-shadow:0 .125rem .25rem rgba(0,0,0,.06),0 .375rem 1rem rgba(0,0,0,.12);list-style:none;z-index:calc(var(--z-index-base) + 10)}[part=export-menu][hidden]{display:none}[part=export-menu] li{margin:0;padding:0}[part=export-menu-item]{display:block;inline-size:100%;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0);color:inherit;border:0;margin:0;padding:.5rem .75rem;font:inherit;font-size:.8125rem;cursor:pointer;min-block-size:1.5rem}[part=export-menu-item]:hover{background:var(--_ag-brand-softer);color:var(--_ag-brand-strong)}[part=export-menu-item]:focus-visible{outline:0;background:var(--_ag-brand-soft);box-shadow:inset 0 0 0 .125rem var(--_ag-brand)}@media(forced-colors: active){[part=search-field]:focus-within,[part=toolbar-action]:focus-visible,[part=toolbar-action][data-action-id=ask-ai]:focus-visible,[part=export-trigger]:focus-visible,[part=export-menu-item]:focus-visible{outline:0.125rem solid Highlight;outline-offset:0.0625rem}[part=export-menu-item]:focus-visible{outline-offset:-0.125rem}}`;"]}
package/tokens.css ADDED
@@ -0,0 +1,78 @@
1
+ /*
2
+ * apex-grid design token defaults (`--ag-*`), on `:where(:root)`.
3
+ *
4
+ * The grid adopts these into the document by itself. Import this file only
5
+ * if you opted out with `setup({ tokenStyles: false })` or render on the
6
+ * server. Zero specificity: a value set on any element wins.
7
+ */
8
+ :where(:root) {
9
+ --ag-hairline: rgba(15, 23, 42, 0.08);
10
+ --ag-border: rgba(15, 23, 42, 0.08);
11
+ --ag-pin-line: rgba(15, 23, 42, 0.18);
12
+ --ag-header-separator: rgba(15, 23, 42, 0.12);
13
+ --ag-grid-bg: #fff;
14
+ --ag-surface: #fff;
15
+ --ag-surface-elevated: #f8f9fb;
16
+ --ag-text: #111827;
17
+ --ag-text-body: #1f2937;
18
+ --ag-text-muted: #6b7280;
19
+ --ag-text-subtle: #9ca3af;
20
+ --ag-text-on-brand: #fff;
21
+ --ag-good: #10b981;
22
+ --ag-good-text: #047857;
23
+ --ag-good-soft: rgba(16, 185, 129, 0.1);
24
+ --ag-watch: #f59e0b;
25
+ --ag-watch-text: #b45309;
26
+ --ag-watch-soft: rgba(245, 158, 11, 0.1);
27
+ --ag-risk: #ef4444;
28
+ --ag-risk-text: #b91c1c;
29
+ --ag-risk-soft: rgba(239, 68, 68, 0.1);
30
+ --ag-gold: #fef3c7;
31
+ --ag-gold-line: #fde68a;
32
+ --ag-gold-text: #92400e;
33
+ --ag-shadow-card: 0 16px 38px rgba(15, 23, 42, 0.12), 0 0 0 1px rgba(15, 23, 42, 0.06), 0 1px 0 rgba(255, 255, 255, 0.9) inset;
34
+ --ag-font: Inter, -apple-system, blinkmacsystemfont, sans-serif;
35
+ --ag-fs-cell: 13px;
36
+ --ag-fs-cell-secondary: 11.5px;
37
+ --ag-fs-tiny: 10px;
38
+ --ag-fw-regular: 500;
39
+ --ag-fw-semibold: 600;
40
+ --ag-fw-bold: 700;
41
+ --ag-tracking-tight: -0.005em;
42
+ --ag-tracking-header: 0.05em;
43
+ --ag-leading: 1.4;
44
+ --ag-cell-pad-x: 10px;
45
+ --ag-row-h: 36px;
46
+ --ag-header-h: 40px;
47
+ --ag-toolbar-pad: 12px 14px;
48
+ --ag-footer-pad: 10px 14px;
49
+ --ag-radius: 8px;
50
+ --ag-radius-sm: 6px;
51
+ --ag-radius-xs: 4px;
52
+ --ag-radius-pill: 20px;
53
+ --ag-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
54
+ --ag-dur-fast: 120ms;
55
+ --ag-dur-med: 180ms;
56
+ --ag-dur-slow: 240ms;
57
+ --ag-dark-grid-bg: #0f172a;
58
+ --ag-dark-surface: #0f172a;
59
+ --ag-dark-surface-elevated: #1e2532;
60
+ --ag-dark-hairline: rgba(255, 255, 255, 0.12);
61
+ --ag-dark-border: rgba(255, 255, 255, 0.12);
62
+ --ag-dark-pin-line: rgba(255, 255, 255, 0.28);
63
+ --ag-dark-header-separator: rgba(255, 255, 255, 0.18);
64
+ --ag-dark-text: #f1f5f9;
65
+ --ag-dark-text-body: #e2e8f0;
66
+ --ag-dark-text-muted: #94a3b8;
67
+ --ag-dark-text-subtle: #64748b;
68
+ --ag-dark-good-text: #34d399;
69
+ --ag-dark-good-soft: rgba(16, 185, 129, 0.18);
70
+ --ag-dark-watch-text: #fbbf24;
71
+ --ag-dark-watch-soft: rgba(245, 158, 11, 0.18);
72
+ --ag-dark-risk-text: #f87171;
73
+ --ag-dark-risk-soft: rgba(239, 68, 68, 0.18);
74
+ --ag-dark-gold: rgba(245, 158, 11, 0.16);
75
+ --ag-dark-gold-line: rgba(245, 158, 11, 0.35);
76
+ --ag-dark-gold-text: #fcd34d;
77
+ --ag-dark-shadow-card: 0 16px 38px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(255, 255, 255, 0.06), 0 1px 0 rgba(255, 255, 255, 0.04) inset;
78
+ }
package/LICENSE DELETED
@@ -1,80 +0,0 @@
1
- ## 📄 License Options for ApexCharts
2
-
3
- ApexCharts is offered under a **dual-license model** to support individuals, startups, and commercial products of all sizes.
4
-
5
- ---
6
-
7
- ### 🔓 Community License (Free)
8
-
9
- For individuals, non-profits, educators, and small businesses with **less than $2 million USD in annual revenue**.
10
-
11
- ✅ What’s allowed:
12
-
13
- - Personal, educational, or non-profit use
14
- - Commercial use by small orgs (< $2M annual revenue)
15
- - Modifications and redistribution (with attribution)
16
-
17
- 🚫 Not allowed:
18
-
19
- - Use by companies or entities over $2M/year revenue
20
- - Use in competing charting products
21
- - Sublicensing under different terms
22
-
23
- ➡ By using ApexCharts under this license, you confirm that **you qualify as a Small Organization**.
24
-
25
- ---
26
-
27
- ### 💼 Commercial License (Paid)
28
-
29
- Required if **you or your affiliated organization earns $2 million USD or more per year**.
30
-
31
- ✅ What's included:
32
-
33
- - Use in internal tools and commercial applications
34
- - Modifications and app-level distribution
35
- - 12-month subscription with updates & support
36
-
37
- 🚫 Not allowed:
38
-
39
- - Redistribution in toolkits, SDKs, or platforms
40
- - Use by unlicensed developers
41
- - Competing charting products
42
-
43
- ---
44
-
45
- ### 🔄 OEM / Redistribution License (Paid)
46
-
47
- Required if you are **embedding ApexCharts into a product or platform used by other people**, such as:
48
-
49
- - No-code dashboards
50
- - Developer platforms
51
- - Embedded BI tools
52
- - White-labeled apps or SDKs
53
-
54
- ✅ What's included:
55
-
56
- - Redistribution rights for 1 application or product
57
- - 12-month subscription with updates & support
58
-
59
- ✅ OEM **not required** if your app simply renders static charts and users **cannot** configure or interact with them.
60
-
61
- ---
62
-
63
- ### ⚠️ License Acceptance
64
-
65
- By installing ApexCharts (e.g., via `npm install apexcharts`), you are agreeing to the applicable license based on your usage:
66
-
67
- - Community License (if under $2M revenue)
68
- - Commercial License (if over $2M revenue)
69
- - OEM License (if redistributing to third-party users)
70
-
71
- ---
72
-
73
- ### 🛠 Need a License or Have Questions?
74
-
75
- 📧 Contact us at [sales@apexcharts.com](mailto:sales@apexcharts.com)
76
- 📚 Read full license agreements here: [https://apexcharts.com/license](https://apexcharts.com/license)
77
-
78
- ---
79
-
80
- Thank you for supporting ApexCharts! Your licensing helps keep it free and open for individuals and small teams.
@@ -1,80 +0,0 @@
1
- ## 📄 License Options for ApexCharts
2
-
3
- ApexCharts is offered under a **dual-license model** to support individuals, startups, and commercial products of all sizes.
4
-
5
- ---
6
-
7
- ### 🔓 Community License (Free)
8
-
9
- For individuals, non-profits, educators, and small businesses with **less than $2 million USD in annual revenue**.
10
-
11
- ✅ What’s allowed:
12
-
13
- - Personal, educational, or non-profit use
14
- - Commercial use by small orgs (< $2M annual revenue)
15
- - Modifications and redistribution (with attribution)
16
-
17
- 🚫 Not allowed:
18
-
19
- - Use by companies or entities over $2M/year revenue
20
- - Use in competing charting products
21
- - Sublicensing under different terms
22
-
23
- ➡ By using ApexCharts under this license, you confirm that **you qualify as a Small Organization**.
24
-
25
- ---
26
-
27
- ### 💼 Commercial License (Paid)
28
-
29
- Required if **you or your affiliated organization earns $2 million USD or more per year**.
30
-
31
- ✅ What's included:
32
-
33
- - Use in internal tools and commercial applications
34
- - Modifications and app-level distribution
35
- - 12-month subscription with updates & support
36
-
37
- 🚫 Not allowed:
38
-
39
- - Redistribution in toolkits, SDKs, or platforms
40
- - Use by unlicensed developers
41
- - Competing charting products
42
-
43
- ---
44
-
45
- ### 🔄 OEM / Redistribution License (Paid)
46
-
47
- Required if you are **embedding ApexCharts into a product or platform used by other people**, such as:
48
-
49
- - No-code dashboards
50
- - Developer platforms
51
- - Embedded BI tools
52
- - White-labeled apps or SDKs
53
-
54
- ✅ What's included:
55
-
56
- - Redistribution rights for 1 application or product
57
- - 12-month subscription with updates & support
58
-
59
- ✅ OEM **not required** if your app simply renders static charts and users **cannot** configure or interact with them.
60
-
61
- ---
62
-
63
- ### ⚠️ License Acceptance
64
-
65
- By installing ApexCharts (e.g., via `npm install apexcharts`), you are agreeing to the applicable license based on your usage:
66
-
67
- - Community License (if under $2M revenue)
68
- - Commercial License (if over $2M revenue)
69
- - OEM License (if redistributing to third-party users)
70
-
71
- ---
72
-
73
- ### 🛠 Need a License or Have Questions?
74
-
75
- 📧 Contact us at [sales@apexcharts.com](mailto:sales@apexcharts.com)
76
- 📚 Read full license agreements here: [https://apexcharts.com/license](https://apexcharts.com/license)
77
-
78
- ---
79
-
80
- Thank you for supporting ApexCharts! Your licensing helps keep it free and open for individuals and small teams.
@@ -1,193 +0,0 @@
1
- // ─────────────────────────────────────────────────────────────────────────
2
- // Premium default design tokens (`--ag-*`).
3
- // These land on the `<apex-grid>` host (this file is `@use`d by
4
- // `grid/_grid.base.scss`, which ships inside every theme). CSS custom
5
- // properties inherit across shadow boundaries, so every child component
6
- // (`apex-grid-row`, `apex-grid-cell`, `apex-grid-header`, …) can read them.
7
- // This is the single rebrand surface: override ~12 values on `apex-grid` and
8
- // the whole grid re-skins. Values fall back to self-contained literals, so a
9
- // grid mounted with zero consumer CSS already looks premium; the brand tokens
10
- // additionally re-tint from the igniteui palette when it is present.
11
- // No `!important`, no downstream hardcoded numerics — every rule resolves here.
12
- // ─────────────────────────────────────────────────────────────────────────
13
-
14
- :host {
15
- // ── Brand ────────────────────────────────────────────────────────────
16
- // Re-tints from the igniteui palette when its CSS is loaded (so the grid
17
- // auto-matches an igniteui host app), and falls back to the self-contained
18
- // premium blue otherwise. This igniteui hook used to live in the per-theme
19
- // files; folding it here keeps that integration without named themes.
20
- --ag-brand: var(--ig-primary-500, #0d6fd3); /* primary blue */
21
- --ag-brand-strong: var(--ig-primary-700, #0a56b8); /* hover / pressed */
22
-
23
- // Brand-derived washes are mixed from `--ag-brand` so a one-line rebrand
24
- // cascades to every tint. With the default brand these resolve to the
25
- // spec's exact rgba(13, 111, 211, …) values.
26
- --ag-brand-soft: color-mix(in srgb, var(--ag-brand) 10%, transparent); /* selected row / chip wash */
27
- --ag-brand-softer: color-mix(in srgb, var(--ag-brand) 7%, transparent); /* chip / control wash */
28
- --ag-brand-line: color-mix(in srgb, var(--ag-brand) 18%, transparent); /* chip / search borders */
29
-
30
- // ── Neutral chrome ───────────────────────────────────────────────────
31
- // The grid's chrome (surfaces, gridlines, row hover) is grayscale so the
32
- // grid reads as a calm, neutral table; `--ag-brand` is reserved for genuine
33
- // state (selection, focus, checkboxes, active sort) and accents (chips).
34
- --ag-hairline: rgb(15 23 42 / 8%); /* header / structural gridlines */
35
- --ag-border: rgb(15 23 42 / 8%); /* row separators — same weight as hairline */
36
- --ag-pin-line: rgb(15 23 42 / 18%); /* 1px vertical line at pinned-column edge */
37
- --ag-header-separator: rgb(15 23 42 / 12%); /* opt-in per-column header divider (columnSeparator) */
38
- --ag-row-hover: color-mix(in srgb, #0f172a 5%, var(--ag-surface)); /* neutral hover wash (opaque) */
39
-
40
- // ── Surfaces ─────────────────────────────────────────────────────────
41
- // These back sticky/pinned regions (header, footer, frozen columns) which
42
- // paint `background: inherit` to mask content scrolling underneath, so they
43
- // MUST be opaque — a translucent surface lets the scrolled content bleed
44
- // through.
45
- // Host card background. Kept as its own token (rather than reusing
46
- // `--ag-surface`) so the default can carry the subtle premium light
47
- // gradient while sticky surfaces stay flat/opaque. Dark themes override it
48
- // with a flat color. The host paints THIS, so dark mode is impossible
49
- // without it being a token.
50
- --ag-grid-bg: #fff; /* flat white — gradients are dated in modern data grids */
51
- --ag-surface: #fff; /* grid card background */
52
- --ag-surface-alt: var(--ag-surface); /* no zebra stripes — rely on hover + hairline borders */
53
- --ag-surface-elevated: #f8f9fb; /* flat header/toolbar/footer surface */
54
-
55
- // ── Text ─────────────────────────────────────────────────────────────
56
- --ag-text: #111827; /* primary */
57
- --ag-text-body: #1f2937; /* row text */
58
- --ag-text-muted: #6b7280; /* roles, labels */
59
- --ag-text-subtle: #9ca3af; /* placeholder, ellipsis */
60
- --ag-text-on-brand: #fff;
61
-
62
- // ── State ────────────────────────────────────────────────────────────
63
- --ag-good: #10b981; /* health > 80, Active */
64
- --ag-good-text: #047857;
65
- --ag-good-soft: rgb(16 185 129 / 10%);
66
- --ag-watch: #f59e0b; /* health 65–80, Trial */
67
- --ag-watch-text: #b45309;
68
- --ag-watch-soft: rgb(245 158 11 / 10%);
69
- --ag-risk: #ef4444; /* health < 65, Churn */
70
- --ag-risk-text: #b91c1c;
71
- --ag-risk-soft: rgb(239 68 68 / 10%);
72
- --ag-gold: #fef3c7; /* Enterprise pill bg */
73
- --ag-gold-line: #fde68a;
74
- --ag-gold-text: #92400e;
75
- --ag-shadow-card:
76
- 0 16px 38px rgb(15 23 42 / 12%),
77
- 0 0 0 1px rgb(15 23 42 / 6%),
78
- 0 1px 0 rgb(255 255 255 / 90%) inset; /* soft neutral floating shadow */
79
-
80
- // ── Typography ───────────────────────────────────────────────────────
81
- --ag-font: 'Inter', -apple-system, blinkmacsystemfont, sans-serif;
82
- --ag-fs-cell: 13px;
83
- --ag-fs-cell-secondary: 11.5px; /* role line, header labels */
84
- --ag-fs-tiny: 10px; /* tags, page ellipsis */
85
- --ag-fw-regular: 500;
86
- --ag-fw-semibold: 600;
87
- --ag-fw-bold: 700;
88
- --ag-tracking-tight: -0.005em;
89
- --ag-tracking-header: 0.05em; /* uppercase header labels */
90
- --ag-leading: 1.4;
91
-
92
- // ── Spacing & sizing ─────────────────────────────────────────────────
93
- --ag-cell-pad-x: 10px;
94
- --ag-row-h: 36px; /* dense but readable */
95
- --ag-header-h: 40px; /* taller than rows to accommodate 3-icon header */
96
- --ag-toolbar-pad: 12px 14px;
97
- --ag-footer-pad: 10px 14px;
98
- --ag-radius: 8px; /* outer card — tighter matches modern table libraries */
99
- --ag-radius-sm: 6px; /* chips, page buttons */
100
- --ag-radius-xs: 4px; /* checkboxes, expand button */
101
- --ag-radius-pill: 20px; /* status badges */
102
-
103
- // ── Motion ───────────────────────────────────────────────────────────
104
- --ag-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
105
- --ag-dur-fast: 120ms; /* hover, focus */
106
- --ag-dur-med: 180ms; /* chevron rotate */
107
- --ag-dur-slow: 240ms; /* health bar fill */
108
- }
109
-
110
- // ─────────────────────────────────────────────────────────────────────────
111
- // Built-in dark theme. Opt in with `<apex-grid theme="dark">`.
112
- // Only color/surface tokens are flipped to a neutral slate palette; geometry,
113
- // typography, motion, and the brand hue (which still auto-tints from the
114
- // igniteui palette when present) are inherited from the light block above.
115
- // `theme~='dark'` matches a space-separated word so `theme="dark compact"`
116
- // style stacking keeps working. These tokens inherit across the shadow
117
- // boundary to every child component, so the whole grid re-skins from here.
118
- // ─────────────────────────────────────────────────────────────────────────
119
- :host([theme~='dark']) {
120
- // ── Brand ── brighter fallbacks so the accent reads on a dark surface;
121
- // still re-tints from the igniteui palette first when it is present.
122
- --ag-brand: var(--ig-primary-500, #3b82f6);
123
- --ag-brand-strong: var(--ig-primary-400, #60a5fa);
124
-
125
- // ── Surfaces ── flat, opaque slate (sticky regions paint these).
126
- --ag-grid-bg: #0f172a; /* host card (flat in dark) */
127
- --ag-surface: #0f172a; /* grid body / row bg */
128
- --ag-surface-alt: var(--ag-surface); /* no stripes in dark mode either */
129
- --ag-surface-elevated: #1e2532; /* header / footer / toolbar — slightly lifted */
130
-
131
- // ── Chrome ── light-on-dark gridlines + a hover wash that mixes toward
132
- // white (the light default mixes toward #0f172a, which is invisible here).
133
- --ag-hairline: rgb(255 255 255 / 12%); /* structural gridlines */
134
- --ag-border: rgb(255 255 255 / 12%); /* row separators — same weight as hairline */
135
- --ag-pin-line: rgb(255 255 255 / 28%); /* 1px vertical line at pinned-column edge */
136
- --ag-header-separator: rgb(255 255 255 / 18%); /* opt-in per-column header divider (columnSeparator) */
137
- --ag-row-hover: color-mix(in srgb, #fff 7%, var(--ag-surface));
138
-
139
- // ── Text ──
140
- --ag-text: #f1f5f9; /* primary */
141
- --ag-text-body: #e2e8f0; /* row text */
142
- --ag-text-muted: #94a3b8; /* roles, labels */
143
- --ag-text-subtle: #64748b; /* placeholder, ellipsis */
144
-
145
- // ── State ── brighter text + slightly stronger washes for legibility on
146
- // the dark surface.
147
- --ag-good-text: #34d399;
148
- --ag-good-soft: rgb(16 185 129 / 18%);
149
- --ag-watch-text: #fbbf24;
150
- --ag-watch-soft: rgb(245 158 11 / 18%);
151
- --ag-risk-text: #f87171;
152
- --ag-risk-soft: rgb(239 68 68 / 18%);
153
- --ag-gold: rgb(245 158 11 / 16%); /* Enterprise pill bg (dark amber wash) */
154
- --ag-gold-line: rgb(245 158 11 / 35%);
155
- --ag-gold-text: #fcd34d;
156
-
157
- // Drop the light-mode white inset highlight; deepen the drop shadow.
158
- --ag-shadow-card:
159
- 0 16px 38px rgb(0 0 0 / 55%),
160
- 0 0 0 1px rgb(255 255 255 / 6%),
161
- 0 1px 0 rgb(255 255 255 / 4%) inset;
162
- }
163
-
164
- // ─────────────────────────────────────────────────────────────────────────
165
- // Optional brand-tinted chrome. Opt in with `theme="tinted"` (composes with
166
- // dark as `theme="dark tinted"`).
167
- // By default the chrome is neutral grayscale and `--ag-brand` only shows on
168
- // interactive state (selection, focus, active sort). This variant mixes a
169
- // little brand into the surfaces/gridlines so the grid wears its brand even
170
- // at rest, a brand-tinted variant. Because every value is `color-mix(... var
171
- // (--ag-brand) ...)`, it follows whatever brand is in effect (including the
172
- // igniteui auto-tint) with no per-brand CSS.
173
- // The light variant mixes into the white neutrals; the dark variant (higher
174
- // specificity, so it wins under `theme="dark tinted"`) mixes the SAME token
175
- // set into the slate neutrals. Body row surface stays untinted for legibility.
176
- // ─────────────────────────────────────────────────────────────────────────
177
- :host([theme~='tinted']) {
178
- --ag-surface-alt: color-mix(in srgb, var(--ag-brand) 4%, #fff); /* zebra */
179
- --ag-surface-elevated: color-mix(in srgb, var(--ag-brand) 11%, #fbfcfd); /* header / footer / toolbar */
180
- --ag-hairline: color-mix(in srgb, var(--ag-brand) 24%, rgb(15 23 42 / 7%)); /* gridlines */
181
- --ag-border: color-mix(in srgb, var(--ag-brand) 12%, transparent); /* row separators */
182
- --ag-row-hover: color-mix(in srgb, var(--ag-brand) 9%, var(--ag-surface));
183
- --ag-text-muted: color-mix(in srgb, var(--ag-brand) 32%, #6b7280); /* header labels pick up the brand */
184
- }
185
-
186
- :host([theme~='dark'][theme~='tinted']) {
187
- --ag-surface-alt: color-mix(in srgb, var(--ag-brand) 10%, #172033);
188
- --ag-surface-elevated: color-mix(in srgb, var(--ag-brand) 20%, #1e293b);
189
- --ag-hairline: color-mix(in srgb, var(--ag-brand) 30%, rgb(255 255 255 / 12%));
190
- --ag-border: color-mix(in srgb, var(--ag-brand) 16%, rgb(255 255 255 / 7%));
191
- --ag-row-hover: color-mix(in srgb, var(--ag-brand) 12%, var(--ag-surface));
192
- --ag-text-muted: color-mix(in srgb, var(--ag-brand) 28%, #94a3b8);
193
- }