snice 3.4.1 → 3.5.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 (175) hide show
  1. package/bin/templates/social/src/styles/global.css +56 -47
  2. package/dist/components/avatar/snice-avatar.d.ts +2 -2
  3. package/dist/components/avatar/snice-avatar.js +20 -21
  4. package/dist/components/avatar/snice-avatar.js.map +1 -1
  5. package/dist/components/calendar/snice-calendar.d.ts +8 -2
  6. package/dist/components/calendar/snice-calendar.js +160 -82
  7. package/dist/components/calendar/snice-calendar.js.map +1 -1
  8. package/dist/components/chart/snice-chart.js +50 -18
  9. package/dist/components/chart/snice-chart.js.map +1 -1
  10. package/dist/components/checkbox/snice-checkbox.d.ts +4 -1
  11. package/dist/components/checkbox/snice-checkbox.js +46 -17
  12. package/dist/components/checkbox/snice-checkbox.js.map +1 -1
  13. package/dist/components/code-block/highlighter.d.ts +5 -0
  14. package/dist/components/code-block/highlighter.js +137 -0
  15. package/dist/components/code-block/highlighter.js.map +1 -0
  16. package/dist/components/code-block/highlighters/highlight.d.ts +64 -0
  17. package/dist/components/code-block/highlighters/highlight.js +108 -0
  18. package/dist/components/code-block/highlighters/highlight.js.map +1 -0
  19. package/dist/components/code-block/highlighters/prism.d.ts +41 -0
  20. package/dist/components/code-block/highlighters/prism.js +73 -0
  21. package/dist/components/code-block/highlighters/prism.js.map +1 -0
  22. package/dist/components/code-block/snice-code-block.d.ts +19 -1
  23. package/dist/components/code-block/snice-code-block.js +128 -29
  24. package/dist/components/code-block/snice-code-block.js.map +1 -1
  25. package/dist/components/code-block/snice-code-block.types.d.ts +15 -1
  26. package/dist/components/color-picker/snice-color-picker.d.ts +1 -0
  27. package/dist/components/color-picker/snice-color-picker.js +17 -6
  28. package/dist/components/color-picker/snice-color-picker.js.map +1 -1
  29. package/dist/components/date-picker/snice-date-picker.d.ts +1 -0
  30. package/dist/components/date-picker/snice-date-picker.js +16 -5
  31. package/dist/components/date-picker/snice-date-picker.js.map +1 -1
  32. package/dist/components/doc/snice-doc.d.ts +27 -73
  33. package/dist/components/doc/snice-doc.js +385 -534
  34. package/dist/components/doc/snice-doc.js.map +1 -1
  35. package/dist/components/draw/snice-draw.d.ts +4 -0
  36. package/dist/components/draw/snice-draw.js +134 -14
  37. package/dist/components/draw/snice-draw.js.map +1 -1
  38. package/dist/components/draw/snice-draw.types.d.ts +5 -0
  39. package/dist/components/file-upload/snice-file-upload.js +1 -1
  40. package/dist/components/input/snice-input.d.ts +2 -0
  41. package/dist/components/input/snice-input.js +34 -9
  42. package/dist/components/input/snice-input.js.map +1 -1
  43. package/dist/components/kanban/snice-kanban.d.ts +13 -1
  44. package/dist/components/kanban/snice-kanban.js +191 -36
  45. package/dist/components/kanban/snice-kanban.js.map +1 -1
  46. package/dist/components/kanban/snice-kanban.types.d.ts +11 -1
  47. package/dist/components/kpi/snice-kpi.js +5 -1
  48. package/dist/components/kpi/snice-kpi.js.map +1 -1
  49. package/dist/components/layout/snice-layout-sidebar.js +1 -1
  50. package/dist/components/layout/snice-layout-sidebar.js.map +1 -1
  51. package/dist/components/layout/snice-layout.js +1 -1
  52. package/dist/components/layout/snice-layout.js.map +1 -1
  53. package/dist/components/location/snice-location.js +1 -1
  54. package/dist/components/location/snice-location.js.map +1 -1
  55. package/dist/components/radio/snice-radio.d.ts +1 -0
  56. package/dist/components/radio/snice-radio.js +17 -6
  57. package/dist/components/radio/snice-radio.js.map +1 -1
  58. package/dist/components/select/snice-select.d.ts +2 -0
  59. package/dist/components/select/snice-select.js +48 -19
  60. package/dist/components/select/snice-select.js.map +1 -1
  61. package/dist/components/slider/snice-slider.d.ts +2 -0
  62. package/dist/components/slider/snice-slider.js +34 -14
  63. package/dist/components/slider/snice-slider.js.map +1 -1
  64. package/dist/components/snice-cell-HZ2iIBIC.js +4 -0
  65. package/dist/components/snice-cell-HZ2iIBIC.js.map +1 -0
  66. package/dist/components/split-pane/snice-split-pane.js +1 -1
  67. package/dist/components/split-pane/snice-split-pane.js.map +1 -1
  68. package/dist/components/switch/snice-switch.d.ts +1 -0
  69. package/dist/components/switch/snice-switch.js +16 -6
  70. package/dist/components/switch/snice-switch.js.map +1 -1
  71. package/dist/components/table/snice-cell-actions.js +1 -1
  72. package/dist/components/table/snice-cell-actions.js.map +1 -1
  73. package/dist/components/table/snice-cell-boolean.js +1 -1
  74. package/dist/components/table/snice-cell-color.js +1 -1
  75. package/dist/components/table/snice-cell-color.js.map +1 -1
  76. package/dist/components/table/snice-cell-currency.js +1 -1
  77. package/dist/components/table/snice-cell-date.js +1 -1
  78. package/dist/components/table/snice-cell-duration.js +1 -1
  79. package/dist/components/table/snice-cell-email.js +1 -1
  80. package/dist/components/table/snice-cell-email.js.map +1 -1
  81. package/dist/components/table/snice-cell-filesize.js +1 -1
  82. package/dist/components/table/snice-cell-image.js +1 -1
  83. package/dist/components/table/snice-cell-image.js.map +1 -1
  84. package/dist/components/table/snice-cell-json.js +1 -1
  85. package/dist/components/table/snice-cell-json.js.map +1 -1
  86. package/dist/components/table/snice-cell-link.js +1 -1
  87. package/dist/components/table/snice-cell-link.js.map +1 -1
  88. package/dist/components/table/snice-cell-location.js +1 -1
  89. package/dist/components/table/snice-cell-location.js.map +1 -1
  90. package/dist/components/table/snice-cell-number.js +1 -1
  91. package/dist/components/table/snice-cell-percentage.js +1 -1
  92. package/dist/components/table/snice-cell-percentage.js.map +1 -1
  93. package/dist/components/table/snice-cell-phone.js +1 -1
  94. package/dist/components/table/snice-cell-phone.js.map +1 -1
  95. package/dist/components/table/snice-cell-progress.js +3 -3
  96. package/dist/components/table/snice-cell-progress.js.map +1 -1
  97. package/dist/components/table/snice-cell-rating.js +2 -2
  98. package/dist/components/table/snice-cell-rating.js.map +1 -1
  99. package/dist/components/table/snice-cell-sparkline.js +2 -2
  100. package/dist/components/table/snice-cell-sparkline.js.map +1 -1
  101. package/dist/components/table/snice-cell-status.js +1 -1
  102. package/dist/components/table/snice-cell-status.js.map +1 -1
  103. package/dist/components/table/snice-cell-tag.js +1 -1
  104. package/dist/components/table/snice-cell-tag.js.map +1 -1
  105. package/dist/components/table/snice-cell-text.js +1 -1
  106. package/dist/components/table/snice-cell.js +15 -10
  107. package/dist/components/table/snice-cell.js.map +1 -1
  108. package/dist/components/table/snice-header.js +1 -1
  109. package/dist/components/table/snice-header.js.map +1 -1
  110. package/dist/components/table/snice-row.js +2 -2
  111. package/dist/components/table/snice-row.js.map +1 -1
  112. package/dist/components/table/snice-table.d.ts +1 -0
  113. package/dist/components/table/snice-table.js +24 -4
  114. package/dist/components/table/snice-table.js.map +1 -1
  115. package/dist/components/terminal/snice-terminal.d.ts +40 -0
  116. package/dist/components/terminal/snice-terminal.js +371 -0
  117. package/dist/components/terminal/snice-terminal.js.map +1 -0
  118. package/dist/components/terminal/snice-terminal.types.d.ts +20 -24
  119. package/dist/components/textarea/snice-textarea.d.ts +2 -0
  120. package/dist/components/textarea/snice-textarea.js +25 -6
  121. package/dist/components/textarea/snice-textarea.js.map +1 -1
  122. package/dist/components/theme/theme.css +16 -0
  123. package/dist/components/tree/snice-tree-item.d.ts +18 -4
  124. package/dist/components/tree/snice-tree-item.js +271 -88
  125. package/dist/components/tree/snice-tree-item.js.map +1 -1
  126. package/dist/components/tree/snice-tree-item.types.d.ts +3 -0
  127. package/dist/components/tree/snice-tree.d.ts +18 -2
  128. package/dist/components/tree/snice-tree.js +422 -56
  129. package/dist/components/tree/snice-tree.js.map +1 -1
  130. package/dist/components/tree/snice-tree.types.d.ts +1 -0
  131. package/dist/components/virtual-scroller/snice-virtual-scroller.js +4 -2
  132. package/dist/components/virtual-scroller/snice-virtual-scroller.js.map +1 -1
  133. package/dist/index.cjs +42 -23
  134. package/dist/index.cjs.map +1 -1
  135. package/dist/index.esm.js +42 -23
  136. package/dist/index.esm.js.map +1 -1
  137. package/dist/index.iife.js +42 -23
  138. package/dist/index.iife.js.map +1 -1
  139. package/dist/render-tracker.d.ts +1 -0
  140. package/dist/symbols.cjs +13 -14
  141. package/dist/symbols.cjs.map +1 -1
  142. package/dist/symbols.esm.js +13 -14
  143. package/dist/symbols.esm.js.map +1 -1
  144. package/dist/template.d.ts +1 -0
  145. package/dist/transitions.cjs +1 -1
  146. package/dist/transitions.esm.js +1 -1
  147. package/docs/ai/api.md +37 -4
  148. package/docs/ai/components/doc.md +41 -106
  149. package/docs/ai/components/kanban.md +31 -9
  150. package/docs/ai/components/kpi.md +15 -0
  151. package/docs/components/doc.md +96 -212
  152. package/docs/components/kanban.md +119 -4
  153. package/docs/components/kpi.md +27 -0
  154. package/package.json +1 -1
  155. package/dist/components/actions/snice-actions.d.ts +0 -28
  156. package/dist/components/actions/snice-actions.js +0 -220
  157. package/dist/components/actions/snice-actions.js.map +0 -1
  158. package/dist/components/actions/snice-actions.types.d.ts +0 -27
  159. package/dist/components/doc/snice-doc.types.d.ts +0 -118
  160. package/dist/components/gantt/snice-gantt.d.ts +0 -29
  161. package/dist/components/gantt/snice-gantt.js +0 -268
  162. package/dist/components/gantt/snice-gantt.js.map +0 -1
  163. package/dist/components/gantt/snice-gantt.types.d.ts +0 -23
  164. package/dist/components/snice-cell-C0slgOpe.js +0 -4
  165. package/dist/components/snice-cell-C0slgOpe.js.map +0 -1
  166. package/dist/components/stat/snice-stat.d.ts +0 -14
  167. package/dist/components/stat/snice-stat.js +0 -140
  168. package/dist/components/stat/snice-stat.js.map +0 -1
  169. package/dist/components/stat/snice-stat.types.d.ts +0 -12
  170. package/docs/ai/components/actions.md +0 -81
  171. package/docs/ai/components/gantt.md +0 -95
  172. package/docs/ai/components/stat.md +0 -29
  173. package/docs/components/actions.md +0 -317
  174. package/docs/components/gantt.md +0 -347
  175. package/docs/components/stat.md +0 -45
@@ -1,7 +1,7 @@
1
1
  import { __runInitializers, __esDecorate } from 'tslib';
2
- import { element, property, dispatch, styles, render, css, html } from 'snice';
2
+ import { element, property, dispatch, styles, ready, watch, css } from 'snice';
3
3
 
4
- var cssContent = ":host{display:block;font-family:var(--snice-font-family, system-ui, -apple-system, sans-serif)}.calendar{width:100%;max-width:600px}.calendar__header{display:flex;align-items:center;justify-content:space-between;padding:16px;background:var(--snice-bg-primary,#fff);border-bottom:1px solid var(--snice-border-color,#e0e0e0)}.calendar__title{font-size:18px;font-weight:600;color:var(--snice-text-primary,#1a1a1a)}.calendar__nav{display:flex;gap:8px}.calendar__nav-button{padding:8px 12px;border:1px solid var(--snice-border-color,#e0e0e0);background:#fff;border-radius:4px;cursor:pointer;transition:.2s;font-size:14px}.calendar__nav-button:hover{background:var(--snice-bg-hover,#f5f5f5)}.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);background:#fff}.calendar__weekday{padding:12px;text-align:center;font-size:12px;font-weight:600;color:var(--snice-text-secondary,#666);text-transform:uppercase;border-bottom:1px solid var(--snice-border-color,#e0e0e0)}.calendar__day{min-height:80px;padding:8px;border:1px solid var(--snice-border-color,#e0e0e0);border-top:none;border-left:none;cursor:pointer;transition:background .2s;position:relative}.calendar__day:hover{background:var(--snice-bg-hover,#f5f5f5)}.calendar__day:nth-child(7n+1){border-left:1px solid var(--snice-border-color,#e0e0e0)}.calendar__day--other-month{background:var(--snice-bg-secondary,#fafafa);color:var(--snice-text-tertiary,#999)}.calendar__day--today{background:var(--snice-color-primary-light,#e3f2fd)}.calendar__day--selected{background:var(--snice-color-primary,#2196f3);color:#fff}.calendar__day--disabled{background:var(--snice-bg-disabled,#f5f5f5);color:var(--snice-text-disabled,#ccc);cursor:not-allowed}.calendar__day-number{font-size:14px;font-weight:500;margin-bottom:4px}.calendar__day--selected .calendar__day-number{color:#fff}.calendar__events{display:flex;flex-direction:column;gap:2px;margin-top:4px}.calendar__event{font-size:11px;padding:2px 4px;border-radius:2px;background:var(--snice-color-primary,#2196f3);color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.calendar__event:hover{opacity:.8}.calendar__week-number{padding:12px 8px;text-align:center;font-size:12px;color:var(--snice-text-tertiary,#999);background:var(--snice-bg-secondary,#fafafa);border-right:1px solid var(--snice-border-color,#e0e0e0)}.calendar--week .calendar__grid{grid-template-columns:repeat(7,1fr)}.calendar--week .calendar__day{min-height:120px}.calendar--day .calendar__grid{grid-template-columns:1fr}.calendar--day .calendar__day{min-height:400px}";
4
+ var cssContent = ":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);contain:layout style paint}.calendar{width:100%;max-width:37.5rem}.calendar__header{display:flex;align-items:center;justify-content:space-between;padding:var(--snice-spacing-md,1rem);background:var(--snice-color-background,rgb(255 255 255));border-bottom:1px solid var(--snice-color-border,rgb(226 226 226))}.calendar__title{font-size:var(--snice-font-size-lg, 1.125rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--snice-color-text,rgb(23 23 23))}.calendar__nav{display:flex;gap:var(--snice-spacing-xs,.5rem)}.calendar__nav-button{padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);border:1px solid var(--snice-color-border,rgb(226 226 226));background:var(--snice-color-background,rgb(255 255 255));border-radius:var(--snice-border-radius-md,.25rem);cursor:pointer;transition:background-color var(--snice-transition-fast, 150ms) ease,border-color var(--snice-transition-fast, 150ms) ease;font-size:var(--snice-font-size-sm, .875rem);color:var(--snice-color-text,rgb(23 23 23));font-family:inherit}.calendar__nav-button:hover{background:var(--snice-color-background-secondary,rgb(250 250 250));border-color:var(--snice-color-border-hover,rgb(204 204 204))}.calendar__nav-button:focus-visible{outline:0;box-shadow:0 0 0 var(--snice-focus-ring-width,2px) var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);background:var(--snice-color-background,rgb(255 255 255))}.calendar__weekday{padding:var(--snice-spacing-sm,.75rem);text-align:center;font-size:var(--snice-font-size-xs, .75rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--snice-color-text-secondary,rgb(82 82 82));text-transform:uppercase;border-bottom:1px solid var(--snice-color-border,rgb(226 226 226))}.calendar__day{height:5rem;padding:var(--snice-spacing-xs,.5rem);border:1px solid var(--snice-color-border,rgb(226 226 226));border-top:none;border-left:none;cursor:pointer;transition:background-color var(--snice-transition-fast, 150ms) ease;position:relative;background:var(--snice-color-background,rgb(255 255 255));overflow:hidden}.calendar__day:hover{background:var(--snice-color-background-secondary,rgb(250 250 250))}.calendar__day:focus-visible{outline:0;box-shadow:inset 0 0 0 2px var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.calendar__day:nth-child(7n+1){border-left:1px solid var(--snice-color-border,rgb(226 226 226))}.calendar__day--other-month{background:var(--snice-color-background,rgb(255 255 255));color:var(--snice-color-text-tertiary,rgb(115 115 115));opacity:.5}.calendar__day--other-month:hover{opacity:.7}.calendar__day--today{background:rgb(var(--snice-color-blue-100,219 234 254))}.calendar__day--today:hover{background:rgb(var(--snice-color-blue-200,191 219 254))}.calendar__day--selected{background:var(--snice-color-primary,rgb(37 99 235));color:var(--snice-color-text-inverse,rgb(250 250 250))}.calendar__day--selected:hover{background:var(--snice-color-primary-hover,rgb(29 78 216))}.calendar__day--disabled{background:var(--snice-color-background-tertiary,rgb(241 241 241));color:var(--snice-color-text-tertiary,rgb(115 115 115));opacity:.5;cursor:not-allowed}.calendar__day--disabled:hover{background:var(--snice-color-background-tertiary,rgb(241 241 241))}.calendar__day-number{font-size:var(--snice-font-size-sm, .875rem);font-weight:var(--snice-font-weight-medium,500);margin-bottom:var(--snice-spacing-2xs,.25rem)}.calendar__day--selected .calendar__day-number{color:var(--snice-color-text-inverse,rgb(250 250 250))}.calendar__events{display:flex;flex-direction:column;gap:var(--snice-spacing-3xs,.125rem);margin-top:var(--snice-spacing-2xs,.25rem)}.calendar__event{font-size:var(--snice-font-size-2xs, .625rem);padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-2xs,.25rem);border-radius:var(--snice-border-radius-sm,.125rem);background:var(--snice-color-primary,rgb(37 99 235));color:var(--snice-color-text-inverse,rgb(250 250 250));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:opacity var(--snice-transition-fast, 150ms) ease}.calendar__event:hover{opacity:.8}.calendar__week-number{padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-xs,.5rem);text-align:center;font-size:var(--snice-font-size-xs, .75rem);color:var(--snice-color-text-tertiary,rgb(115 115 115));background:var(--snice-color-background-secondary,rgb(250 250 250));border-right:1px solid var(--snice-color-border,rgb(226 226 226))}.calendar--week .calendar__grid{grid-template-columns:repeat(7,1fr)}.calendar--week .calendar__day{min-height:7.5rem}.calendar--day .calendar__grid{grid-template-columns:1fr}.calendar--day .calendar__day{min-height:25rem}";
5
5
 
6
6
  let SniceCalendar = (() => {
7
7
  let _classDecorators = [element('snice-calendar')];
@@ -43,7 +43,8 @@ let SniceCalendar = (() => {
43
43
  let _dispatchChange_decorators;
44
44
  let _dispatchEventClick_decorators;
45
45
  let _styles_decorators;
46
- let _template_decorators;
46
+ let _initialize_decorators;
47
+ let _handlePropertyChange_decorators;
47
48
  (class extends _classSuper {
48
49
  static { _classThis = this; }
49
50
  constructor() {
@@ -59,6 +60,7 @@ let SniceCalendar = (() => {
59
60
  this.firstDayOfWeek = (__runInitializers(this, _showWeekNumbers_extraInitializers), __runInitializers(this, _firstDayOfWeek_initializers, 0)); // 0 = Sunday, 1 = Monday
60
61
  this.locale = (__runInitializers(this, _firstDayOfWeek_extraInitializers), __runInitializers(this, _locale_initializers, 'en-US'));
61
62
  this.displayDate = (__runInitializers(this, _locale_extraInitializers), new Date());
63
+ this.dayCells = [];
62
64
  }
63
65
  static {
64
66
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
@@ -75,11 +77,13 @@ let SniceCalendar = (() => {
75
77
  _dispatchChange_decorators = [dispatch('@snice/calendar-change', { bubbles: true, composed: true })];
76
78
  _dispatchEventClick_decorators = [dispatch('@snice/calendar-event-click', { bubbles: true, composed: true })];
77
79
  _styles_decorators = [styles()];
78
- _template_decorators = [render()];
80
+ _initialize_decorators = [ready()];
81
+ _handlePropertyChange_decorators = [watch('value'), watch('events')];
79
82
  __esDecorate(this, null, _dispatchChange_decorators, { kind: "method", name: "dispatchChange", static: false, private: false, access: { has: obj => "dispatchChange" in obj, get: obj => obj.dispatchChange }, metadata: _metadata }, null, _instanceExtraInitializers);
80
83
  __esDecorate(this, null, _dispatchEventClick_decorators, { kind: "method", name: "dispatchEventClick", static: false, private: false, access: { has: obj => "dispatchEventClick" in obj, get: obj => obj.dispatchEventClick }, metadata: _metadata }, null, _instanceExtraInitializers);
81
84
  __esDecorate(this, null, _styles_decorators, { kind: "method", name: "styles", static: false, private: false, access: { has: obj => "styles" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);
82
- __esDecorate(this, null, _template_decorators, { kind: "method", name: "template", static: false, private: false, access: { has: obj => "template" in obj, get: obj => obj.template }, metadata: _metadata }, null, _instanceExtraInitializers);
85
+ __esDecorate(this, null, _initialize_decorators, { kind: "method", name: "initialize", static: false, private: false, access: { has: obj => "initialize" in obj, get: obj => obj.initialize }, metadata: _metadata }, null, _instanceExtraInitializers);
86
+ __esDecorate(this, null, _handlePropertyChange_decorators, { kind: "method", name: "handlePropertyChange", static: false, private: false, access: { has: obj => "handlePropertyChange" in obj, get: obj => obj.handlePropertyChange }, metadata: _metadata }, null, _instanceExtraInitializers);
83
87
  __esDecorate(null, null, _value_decorators, { kind: "field", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
84
88
  __esDecorate(null, null, _view_decorators, { kind: "field", name: "view", static: false, private: false, access: { has: obj => "view" in obj, get: obj => obj.view, set: (obj, value) => { obj.view = value; } }, metadata: _metadata }, _view_initializers, _view_extraInitializers);
85
89
  __esDecorate(null, null, _events_decorators, { kind: "field", name: "events", static: false, private: false, access: { has: obj => "events" in obj, get: obj => obj.events, set: (obj, value) => { obj.events = value; } }, metadata: _metadata }, _events_initializers, _events_extraInitializers);
@@ -104,33 +108,166 @@ let SniceCalendar = (() => {
104
108
  styles() {
105
109
  return css /*css*/ `${cssContent}`;
106
110
  }
111
+ initialize() {
112
+ this.createDOM();
113
+ this.updateView();
114
+ }
115
+ createDOM() {
116
+ const shadow = this.shadowRoot;
117
+ // Create container
118
+ this.container = document.createElement('div');
119
+ this.container.className = `calendar calendar--${this.view}`;
120
+ // Create header
121
+ this.header = document.createElement('div');
122
+ this.header.className = 'calendar__header';
123
+ const title = document.createElement('div');
124
+ title.className = 'calendar__title';
125
+ const nav = document.createElement('div');
126
+ nav.className = 'calendar__nav';
127
+ const todayBtn = document.createElement('button');
128
+ todayBtn.className = 'calendar__nav-button';
129
+ todayBtn.textContent = 'Today';
130
+ todayBtn.onclick = () => this.goToToday();
131
+ const prevBtn = document.createElement('button');
132
+ prevBtn.className = 'calendar__nav-button';
133
+ prevBtn.textContent = '‹';
134
+ prevBtn.onclick = () => this.previousMonth();
135
+ const nextBtn = document.createElement('button');
136
+ nextBtn.className = 'calendar__nav-button';
137
+ nextBtn.textContent = '›';
138
+ nextBtn.onclick = () => this.nextMonth();
139
+ nav.appendChild(todayBtn);
140
+ nav.appendChild(prevBtn);
141
+ nav.appendChild(nextBtn);
142
+ this.header.appendChild(title);
143
+ this.header.appendChild(nav);
144
+ // Create grid
145
+ this.grid = document.createElement('div');
146
+ this.grid.className = 'calendar__grid';
147
+ // Add weekday headers
148
+ const weekdays = this.getWeekdays();
149
+ weekdays.forEach(day => {
150
+ const weekdayEl = document.createElement('div');
151
+ weekdayEl.className = 'calendar__weekday';
152
+ weekdayEl.textContent = day;
153
+ this.grid.appendChild(weekdayEl);
154
+ });
155
+ // Create 42 day cells
156
+ for (let i = 0; i < 42; i++) {
157
+ const dayCell = document.createElement('div');
158
+ dayCell.className = 'calendar__day';
159
+ const dayNumber = document.createElement('div');
160
+ dayNumber.className = 'calendar__day-number';
161
+ dayCell.appendChild(dayNumber);
162
+ const eventsContainer = document.createElement('div');
163
+ eventsContainer.className = 'calendar__events';
164
+ eventsContainer.style.display = 'none';
165
+ dayCell.appendChild(eventsContainer);
166
+ this.grid.appendChild(dayCell);
167
+ this.dayCells.push(dayCell);
168
+ }
169
+ this.container.appendChild(this.header);
170
+ this.container.appendChild(this.grid);
171
+ shadow.appendChild(this.container);
172
+ }
173
+ updateView() {
174
+ // Update header title
175
+ const monthName = this.displayDate.toLocaleDateString(this.locale, { month: 'long', year: 'numeric' });
176
+ const titleEl = this.header.querySelector('.calendar__title');
177
+ if (titleEl)
178
+ titleEl.textContent = monthName;
179
+ // Update day cells
180
+ const days = this.getMonthDays();
181
+ const currentMonth = this.displayDate.getMonth();
182
+ days.forEach((date, i) => {
183
+ const cell = this.dayCells[i];
184
+ if (!cell)
185
+ return;
186
+ const isOtherMonth = date.getMonth() !== currentMonth;
187
+ const isToday = this.highlightToday && this.isToday(date);
188
+ const isSelected = this.isSelected(date);
189
+ const isDisabled = this.isDisabled(date);
190
+ const dayEvents = this.getEventsForDate(date);
191
+ // Update classes
192
+ cell.className = 'calendar__day';
193
+ if (isOtherMonth)
194
+ cell.classList.add('calendar__day--other-month');
195
+ if (isToday)
196
+ cell.classList.add('calendar__day--today');
197
+ if (isSelected)
198
+ cell.classList.add('calendar__day--selected');
199
+ if (isDisabled)
200
+ cell.classList.add('calendar__day--disabled');
201
+ // Update day number
202
+ const dayNumber = cell.querySelector('.calendar__day-number');
203
+ if (dayNumber)
204
+ dayNumber.textContent = String(date.getDate());
205
+ // Update click handler
206
+ cell.onclick = () => this.handleDayClick(date);
207
+ // Update events
208
+ const eventsContainer = cell.querySelector('.calendar__events');
209
+ if (eventsContainer) {
210
+ if (dayEvents.length > 0) {
211
+ eventsContainer.style.display = '';
212
+ eventsContainer.innerHTML = '';
213
+ dayEvents.slice(0, 3).forEach(event => {
214
+ const eventEl = document.createElement('div');
215
+ eventEl.className = 'calendar__event';
216
+ if (event.color)
217
+ eventEl.style.background = event.color;
218
+ eventEl.textContent = event.title;
219
+ eventEl.onclick = (e) => this.handleEventClick(event, e);
220
+ eventsContainer.appendChild(eventEl);
221
+ });
222
+ if (dayEvents.length > 3) {
223
+ const moreEl = document.createElement('div');
224
+ moreEl.className = 'calendar__event';
225
+ moreEl.style.background = '#999';
226
+ moreEl.textContent = `+${dayEvents.length - 3} more`;
227
+ eventsContainer.appendChild(moreEl);
228
+ }
229
+ }
230
+ else {
231
+ eventsContainer.style.display = 'none';
232
+ }
233
+ }
234
+ });
235
+ }
107
236
  goToToday() {
108
237
  this.displayDate = new Date();
109
238
  this.value = new Date();
239
+ this.updateView();
110
240
  this.dispatchChange();
111
241
  }
112
242
  goToDate(date) {
113
243
  this.displayDate = typeof date === 'string' ? new Date(date) : date;
114
244
  this.value = this.displayDate;
245
+ this.updateView();
115
246
  this.dispatchChange();
116
247
  }
117
248
  previousMonth() {
118
249
  this.displayDate = new Date(this.displayDate.getFullYear(), this.displayDate.getMonth() - 1);
250
+ this.updateView();
119
251
  }
120
252
  nextMonth() {
121
253
  this.displayDate = new Date(this.displayDate.getFullYear(), this.displayDate.getMonth() + 1);
254
+ this.updateView();
122
255
  }
123
256
  previousWeek() {
124
257
  this.displayDate = new Date(this.displayDate.getTime() - 7 * 24 * 60 * 60 * 1000);
258
+ this.updateView();
125
259
  }
126
260
  nextWeek() {
127
261
  this.displayDate = new Date(this.displayDate.getTime() + 7 * 24 * 60 * 60 * 1000);
262
+ this.updateView();
128
263
  }
129
264
  previousDay() {
130
265
  this.displayDate = new Date(this.displayDate.getTime() - 24 * 60 * 60 * 1000);
266
+ this.updateView();
131
267
  }
132
268
  nextDay() {
133
269
  this.displayDate = new Date(this.displayDate.getTime() + 24 * 60 * 60 * 1000);
270
+ this.updateView();
134
271
  }
135
272
  getDisplayedMonth() {
136
273
  return {
@@ -140,11 +277,20 @@ let SniceCalendar = (() => {
140
277
  }
141
278
  getEventsForDate(date) {
142
279
  const targetDate = typeof date === 'string' ? new Date(date) : date;
143
- const targetDateStr = this.formatDate(targetDate);
280
+ const targetTime = targetDate.getTime();
144
281
  return this.events.filter(event => {
145
- const eventStart = typeof event.start === 'string' ? new Date(event.start) : event.start;
146
- const eventStartStr = this.formatDate(eventStart);
147
- return eventStartStr === targetDateStr;
282
+ if (!event.start)
283
+ return false;
284
+ const startDate = typeof event.start === 'string' ? new Date(event.start) : event.start;
285
+ const startTime = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate()).getTime();
286
+ // If no end date, event is single day
287
+ if (!event.end) {
288
+ return this.isSameDay(targetDate, startDate);
289
+ }
290
+ // Multi-day event: check if target date falls between start and end
291
+ const endDate = typeof event.end === 'string' ? new Date(event.end) : event.end;
292
+ const endTime = new Date(endDate.getFullYear(), endDate.getMonth(), endDate.getDate()).getTime();
293
+ return targetTime >= startTime && targetTime <= endTime;
148
294
  });
149
295
  }
150
296
  formatDate(date) {
@@ -180,6 +326,7 @@ let SniceCalendar = (() => {
180
326
  if (this.isDisabled(date))
181
327
  return;
182
328
  this.value = date;
329
+ this.updateView();
183
330
  this.dispatchChange();
184
331
  }
185
332
  handleEventClick(event, e) {
@@ -212,79 +359,10 @@ let SniceCalendar = (() => {
212
359
  }
213
360
  return weekdays;
214
361
  }
215
- renderMonthView() {
216
- const days = this.getMonthDays();
217
- const weekdays = this.getWeekdays();
218
- const currentMonth = this.displayDate.getMonth();
219
- return html /*html*/ `
220
- <div class="calendar__grid">
221
- ${weekdays.map(day => html `
222
- <div class="calendar__weekday">${day}</div>
223
- `)}
224
-
225
- ${days.map(date => {
226
- const isOtherMonth = date.getMonth() !== currentMonth;
227
- const isToday = this.highlightToday && this.isToday(date);
228
- const isSelected = this.isSelected(date);
229
- const isDisabled = this.isDisabled(date);
230
- const dayEvents = this.getEventsForDate(date);
231
- const classes = [
232
- 'calendar__day',
233
- isOtherMonth && 'calendar__day--other-month',
234
- isToday && 'calendar__day--today',
235
- isSelected && 'calendar__day--selected',
236
- isDisabled && 'calendar__day--disabled'
237
- ].filter(Boolean).join(' ');
238
- return html /*html*/ `
239
- <div
240
- class="${classes}"
241
- @click=${() => this.handleDayClick(date)}>
242
- <div class="calendar__day-number">${date.getDate()}</div>
243
- <if ${dayEvents.length > 0}>
244
- <div class="calendar__events">
245
- ${dayEvents.slice(0, 3).map(event => html `
246
- <div
247
- class="calendar__event"
248
- style="${event.color ? `background: ${event.color}` : ''}"
249
- @click=${(e) => this.handleEventClick(event, e)}>
250
- ${event.title}
251
- </div>
252
- `)}
253
- <if ${dayEvents.length > 3}>
254
- <div class="calendar__event" style="background: #999;">
255
- +${dayEvents.length - 3} more
256
- </div>
257
- </if>
258
- </div>
259
- </if>
260
- </div>
261
- `;
262
- })}
263
- </div>
264
- `;
265
- }
266
- template() {
267
- const monthName = this.displayDate.toLocaleDateString(this.locale, { month: 'long', year: 'numeric' });
268
- return html /*html*/ `
269
- <div class="calendar calendar--${this.view}">
270
- <div class="calendar__header">
271
- <div class="calendar__title">${monthName}</div>
272
- <div class="calendar__nav">
273
- <button class="calendar__nav-button" @click=${() => this.goToToday()}>
274
- Today
275
- </button>
276
- <button class="calendar__nav-button" @click=${() => this.previousMonth()}>
277
-
278
- </button>
279
- <button class="calendar__nav-button" @click=${() => this.nextMonth()}>
280
-
281
- </button>
282
- </div>
283
- </div>
284
-
285
- ${this.view === 'month' ? this.renderMonthView() : html ``}
286
- </div>
287
- `;
362
+ handlePropertyChange() {
363
+ if (this.grid) {
364
+ this.updateView();
365
+ }
288
366
  }
289
367
  });
290
368
  return _classThis;
@@ -1 +1 @@
1
- {"version":3,"file":"snice-calendar.js","sources":["../../../components/calendar/snice-calendar.css?inline","../../../../components/calendar/snice-calendar.ts"],"sourcesContent":["export default \":host{display:block;font-family:var(--snice-font-family, system-ui, -apple-system, sans-serif)}.calendar{width:100%;max-width:600px}.calendar__header{display:flex;align-items:center;justify-content:space-between;padding:16px;background:var(--snice-bg-primary,#fff);border-bottom:1px solid var(--snice-border-color,#e0e0e0)}.calendar__title{font-size:18px;font-weight:600;color:var(--snice-text-primary,#1a1a1a)}.calendar__nav{display:flex;gap:8px}.calendar__nav-button{padding:8px 12px;border:1px solid var(--snice-border-color,#e0e0e0);background:#fff;border-radius:4px;cursor:pointer;transition:.2s;font-size:14px}.calendar__nav-button:hover{background:var(--snice-bg-hover,#f5f5f5)}.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);background:#fff}.calendar__weekday{padding:12px;text-align:center;font-size:12px;font-weight:600;color:var(--snice-text-secondary,#666);text-transform:uppercase;border-bottom:1px solid var(--snice-border-color,#e0e0e0)}.calendar__day{min-height:80px;padding:8px;border:1px solid var(--snice-border-color,#e0e0e0);border-top:none;border-left:none;cursor:pointer;transition:background .2s;position:relative}.calendar__day:hover{background:var(--snice-bg-hover,#f5f5f5)}.calendar__day:nth-child(7n+1){border-left:1px solid var(--snice-border-color,#e0e0e0)}.calendar__day--other-month{background:var(--snice-bg-secondary,#fafafa);color:var(--snice-text-tertiary,#999)}.calendar__day--today{background:var(--snice-color-primary-light,#e3f2fd)}.calendar__day--selected{background:var(--snice-color-primary,#2196f3);color:#fff}.calendar__day--disabled{background:var(--snice-bg-disabled,#f5f5f5);color:var(--snice-text-disabled,#ccc);cursor:not-allowed}.calendar__day-number{font-size:14px;font-weight:500;margin-bottom:4px}.calendar__day--selected .calendar__day-number{color:#fff}.calendar__events{display:flex;flex-direction:column;gap:2px;margin-top:4px}.calendar__event{font-size:11px;padding:2px 4px;border-radius:2px;background:var(--snice-color-primary,#2196f3);color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.calendar__event:hover{opacity:.8}.calendar__week-number{padding:12px 8px;text-align:center;font-size:12px;color:var(--snice-text-tertiary,#999);background:var(--snice-bg-secondary,#fafafa);border-right:1px solid var(--snice-border-color,#e0e0e0)}.calendar--week .calendar__grid{grid-template-columns:repeat(7,1fr)}.calendar--week .calendar__day{min-height:120px}.calendar--day .calendar__grid{grid-template-columns:1fr}.calendar--day .calendar__day{min-height:400px}\";",null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snice-calendar.js","sources":["../../../components/calendar/snice-calendar.css?inline","../../../../components/calendar/snice-calendar.ts"],"sourcesContent":["export default \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);contain:layout style paint}.calendar{width:100%;max-width:37.5rem}.calendar__header{display:flex;align-items:center;justify-content:space-between;padding:var(--snice-spacing-md,1rem);background:var(--snice-color-background,rgb(255 255 255));border-bottom:1px solid var(--snice-color-border,rgb(226 226 226))}.calendar__title{font-size:var(--snice-font-size-lg, 1.125rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--snice-color-text,rgb(23 23 23))}.calendar__nav{display:flex;gap:var(--snice-spacing-xs,.5rem)}.calendar__nav-button{padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);border:1px solid var(--snice-color-border,rgb(226 226 226));background:var(--snice-color-background,rgb(255 255 255));border-radius:var(--snice-border-radius-md,.25rem);cursor:pointer;transition:background-color var(--snice-transition-fast, 150ms) ease,border-color var(--snice-transition-fast, 150ms) ease;font-size:var(--snice-font-size-sm, .875rem);color:var(--snice-color-text,rgb(23 23 23));font-family:inherit}.calendar__nav-button:hover{background:var(--snice-color-background-secondary,rgb(250 250 250));border-color:var(--snice-color-border-hover,rgb(204 204 204))}.calendar__nav-button:focus-visible{outline:0;box-shadow:0 0 0 var(--snice-focus-ring-width,2px) var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);background:var(--snice-color-background,rgb(255 255 255))}.calendar__weekday{padding:var(--snice-spacing-sm,.75rem);text-align:center;font-size:var(--snice-font-size-xs, .75rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--snice-color-text-secondary,rgb(82 82 82));text-transform:uppercase;border-bottom:1px solid var(--snice-color-border,rgb(226 226 226))}.calendar__day{height:5rem;padding:var(--snice-spacing-xs,.5rem);border:1px solid var(--snice-color-border,rgb(226 226 226));border-top:none;border-left:none;cursor:pointer;transition:background-color var(--snice-transition-fast, 150ms) ease;position:relative;background:var(--snice-color-background,rgb(255 255 255));overflow:hidden}.calendar__day:hover{background:var(--snice-color-background-secondary,rgb(250 250 250))}.calendar__day:focus-visible{outline:0;box-shadow:inset 0 0 0 2px var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.calendar__day:nth-child(7n+1){border-left:1px solid var(--snice-color-border,rgb(226 226 226))}.calendar__day--other-month{background:var(--snice-color-background,rgb(255 255 255));color:var(--snice-color-text-tertiary,rgb(115 115 115));opacity:.5}.calendar__day--other-month:hover{opacity:.7}.calendar__day--today{background:rgb(var(--snice-color-blue-100,219 234 254))}.calendar__day--today:hover{background:rgb(var(--snice-color-blue-200,191 219 254))}.calendar__day--selected{background:var(--snice-color-primary,rgb(37 99 235));color:var(--snice-color-text-inverse,rgb(250 250 250))}.calendar__day--selected:hover{background:var(--snice-color-primary-hover,rgb(29 78 216))}.calendar__day--disabled{background:var(--snice-color-background-tertiary,rgb(241 241 241));color:var(--snice-color-text-tertiary,rgb(115 115 115));opacity:.5;cursor:not-allowed}.calendar__day--disabled:hover{background:var(--snice-color-background-tertiary,rgb(241 241 241))}.calendar__day-number{font-size:var(--snice-font-size-sm, .875rem);font-weight:var(--snice-font-weight-medium,500);margin-bottom:var(--snice-spacing-2xs,.25rem)}.calendar__day--selected .calendar__day-number{color:var(--snice-color-text-inverse,rgb(250 250 250))}.calendar__events{display:flex;flex-direction:column;gap:var(--snice-spacing-3xs,.125rem);margin-top:var(--snice-spacing-2xs,.25rem)}.calendar__event{font-size:var(--snice-font-size-2xs, .625rem);padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-2xs,.25rem);border-radius:var(--snice-border-radius-sm,.125rem);background:var(--snice-color-primary,rgb(37 99 235));color:var(--snice-color-text-inverse,rgb(250 250 250));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:opacity var(--snice-transition-fast, 150ms) ease}.calendar__event:hover{opacity:.8}.calendar__week-number{padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-xs,.5rem);text-align:center;font-size:var(--snice-font-size-xs, .75rem);color:var(--snice-color-text-tertiary,rgb(115 115 115));background:var(--snice-color-background-secondary,rgb(250 250 250));border-right:1px solid var(--snice-color-border,rgb(226 226 226))}.calendar--week .calendar__grid{grid-template-columns:repeat(7,1fr)}.calendar--week .calendar__day{min-height:7.5rem}.calendar--day .calendar__grid{grid-template-columns:1fr}.calendar--day .calendar__day{min-height:25rem}\";",null],"names":[],"mappings":"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"}
@@ -223,12 +223,28 @@ let SniceChart = (() => {
223
223
  }
224
224
  }
225
225
  if (this.options.xAxis?.grid) {
226
- for (let i = 0; i <= xCount; i++) {
227
- const x = padding.left + (chartWidth / xCount) * i;
228
- this.ctx.beginPath();
229
- this.ctx.moveTo(x, padding.top);
230
- this.ctx.lineTo(x, padding.top + chartHeight);
231
- this.ctx.stroke();
226
+ const hasBarChart = this.datasets.some(d => (d.type || this.type) === 'bar');
227
+ if (hasBarChart) {
228
+ // Bar chart: draw grid lines at segment boundaries
229
+ const numSegments = this.labels.length || xCount;
230
+ const segmentWidth = chartWidth / numSegments;
231
+ for (let i = 0; i <= numSegments; i++) {
232
+ const x = padding.left + segmentWidth * i;
233
+ this.ctx.beginPath();
234
+ this.ctx.moveTo(x, padding.top);
235
+ this.ctx.lineTo(x, padding.top + chartHeight);
236
+ this.ctx.stroke();
237
+ }
238
+ }
239
+ else {
240
+ // Line/area chart: grid at data points
241
+ for (let i = 0; i <= xCount; i++) {
242
+ const x = padding.left + (chartWidth / xCount) * i;
243
+ this.ctx.beginPath();
244
+ this.ctx.moveTo(x, padding.top);
245
+ this.ctx.lineTo(x, padding.top + chartHeight);
246
+ this.ctx.stroke();
247
+ }
232
248
  }
233
249
  }
234
250
  }
@@ -258,16 +274,30 @@ let SniceChart = (() => {
258
274
  const y = padding.top + (chartHeight / yTicks) * i;
259
275
  this.ctx.fillText(value.toFixed(1), padding.left - 10, y);
260
276
  }
261
- // X axis labels - align with line chart points
277
+ // X axis labels
262
278
  this.ctx.textAlign = 'center';
263
279
  this.ctx.textBaseline = 'top';
264
280
  const numLabels = this.labels.length;
265
281
  if (numLabels > 0) {
266
- const spacing = chartWidth / (numLabels - 1 || 1);
267
- for (let i = 0; i < numLabels; i++) {
268
- const x = padding.left + spacing * i;
269
- const label = this.labels[i] || i.toString();
270
- this.ctx.fillText(label, x, padding.top + chartHeight + 10);
282
+ // Check if we're drawing a bar chart
283
+ const hasBarChart = this.datasets.some(d => (d.type || this.type) === 'bar');
284
+ if (hasBarChart) {
285
+ // Bar chart: center labels in equal segments
286
+ const segmentWidth = chartWidth / numLabels;
287
+ for (let i = 0; i < numLabels; i++) {
288
+ const x = padding.left + segmentWidth * i + segmentWidth / 2;
289
+ const label = this.labels[i] || i.toString();
290
+ this.ctx.fillText(label, x, padding.top + chartHeight + 10);
291
+ }
292
+ }
293
+ else {
294
+ // Line/area chart: spread labels edge-to-edge
295
+ const spacing = chartWidth / (numLabels - 1 || 1);
296
+ for (let i = 0; i < numLabels; i++) {
297
+ const x = padding.left + spacing * i;
298
+ const label = this.labels[i] || i.toString();
299
+ this.ctx.fillText(label, x, padding.top + chartHeight + 10);
300
+ }
271
301
  }
272
302
  }
273
303
  }
@@ -342,15 +372,17 @@ let SniceChart = (() => {
342
372
  const visibleDatasets = this.datasets.filter((_, i) => !this.hiddenDatasets.has(i));
343
373
  const datasetOffset = visibleDatasets.indexOf(dataset);
344
374
  const numBars = dataset.data.length;
345
- const spacing = chartWidth / Math.max(numBars - 1, 1);
346
- const maxBarGroupWidth = spacing * 0.6;
347
- const barGroupWidth = Math.min(maxBarGroupWidth, 80);
348
- const singleBarWidth = barGroupWidth / visibleCount;
375
+ // For bar charts, divide width into equal segments
376
+ const segmentWidth = chartWidth / numBars;
377
+ const maxBarGroupWidth = segmentWidth * 0.8;
378
+ const singleBarWidth = maxBarGroupWidth / visibleCount;
349
379
  dataset.data.forEach((value, index) => {
350
380
  const y = typeof value === 'number' ? value : value.y || 0;
351
381
  const barHeight = ((y - yMin) / (yMax - yMin)) * chartHeight;
352
- const labelX = spacing * index;
353
- let x = labelX - barGroupWidth / 2 + datasetOffset * singleBarWidth;
382
+ // Center of this bar's segment
383
+ const segmentCenter = segmentWidth * index + segmentWidth / 2;
384
+ // For single dataset, center the bar. For multiple, offset by dataset position
385
+ let x = segmentCenter - singleBarWidth / 2 + (visibleCount > 1 ? datasetOffset * singleBarWidth - maxBarGroupWidth / 2 + singleBarWidth / 2 : 0);
354
386
  if (x < 0)
355
387
  x = 0;
356
388
  if (x + singleBarWidth > chartWidth)