snice 3.4.0 → 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 (177) hide show
  1. package/bin/templates/base/package.json +2 -2
  2. package/bin/templates/social/package.json +2 -2
  3. package/bin/templates/social/src/styles/global.css +56 -47
  4. package/dist/components/avatar/snice-avatar.d.ts +2 -2
  5. package/dist/components/avatar/snice-avatar.js +20 -21
  6. package/dist/components/avatar/snice-avatar.js.map +1 -1
  7. package/dist/components/calendar/snice-calendar.d.ts +8 -2
  8. package/dist/components/calendar/snice-calendar.js +160 -82
  9. package/dist/components/calendar/snice-calendar.js.map +1 -1
  10. package/dist/components/chart/snice-chart.js +50 -18
  11. package/dist/components/chart/snice-chart.js.map +1 -1
  12. package/dist/components/checkbox/snice-checkbox.d.ts +4 -1
  13. package/dist/components/checkbox/snice-checkbox.js +46 -17
  14. package/dist/components/checkbox/snice-checkbox.js.map +1 -1
  15. package/dist/components/code-block/highlighter.d.ts +5 -0
  16. package/dist/components/code-block/highlighter.js +137 -0
  17. package/dist/components/code-block/highlighter.js.map +1 -0
  18. package/dist/components/code-block/highlighters/highlight.d.ts +64 -0
  19. package/dist/components/code-block/highlighters/highlight.js +108 -0
  20. package/dist/components/code-block/highlighters/highlight.js.map +1 -0
  21. package/dist/components/code-block/highlighters/prism.d.ts +41 -0
  22. package/dist/components/code-block/highlighters/prism.js +73 -0
  23. package/dist/components/code-block/highlighters/prism.js.map +1 -0
  24. package/dist/components/code-block/snice-code-block.d.ts +19 -1
  25. package/dist/components/code-block/snice-code-block.js +128 -29
  26. package/dist/components/code-block/snice-code-block.js.map +1 -1
  27. package/dist/components/code-block/snice-code-block.types.d.ts +15 -1
  28. package/dist/components/color-picker/snice-color-picker.d.ts +1 -0
  29. package/dist/components/color-picker/snice-color-picker.js +17 -6
  30. package/dist/components/color-picker/snice-color-picker.js.map +1 -1
  31. package/dist/components/date-picker/snice-date-picker.d.ts +1 -0
  32. package/dist/components/date-picker/snice-date-picker.js +16 -5
  33. package/dist/components/date-picker/snice-date-picker.js.map +1 -1
  34. package/dist/components/doc/snice-doc.d.ts +27 -73
  35. package/dist/components/doc/snice-doc.js +385 -534
  36. package/dist/components/doc/snice-doc.js.map +1 -1
  37. package/dist/components/draw/snice-draw.d.ts +4 -0
  38. package/dist/components/draw/snice-draw.js +134 -14
  39. package/dist/components/draw/snice-draw.js.map +1 -1
  40. package/dist/components/draw/snice-draw.types.d.ts +5 -0
  41. package/dist/components/file-upload/snice-file-upload.js +1 -1
  42. package/dist/components/input/snice-input.d.ts +2 -0
  43. package/dist/components/input/snice-input.js +34 -9
  44. package/dist/components/input/snice-input.js.map +1 -1
  45. package/dist/components/kanban/snice-kanban.d.ts +13 -1
  46. package/dist/components/kanban/snice-kanban.js +191 -36
  47. package/dist/components/kanban/snice-kanban.js.map +1 -1
  48. package/dist/components/kanban/snice-kanban.types.d.ts +11 -1
  49. package/dist/components/kpi/snice-kpi.js +5 -1
  50. package/dist/components/kpi/snice-kpi.js.map +1 -1
  51. package/dist/components/layout/snice-layout-sidebar.js +1 -1
  52. package/dist/components/layout/snice-layout-sidebar.js.map +1 -1
  53. package/dist/components/layout/snice-layout.js +1 -1
  54. package/dist/components/layout/snice-layout.js.map +1 -1
  55. package/dist/components/location/snice-location.js +1 -1
  56. package/dist/components/location/snice-location.js.map +1 -1
  57. package/dist/components/radio/snice-radio.d.ts +1 -0
  58. package/dist/components/radio/snice-radio.js +17 -6
  59. package/dist/components/radio/snice-radio.js.map +1 -1
  60. package/dist/components/select/snice-select.d.ts +2 -0
  61. package/dist/components/select/snice-select.js +48 -19
  62. package/dist/components/select/snice-select.js.map +1 -1
  63. package/dist/components/slider/snice-slider.d.ts +2 -0
  64. package/dist/components/slider/snice-slider.js +34 -14
  65. package/dist/components/slider/snice-slider.js.map +1 -1
  66. package/dist/components/snice-cell-HZ2iIBIC.js +4 -0
  67. package/dist/components/snice-cell-HZ2iIBIC.js.map +1 -0
  68. package/dist/components/split-pane/snice-split-pane.js +1 -1
  69. package/dist/components/split-pane/snice-split-pane.js.map +1 -1
  70. package/dist/components/switch/snice-switch.d.ts +1 -0
  71. package/dist/components/switch/snice-switch.js +16 -6
  72. package/dist/components/switch/snice-switch.js.map +1 -1
  73. package/dist/components/table/snice-cell-actions.js +1 -1
  74. package/dist/components/table/snice-cell-actions.js.map +1 -1
  75. package/dist/components/table/snice-cell-boolean.js +1 -1
  76. package/dist/components/table/snice-cell-color.js +1 -1
  77. package/dist/components/table/snice-cell-color.js.map +1 -1
  78. package/dist/components/table/snice-cell-currency.js +1 -1
  79. package/dist/components/table/snice-cell-date.js +1 -1
  80. package/dist/components/table/snice-cell-duration.js +1 -1
  81. package/dist/components/table/snice-cell-email.js +1 -1
  82. package/dist/components/table/snice-cell-email.js.map +1 -1
  83. package/dist/components/table/snice-cell-filesize.js +1 -1
  84. package/dist/components/table/snice-cell-image.js +1 -1
  85. package/dist/components/table/snice-cell-image.js.map +1 -1
  86. package/dist/components/table/snice-cell-json.js +1 -1
  87. package/dist/components/table/snice-cell-json.js.map +1 -1
  88. package/dist/components/table/snice-cell-link.js +1 -1
  89. package/dist/components/table/snice-cell-link.js.map +1 -1
  90. package/dist/components/table/snice-cell-location.js +1 -1
  91. package/dist/components/table/snice-cell-location.js.map +1 -1
  92. package/dist/components/table/snice-cell-number.js +1 -1
  93. package/dist/components/table/snice-cell-percentage.js +1 -1
  94. package/dist/components/table/snice-cell-percentage.js.map +1 -1
  95. package/dist/components/table/snice-cell-phone.js +1 -1
  96. package/dist/components/table/snice-cell-phone.js.map +1 -1
  97. package/dist/components/table/snice-cell-progress.js +3 -3
  98. package/dist/components/table/snice-cell-progress.js.map +1 -1
  99. package/dist/components/table/snice-cell-rating.js +2 -2
  100. package/dist/components/table/snice-cell-rating.js.map +1 -1
  101. package/dist/components/table/snice-cell-sparkline.js +2 -2
  102. package/dist/components/table/snice-cell-sparkline.js.map +1 -1
  103. package/dist/components/table/snice-cell-status.js +1 -1
  104. package/dist/components/table/snice-cell-status.js.map +1 -1
  105. package/dist/components/table/snice-cell-tag.js +1 -1
  106. package/dist/components/table/snice-cell-tag.js.map +1 -1
  107. package/dist/components/table/snice-cell-text.js +1 -1
  108. package/dist/components/table/snice-cell.js +15 -10
  109. package/dist/components/table/snice-cell.js.map +1 -1
  110. package/dist/components/table/snice-header.js +1 -1
  111. package/dist/components/table/snice-header.js.map +1 -1
  112. package/dist/components/table/snice-row.js +2 -2
  113. package/dist/components/table/snice-row.js.map +1 -1
  114. package/dist/components/table/snice-table.d.ts +1 -0
  115. package/dist/components/table/snice-table.js +24 -4
  116. package/dist/components/table/snice-table.js.map +1 -1
  117. package/dist/components/terminal/snice-terminal.d.ts +40 -0
  118. package/dist/components/terminal/snice-terminal.js +371 -0
  119. package/dist/components/terminal/snice-terminal.js.map +1 -0
  120. package/dist/components/terminal/snice-terminal.types.d.ts +20 -24
  121. package/dist/components/textarea/snice-textarea.d.ts +2 -0
  122. package/dist/components/textarea/snice-textarea.js +25 -6
  123. package/dist/components/textarea/snice-textarea.js.map +1 -1
  124. package/dist/components/theme/theme.css +16 -0
  125. package/dist/components/tree/snice-tree-item.d.ts +18 -4
  126. package/dist/components/tree/snice-tree-item.js +271 -88
  127. package/dist/components/tree/snice-tree-item.js.map +1 -1
  128. package/dist/components/tree/snice-tree-item.types.d.ts +3 -0
  129. package/dist/components/tree/snice-tree.d.ts +18 -2
  130. package/dist/components/tree/snice-tree.js +422 -56
  131. package/dist/components/tree/snice-tree.js.map +1 -1
  132. package/dist/components/tree/snice-tree.types.d.ts +1 -0
  133. package/dist/components/virtual-scroller/snice-virtual-scroller.js +4 -2
  134. package/dist/components/virtual-scroller/snice-virtual-scroller.js.map +1 -1
  135. package/dist/index.cjs +42 -23
  136. package/dist/index.cjs.map +1 -1
  137. package/dist/index.esm.js +42 -23
  138. package/dist/index.esm.js.map +1 -1
  139. package/dist/index.iife.js +42 -23
  140. package/dist/index.iife.js.map +1 -1
  141. package/dist/render-tracker.d.ts +1 -0
  142. package/dist/symbols.cjs +13 -14
  143. package/dist/symbols.cjs.map +1 -1
  144. package/dist/symbols.esm.js +13 -14
  145. package/dist/symbols.esm.js.map +1 -1
  146. package/dist/template.d.ts +1 -0
  147. package/dist/transitions.cjs +1 -1
  148. package/dist/transitions.esm.js +1 -1
  149. package/docs/ai/api.md +37 -4
  150. package/docs/ai/components/doc.md +41 -106
  151. package/docs/ai/components/kanban.md +31 -9
  152. package/docs/ai/components/kpi.md +15 -0
  153. package/docs/components/doc.md +96 -212
  154. package/docs/components/kanban.md +119 -4
  155. package/docs/components/kpi.md +27 -0
  156. package/package.json +4 -1
  157. package/dist/components/actions/snice-actions.d.ts +0 -28
  158. package/dist/components/actions/snice-actions.js +0 -220
  159. package/dist/components/actions/snice-actions.js.map +0 -1
  160. package/dist/components/actions/snice-actions.types.d.ts +0 -27
  161. package/dist/components/doc/snice-doc.types.d.ts +0 -118
  162. package/dist/components/gantt/snice-gantt.d.ts +0 -29
  163. package/dist/components/gantt/snice-gantt.js +0 -268
  164. package/dist/components/gantt/snice-gantt.js.map +0 -1
  165. package/dist/components/gantt/snice-gantt.types.d.ts +0 -23
  166. package/dist/components/snice-cell-C0slgOpe.js +0 -4
  167. package/dist/components/snice-cell-C0slgOpe.js.map +0 -1
  168. package/dist/components/stat/snice-stat.d.ts +0 -14
  169. package/dist/components/stat/snice-stat.js +0 -140
  170. package/dist/components/stat/snice-stat.js.map +0 -1
  171. package/dist/components/stat/snice-stat.types.d.ts +0 -12
  172. package/docs/ai/components/actions.md +0 -81
  173. package/docs/ai/components/gantt.md +0 -95
  174. package/docs/ai/components/stat.md +0 -29
  175. package/docs/components/actions.md +0 -317
  176. package/docs/components/gantt.md +0 -347
  177. package/docs/components/stat.md +0 -45
@@ -1,268 +0,0 @@
1
- import { __esDecorate, __runInitializers } from 'tslib';
2
- import { element, property, dispatch, styles, render, css, html } from 'snice';
3
-
4
- var cssContent = ":host{display:block;font-family:var(--snice-font-family, system-ui, -apple-system, sans-serif);overflow:auto}.gantt{display:flex;min-width:max-content}.gantt__sidebar{flex-shrink:0;width:200px;border-right:1px solid var(--snice-border-color,#e0e0e0);background:var(--snice-bg-secondary,#fafafa)}.gantt__timeline{flex:1;overflow-x:auto}.gantt__header{display:flex;border-bottom:2px solid var(--snice-border-color,#e0e0e0);background:#fff;position:sticky;top:0;z-index:10}.gantt__header-cell{padding:12px 8px;font-size:12px;font-weight:600;color:var(--snice-text-secondary,#666);text-align:center;border-right:1px solid var(--snice-border-color,#e0e0e0);flex-shrink:0}.gantt__rows{position:relative}.gantt__row{display:flex;border-bottom:1px solid var(--snice-border-color,#e0e0e0);height:50px;align-items:center}.gantt__row-label{padding:0 12px;font-size:14px;color:var(--snice-text-primary,#1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt__grid{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;pointer-events:none}.gantt__grid-column{flex-shrink:0;border-right:1px solid var(--snice-border-color,#e0e0e0)}.gantt__grid-column--today{background:var(--snice-color-primary-light,#e3f2fd);border-right:2px solid var(--snice-color-primary,#2196f3)}.gantt__bars{position:relative;display:flex;align-items:center;height:100%}.gantt__bar{position:absolute;height:30px;background:var(--snice-color-primary,#2196f3);border-radius:4px;padding:0 8px;display:flex;align-items:center;cursor:pointer;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.gantt__bar:hover{box-shadow:0 2px 8px rgba(0,0,0,.3);transform:translateY(-1px)}.gantt__bar-label{font-size:12px;color:#fff;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt__bar-progress{position:absolute;top:0;left:0;bottom:0;background:rgba(255,255,255,.3);border-radius:4px 0 0 4px;pointer-events:none}.gantt__today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--snice-color-primary,#2196f3);pointer-events:none;z-index:5}.gantt__dependencies{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:1}.gantt__dependency{position:absolute;stroke:var(--snice-color-primary,#2196f3);stroke-width:2;fill:none}";
5
-
6
- let SniceGantt = (() => {
7
- let _classDecorators = [element('snice-gantt')];
8
- let _classDescriptor;
9
- let _classExtraInitializers = [];
10
- let _classThis;
11
- let _classSuper = HTMLElement;
12
- let _instanceExtraInitializers = [];
13
- let _tasks_decorators;
14
- let _tasks_initializers = [];
15
- let _tasks_extraInitializers = [];
16
- let _viewMode_decorators;
17
- let _viewMode_initializers = [];
18
- let _viewMode_extraInitializers = [];
19
- let _showToday_decorators;
20
- let _showToday_initializers = [];
21
- let _showToday_extraInitializers = [];
22
- let _showProgress_decorators;
23
- let _showProgress_initializers = [];
24
- let _showProgress_extraInitializers = [];
25
- let _showDependencies_decorators;
26
- let _showDependencies_initializers = [];
27
- let _showDependencies_extraInitializers = [];
28
- let _minDate_decorators;
29
- let _minDate_initializers = [];
30
- let _minDate_extraInitializers = [];
31
- let _maxDate_decorators;
32
- let _maxDate_initializers = [];
33
- let _maxDate_extraInitializers = [];
34
- let _dispatchTaskClick_decorators;
35
- let _styles_decorators;
36
- let _template_decorators;
37
- (class extends _classSuper {
38
- static { _classThis = this; }
39
- static {
40
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
41
- _tasks_decorators = [property({ type: Array })];
42
- _viewMode_decorators = [property({ attribute: 'view-mode' })];
43
- _showToday_decorators = [property({ type: Boolean, attribute: 'show-today' })];
44
- _showProgress_decorators = [property({ type: Boolean, attribute: 'show-progress' })];
45
- _showDependencies_decorators = [property({ type: Boolean, attribute: 'show-dependencies' })];
46
- _minDate_decorators = [property({ type: Date, attribute: 'min-date' })];
47
- _maxDate_decorators = [property({ type: Date, attribute: 'max-date' })];
48
- _dispatchTaskClick_decorators = [dispatch('@snice/gantt-task-click', { bubbles: true, composed: true })];
49
- _styles_decorators = [styles()];
50
- _template_decorators = [render()];
51
- __esDecorate(this, null, _dispatchTaskClick_decorators, { kind: "method", name: "dispatchTaskClick", static: false, private: false, access: { has: obj => "dispatchTaskClick" in obj, get: obj => obj.dispatchTaskClick }, metadata: _metadata }, null, _instanceExtraInitializers);
52
- __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);
53
- __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);
54
- __esDecorate(null, null, _tasks_decorators, { kind: "field", name: "tasks", static: false, private: false, access: { has: obj => "tasks" in obj, get: obj => obj.tasks, set: (obj, value) => { obj.tasks = value; } }, metadata: _metadata }, _tasks_initializers, _tasks_extraInitializers);
55
- __esDecorate(null, null, _viewMode_decorators, { kind: "field", name: "viewMode", static: false, private: false, access: { has: obj => "viewMode" in obj, get: obj => obj.viewMode, set: (obj, value) => { obj.viewMode = value; } }, metadata: _metadata }, _viewMode_initializers, _viewMode_extraInitializers);
56
- __esDecorate(null, null, _showToday_decorators, { kind: "field", name: "showToday", static: false, private: false, access: { has: obj => "showToday" in obj, get: obj => obj.showToday, set: (obj, value) => { obj.showToday = value; } }, metadata: _metadata }, _showToday_initializers, _showToday_extraInitializers);
57
- __esDecorate(null, null, _showProgress_decorators, { kind: "field", name: "showProgress", static: false, private: false, access: { has: obj => "showProgress" in obj, get: obj => obj.showProgress, set: (obj, value) => { obj.showProgress = value; } }, metadata: _metadata }, _showProgress_initializers, _showProgress_extraInitializers);
58
- __esDecorate(null, null, _showDependencies_decorators, { kind: "field", name: "showDependencies", static: false, private: false, access: { has: obj => "showDependencies" in obj, get: obj => obj.showDependencies, set: (obj, value) => { obj.showDependencies = value; } }, metadata: _metadata }, _showDependencies_initializers, _showDependencies_extraInitializers);
59
- __esDecorate(null, null, _minDate_decorators, { kind: "field", name: "minDate", static: false, private: false, access: { has: obj => "minDate" in obj, get: obj => obj.minDate, set: (obj, value) => { obj.minDate = value; } }, metadata: _metadata }, _minDate_initializers, _minDate_extraInitializers);
60
- __esDecorate(null, null, _maxDate_decorators, { kind: "field", name: "maxDate", static: false, private: false, access: { has: obj => "maxDate" in obj, get: obj => obj.maxDate, set: (obj, value) => { obj.maxDate = value; } }, metadata: _metadata }, _maxDate_initializers, _maxDate_extraInitializers);
61
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
62
- _classThis = _classDescriptor.value;
63
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
64
- __runInitializers(_classThis, _classExtraInitializers);
65
- }
66
- dispatchTaskClick(task) {
67
- return { task, gantt: this };
68
- }
69
- styles() {
70
- return css /*css*/ `${cssContent}`;
71
- }
72
- getTask(id) {
73
- return this.tasks.find(t => t.id === id);
74
- }
75
- scrollToToday() {
76
- // Implementation would scroll viewport to today's date
77
- }
78
- scrollToTask(id) {
79
- // Implementation would scroll to specific task
80
- }
81
- getDateRange() {
82
- if (this.tasks.length === 0) {
83
- const today = new Date();
84
- return {
85
- start: new Date(today.getFullYear(), today.getMonth(), 1),
86
- end: new Date(today.getFullYear(), today.getMonth() + 1, 0)
87
- };
88
- }
89
- let minDate = this.minDate ?
90
- (typeof this.minDate === 'string' ? new Date(this.minDate) : this.minDate) :
91
- null;
92
- let maxDate = this.maxDate ?
93
- (typeof this.maxDate === 'string' ? new Date(this.maxDate) : this.maxDate) :
94
- null;
95
- this.tasks.forEach(task => {
96
- const start = typeof task.start === 'string' ? new Date(task.start) : task.start;
97
- const end = typeof task.end === 'string' ? new Date(task.end) : task.end;
98
- if (!minDate || start < minDate)
99
- minDate = start;
100
- if (!maxDate || end > maxDate)
101
- maxDate = end;
102
- });
103
- return { start: minDate, end: maxDate };
104
- }
105
- getColumnWidth() {
106
- switch (this.viewMode) {
107
- case 'day': return 60;
108
- case 'week': return 100;
109
- case 'month': return 120;
110
- case 'year': return 150;
111
- default: return 60;
112
- }
113
- }
114
- getColumns() {
115
- const { start, end } = this.getDateRange();
116
- const columns = [];
117
- const current = new Date(start);
118
- while (current <= end) {
119
- columns.push(new Date(current));
120
- switch (this.viewMode) {
121
- case 'day':
122
- current.setDate(current.getDate() + 1);
123
- break;
124
- case 'week':
125
- current.setDate(current.getDate() + 7);
126
- break;
127
- case 'month':
128
- current.setMonth(current.getMonth() + 1);
129
- break;
130
- case 'year':
131
- current.setFullYear(current.getFullYear() + 1);
132
- break;
133
- }
134
- }
135
- return columns;
136
- }
137
- formatColumnHeader(date) {
138
- switch (this.viewMode) {
139
- case 'day':
140
- return date.toLocaleDateString('en-US', { month: 'short', day: 'numeric' });
141
- case 'week':
142
- return `Week ${this.getWeekNumber(date)}`;
143
- case 'month':
144
- return date.toLocaleDateString('en-US', { month: 'short', year: 'numeric' });
145
- case 'year':
146
- return date.getFullYear().toString();
147
- default:
148
- return '';
149
- }
150
- }
151
- getWeekNumber(date) {
152
- const d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
153
- const dayNum = d.getUTCDay() || 7;
154
- d.setUTCDate(d.getUTCDate() + 4 - dayNum);
155
- const yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
156
- return Math.ceil((((d.getTime() - yearStart.getTime()) / 86400000) + 1) / 7);
157
- }
158
- getTaskBarPosition(task) {
159
- const { start: rangeStart } = this.getDateRange();
160
- const taskStart = typeof task.start === 'string' ? new Date(task.start) : task.start;
161
- const taskEnd = typeof task.end === 'string' ? new Date(task.end) : task.end;
162
- const columnWidth = this.getColumnWidth();
163
- const dayInMs = 24 * 60 * 60 * 1000;
164
- const startOffset = (taskStart.getTime() - rangeStart.getTime()) / dayInMs;
165
- const duration = (taskEnd.getTime() - taskStart.getTime()) / dayInMs;
166
- let daysPerColumn = 1;
167
- switch (this.viewMode) {
168
- case 'week':
169
- daysPerColumn = 7;
170
- break;
171
- case 'month':
172
- daysPerColumn = 30;
173
- break;
174
- case 'year':
175
- daysPerColumn = 365;
176
- break;
177
- }
178
- return {
179
- left: (startOffset / daysPerColumn) * columnWidth,
180
- width: Math.max((duration / daysPerColumn) * columnWidth, 20)
181
- };
182
- }
183
- isToday(date) {
184
- const today = new Date();
185
- return date.toDateString() === today.toDateString();
186
- }
187
- handleTaskClick(task) {
188
- this.dispatchTaskClick(task);
189
- }
190
- template() {
191
- const columns = this.getColumns();
192
- const columnWidth = this.getColumnWidth();
193
- return html /*html*/ `
194
- <div class="gantt">
195
- <div class="gantt__sidebar">
196
- <div class="gantt__header">
197
- <div class="gantt__header-cell" style="width: 200px;">Task</div>
198
- </div>
199
- <div class="gantt__rows">
200
- ${this.tasks.map(task => html `
201
- <div class="gantt__row">
202
- <div class="gantt__row-label">${task.name}</div>
203
- </div>
204
- `)}
205
- </div>
206
- </div>
207
-
208
- <div class="gantt__timeline">
209
- <div class="gantt__header">
210
- ${columns.map(date => html `
211
- <div class="gantt__header-cell" style="width: ${columnWidth}px;">
212
- ${this.formatColumnHeader(date)}
213
- </div>
214
- `)}
215
- </div>
216
-
217
- <div class="gantt__rows" style="position: relative;">
218
- <!-- Grid lines -->
219
- <div class="gantt__grid">
220
- ${columns.map(date => html `
221
- <div
222
- class="gantt__grid-column ${this.showToday && this.isToday(date) ? 'gantt__grid-column--today' : ''}"
223
- style="width: ${columnWidth}px;">
224
- </div>
225
- `)}
226
- </div>
227
-
228
- <!-- Task bars -->
229
- ${this.tasks.map(task => {
230
- const { left, width } = this.getTaskBarPosition(task);
231
- return html /*html*/ `
232
- <div class="gantt__row">
233
- <div class="gantt__bars">
234
- <div
235
- class="gantt__bar"
236
- style="${task.color ? `background: ${task.color};` : ''} left: ${left}px; width: ${width}px;"
237
- @click=${() => this.handleTaskClick(task)}>
238
- <div class="gantt__bar-label">${task.name}</div>
239
- <if ${this.showProgress && task.progress !== undefined}>
240
- <div class="gantt__bar-progress" style="width: ${task.progress}%;"></div>
241
- </if>
242
- </div>
243
- </div>
244
- </div>
245
- `;
246
- })}
247
- </div>
248
- </div>
249
- </div>
250
- `;
251
- }
252
- constructor() {
253
- super(...arguments);
254
- this.tasks = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _tasks_initializers, []));
255
- this.viewMode = (__runInitializers(this, _tasks_extraInitializers), __runInitializers(this, _viewMode_initializers, 'day'));
256
- this.showToday = (__runInitializers(this, _viewMode_extraInitializers), __runInitializers(this, _showToday_initializers, true));
257
- this.showProgress = (__runInitializers(this, _showToday_extraInitializers), __runInitializers(this, _showProgress_initializers, true));
258
- this.showDependencies = (__runInitializers(this, _showProgress_extraInitializers), __runInitializers(this, _showDependencies_initializers, false));
259
- this.minDate = (__runInitializers(this, _showDependencies_extraInitializers), __runInitializers(this, _minDate_initializers, ''));
260
- this.maxDate = (__runInitializers(this, _minDate_extraInitializers), __runInitializers(this, _maxDate_initializers, ''));
261
- __runInitializers(this, _maxDate_extraInitializers);
262
- }
263
- });
264
- return _classThis;
265
- })();
266
-
267
- export { SniceGantt };
268
- //# sourceMappingURL=snice-gantt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"snice-gantt.js","sources":["../../../components/gantt/snice-gantt.css?inline","../../../../components/gantt/snice-gantt.ts"],"sourcesContent":["export default \":host{display:block;font-family:var(--snice-font-family, system-ui, -apple-system, sans-serif);overflow:auto}.gantt{display:flex;min-width:max-content}.gantt__sidebar{flex-shrink:0;width:200px;border-right:1px solid var(--snice-border-color,#e0e0e0);background:var(--snice-bg-secondary,#fafafa)}.gantt__timeline{flex:1;overflow-x:auto}.gantt__header{display:flex;border-bottom:2px solid var(--snice-border-color,#e0e0e0);background:#fff;position:sticky;top:0;z-index:10}.gantt__header-cell{padding:12px 8px;font-size:12px;font-weight:600;color:var(--snice-text-secondary,#666);text-align:center;border-right:1px solid var(--snice-border-color,#e0e0e0);flex-shrink:0}.gantt__rows{position:relative}.gantt__row{display:flex;border-bottom:1px solid var(--snice-border-color,#e0e0e0);height:50px;align-items:center}.gantt__row-label{padding:0 12px;font-size:14px;color:var(--snice-text-primary,#1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt__grid{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;pointer-events:none}.gantt__grid-column{flex-shrink:0;border-right:1px solid var(--snice-border-color,#e0e0e0)}.gantt__grid-column--today{background:var(--snice-color-primary-light,#e3f2fd);border-right:2px solid var(--snice-color-primary,#2196f3)}.gantt__bars{position:relative;display:flex;align-items:center;height:100%}.gantt__bar{position:absolute;height:30px;background:var(--snice-color-primary,#2196f3);border-radius:4px;padding:0 8px;display:flex;align-items:center;cursor:pointer;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.gantt__bar:hover{box-shadow:0 2px 8px rgba(0,0,0,.3);transform:translateY(-1px)}.gantt__bar-label{font-size:12px;color:#fff;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt__bar-progress{position:absolute;top:0;left:0;bottom:0;background:rgba(255,255,255,.3);border-radius:4px 0 0 4px;pointer-events:none}.gantt__today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--snice-color-primary,#2196f3);pointer-events:none;z-index:5}.gantt__dependencies{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:1}.gantt__dependency{position:absolute;stroke:var(--snice-color-primary,#2196f3);stroke-width:2;fill:none}\";",null],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- export type GanttViewMode = 'day' | 'week' | 'month' | 'year';
2
- export interface GanttTask {
3
- id: string | number;
4
- name: string;
5
- start: Date | string;
6
- end: Date | string;
7
- progress?: number;
8
- dependencies?: (string | number)[];
9
- color?: string;
10
- data?: any;
11
- }
12
- export interface SniceGanttElement extends HTMLElement {
13
- tasks: GanttTask[];
14
- viewMode: GanttViewMode;
15
- showToday: boolean;
16
- showProgress: boolean;
17
- showDependencies: boolean;
18
- minDate: Date | string;
19
- maxDate: Date | string;
20
- getTask(id: string | number): GanttTask | undefined;
21
- scrollToToday(): void;
22
- scrollToTask(id: string | number): void;
23
- }
@@ -1,4 +0,0 @@
1
- var cssContent = ":host{display:flex;align-items:center;padding:0 var(--snice-table-cell-padding,var(--snice-spacing-md,.75rem));min-height:2.5rem;height:2.5rem;min-width:6.25rem;flex:1;font-size:.875rem;line-height:1.25rem}.cell-content{width:100%;min-width:6.25rem;min-height:1.25rem;word-wrap:break-word}:host([align=left]){text-align:left}:host([align=center]){text-align:center}:host([align=right]){text-align:right}:host([type=accounting]),:host([type=currency]),:host([type=fraction]),:host([type=number]),:host([type=percent]),:host([type=scientific]){font-variant-numeric:tabular-nums;text-align:right}:host([type=date]){font-variant-numeric:tabular-nums}:host([type=boolean]){text-align:center;font-size:1rem}:host([type=rating]){text-align:center}:host([type=sparkline]){text-align:center}.cell-content--text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-content--text[data-multiline=true]{white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word}.cell-content--date,.cell-content--number{font-feature-settings:'tnum'}:host([type=boolean]) .cell-content{display:inline-flex;align-items:center;justify-content:center}:host([type=rating]) .cell-content{display:inline-flex;align-items:center;justify-content:center;gap:.125rem}.cell-content--progress{width:100%;min-width:4rem}.cell-content--sparkline{display:flex;align-items:center;justify-content:center;min-width:3rem}:host(.positive){color:var(--snice-color-success)}:host(.negative){color:var(--snice-color-danger)}:host(.warning){color:var(--snice-color-warning);background-color:rgb(var(--snice-color-yellow-100))}:host(.danger){color:var(--snice-color-danger);background-color:rgb(var(--snice-color-red-100))}:host(.success){color:var(--snice-color-success);background-color:rgb(var(--snice-color-green-100))}:host(.info){color:var(--snice-color-primary);background-color:rgb(var(--snice-color-blue-100))}:host(.date--today){font-weight:var(--snice-font-weight-semibold);color:var(--snice-color-primary)}:host(.date--past){color:var(--snice-color-text-secondary)}:host(.date--future){color:var(--snice-color-success)}:host(.number--negative.number--negative-red){color:var(--snice-color-danger)}:host(.number--positive.number--highlighted){color:var(--snice-color-success);font-weight:var(--snice-font-weight-semibold)}:host(.number--zero){color:var(--snice-color-text-secondary)}:host([truncate]) .cell-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([wrap]) .cell-content{white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word}:host(:not([value])) .cell-content,:host([value=\"\"]) .cell-content{color:#6c757d}:host(.loading){position:relative;overflow:hidden}:host(.loading) .cell-content{opacity:.6}:host(.loading)::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:1.5s infinite cell-shimmer}@keyframes cell-shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}:host(:focus-within){outline:#007bff solid 2px;outline-offset:-2px}.cell-content button,.cell-content input,.cell-content select{font-size:inherit;line-height:inherit}.cell-content a{color:#007bff;text-decoration:none}.cell-content a:hover{text-decoration:underline}@media (max-width:768px){:host{font-size:.75rem;line-height:1rem}:host([type=boolean]){font-size:.875rem}}@media (prefers-reduced-motion:reduce){:host(.loading)::after{animation:none}}@media (prefers-contrast:high){:host(.positive){background-color:#d4edda}:host(.negative){background-color:#f8d7da}.cell-content a{text-decoration:underline}}@media print{:host{font-size:.75rem}:host(.loading)::after{display:none}.cell-content a{text-decoration:underline}}";
2
-
3
- export { cssContent as c };
4
- //# sourceMappingURL=snice-cell-C0slgOpe.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"snice-cell-C0slgOpe.js","sources":["../../components/table/snice-cell.css?inline"],"sourcesContent":["export default \":host{display:flex;align-items:center;padding:0 var(--snice-table-cell-padding,var(--snice-spacing-md,.75rem));min-height:2.5rem;height:2.5rem;min-width:6.25rem;flex:1;font-size:.875rem;line-height:1.25rem}.cell-content{width:100%;min-width:6.25rem;min-height:1.25rem;word-wrap:break-word}:host([align=left]){text-align:left}:host([align=center]){text-align:center}:host([align=right]){text-align:right}:host([type=accounting]),:host([type=currency]),:host([type=fraction]),:host([type=number]),:host([type=percent]),:host([type=scientific]){font-variant-numeric:tabular-nums;text-align:right}:host([type=date]){font-variant-numeric:tabular-nums}:host([type=boolean]){text-align:center;font-size:1rem}:host([type=rating]){text-align:center}:host([type=sparkline]){text-align:center}.cell-content--text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-content--text[data-multiline=true]{white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word}.cell-content--date,.cell-content--number{font-feature-settings:'tnum'}:host([type=boolean]) .cell-content{display:inline-flex;align-items:center;justify-content:center}:host([type=rating]) .cell-content{display:inline-flex;align-items:center;justify-content:center;gap:.125rem}.cell-content--progress{width:100%;min-width:4rem}.cell-content--sparkline{display:flex;align-items:center;justify-content:center;min-width:3rem}:host(.positive){color:var(--snice-color-success)}:host(.negative){color:var(--snice-color-danger)}:host(.warning){color:var(--snice-color-warning);background-color:rgb(var(--snice-color-yellow-100))}:host(.danger){color:var(--snice-color-danger);background-color:rgb(var(--snice-color-red-100))}:host(.success){color:var(--snice-color-success);background-color:rgb(var(--snice-color-green-100))}:host(.info){color:var(--snice-color-primary);background-color:rgb(var(--snice-color-blue-100))}:host(.date--today){font-weight:var(--snice-font-weight-semibold);color:var(--snice-color-primary)}:host(.date--past){color:var(--snice-color-text-secondary)}:host(.date--future){color:var(--snice-color-success)}:host(.number--negative.number--negative-red){color:var(--snice-color-danger)}:host(.number--positive.number--highlighted){color:var(--snice-color-success);font-weight:var(--snice-font-weight-semibold)}:host(.number--zero){color:var(--snice-color-text-secondary)}:host([truncate]) .cell-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([wrap]) .cell-content{white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word}:host(:not([value])) .cell-content,:host([value=\\\"\\\"]) .cell-content{color:#6c757d}:host(.loading){position:relative;overflow:hidden}:host(.loading) .cell-content{opacity:.6}:host(.loading)::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:1.5s infinite cell-shimmer}@keyframes cell-shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}:host(:focus-within){outline:#007bff solid 2px;outline-offset:-2px}.cell-content button,.cell-content input,.cell-content select{font-size:inherit;line-height:inherit}.cell-content a{color:#007bff;text-decoration:none}.cell-content a:hover{text-decoration:underline}@media (max-width:768px){:host{font-size:.75rem;line-height:1rem}:host([type=boolean]){font-size:.875rem}}@media (prefers-reduced-motion:reduce){:host(.loading)::after{animation:none}}@media (prefers-contrast:high){:host(.positive){background-color:#d4edda}:host(.negative){background-color:#f8d7da}.cell-content a{text-decoration:underline}}@media print{:host{font-size:.75rem}:host(.loading)::after{display:none}.cell-content a{text-decoration:underline}}\";"],"names":[],"mappings":"AAAA,iBAAe,gpHAAgpH;;;;"}
@@ -1,14 +0,0 @@
1
- import type { StatTrend, StatSize, SniceStatElement } from './snice-stat.types';
2
- export declare class SniceStat extends HTMLElement implements SniceStatElement {
3
- label: string;
4
- value: string | number;
5
- change: string | number;
6
- trend: StatTrend;
7
- size: StatSize;
8
- icon: string;
9
- iconImage: string;
10
- colorValue: boolean;
11
- private getTrendIcon;
12
- render(): import("snice").TemplateResult;
13
- styles(): import("snice").CSSResult;
14
- }
@@ -1,140 +0,0 @@
1
- import { __esDecorate, __runInitializers } from 'tslib';
2
- import { element, property, render, styles, html, css } from 'snice';
3
-
4
- var cssContent = ":host{display:block}.stat{font-family:var(--font-family, system-ui);padding:var(--spacing-lg,1.5rem);background:var(--color-background,#fff);border:1px solid var(--color-neutral-200,#e5e7eb);border-radius:var(--border-radius-lg,.5rem)}.stat--small{padding:var(--spacing-md,1rem)}.stat--large{padding:var(--spacing-xl,2rem)}.stat__header{display:flex;align-items:center;gap:var(--spacing-sm,.75rem);margin-bottom:var(--spacing-sm,.75rem)}.stat__icon{width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;background:var(--color-primary-100,#dbeafe);border-radius:var(--border-radius-md,.375rem);font-size:1.25rem}.stat__icon-image{width:100%;height:100%;object-fit:contain}.stat__label{font-size:var(--font-size-sm, .875rem);color:var(--color-text-muted,#6b7280);font-weight:500}.stat__value{font-size:var(--font-size-3xl, 2rem);font-weight:700;color:var(--color-text,#1f2937);margin-bottom:var(--spacing-xs,.5rem)}.stat--small .stat__value{font-size:var(--font-size-2xl, 1.5rem)}.stat--large .stat__value{font-size:var(--font-size-4xl, 2.5rem)}.stat__value--up{color:var(--color-success-600,#16a34a)}.stat__value--down{color:var(--color-danger-600,#dc2626)}.stat__value--neutral{color:var(--color-neutral-600,#6b7280)}.stat__change{display:inline-flex;align-items:center;gap:.25rem;font-size:var(--font-size-sm, .875rem);font-weight:500}.stat__change--up{color:var(--color-success-600,#16a34a)}.stat__change--down{color:var(--color-danger-600,#dc2626)}.stat__change--neutral{color:var(--color-neutral-600,#6b7280)}.stat__change-icon{font-size:.75rem}";
5
-
6
- let SniceStat = (() => {
7
- let _classDecorators = [element('snice-stat')];
8
- let _classDescriptor;
9
- let _classExtraInitializers = [];
10
- let _classThis;
11
- let _classSuper = HTMLElement;
12
- let _instanceExtraInitializers = [];
13
- let _label_decorators;
14
- let _label_initializers = [];
15
- let _label_extraInitializers = [];
16
- let _value_decorators;
17
- let _value_initializers = [];
18
- let _value_extraInitializers = [];
19
- let _change_decorators;
20
- let _change_initializers = [];
21
- let _change_extraInitializers = [];
22
- let _trend_decorators;
23
- let _trend_initializers = [];
24
- let _trend_extraInitializers = [];
25
- let _size_decorators;
26
- let _size_initializers = [];
27
- let _size_extraInitializers = [];
28
- let _icon_decorators;
29
- let _icon_initializers = [];
30
- let _icon_extraInitializers = [];
31
- let _iconImage_decorators;
32
- let _iconImage_initializers = [];
33
- let _iconImage_extraInitializers = [];
34
- let _colorValue_decorators;
35
- let _colorValue_initializers = [];
36
- let _colorValue_extraInitializers = [];
37
- let _render_decorators;
38
- let _styles_decorators;
39
- (class extends _classSuper {
40
- static { _classThis = this; }
41
- static {
42
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
43
- _label_decorators = [property({})];
44
- _value_decorators = [property({})];
45
- _change_decorators = [property({})];
46
- _trend_decorators = [property({})];
47
- _size_decorators = [property({})];
48
- _icon_decorators = [property({})];
49
- _iconImage_decorators = [property({ attribute: 'icon-image' })];
50
- _colorValue_decorators = [property({ type: Boolean, attribute: 'color-value' })];
51
- _render_decorators = [render()];
52
- _styles_decorators = [styles()];
53
- __esDecorate(this, null, _render_decorators, { kind: "method", name: "render", static: false, private: false, access: { has: obj => "render" in obj, get: obj => obj.render }, metadata: _metadata }, null, _instanceExtraInitializers);
54
- __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);
55
- __esDecorate(null, null, _label_decorators, { kind: "field", name: "label", static: false, private: false, access: { has: obj => "label" in obj, get: obj => obj.label, set: (obj, value) => { obj.label = value; } }, metadata: _metadata }, _label_initializers, _label_extraInitializers);
56
- __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);
57
- __esDecorate(null, null, _change_decorators, { kind: "field", name: "change", static: false, private: false, access: { has: obj => "change" in obj, get: obj => obj.change, set: (obj, value) => { obj.change = value; } }, metadata: _metadata }, _change_initializers, _change_extraInitializers);
58
- __esDecorate(null, null, _trend_decorators, { kind: "field", name: "trend", static: false, private: false, access: { has: obj => "trend" in obj, get: obj => obj.trend, set: (obj, value) => { obj.trend = value; } }, metadata: _metadata }, _trend_initializers, _trend_extraInitializers);
59
- __esDecorate(null, null, _size_decorators, { kind: "field", name: "size", static: false, private: false, access: { has: obj => "size" in obj, get: obj => obj.size, set: (obj, value) => { obj.size = value; } }, metadata: _metadata }, _size_initializers, _size_extraInitializers);
60
- __esDecorate(null, null, _icon_decorators, { kind: "field", name: "icon", static: false, private: false, access: { has: obj => "icon" in obj, get: obj => obj.icon, set: (obj, value) => { obj.icon = value; } }, metadata: _metadata }, _icon_initializers, _icon_extraInitializers);
61
- __esDecorate(null, null, _iconImage_decorators, { kind: "field", name: "iconImage", static: false, private: false, access: { has: obj => "iconImage" in obj, get: obj => obj.iconImage, set: (obj, value) => { obj.iconImage = value; } }, metadata: _metadata }, _iconImage_initializers, _iconImage_extraInitializers);
62
- __esDecorate(null, null, _colorValue_decorators, { kind: "field", name: "colorValue", static: false, private: false, access: { has: obj => "colorValue" in obj, get: obj => obj.colorValue, set: (obj, value) => { obj.colorValue = value; } }, metadata: _metadata }, _colorValue_initializers, _colorValue_extraInitializers);
63
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
64
- _classThis = _classDescriptor.value;
65
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
66
- __runInitializers(_classThis, _classExtraInitializers);
67
- }
68
- getTrendIcon() {
69
- switch (this.trend) {
70
- case 'up': return '↑';
71
- case 'down': return '↓';
72
- case 'neutral': return '→';
73
- default: return '';
74
- }
75
- }
76
- render() {
77
- const statClasses = [
78
- 'stat',
79
- `stat--${this.size}`
80
- ].filter(Boolean).join(' ');
81
- const valueClasses = [
82
- 'stat__value',
83
- this.colorValue && this.trend ? `stat__value--${this.trend}` : ''
84
- ].filter(Boolean).join(' ');
85
- const changeClasses = [
86
- 'stat__change',
87
- this.trend ? `stat__change--${this.trend}` : ''
88
- ].filter(Boolean).join(' ');
89
- return html /*html*/ `
90
- <div class="${statClasses}" part="container">
91
- <if ${this.icon || this.iconImage}>
92
- <div class="stat__header" part="header">
93
- <div class="stat__icon" part="icon">
94
- <if ${this.iconImage}>
95
- <img class="stat__icon-image" src="${this.iconImage}" alt="" />
96
- </if>
97
- <if ${!this.iconImage && this.icon}>
98
- ${this.icon}
99
- </if>
100
- </div>
101
- <div class="stat__label" part="label">${this.label}</div>
102
- </div>
103
- </if>
104
-
105
- <if ${!this.icon && !this.iconImage && this.label}>
106
- <div class="stat__label" part="label">${this.label}</div>
107
- </if>
108
-
109
- <div class="${valueClasses}" part="value">${this.value}</div>
110
-
111
- <if ${this.change}>
112
- <div class="${changeClasses}" part="change">
113
- <span class="stat__change-icon">${this.getTrendIcon()}</span>
114
- ${this.change}
115
- </div>
116
- </if>
117
- </div>
118
- `;
119
- }
120
- styles() {
121
- return css /*css*/ `${cssContent}`;
122
- }
123
- constructor() {
124
- super(...arguments);
125
- this.label = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _label_initializers, ''));
126
- this.value = (__runInitializers(this, _label_extraInitializers), __runInitializers(this, _value_initializers, ''));
127
- this.change = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _change_initializers, ''));
128
- this.trend = (__runInitializers(this, _change_extraInitializers), __runInitializers(this, _trend_initializers, 'neutral'));
129
- this.size = (__runInitializers(this, _trend_extraInitializers), __runInitializers(this, _size_initializers, 'medium'));
130
- this.icon = (__runInitializers(this, _size_extraInitializers), __runInitializers(this, _icon_initializers, ''));
131
- this.iconImage = (__runInitializers(this, _icon_extraInitializers), __runInitializers(this, _iconImage_initializers, ''));
132
- this.colorValue = (__runInitializers(this, _iconImage_extraInitializers), __runInitializers(this, _colorValue_initializers, false));
133
- __runInitializers(this, _colorValue_extraInitializers);
134
- }
135
- });
136
- return _classThis;
137
- })();
138
-
139
- export { SniceStat };
140
- //# sourceMappingURL=snice-stat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"snice-stat.js","sources":["../../../components/stat/snice-stat.css?inline","../../../../components/stat/snice-stat.ts"],"sourcesContent":["export default \":host{display:block}.stat{font-family:var(--font-family, system-ui);padding:var(--spacing-lg,1.5rem);background:var(--color-background,#fff);border:1px solid var(--color-neutral-200,#e5e7eb);border-radius:var(--border-radius-lg,.5rem)}.stat--small{padding:var(--spacing-md,1rem)}.stat--large{padding:var(--spacing-xl,2rem)}.stat__header{display:flex;align-items:center;gap:var(--spacing-sm,.75rem);margin-bottom:var(--spacing-sm,.75rem)}.stat__icon{width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;background:var(--color-primary-100,#dbeafe);border-radius:var(--border-radius-md,.375rem);font-size:1.25rem}.stat__icon-image{width:100%;height:100%;object-fit:contain}.stat__label{font-size:var(--font-size-sm, .875rem);color:var(--color-text-muted,#6b7280);font-weight:500}.stat__value{font-size:var(--font-size-3xl, 2rem);font-weight:700;color:var(--color-text,#1f2937);margin-bottom:var(--spacing-xs,.5rem)}.stat--small .stat__value{font-size:var(--font-size-2xl, 1.5rem)}.stat--large .stat__value{font-size:var(--font-size-4xl, 2.5rem)}.stat__value--up{color:var(--color-success-600,#16a34a)}.stat__value--down{color:var(--color-danger-600,#dc2626)}.stat__value--neutral{color:var(--color-neutral-600,#6b7280)}.stat__change{display:inline-flex;align-items:center;gap:.25rem;font-size:var(--font-size-sm, .875rem);font-weight:500}.stat__change--up{color:var(--color-success-600,#16a34a)}.stat__change--down{color:var(--color-danger-600,#dc2626)}.stat__change--neutral{color:var(--color-neutral-600,#6b7280)}.stat__change-icon{font-size:.75rem}\";",null],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- export type StatTrend = 'up' | 'down' | 'neutral';
2
- export type StatSize = 'small' | 'medium' | 'large';
3
- export interface SniceStatElement extends HTMLElement {
4
- label: string;
5
- value: string | number;
6
- change: string | number;
7
- trend: StatTrend;
8
- size: StatSize;
9
- icon: string;
10
- iconImage: string;
11
- colorValue: boolean;
12
- }
@@ -1,81 +0,0 @@
1
- # snice-actions
2
-
3
- Action button group with overflow menu.
4
-
5
- ## Properties
6
-
7
- ```typescript
8
- actions: ActionButton[] = [];
9
- size: 'small'|'medium'|'large' = 'medium';
10
- variant: 'text'|'outlined'|'filled' = 'text';
11
- showLabels: boolean = true;
12
- maxVisible: number = 3;
13
- moreLabel: string = 'More';
14
- moreIcon: string = '⋯';
15
- ```
16
-
17
- ## ActionButton Interface
18
-
19
- ```typescript
20
- interface ActionButton {
21
- id: string;
22
- label?: string;
23
- icon?: string;
24
- iconImage?: string;
25
- variant?: ActionButtonVariant;
26
- disabled?: boolean;
27
- danger?: boolean;
28
- tooltip?: string;
29
- action?: () => void | Promise<void>;
30
- href?: string;
31
- target?: string;
32
- data?: any;
33
- }
34
- ```
35
-
36
- ## Methods
37
-
38
- ```typescript
39
- triggerAction(id: string): void
40
- getAction(id: string): ActionButton | undefined
41
- ```
42
-
43
- ## Events
44
-
45
- - `@snice/action-trigger` - Dispatched when action triggered (detail: { action, actionsElement })
46
-
47
- ## Usage
48
-
49
- ```javascript
50
- actions.actions = [
51
- { id: 'edit', label: 'Edit', icon: '✏️' },
52
- { id: 'delete', label: 'Delete', icon: '🗑️', danger: true }
53
- ];
54
- ```
55
-
56
- ```html
57
- <!-- Icon only -->
58
- <snice-actions show-labels="false"></snice-actions>
59
-
60
- <!-- With overflow (max 3 visible) -->
61
- <snice-actions max-visible="3"></snice-actions>
62
-
63
- <!-- Outlined variant -->
64
- <snice-actions variant="outlined"></snice-actions>
65
-
66
- <!-- Small size -->
67
- <snice-actions size="small"></snice-actions>
68
- ```
69
-
70
- ## Features
71
-
72
- - Multiple button variants (text/outlined/filled)
73
- - Icon-only mode
74
- - Overflow menu for many actions
75
- - Danger styling for destructive actions
76
- - Link support (href/target)
77
- - Async action callbacks
78
- - Per-action variant override
79
- - Disabled state
80
- - Custom tooltips
81
- - Programmatic triggering