@sondor-technology/sondor-components 1.0.1-develop.13 → 1.0.1-develop.15

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 (266) hide show
  1. package/dist/components/alert/alert.constants.d.ts +3 -0
  2. package/dist/components/alert/alert.constants.d.ts.map +1 -0
  3. package/dist/components/alert/alert.constants.js +2 -0
  4. package/dist/components/alert/alert.constants.js.map +1 -0
  5. package/dist/components/alert/alert.d.ts +4 -3
  6. package/dist/components/alert/alert.d.ts.map +1 -1
  7. package/dist/components/alert/alert.js +21 -11
  8. package/dist/components/alert/alert.js.map +1 -0
  9. package/dist/components/badge/badge.constants.d.ts +3 -0
  10. package/dist/components/badge/badge.constants.d.ts.map +1 -0
  11. package/dist/components/badge/badge.constants.js +2 -0
  12. package/dist/components/badge/badge.constants.js.map +1 -0
  13. package/dist/components/badge/badge.d.ts +1 -1
  14. package/dist/components/badge/badge.d.ts.map +1 -1
  15. package/dist/components/badge/badge.js +3 -2
  16. package/dist/components/badge/badge.js.map +1 -0
  17. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -1
  18. package/dist/components/breadcrumb/breadcrumb.js +2 -1
  19. package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
  20. package/dist/components/button/button.constants.d.ts +7 -0
  21. package/dist/components/button/button.constants.d.ts.map +1 -0
  22. package/dist/components/button/button.constants.js +4 -0
  23. package/dist/components/button/button.constants.js.map +1 -0
  24. package/dist/components/button/button.d.ts +8 -4
  25. package/dist/components/button/button.d.ts.map +1 -1
  26. package/dist/components/button/button.js +181 -137
  27. package/dist/components/button/button.js.map +1 -0
  28. package/dist/components/button-group/button-group.d.ts +1 -0
  29. package/dist/components/button-group/button-group.d.ts.map +1 -1
  30. package/dist/components/button-group/button-group.js +17 -21
  31. package/dist/components/button-group/button-group.js.map +1 -0
  32. package/dist/components/calendar/calendar.d.ts +36 -0
  33. package/dist/components/calendar/calendar.d.ts.map +1 -0
  34. package/dist/components/calendar/calendar.js +439 -0
  35. package/dist/components/calendar/calendar.js.map +1 -0
  36. package/dist/components/checkbox/checkbox.constants.d.ts +3 -0
  37. package/dist/components/checkbox/checkbox.constants.d.ts.map +1 -0
  38. package/dist/components/checkbox/checkbox.constants.js +2 -0
  39. package/dist/components/checkbox/checkbox.constants.js.map +1 -0
  40. package/dist/components/checkbox/checkbox.d.ts +5 -1
  41. package/dist/components/checkbox/checkbox.d.ts.map +1 -1
  42. package/dist/components/checkbox/checkbox.js +21 -5
  43. package/dist/components/checkbox/checkbox.js.map +1 -0
  44. package/dist/components/code-block/code-block.d.ts +7 -7
  45. package/dist/components/code-block/code-block.d.ts.map +1 -1
  46. package/dist/components/code-block/code-block.js +130 -66
  47. package/dist/components/code-block/code-block.js.map +1 -0
  48. package/dist/components/content-card/content-card.d.ts.map +1 -1
  49. package/dist/components/content-card/content-card.js +10 -15
  50. package/dist/components/content-card/content-card.js.map +1 -0
  51. package/dist/components/cron-builder/cron-builder.d.ts +34 -0
  52. package/dist/components/cron-builder/cron-builder.d.ts.map +1 -0
  53. package/dist/components/cron-builder/cron-builder.js +456 -0
  54. package/dist/components/cron-builder/cron-builder.js.map +1 -0
  55. package/dist/components/divider/divider.constants.d.ts +5 -0
  56. package/dist/components/divider/divider.constants.d.ts.map +1 -0
  57. package/dist/components/divider/divider.constants.js +3 -0
  58. package/dist/components/divider/divider.constants.js.map +1 -0
  59. package/dist/components/divider/divider.d.ts +4 -2
  60. package/dist/components/divider/divider.d.ts.map +1 -1
  61. package/dist/components/divider/divider.js +18 -9
  62. package/dist/components/divider/divider.js.map +1 -0
  63. package/dist/components/drawer/drawer.d.ts +7 -4
  64. package/dist/components/drawer/drawer.d.ts.map +1 -1
  65. package/dist/components/drawer/drawer.js +73 -30
  66. package/dist/components/drawer/drawer.js.map +1 -0
  67. package/dist/components/field/field.d.ts +2 -2
  68. package/dist/components/field/field.d.ts.map +1 -1
  69. package/dist/components/field/field.js +8 -9
  70. package/dist/components/field/field.js.map +1 -0
  71. package/dist/components/footer/footer.d.ts +8 -1
  72. package/dist/components/footer/footer.d.ts.map +1 -1
  73. package/dist/components/footer/footer.js +42 -12
  74. package/dist/components/footer/footer.js.map +1 -0
  75. package/dist/components/form/form-step.js +1 -0
  76. package/dist/components/form/form-step.js.map +1 -0
  77. package/dist/components/form/form.d.ts +3 -0
  78. package/dist/components/form/form.d.ts.map +1 -1
  79. package/dist/components/form/form.js +109 -69
  80. package/dist/components/form/form.js.map +1 -0
  81. package/dist/components/grid/grid-row.d.ts +3 -3
  82. package/dist/components/grid/grid-row.d.ts.map +1 -1
  83. package/dist/components/grid/grid-row.js +36 -22
  84. package/dist/components/grid/grid-row.js.map +1 -0
  85. package/dist/components/grid/grid.d.ts +2 -2
  86. package/dist/components/grid/grid.d.ts.map +1 -1
  87. package/dist/components/grid/grid.js +5 -2
  88. package/dist/components/grid/grid.js.map +1 -0
  89. package/dist/components/icon/icon-paths.d.ts +161 -86
  90. package/dist/components/icon/icon-paths.d.ts.map +1 -1
  91. package/dist/components/icon/icon-paths.js +176 -106
  92. package/dist/components/icon/icon-paths.js.map +1 -0
  93. package/dist/components/icon/icon.d.ts +1 -1
  94. package/dist/components/icon/icon.d.ts.map +1 -1
  95. package/dist/components/icon/icon.js +6 -5
  96. package/dist/components/icon/icon.js.map +1 -0
  97. package/dist/components/input/input.d.ts +10 -0
  98. package/dist/components/input/input.d.ts.map +1 -1
  99. package/dist/components/input/input.js +59 -43
  100. package/dist/components/input/input.js.map +1 -0
  101. package/dist/components/link/link.d.ts +6 -6
  102. package/dist/components/link/link.d.ts.map +1 -1
  103. package/dist/components/link/link.js +42 -19
  104. package/dist/components/link/link.js.map +1 -0
  105. package/dist/components/metadata/metadata.d.ts +3 -3
  106. package/dist/components/metadata/metadata.d.ts.map +1 -1
  107. package/dist/components/metadata/metadata.js +23 -20
  108. package/dist/components/metadata/metadata.js.map +1 -0
  109. package/dist/components/modal/modal.d.ts +4 -16
  110. package/dist/components/modal/modal.d.ts.map +1 -1
  111. package/dist/components/modal/modal.js +99 -62
  112. package/dist/components/modal/modal.js.map +1 -0
  113. package/dist/components/page-layout/page-layout.d.ts +4 -3
  114. package/dist/components/page-layout/page-layout.d.ts.map +1 -1
  115. package/dist/components/page-layout/page-layout.js +95 -68
  116. package/dist/components/page-layout/page-layout.js.map +1 -0
  117. package/dist/components/pin-input/pin-input.d.ts +33 -0
  118. package/dist/components/pin-input/pin-input.d.ts.map +1 -0
  119. package/dist/components/pin-input/pin-input.js +253 -0
  120. package/dist/components/pin-input/pin-input.js.map +1 -0
  121. package/dist/components/popover/popover.d.ts +26 -0
  122. package/dist/components/popover/popover.d.ts.map +1 -0
  123. package/dist/components/popover/popover.js +196 -0
  124. package/dist/components/popover/popover.js.map +1 -0
  125. package/dist/components/radio/radio.d.ts +8 -0
  126. package/dist/components/radio/radio.d.ts.map +1 -1
  127. package/dist/components/radio/radio.js +8 -12
  128. package/dist/components/radio/radio.js.map +1 -0
  129. package/dist/components/radio-group/radio-group.d.ts +6 -1
  130. package/dist/components/radio-group/radio-group.d.ts.map +1 -1
  131. package/dist/components/radio-group/radio-group.js +44 -18
  132. package/dist/components/radio-group/radio-group.js.map +1 -0
  133. package/dist/components/router/router.d.ts +5 -7
  134. package/dist/components/router/router.d.ts.map +1 -1
  135. package/dist/components/router/router.js +54 -38
  136. package/dist/components/router/router.js.map +1 -0
  137. package/dist/components/select/select.d.ts +5 -4
  138. package/dist/components/select/select.d.ts.map +1 -1
  139. package/dist/components/select/select.js +40 -9
  140. package/dist/components/select/select.js.map +1 -0
  141. package/dist/components/skeleton/skeleton.d.ts +3 -2
  142. package/dist/components/skeleton/skeleton.d.ts.map +1 -1
  143. package/dist/components/skeleton/skeleton.js +10 -13
  144. package/dist/components/skeleton/skeleton.js.map +1 -0
  145. package/dist/components/switch/switch.d.ts +12 -0
  146. package/dist/components/switch/switch.d.ts.map +1 -1
  147. package/dist/components/switch/switch.js +28 -22
  148. package/dist/components/switch/switch.js.map +1 -0
  149. package/dist/components/table/data-table.d.ts +3 -25
  150. package/dist/components/table/data-table.d.ts.map +1 -1
  151. package/dist/components/table/data-table.js +211 -146
  152. package/dist/components/table/data-table.js.map +1 -0
  153. package/dist/components/table/table.d.ts +3 -3
  154. package/dist/components/table/table.d.ts.map +1 -1
  155. package/dist/components/table/table.js +39 -20
  156. package/dist/components/table/table.js.map +1 -0
  157. package/dist/components/tabs/tab-panel.d.ts +3 -1
  158. package/dist/components/tabs/tab-panel.d.ts.map +1 -1
  159. package/dist/components/tabs/tab-panel.js +21 -11
  160. package/dist/components/tabs/tab-panel.js.map +1 -0
  161. package/dist/components/tabs/tab.d.ts +5 -1
  162. package/dist/components/tabs/tab.d.ts.map +1 -1
  163. package/dist/components/tabs/tab.js +46 -28
  164. package/dist/components/tabs/tab.js.map +1 -0
  165. package/dist/components/tabs/tabs.d.ts +4 -0
  166. package/dist/components/tabs/tabs.d.ts.map +1 -1
  167. package/dist/components/tabs/tabs.js +76 -13
  168. package/dist/components/tabs/tabs.js.map +1 -0
  169. package/dist/components/textarea/textarea.d.ts +13 -0
  170. package/dist/components/textarea/textarea.d.ts.map +1 -1
  171. package/dist/components/textarea/textarea.js +59 -13
  172. package/dist/components/textarea/textarea.js.map +1 -0
  173. package/dist/components/theme-toggle/theme-toggle.constants.d.ts +3 -0
  174. package/dist/components/theme-toggle/theme-toggle.constants.d.ts.map +1 -0
  175. package/dist/components/theme-toggle/theme-toggle.constants.js +2 -0
  176. package/dist/components/theme-toggle/theme-toggle.constants.js.map +1 -0
  177. package/dist/components/theme-toggle/theme-toggle.d.ts +3 -2
  178. package/dist/components/theme-toggle/theme-toggle.d.ts.map +1 -1
  179. package/dist/components/theme-toggle/theme-toggle.js +46 -19
  180. package/dist/components/theme-toggle/theme-toggle.js.map +1 -0
  181. package/dist/components/time-picker/time-picker.d.ts +38 -0
  182. package/dist/components/time-picker/time-picker.d.ts.map +1 -0
  183. package/dist/components/time-picker/time-picker.js +280 -0
  184. package/dist/components/time-picker/time-picker.js.map +1 -0
  185. package/dist/components/toggle-group/toggle-button.d.ts +23 -0
  186. package/dist/components/toggle-group/toggle-button.d.ts.map +1 -0
  187. package/dist/components/toggle-group/toggle-button.js +115 -0
  188. package/dist/components/toggle-group/toggle-button.js.map +1 -0
  189. package/dist/components/toggle-group/toggle-group.d.ts +32 -0
  190. package/dist/components/toggle-group/toggle-group.d.ts.map +1 -0
  191. package/dist/components/toggle-group/toggle-group.js +150 -0
  192. package/dist/components/toggle-group/toggle-group.js.map +1 -0
  193. package/dist/components/tooltip/tooltip.d.ts +33 -0
  194. package/dist/components/tooltip/tooltip.d.ts.map +1 -0
  195. package/dist/components/tooltip/tooltip.js +293 -0
  196. package/dist/components/tooltip/tooltip.js.map +1 -0
  197. package/dist/components/vertical-nav/vertical-nav-group.d.ts +5 -2
  198. package/dist/components/vertical-nav/vertical-nav-group.d.ts.map +1 -1
  199. package/dist/components/vertical-nav/vertical-nav-group.js +50 -14
  200. package/dist/components/vertical-nav/vertical-nav-group.js.map +1 -0
  201. package/dist/components/vertical-nav/vertical-nav-item.d.ts +3 -2
  202. package/dist/components/vertical-nav/vertical-nav-item.d.ts.map +1 -1
  203. package/dist/components/vertical-nav/vertical-nav-item.js +30 -8
  204. package/dist/components/vertical-nav/vertical-nav-item.js.map +1 -0
  205. package/dist/styles/index.css +49 -17
  206. package/dist/styles/reset.js +1 -0
  207. package/dist/styles/reset.js.map +1 -0
  208. package/package.json +30 -1
  209. package/src/components/alert/alert.constants.ts +2 -0
  210. package/src/components/alert/alert.ts +24 -15
  211. package/src/components/badge/badge.constants.ts +2 -0
  212. package/src/components/badge/badge.ts +3 -4
  213. package/src/components/breadcrumb/breadcrumb.ts +2 -2
  214. package/src/components/button/button.constants.ts +8 -0
  215. package/src/components/button/button.ts +184 -144
  216. package/src/components/button-group/button-group.ts +18 -22
  217. package/src/components/calendar/calendar.ts +444 -0
  218. package/src/components/checkbox/checkbox.constants.ts +2 -0
  219. package/src/components/checkbox/checkbox.ts +33 -18
  220. package/src/components/code-block/code-block.ts +151 -84
  221. package/src/components/content-card/content-card.ts +10 -16
  222. package/src/components/cron-builder/cron-builder.ts +452 -0
  223. package/src/components/divider/divider.constants.ts +5 -0
  224. package/src/components/divider/divider.ts +22 -11
  225. package/src/components/drawer/drawer.ts +79 -34
  226. package/src/components/field/field.ts +9 -11
  227. package/src/components/footer/footer.ts +43 -12
  228. package/src/components/form/form.ts +121 -84
  229. package/src/components/grid/grid-row.ts +45 -32
  230. package/src/components/grid/grid.ts +7 -4
  231. package/src/components/icon/icon-paths.ts +175 -106
  232. package/src/components/icon/icon.ts +6 -6
  233. package/src/components/input/input.ts +59 -45
  234. package/src/components/link/link.ts +45 -21
  235. package/src/components/metadata/metadata.ts +26 -24
  236. package/src/components/modal/modal.ts +108 -74
  237. package/src/components/page-layout/page-layout.ts +97 -72
  238. package/src/components/pin-input/pin-input.ts +249 -0
  239. package/src/components/popover/popover.ts +192 -0
  240. package/src/components/radio/radio.ts +8 -13
  241. package/src/components/radio-group/radio-group.ts +45 -21
  242. package/src/components/router/router.ts +73 -50
  243. package/src/components/select/select.ts +41 -80
  244. package/src/components/skeleton/skeleton.ts +14 -14
  245. package/src/components/switch/switch.ts +31 -25
  246. package/src/components/table/data-table.ts +248 -177
  247. package/src/components/table/table.ts +52 -29
  248. package/src/components/tabs/tab-panel.ts +25 -13
  249. package/src/components/tabs/tab.ts +58 -33
  250. package/src/components/tabs/tabs.ts +77 -15
  251. package/src/components/textarea/textarea.ts +63 -15
  252. package/src/components/theme-toggle/theme-toggle.constants.ts +2 -0
  253. package/src/components/theme-toggle/theme-toggle.ts +47 -22
  254. package/src/components/time-picker/time-picker.ts +272 -0
  255. package/src/components/toggle-group/toggle-button.ts +104 -0
  256. package/src/components/toggle-group/toggle-group.ts +148 -0
  257. package/src/components/tooltip/tooltip.ts +286 -0
  258. package/src/components/vertical-nav/vertical-nav-group.ts +57 -18
  259. package/src/components/vertical-nav/vertical-nav-item.ts +35 -12
  260. package/src/styles/globals.css +27 -4
  261. package/src/styles/theme.css +40 -32
  262. package/tsconfig.json +2 -1
  263. package/dist/components/card/card.d.ts +0 -11
  264. package/dist/components/card/card.d.ts.map +0 -1
  265. package/dist/components/card/card.js +0 -54
  266. package/src/components/card/card.ts +0 -53
@@ -0,0 +1,456 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { LitElement, html, css } from "lit";
8
+ import { customElement, property, state } from "lit/decorators.js";
9
+ import { resetStyles } from "../../styles/reset";
10
+ let StCronBuilder = class StCronBuilder extends LitElement {
11
+ constructor() {
12
+ super();
13
+ this.name = "";
14
+ this.value = "";
15
+ this.required = false;
16
+ this._frequency = "weekly";
17
+ this._time = "12:00";
18
+ this._days = "1,3,5";
19
+ this._monthDay = "1";
20
+ this._date = "";
21
+ this._customCron = "0 * * * *";
22
+ this._customCronError = "";
23
+ this._customCronText = "";
24
+ this._defaultValue = "";
25
+ this._internals = this.attachInternals();
26
+ const today = new Date();
27
+ const pad = (n) => n.toString().padStart(2, "0");
28
+ this._date = `${today.getFullYear()}-${pad(today.getMonth() + 1)}-${pad(today.getDate())}`;
29
+ }
30
+ firstUpdated() {
31
+ this._generateOutput();
32
+ this._defaultValue = this.value;
33
+ }
34
+ _translateCron(cron) {
35
+ const parts = cron.trim().split(/\s+/);
36
+ if (parts.length !== 5) {
37
+ return {
38
+ valid: false,
39
+ text: `A cron expression must contain exactly 5 segments (currently ${parts.length}).`,
40
+ };
41
+ }
42
+ const types = ["Minute", "Hour", "Day of Month", "Month", "Day of Week"];
43
+ const bounds = [
44
+ { min: 0, max: 59 }, // Minute
45
+ { min: 0, max: 23 }, // Hour
46
+ { min: 1, max: 31 }, // DOM
47
+ { min: 1, max: 12 }, // Month
48
+ { min: 0, max: 7 }, // DOW
49
+ ];
50
+ for (let i = 0; i < 5; i++) {
51
+ const part = parts[i];
52
+ const type = types[i];
53
+ const bound = bounds[i];
54
+ // Prevent consecutive or hanging symbols like 1- or */
55
+ if (/(^[\/\-\,])|([\/\-\,]$)|([\/\-\,]{2,})/.test(part)) {
56
+ return { valid: false, text: `Invalid formatting in ${type} segment.` };
57
+ }
58
+ // First 3 segments (min, hour, dom) cannot have letters
59
+ if (i < 3 && /[A-Za-z]/.test(part)) {
60
+ return { valid: false, text: `${type} cannot contain letters.` };
61
+ }
62
+ // Last 2 segments can only have specific valid keywords
63
+ if (/[A-Za-z]/.test(part)) {
64
+ const words = part.match(/[A-Za-z]+/g) || [];
65
+ const validWords = i === 3
66
+ ? ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"]
67
+ : ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"];
68
+ for (const word of words) {
69
+ if (!validWords.includes(word.toUpperCase())) {
70
+ return { valid: false, text: `"${word}" is not a valid ${type}.` };
71
+ }
72
+ }
73
+ }
74
+ const numbers = part.match(/\d+/g);
75
+ if (numbers) {
76
+ for (const numStr of numbers) {
77
+ const num = parseInt(numStr, 10);
78
+ if (num < bound.min || num > bound.max) {
79
+ return {
80
+ valid: false,
81
+ text: `${type} values must be between ${bound.min} and ${bound.max}.`,
82
+ };
83
+ }
84
+ }
85
+ }
86
+ }
87
+ const [min, hour, dom, mon, dow] = parts;
88
+ let desc = "Runs ";
89
+ if (min === "*")
90
+ desc += "every minute";
91
+ else if (min.startsWith("*/"))
92
+ desc += `every ${min.substring(2)} minutes`;
93
+ else
94
+ desc += `at minute ${min}`;
95
+ if (hour !== "*") {
96
+ if (hour.startsWith("*/"))
97
+ desc += `, past every ${hour.substring(2)} hours`;
98
+ else
99
+ desc += `, past hour ${hour}`;
100
+ }
101
+ if (dom !== "*") {
102
+ if (dom.startsWith("*/"))
103
+ desc += `, every ${dom.substring(2)} days`;
104
+ else
105
+ desc += `, on day ${dom} of the month`;
106
+ }
107
+ if (mon !== "*") {
108
+ if (mon.startsWith("*/"))
109
+ desc += `, every ${mon.substring(2)} months`;
110
+ else
111
+ desc += `, in month ${mon}`;
112
+ }
113
+ if (dow !== "*") {
114
+ const days = [
115
+ "Sunday",
116
+ "Monday",
117
+ "Tuesday",
118
+ "Wednesday",
119
+ "Thursday",
120
+ "Friday",
121
+ "Saturday",
122
+ "Sunday",
123
+ ];
124
+ let dayStr = dow;
125
+ if (dow.length === 1 && /[0-7]/.test(dow)) {
126
+ dayStr = days[parseInt(dow, 10)];
127
+ }
128
+ else if (dow.includes("-") && /[0-7]-[0-7]/.test(dow)) {
129
+ dayStr = dow
130
+ .split("-")
131
+ .map((d) => days[parseInt(d, 10)])
132
+ .join(" through ");
133
+ }
134
+ desc += `, on ${dayStr}`;
135
+ }
136
+ return { valid: true, text: desc + "." };
137
+ }
138
+ _generateOutput() {
139
+ let output = "";
140
+ this._customCronError = "";
141
+ this._customCronText = "";
142
+ this._internals.setValidity({});
143
+ if (this._frequency === "custom") {
144
+ const analysis = this._translateCron(this._customCron);
145
+ if (!analysis.valid) {
146
+ this._customCronError = analysis.text;
147
+ this._internals.setValidity({ customError: true }, analysis.text);
148
+ }
149
+ else {
150
+ this._customCronText = analysis.text;
151
+ }
152
+ output = this._customCron;
153
+ }
154
+ else if (this._frequency === "one-off") {
155
+ output = `${this._date}T${this._time}`;
156
+ }
157
+ else {
158
+ const [hh, mm] = this._time.split(":");
159
+ const minute = mm ? parseInt(mm, 10).toString() : "0";
160
+ const hour = hh ? parseInt(hh, 10).toString() : "0";
161
+ switch (this._frequency) {
162
+ case "daily":
163
+ output = `${minute} ${hour} * * *`;
164
+ break;
165
+ case "weekly":
166
+ const safeDays = this._days || "1";
167
+ output = `${minute} ${hour} * * ${safeDays}`;
168
+ break;
169
+ case "monthly":
170
+ output = `${minute} ${hour} ${this._monthDay} * *`;
171
+ break;
172
+ }
173
+ }
174
+ this.value = output;
175
+ this._internals.setFormValue(output);
176
+ this.dispatchEvent(new Event("change", { bubbles: true, composed: true }));
177
+ }
178
+ _handleCustomCronInput(e) {
179
+ const inputEl = e.target;
180
+ const sanitized = inputEl.value.replace(/[^0-9A-Za-z\s\*\/\-\,]/g, "");
181
+ if (inputEl.value !== sanitized) {
182
+ inputEl.value = sanitized;
183
+ }
184
+ this._customCron = sanitized;
185
+ this._generateOutput();
186
+ }
187
+ _handleFrequencyChange(e) {
188
+ this._frequency = e.target.value;
189
+ this._generateOutput();
190
+ }
191
+ checkValidity() {
192
+ return this._internals.checkValidity();
193
+ }
194
+ reportValidity() {
195
+ return this._internals.reportValidity();
196
+ }
197
+ formResetCallback() {
198
+ this.value = this._defaultValue;
199
+ this._frequency = "weekly";
200
+ this._generateOutput();
201
+ }
202
+ render() {
203
+ const frequencyOptions = [
204
+ { label: "One-Off Execution", value: "one-off" },
205
+ { label: "Daily", value: "daily" },
206
+ { label: "Weekly", value: "weekly" },
207
+ { label: "Monthly", value: "monthly" },
208
+ { label: "Custom Cron", value: "custom" },
209
+ ];
210
+ const monthDayOptions = Array.from({ length: 31 }, (_, i) => ({
211
+ label: `${i + 1}${i === 0 ? "st" : i === 1 ? "nd" : i === 2 ? "rd" : "th"}`,
212
+ value: String(i + 1),
213
+ }));
214
+ // Calculate which segment the user is currently typing in
215
+ const activeSegmentIndex = Math.min(this._customCron.trimStart().split(/\s+/).length - 1, 4);
216
+ return html `
217
+ <div class="builder-grid">
218
+ <div class="row">
219
+ <st-select
220
+ label="Schedule Type"
221
+ .options=${frequencyOptions}
222
+ .value=${this._frequency}
223
+ @change=${this._handleFrequencyChange}
224
+ ></st-select>
225
+ </div>
226
+
227
+ ${this._frequency === "weekly"
228
+ ? html `
229
+ <div class="row">
230
+ <label>Run on days</label>
231
+ <st-toggle-group
232
+ multiple
233
+ .value=${this._days}
234
+ @change=${(e) => {
235
+ this._days = e.target.value;
236
+ this._generateOutput();
237
+ }}
238
+ >
239
+ <st-toggle-button value="1">Mon</st-toggle-button>
240
+ <st-toggle-button value="2">Tue</st-toggle-button>
241
+ <st-toggle-button value="3">Wed</st-toggle-button>
242
+ <st-toggle-button value="4">Thu</st-toggle-button>
243
+ <st-toggle-button value="5">Fri</st-toggle-button>
244
+ <st-toggle-button value="6">Sat</st-toggle-button>
245
+ <st-toggle-button value="0">Sun</st-toggle-button>
246
+ </st-toggle-group>
247
+ </div>
248
+ `
249
+ : ""}
250
+ ${this._frequency === "monthly"
251
+ ? html `
252
+ <div class="row">
253
+ <st-select
254
+ label="Run on day of month"
255
+ .options=${monthDayOptions}
256
+ .value=${this._monthDay}
257
+ @change=${(e) => {
258
+ this._monthDay = e.target.value;
259
+ this._generateOutput();
260
+ }}
261
+ ></st-select>
262
+ </div>
263
+ `
264
+ : ""}
265
+ ${this._frequency === "one-off"
266
+ ? html `
267
+ <div class="row">
268
+ <label>Execution Date</label>
269
+ <st-calendar
270
+ .value=${this._date}
271
+ @change=${(e) => {
272
+ this._date = e.target.value;
273
+ this._generateOutput();
274
+ }}
275
+ ></st-calendar>
276
+ </div>
277
+ `
278
+ : ""}
279
+ ${this._frequency === "custom"
280
+ ? html `
281
+ <div class="row">
282
+ <st-input
283
+ label="Raw Cron Expression"
284
+ placeholder="*/15 * * * *"
285
+ .value=${this._customCron}
286
+ .error=${this._customCronError}
287
+ ?invalid=${!!this._customCronError}
288
+ @input=${this._handleCustomCronInput}
289
+ ></st-input>
290
+ <div class="cron-segments" aria-hidden="true">
291
+ ${["Minute", "Hour", "Day", "Month", "Weekday"].map((label, i) => html `
292
+ <div class="segment-badge ${activeSegmentIndex === i ? "active" : ""}">
293
+ ${label}
294
+ </div>
295
+ `)}
296
+ </div>
297
+
298
+ ${this._customCronText && !this._customCronError
299
+ ? html `
300
+ <div class="helper-text success-text">
301
+ <strong>Schedule:</strong> ${this._customCronText}
302
+ </div>
303
+ `
304
+ : ""}
305
+ </div>
306
+ `
307
+ : ""}
308
+ ${this._frequency !== "custom"
309
+ ? html `
310
+ <div class="row">
311
+ <st-time-picker
312
+ label="Execution Time"
313
+ .value=${this._time}
314
+ @change=${(e) => {
315
+ this._time = e.target.value;
316
+ this._generateOutput();
317
+ }}
318
+ ></st-time-picker>
319
+ </div>
320
+ `
321
+ : ""}
322
+
323
+ <div class="output-preview">
324
+ <div class="helper-text">Generated Payload</div>
325
+ <code>${this.value}</code>
326
+ </div>
327
+ </div>
328
+ `;
329
+ }
330
+ };
331
+ StCronBuilder.formAssociated = true;
332
+ StCronBuilder.styles = [
333
+ resetStyles,
334
+ css `
335
+ :host {
336
+ display: block;
337
+ background: var(--st-color-surface);
338
+ border: 1px solid var(--st-color-border);
339
+ border-radius: var(--st-radius-lg);
340
+ padding: var(--st-spacing-lg);
341
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
342
+ }
343
+
344
+ .builder-grid {
345
+ display: flex;
346
+ flex-direction: column;
347
+ gap: var(--st-spacing-lg);
348
+ }
349
+
350
+ .row {
351
+ display: flex;
352
+ flex-direction: column;
353
+ gap: var(--st-spacing-xs);
354
+ }
355
+
356
+ label {
357
+ font-size: var(--st-font-size-sm);
358
+ font-weight: 600;
359
+ color: var(--st-color-text);
360
+ }
361
+
362
+ .helper-text {
363
+ font-size: var(--st-font-size-xs);
364
+ color: var(--st-color-text-muted);
365
+ margin-top: 4px;
366
+ }
367
+
368
+ .cron-segments {
369
+ display: flex;
370
+ gap: 4px;
371
+ margin-top: var(--st-spacing-xs);
372
+ margin-bottom: var(--st-spacing-xs);
373
+ }
374
+
375
+ .segment-badge {
376
+ flex: 1;
377
+ text-align: center;
378
+ font-size: 11px;
379
+ padding: 4px;
380
+ background: var(--st-color-surface-muted, #f1f5f9);
381
+ border-radius: var(--st-radius-sm);
382
+ color: var(--st-color-text-muted);
383
+ border: 1px solid var(--st-color-border);
384
+ transition: all 0.2s;
385
+ }
386
+
387
+ .segment-badge.active {
388
+ background: var(--st-color-primary, #eff6ff);
389
+ color: var(--st-color-surface);
390
+ border-color: var(--st-color-primary);
391
+ font-weight: 600;
392
+ }
393
+
394
+ .success-text {
395
+ color: var(--st-color-success, #16a34a);
396
+ }
397
+
398
+ .error-text {
399
+ color: var(--st-color-danger, #dc2626);
400
+ font-weight: 500;
401
+ }
402
+
403
+ .output-preview {
404
+ margin-top: var(--st-spacing-md);
405
+ padding: var(--st-spacing-md);
406
+ background: var(--st-color-surface-muted, #f8fafc);
407
+ border-radius: var(--st-radius-md);
408
+ border: 1px dashed var(--st-color-border);
409
+ }
410
+
411
+ .output-preview code {
412
+ font-family: monospace;
413
+ color: var(--st-color-primary);
414
+ font-weight: bold;
415
+ font-size: var(--st-font-size-lg);
416
+ }
417
+ `,
418
+ ];
419
+ __decorate([
420
+ property({ type: String, reflect: true })
421
+ ], StCronBuilder.prototype, "name", void 0);
422
+ __decorate([
423
+ property({ type: String })
424
+ ], StCronBuilder.prototype, "value", void 0);
425
+ __decorate([
426
+ property({ type: Boolean, reflect: true })
427
+ ], StCronBuilder.prototype, "required", void 0);
428
+ __decorate([
429
+ state()
430
+ ], StCronBuilder.prototype, "_frequency", void 0);
431
+ __decorate([
432
+ state()
433
+ ], StCronBuilder.prototype, "_time", void 0);
434
+ __decorate([
435
+ state()
436
+ ], StCronBuilder.prototype, "_days", void 0);
437
+ __decorate([
438
+ state()
439
+ ], StCronBuilder.prototype, "_monthDay", void 0);
440
+ __decorate([
441
+ state()
442
+ ], StCronBuilder.prototype, "_date", void 0);
443
+ __decorate([
444
+ state()
445
+ ], StCronBuilder.prototype, "_customCron", void 0);
446
+ __decorate([
447
+ state()
448
+ ], StCronBuilder.prototype, "_customCronError", void 0);
449
+ __decorate([
450
+ state()
451
+ ], StCronBuilder.prototype, "_customCronText", void 0);
452
+ StCronBuilder = __decorate([
453
+ customElement("st-cron-builder")
454
+ ], StCronBuilder);
455
+ export { StCronBuilder };
456
+ //# sourceMappingURL=cron-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron-builder.js","sourceRoot":"","sources":["../../../src/components/cron-builder/cron-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare const dividerDirections: readonly ['horizontal', 'vertical'];
2
+ export type DividerDirection = typeof dividerDirections[number];
3
+ export declare const dividerColors: readonly ['default', 'primary', 'border'];
4
+ export type DividerColor = typeof dividerColors[number];
5
+ //# sourceMappingURL=divider.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divider.constants.d.ts","sourceRoot":"","sources":["../../../src/components/divider/divider.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,YAAI,YAAY,EAAE,UAAU,CAAU,CAAC;AACrE,MAAM,MAAM,gBAAgB,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAEhE,eAAO,MAAM,aAAa,YAAI,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAC;AACvE,MAAM,MAAM,YAAY,GAAG,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export const dividerDirections = ['horizontal', 'vertical'];
2
+ export const dividerColors = ['default', 'primary', 'border'];
3
+ //# sourceMappingURL=divider.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divider.constants.js","sourceRoot":"","sources":["../../../src/components/divider/divider.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,YAAY,EAAE,UAAU,CAAU,CAAC;AAGrE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAC"}
@@ -1,10 +1,12 @@
1
1
  import { LitElement } from 'lit';
2
+ import { DividerColor, DividerDirection } from './divider.constants.js';
2
3
  export declare class StDivider extends LitElement {
3
- direction: 'horizontal' | 'vertical';
4
+ direction: DividerDirection;
4
5
  thickness: string;
5
6
  margin: string;
6
- color: 'default' | 'primary' | 'border';
7
+ color: DividerColor;
7
8
  static styles: import("lit").CSSResult[];
9
+ connectedCallback(): void;
8
10
  updated(changedProperties: Map<string, any>): void;
9
11
  render(): import("lit-html").TemplateResult<1>;
10
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"divider.d.ts","sourceRoot":"","sources":["../../../src/components/divider/divider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,qBACa,SAAU,SAAQ,UAAU;IACI,SAAS,EAAE,YAAY,GAAG,UAAU,CAAgB;IACnE,SAAS,SAAS;IAClB,MAAM,SAAO;IACE,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAY;IAE9F,MAAM,CAAC,MAAM,4BAgCX;IAEF,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAM1C;IAED,MAAM,yCAQL;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF"}
1
+ {"version":3,"file":"divider.d.ts","sourceRoot":"","sources":["../../../src/components/divider/divider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAExE,qBACa,SAAU,SAAQ,UAAU;IACI,SAAS,EAAE,gBAAgB,CAAgB;IAC1D,SAAS,SAAS;IAClB,MAAM,SAAO;IACE,KAAK,EAAE,YAAY,CAAY;IAE1E,MAAM,CAAC,MAAM,4BAgCX;IAEF,iBAAiB,SAMhB;IAED,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAa1C;IAED,MAAM,yCAGL;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF"}
@@ -15,20 +15,28 @@ let StDivider = class StDivider extends LitElement {
15
15
  this.margin = '0';
16
16
  this.color = 'border';
17
17
  }
18
+ connectedCallback() {
19
+ super.connectedCallback();
20
+ // Semantic role belongs on the host element
21
+ if (!this.hasAttribute('role')) {
22
+ this.setAttribute('role', 'separator');
23
+ }
24
+ }
18
25
  updated(changedProperties) {
19
26
  super.updated(changedProperties);
20
27
  // Sync properties to CSS variables for dynamic adjustment
21
- this.style.setProperty('--divider-thickness', this.thickness);
22
- this.style.setProperty('--divider-margin', this.margin);
28
+ if (changedProperties.has('thickness') || changedProperties.has('margin')) {
29
+ this.style.setProperty('--divider-thickness', this.thickness);
30
+ this.style.setProperty('--divider-margin', this.margin);
31
+ }
32
+ // Keep native ARIA attributes perfectly synced with our Lit properties
33
+ if (changedProperties.has('direction')) {
34
+ this.setAttribute('aria-orientation', this.direction);
35
+ }
23
36
  }
24
37
  render() {
25
- // Accessibility: Set role and aria-orientation
26
- return html `
27
- <div
28
- role="separator"
29
- aria-orientation="${this.direction === 'horizontal' ? 'horizontal' : 'vertical'}"
30
- ></div>
31
- `;
38
+ // The host element itself is the structural divider. No inner DOM bloat needed.
39
+ return html ``;
32
40
  }
33
41
  };
34
42
  StDivider.styles = [
@@ -80,3 +88,4 @@ StDivider = __decorate([
80
88
  customElement('st-divider')
81
89
  ], StDivider);
82
90
  export { StDivider };
91
+ //# sourceMappingURL=divider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divider.js","sourceRoot":"","sources":["../../../src/components/divider/divider.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAI7C,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,UAAU;IAAlC;;QACsC,cAAS,GAAqB,YAAY,CAAC;QAC1D,cAAS,GAAG,KAAK,CAAC;QAClB,WAAM,GAAG,GAAG,CAAC;QACE,UAAK,GAAiB,QAAQ,CAAC;IA+D5E,CAAC;IA3BC,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,4CAA4C;QAC5C,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,iBAAmC;QACzC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAEjC,0DAA0D;QAC1D,IAAI,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,qBAAqB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9D,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;QAED,uEAAuE;QACvE,IAAI,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,MAAM;QACJ,gFAAgF;QAChF,OAAO,IAAI,CAAA,EAAE,CAAC;IAChB,CAAC;CACF,CAAA;AA7DQ,gBAAM,GAAG;IACd,WAAW;IACX,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6BF;CACF,AAhCY,CAgCX;AArCyC;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;4CAA4C;AAC1D;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CAAmB;AAClB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yCAAc;AACE;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wCAAgC;AAJ/D,SAAS;IADrB,aAAa,CAAC,YAAY,CAAC;GACf,SAAS,CAmErB"}
@@ -1,5 +1,5 @@
1
- import { LitElement, nothing } from 'lit';
2
- export type DrawerPlacement = 'left' | 'right';
1
+ import { LitElement } from "lit";
2
+ export type DrawerPlacement = "left" | "right";
3
3
  export declare class StDrawer extends LitElement {
4
4
  open: boolean;
5
5
  placement: DrawerPlacement;
@@ -8,15 +8,18 @@ export declare class StDrawer extends LitElement {
8
8
  private _currentTranslateX;
9
9
  private _isDragging;
10
10
  static styles: import("lit").CSSResult[];
11
+ updated(changedProperties: Map<string, any>): void;
12
+ disconnectedCallback(): void;
13
+ private _handleKeyDown;
11
14
  private _close;
12
15
  private _handleTouchStart;
13
16
  private _handleTouchMove;
14
17
  private _handleTouchEnd;
15
- render(): typeof nothing | import("lit-html").TemplateResult<1>;
18
+ render(): import("lit-html").TemplateResult<1>;
16
19
  }
17
20
  declare global {
18
21
  interface HTMLElementTagNameMap {
19
- 'st-drawer': StDrawer;
22
+ "st-drawer": StDrawer;
20
23
  }
21
24
  }
22
25
  //# sourceMappingURL=drawer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../../src/components/drawer/drawer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAIrD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,CAAC;AAE/C,qBACa,QAAS,SAAQ,UAAU;IACM,IAAI,UAAS;IACd,SAAS,EAAE,eAAe,CAAU;IACT,UAAU,UAAS;IAEzF,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,WAAW,CAAS;IAE5B,MAAM,CAAC,MAAM,4BAsHX;IAEF,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,eAAe;IAkBvB,MAAM,0DAyBL;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
1
+ {"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../../src/components/drawer/drawer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAY,MAAM,KAAK,CAAC;AAI1C,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,CAAC;AAE/C,qBACa,QAAS,SAAQ,UAAU;IACI,IAAI,UAAS;IACd,SAAS,EAAE,eAAe,CAAU;IACT,UAAU,UAAS;IAEvF,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,WAAW,CAAS;IAE5B,MAAM,CAAC,MAAM,4BAsIX;IAEF,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAa1C;IAED,oBAAoB,SAKnB;IAED,OAAO,CAAC,cAAc,CAIpB;IAEF,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,eAAe;IAmBvB,MAAM,yCAyBL;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}