@easemate/web-kit 0.2.0 → 0.3.1

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 (438) hide show
  1. package/README.md +99 -5
  2. package/build/decorators.cjs +921 -0
  3. package/build/decorators.cjs.map +1 -0
  4. package/build/decorators.d.cts +123 -0
  5. package/build/decorators.d.ts +123 -0
  6. package/build/decorators.js +889 -0
  7. package/build/decorators.js.map +1 -0
  8. package/build/elements.cjs +27604 -0
  9. package/build/elements.cjs.map +1 -0
  10. package/build/elements.d.cts +373 -0
  11. package/build/elements.d.ts +373 -0
  12. package/build/elements.js +27528 -0
  13. package/build/elements.js.map +1 -0
  14. package/build/{elements/monitor/index.d.ts → index-31iOHBv0.d.cts} +26 -5
  15. package/build/{elements/monitor/index.d.cts → index-31iOHBv0.d.ts} +26 -5
  16. package/build/{elements/panel/index.d.cts → index-NzGpn7ai.d.cts} +6 -3
  17. package/build/{elements/panel/index.d.ts → index-NzGpn7ai.d.ts} +6 -3
  18. package/build/{elements/state/index.d.ts → index-qZoNKsHn.d.cts} +46 -5
  19. package/build/{elements/state/index.d.cts → index-qZoNKsHn.d.ts} +46 -5
  20. package/build/index.cjs +38651 -38
  21. package/build/index.cjs.map +1 -0
  22. package/build/index.d.cts +85 -6
  23. package/build/index.d.ts +85 -6
  24. package/build/index.js +38535 -12
  25. package/build/index.js.map +1 -0
  26. package/build/init-B7gNNyTd.d.ts +235 -0
  27. package/build/init-DwVGVxkx.d.cts +235 -0
  28. package/build/jsx.cjs +31 -0
  29. package/build/jsx.cjs.map +1 -0
  30. package/build/jsx.d.cts +317 -0
  31. package/build/jsx.d.ts +317 -0
  32. package/build/jsx.js +6 -0
  33. package/build/jsx.js.map +1 -0
  34. package/build/outside-click-rZ3Di_WX.d.cts +16 -0
  35. package/build/outside-click-rZ3Di_WX.d.ts +16 -0
  36. package/build/react.cjs +37827 -0
  37. package/build/react.cjs.map +1 -0
  38. package/build/react.d.cts +356 -0
  39. package/build/react.d.ts +356 -0
  40. package/build/react.js +37802 -0
  41. package/build/react.js.map +1 -0
  42. package/build/register.cjs +35832 -36
  43. package/build/register.cjs.map +1 -0
  44. package/build/register.d.cts +4 -33
  45. package/build/register.d.ts +4 -33
  46. package/build/register.js +35831 -35
  47. package/build/register.js.map +1 -0
  48. package/build/register.server.cjs +19 -0
  49. package/build/register.server.cjs.map +1 -0
  50. package/build/register.server.d.cts +2 -0
  51. package/build/register.server.d.ts +2 -0
  52. package/build/register.server.js +1 -0
  53. package/build/register.server.js.map +1 -0
  54. package/build/registry-9GX9KTG1.d.cts +264 -0
  55. package/build/registry-9GX9KTG1.d.ts +264 -0
  56. package/build/template-helpers-CguLXtLD.d.cts +10 -0
  57. package/build/template-helpers-CguLXtLD.d.ts +10 -0
  58. package/build/theme.cjs +746 -0
  59. package/build/theme.cjs.map +1 -0
  60. package/build/{theme/index.d.cts → theme.d.cts} +41 -21
  61. package/build/{theme/index.d.ts → theme.d.ts} +41 -21
  62. package/build/theme.js +692 -0
  63. package/build/theme.js.map +1 -0
  64. package/build/utils.cjs +205 -0
  65. package/build/utils.cjs.map +1 -0
  66. package/build/utils.d.cts +26 -0
  67. package/build/utils.d.ts +26 -0
  68. package/build/utils.js +167 -0
  69. package/build/utils.js.map +1 -0
  70. package/package.json +47 -33
  71. package/build/components/code/index.cjs +0 -152
  72. package/build/components/code/index.d.cts +0 -11
  73. package/build/components/code/index.d.ts +0 -11
  74. package/build/components/code/index.js +0 -148
  75. package/build/components/code/utils/highlight-api.cjs +0 -18
  76. package/build/components/code/utils/highlight-api.d.cts +0 -7
  77. package/build/components/code/utils/highlight-api.d.ts +0 -7
  78. package/build/components/code/utils/highlight-api.js +0 -14
  79. package/build/components/code/utils/syntax-grammars.cjs +0 -62
  80. package/build/components/code/utils/syntax-grammars.d.cts +0 -7
  81. package/build/components/code/utils/syntax-grammars.d.ts +0 -7
  82. package/build/components/code/utils/syntax-grammars.js +0 -59
  83. package/build/components/code/utils/syntax-highlighter-theme.cjs +0 -27
  84. package/build/components/code/utils/syntax-highlighter-theme.d.cts +0 -3
  85. package/build/components/code/utils/syntax-highlighter-theme.d.ts +0 -3
  86. package/build/components/code/utils/syntax-highlighter-theme.js +0 -23
  87. package/build/components/code/utils/syntax-highlighter-types.cjs +0 -2
  88. package/build/components/code/utils/syntax-highlighter-types.d.cts +0 -12
  89. package/build/components/code/utils/syntax-highlighter-types.d.ts +0 -12
  90. package/build/components/code/utils/syntax-highlighter-types.js +0 -1
  91. package/build/components/code/utils/syntax-tokenizer.cjs +0 -63
  92. package/build/components/code/utils/syntax-tokenizer.d.cts +0 -3
  93. package/build/components/code/utils/syntax-tokenizer.d.ts +0 -3
  94. package/build/components/code/utils/syntax-tokenizer.js +0 -58
  95. package/build/components/curve/bezier-conversion.cjs +0 -23
  96. package/build/components/curve/bezier-conversion.d.cts +0 -2
  97. package/build/components/curve/bezier-conversion.d.ts +0 -2
  98. package/build/components/curve/bezier-conversion.js +0 -19
  99. package/build/components/curve/canvas-controls.cjs +0 -300
  100. package/build/components/curve/canvas-controls.d.cts +0 -12
  101. package/build/components/curve/canvas-controls.d.ts +0 -12
  102. package/build/components/curve/canvas-controls.js +0 -296
  103. package/build/components/curve/canvas.cjs +0 -1208
  104. package/build/components/curve/canvas.d.cts +0 -24
  105. package/build/components/curve/canvas.d.ts +0 -24
  106. package/build/components/curve/canvas.js +0 -1204
  107. package/build/components/curve/constants.cjs +0 -203
  108. package/build/components/curve/constants.d.cts +0 -23
  109. package/build/components/curve/constants.d.ts +0 -23
  110. package/build/components/curve/constants.js +0 -200
  111. package/build/components/curve/controls.cjs +0 -942
  112. package/build/components/curve/controls.d.cts +0 -37
  113. package/build/components/curve/controls.d.ts +0 -37
  114. package/build/components/curve/controls.js +0 -938
  115. package/build/components/curve/index.cjs +0 -335
  116. package/build/components/curve/index.d.cts +0 -31
  117. package/build/components/curve/index.d.ts +0 -31
  118. package/build/components/curve/index.js +0 -330
  119. package/build/components/curve/output.cjs +0 -141
  120. package/build/components/curve/output.d.cts +0 -19
  121. package/build/components/curve/output.d.ts +0 -19
  122. package/build/components/curve/output.js +0 -137
  123. package/build/components/curve/styles.cjs +0 -493
  124. package/build/components/curve/styles.d.cts +0 -6
  125. package/build/components/curve/styles.d.ts +0 -6
  126. package/build/components/curve/styles.js +0 -490
  127. package/build/components/curve/svg-renderer.cjs +0 -185
  128. package/build/components/curve/svg-renderer.d.cts +0 -9
  129. package/build/components/curve/svg-renderer.d.ts +0 -9
  130. package/build/components/curve/svg-renderer.js +0 -175
  131. package/build/components/curve/toolbar.cjs +0 -368
  132. package/build/components/curve/toolbar.d.cts +0 -26
  133. package/build/components/curve/toolbar.d.ts +0 -26
  134. package/build/components/curve/toolbar.js +0 -364
  135. package/build/components/curve/types.cjs +0 -10
  136. package/build/components/curve/types.d.cts +0 -33
  137. package/build/components/curve/types.d.ts +0 -33
  138. package/build/components/curve/types.js +0 -7
  139. package/build/components/curve/utils.cjs +0 -541
  140. package/build/components/curve/utils.d.cts +0 -33
  141. package/build/components/curve/utils.d.ts +0 -33
  142. package/build/components/curve/utils.js +0 -521
  143. package/build/components/index.cjs +0 -18
  144. package/build/components/index.d.cts +0 -2
  145. package/build/components/index.d.ts +0 -2
  146. package/build/components/index.js +0 -2
  147. package/build/decorators/Component.cjs +0 -127
  148. package/build/decorators/Component.d.cts +0 -28
  149. package/build/decorators/Component.d.ts +0 -28
  150. package/build/decorators/Component.js +0 -123
  151. package/build/decorators/Listen.cjs +0 -154
  152. package/build/decorators/Listen.d.cts +0 -18
  153. package/build/decorators/Listen.d.ts +0 -18
  154. package/build/decorators/Listen.js +0 -151
  155. package/build/decorators/OutsideClick.cjs +0 -64
  156. package/build/decorators/OutsideClick.d.cts +0 -16
  157. package/build/decorators/OutsideClick.d.ts +0 -16
  158. package/build/decorators/OutsideClick.js +0 -59
  159. package/build/decorators/Prop.cjs +0 -273
  160. package/build/decorators/Prop.d.cts +0 -22
  161. package/build/decorators/Prop.d.ts +0 -22
  162. package/build/decorators/Prop.js +0 -270
  163. package/build/decorators/Query.cjs +0 -79
  164. package/build/decorators/Query.d.cts +0 -27
  165. package/build/decorators/Query.d.ts +0 -27
  166. package/build/decorators/Query.js +0 -76
  167. package/build/decorators/Watch.cjs +0 -52
  168. package/build/decorators/Watch.d.cts +0 -11
  169. package/build/decorators/Watch.d.ts +0 -11
  170. package/build/decorators/Watch.js +0 -49
  171. package/build/decorators/index.cjs +0 -15
  172. package/build/decorators/index.d.cts +0 -6
  173. package/build/decorators/index.d.ts +0 -6
  174. package/build/decorators/index.js +0 -6
  175. package/build/elements/button/index.cjs +0 -214
  176. package/build/elements/button/index.d.cts +0 -11
  177. package/build/elements/button/index.d.ts +0 -11
  178. package/build/elements/button/index.js +0 -210
  179. package/build/elements/checkbox/index.cjs +0 -316
  180. package/build/elements/checkbox/index.d.cts +0 -14
  181. package/build/elements/checkbox/index.d.ts +0 -14
  182. package/build/elements/checkbox/index.js +0 -312
  183. package/build/elements/color/index.cjs +0 -154
  184. package/build/elements/color/index.d.cts +0 -18
  185. package/build/elements/color/index.d.ts +0 -18
  186. package/build/elements/color/index.js +0 -150
  187. package/build/elements/color/picker.cjs +0 -544
  188. package/build/elements/color/picker.d.cts +0 -37
  189. package/build/elements/color/picker.d.ts +0 -37
  190. package/build/elements/color/picker.js +0 -540
  191. package/build/elements/color/utils.cjs +0 -235
  192. package/build/elements/color/utils.d.cts +0 -37
  193. package/build/elements/color/utils.d.ts +0 -37
  194. package/build/elements/color/utils.js +0 -218
  195. package/build/elements/dropdown/index.cjs +0 -875
  196. package/build/elements/dropdown/index.d.cts +0 -30
  197. package/build/elements/dropdown/index.d.ts +0 -30
  198. package/build/elements/dropdown/index.js +0 -871
  199. package/build/elements/field/index.cjs +0 -82
  200. package/build/elements/field/index.d.cts +0 -4
  201. package/build/elements/field/index.d.ts +0 -4
  202. package/build/elements/field/index.js +0 -78
  203. package/build/elements/icons/animation/chevron.cjs +0 -57
  204. package/build/elements/icons/animation/chevron.d.cts +0 -10
  205. package/build/elements/icons/animation/chevron.d.ts +0 -10
  206. package/build/elements/icons/animation/chevron.js +0 -53
  207. package/build/elements/icons/animation/clear.cjs +0 -74
  208. package/build/elements/icons/animation/clear.d.cts +0 -3
  209. package/build/elements/icons/animation/clear.d.ts +0 -3
  210. package/build/elements/icons/animation/clear.js +0 -70
  211. package/build/elements/icons/animation/grid.cjs +0 -77
  212. package/build/elements/icons/animation/grid.d.cts +0 -8
  213. package/build/elements/icons/animation/grid.d.ts +0 -8
  214. package/build/elements/icons/animation/grid.js +0 -73
  215. package/build/elements/icons/animation/loading.cjs +0 -68
  216. package/build/elements/icons/animation/loading.d.cts +0 -3
  217. package/build/elements/icons/animation/loading.d.ts +0 -3
  218. package/build/elements/icons/animation/loading.js +0 -64
  219. package/build/elements/icons/animation/snap.cjs +0 -133
  220. package/build/elements/icons/animation/snap.d.cts +0 -8
  221. package/build/elements/icons/animation/snap.d.ts +0 -8
  222. package/build/elements/icons/animation/snap.js +0 -129
  223. package/build/elements/icons/index.cjs +0 -40
  224. package/build/elements/icons/index.d.cts +0 -24
  225. package/build/elements/icons/index.d.ts +0 -24
  226. package/build/elements/icons/index.js +0 -24
  227. package/build/elements/icons/interface/anchor-add.cjs +0 -35
  228. package/build/elements/icons/interface/anchor-add.d.cts +0 -3
  229. package/build/elements/icons/interface/anchor-add.d.ts +0 -3
  230. package/build/elements/icons/interface/anchor-add.js +0 -31
  231. package/build/elements/icons/interface/anchor-remove.cjs +0 -34
  232. package/build/elements/icons/interface/anchor-remove.d.cts +0 -3
  233. package/build/elements/icons/interface/anchor-remove.d.ts +0 -3
  234. package/build/elements/icons/interface/anchor-remove.js +0 -30
  235. package/build/elements/icons/interface/arrow-up.cjs +0 -30
  236. package/build/elements/icons/interface/arrow-up.d.cts +0 -3
  237. package/build/elements/icons/interface/arrow-up.d.ts +0 -3
  238. package/build/elements/icons/interface/arrow-up.js +0 -26
  239. package/build/elements/icons/interface/arrows-vertical.cjs +0 -30
  240. package/build/elements/icons/interface/arrows-vertical.d.cts +0 -3
  241. package/build/elements/icons/interface/arrows-vertical.d.ts +0 -3
  242. package/build/elements/icons/interface/arrows-vertical.js +0 -26
  243. package/build/elements/icons/interface/bezier-angle.cjs +0 -33
  244. package/build/elements/icons/interface/bezier-angle.d.cts +0 -3
  245. package/build/elements/icons/interface/bezier-angle.d.ts +0 -3
  246. package/build/elements/icons/interface/bezier-angle.js +0 -29
  247. package/build/elements/icons/interface/bezier-distribute.cjs +0 -34
  248. package/build/elements/icons/interface/bezier-distribute.d.cts +0 -3
  249. package/build/elements/icons/interface/bezier-distribute.d.ts +0 -3
  250. package/build/elements/icons/interface/bezier-distribute.js +0 -30
  251. package/build/elements/icons/interface/bezier-length.cjs +0 -31
  252. package/build/elements/icons/interface/bezier-length.d.cts +0 -3
  253. package/build/elements/icons/interface/bezier-length.d.ts +0 -3
  254. package/build/elements/icons/interface/bezier-length.js +0 -27
  255. package/build/elements/icons/interface/bezier-mirror.cjs +0 -31
  256. package/build/elements/icons/interface/bezier-mirror.d.cts +0 -3
  257. package/build/elements/icons/interface/bezier-mirror.d.ts +0 -3
  258. package/build/elements/icons/interface/bezier-mirror.js +0 -27
  259. package/build/elements/icons/interface/bezier.cjs +0 -26
  260. package/build/elements/icons/interface/bezier.d.cts +0 -3
  261. package/build/elements/icons/interface/bezier.d.ts +0 -3
  262. package/build/elements/icons/interface/bezier.js +0 -22
  263. package/build/elements/icons/interface/check.cjs +0 -30
  264. package/build/elements/icons/interface/check.d.cts +0 -3
  265. package/build/elements/icons/interface/check.d.ts +0 -3
  266. package/build/elements/icons/interface/check.js +0 -26
  267. package/build/elements/icons/interface/circle-arrow-left.cjs +0 -30
  268. package/build/elements/icons/interface/circle-arrow-left.d.cts +0 -3
  269. package/build/elements/icons/interface/circle-arrow-left.d.ts +0 -3
  270. package/build/elements/icons/interface/circle-arrow-left.js +0 -26
  271. package/build/elements/icons/interface/circle-arrow-right.cjs +0 -30
  272. package/build/elements/icons/interface/circle-arrow-right.d.cts +0 -3
  273. package/build/elements/icons/interface/circle-arrow-right.d.ts +0 -3
  274. package/build/elements/icons/interface/circle-arrow-right.js +0 -26
  275. package/build/elements/icons/interface/code.cjs +0 -30
  276. package/build/elements/icons/interface/code.d.cts +0 -3
  277. package/build/elements/icons/interface/code.d.ts +0 -3
  278. package/build/elements/icons/interface/code.js +0 -26
  279. package/build/elements/icons/interface/dots.cjs +0 -32
  280. package/build/elements/icons/interface/dots.d.cts +0 -3
  281. package/build/elements/icons/interface/dots.d.ts +0 -3
  282. package/build/elements/icons/interface/dots.js +0 -28
  283. package/build/elements/icons/interface/mention.cjs +0 -30
  284. package/build/elements/icons/interface/mention.d.cts +0 -3
  285. package/build/elements/icons/interface/mention.d.ts +0 -3
  286. package/build/elements/icons/interface/mention.js +0 -26
  287. package/build/elements/icons/interface/minus.cjs +0 -30
  288. package/build/elements/icons/interface/minus.d.cts +0 -3
  289. package/build/elements/icons/interface/minus.d.ts +0 -3
  290. package/build/elements/icons/interface/minus.js +0 -26
  291. package/build/elements/icons/interface/picker.cjs +0 -34
  292. package/build/elements/icons/interface/picker.d.cts +0 -3
  293. package/build/elements/icons/interface/picker.d.ts +0 -3
  294. package/build/elements/icons/interface/picker.js +0 -30
  295. package/build/elements/icons/interface/plus.cjs +0 -30
  296. package/build/elements/icons/interface/plus.d.cts +0 -3
  297. package/build/elements/icons/interface/plus.d.ts +0 -3
  298. package/build/elements/icons/interface/plus.js +0 -26
  299. package/build/elements/icons/interface/settings.cjs +0 -30
  300. package/build/elements/icons/interface/settings.d.cts +0 -3
  301. package/build/elements/icons/interface/settings.d.ts +0 -3
  302. package/build/elements/icons/interface/settings.js +0 -26
  303. package/build/elements/index.cjs +0 -65
  304. package/build/elements/index.d.cts +0 -23
  305. package/build/elements/index.d.ts +0 -23
  306. package/build/elements/index.js +0 -23
  307. package/build/elements/input/index.cjs +0 -273
  308. package/build/elements/input/index.d.cts +0 -17
  309. package/build/elements/input/index.d.ts +0 -17
  310. package/build/elements/input/index.js +0 -269
  311. package/build/elements/logo/index.cjs +0 -732
  312. package/build/elements/logo/index.d.cts +0 -17
  313. package/build/elements/logo/index.d.ts +0 -17
  314. package/build/elements/logo/index.js +0 -728
  315. package/build/elements/monitor/fps.cjs +0 -432
  316. package/build/elements/monitor/fps.d.cts +0 -21
  317. package/build/elements/monitor/fps.d.ts +0 -21
  318. package/build/elements/monitor/fps.js +0 -428
  319. package/build/elements/monitor/index.cjs +0 -670
  320. package/build/elements/monitor/index.js +0 -666
  321. package/build/elements/number/index.cjs +0 -173
  322. package/build/elements/number/index.d.cts +0 -19
  323. package/build/elements/number/index.d.ts +0 -19
  324. package/build/elements/number/index.js +0 -169
  325. package/build/elements/origin/index.cjs +0 -169
  326. package/build/elements/origin/index.d.cts +0 -12
  327. package/build/elements/origin/index.d.ts +0 -12
  328. package/build/elements/origin/index.js +0 -165
  329. package/build/elements/panel/index.cjs +0 -496
  330. package/build/elements/panel/index.js +0 -492
  331. package/build/elements/popover/index.cjs +0 -209
  332. package/build/elements/popover/index.d.cts +0 -19
  333. package/build/elements/popover/index.d.ts +0 -19
  334. package/build/elements/popover/index.js +0 -205
  335. package/build/elements/radio/index.cjs +0 -301
  336. package/build/elements/radio/index.d.cts +0 -13
  337. package/build/elements/radio/index.d.ts +0 -13
  338. package/build/elements/radio/index.js +0 -283
  339. package/build/elements/radio/input.cjs +0 -329
  340. package/build/elements/radio/input.d.cts +0 -15
  341. package/build/elements/radio/input.d.ts +0 -15
  342. package/build/elements/radio/input.js +0 -325
  343. package/build/elements/radio/option.cjs +0 -15
  344. package/build/elements/radio/option.d.cts +0 -3
  345. package/build/elements/radio/option.d.ts +0 -3
  346. package/build/elements/radio/option.js +0 -11
  347. package/build/elements/shared.cjs +0 -66
  348. package/build/elements/shared.d.cts +0 -40
  349. package/build/elements/shared.d.ts +0 -40
  350. package/build/elements/shared.js +0 -59
  351. package/build/elements/slider/index.cjs +0 -232
  352. package/build/elements/slider/index.d.cts +0 -20
  353. package/build/elements/slider/index.d.ts +0 -20
  354. package/build/elements/slider/index.js +0 -228
  355. package/build/elements/state/index.cjs +0 -274
  356. package/build/elements/state/index.js +0 -270
  357. package/build/elements/toggle/index.cjs +0 -151
  358. package/build/elements/toggle/index.d.cts +0 -9
  359. package/build/elements/toggle/index.d.ts +0 -9
  360. package/build/elements/toggle/index.js +0 -147
  361. package/build/elements/tooltip/index.cjs +0 -187
  362. package/build/elements/tooltip/index.d.cts +0 -17
  363. package/build/elements/tooltip/index.d.ts +0 -17
  364. package/build/elements/tooltip/index.js +0 -183
  365. package/build/init.cjs +0 -325
  366. package/build/init.d.cts +0 -157
  367. package/build/init.d.ts +0 -157
  368. package/build/init.js +0 -289
  369. package/build/internal/component-loaders.cjs +0 -208
  370. package/build/internal/component-loaders.d.cts +0 -52
  371. package/build/internal/component-loaders.d.ts +0 -52
  372. package/build/internal/component-loaders.js +0 -169
  373. package/build/internal/fonts.cjs +0 -128
  374. package/build/internal/fonts.d.cts +0 -32
  375. package/build/internal/fonts.d.ts +0 -32
  376. package/build/internal/fonts.js +0 -123
  377. package/build/internal/lazy-load.cjs +0 -89
  378. package/build/internal/lazy-load.d.cts +0 -32
  379. package/build/internal/lazy-load.d.ts +0 -32
  380. package/build/internal/lazy-load.js +0 -86
  381. package/build/internal/style-inject.cjs +0 -236
  382. package/build/internal/style-inject.d.cts +0 -44
  383. package/build/internal/style-inject.d.ts +0 -44
  384. package/build/internal/style-inject.js +0 -226
  385. package/build/react/events.cjs +0 -25
  386. package/build/react/events.d.cts +0 -39
  387. package/build/react/events.d.ts +0 -39
  388. package/build/react/events.js +0 -22
  389. package/build/react/index.cjs +0 -19
  390. package/build/react/index.d.cts +0 -13
  391. package/build/react/index.d.ts +0 -13
  392. package/build/react/index.js +0 -12
  393. package/build/react/provider.cjs +0 -134
  394. package/build/react/provider.d.cts +0 -81
  395. package/build/react/provider.d.ts +0 -81
  396. package/build/react/provider.js +0 -98
  397. package/build/react/types.cjs +0 -8
  398. package/build/react/types.d.cts +0 -55
  399. package/build/react/types.d.ts +0 -55
  400. package/build/react/types.js +0 -7
  401. package/build/react/use-ease-state.cjs +0 -129
  402. package/build/react/use-ease-state.d.cts +0 -95
  403. package/build/react/use-ease-state.d.ts +0 -95
  404. package/build/react/use-ease-state.js +0 -126
  405. package/build/react/use-web-kit.cjs +0 -150
  406. package/build/react/use-web-kit.d.cts +0 -80
  407. package/build/react/use-web-kit.d.ts +0 -80
  408. package/build/react/use-web-kit.js +0 -114
  409. package/build/theme/index.cjs +0 -452
  410. package/build/theme/index.js +0 -423
  411. package/build/theme/presets.cjs +0 -54
  412. package/build/theme/presets.d.cts +0 -19
  413. package/build/theme/presets.d.ts +0 -19
  414. package/build/theme/presets.js +0 -51
  415. package/build/theme/registry.cjs +0 -204
  416. package/build/theme/registry.d.cts +0 -99
  417. package/build/theme/registry.d.ts +0 -99
  418. package/build/theme/registry.js +0 -194
  419. package/build/theme/tokens.cjs +0 -148
  420. package/build/theme/tokens.d.cts +0 -163
  421. package/build/theme/tokens.d.ts +0 -163
  422. package/build/theme/tokens.js +0 -145
  423. package/build/utils/dismiss-controller.cjs +0 -77
  424. package/build/utils/dismiss-controller.d.cts +0 -14
  425. package/build/utils/dismiss-controller.d.ts +0 -14
  426. package/build/utils/dismiss-controller.js +0 -73
  427. package/build/utils/index.cjs +0 -18
  428. package/build/utils/index.d.cts +0 -3
  429. package/build/utils/index.d.ts +0 -3
  430. package/build/utils/index.js +0 -3
  431. package/build/utils/outside-click.cjs +0 -82
  432. package/build/utils/outside-click.d.cts +0 -18
  433. package/build/utils/outside-click.d.ts +0 -18
  434. package/build/utils/outside-click.js +0 -74
  435. package/build/utils/template-helpers.cjs +0 -39
  436. package/build/utils/template-helpers.d.cts +0 -13
  437. package/build/utils/template-helpers.d.ts +0 -13
  438. package/build/utils/template-helpers.js +0 -28
@@ -1,165 +0,0 @@
1
- import "../dropdown/index.js";
2
- import { html } from 'lit-html';
3
- import { dispatchControlEvent, setBooleanAttribute } from "../shared.js";
4
- import { Component } from '../../decorators/Component';
5
- import { Listen } from '../../decorators/Listen';
6
- import { Prop } from '../../decorators/Prop';
7
- import { Query } from '../../decorators/Query';
8
- @Component({
9
- tag: 'ease-origin',
10
- styles: `
11
- :host {
12
- display: contents;
13
- }
14
-
15
- [part="container"] {
16
- flex: 1;
17
- width: 100%;
18
- display: grid;
19
- grid-template-columns: 30px auto;
20
- grid-gap: 8px;
21
- }
22
-
23
- [part="preview"] {
24
- width: 30px;
25
- height: 30px;
26
- border-radius: var(--radii-md);
27
- background-color: var(--color-gray-875);
28
- cursor: pointer;
29
- box-shadow: inset 0 1px .25px 0 var(--color-white-4), 0 1px 2.5px 0 var(--color-black-8);
30
- border-radius: var(--radii-md);
31
- position: relative;
32
-
33
- &::before,
34
- &::after {
35
- content: '';
36
- display: block;
37
- width: 3px;
38
- height: 3px;
39
- background-color: var(--color-blue-100);
40
- border-radius: 50%;
41
- position: absolute;
42
- top: 50%;
43
- left: 50%;
44
- margin-top: -1.5px;
45
- margin-left: -1.5px;
46
- }
47
-
48
- &::before {
49
- background-color: var(--color-gray-700);
50
- box-shadow: -6.5px -6.5px 0 0 var(--color-gray-700), 0 -6.5px 0 0 var(--color-gray-700), 6.5px -6.5px 0 0 var(--color-gray-700), -6.5px 0 0 0 var(--color-gray-700), 6.5px 0 0 0 var(--color-gray-700), -6.5px 6.5px 0 0 var(--color-gray-700), 0 6.5px 0 0 var(--color-gray-700), 6.5px 6.5px 0 0 var(--color-gray-700);
51
- }
52
-
53
- &::after {
54
- translate: var(--ease-origin-translate-x, 0) var(--ease-origin-translate-y, 0);
55
- scale: 1.25;
56
- transition: translate 0.3s cubic-bezier(0.25, 0, 0.5, 1);
57
- }
58
-
59
- &:hover {
60
- background-color: var(--color-gray-850);
61
- }
62
-
63
- &:focus-within {
64
- background-color: var(--color-gray-825);
65
- }
66
-
67
- &[data-value="top-left"] {
68
- --ease-origin-translate-x: -6.5px;
69
- --ease-origin-translate-y: -6.5px;
70
- }
71
-
72
- &[data-value="top-center"] {
73
- --ease-origin-translate-x: 0;
74
- --ease-origin-translate-y: -6.5px;
75
- }
76
-
77
- &[data-value="top-right"] {
78
- --ease-origin-translate-x: 6.5px;
79
- --ease-origin-translate-y: -6.5px;
80
- }
81
-
82
- &[data-value="center-left"] {
83
- --ease-origin-translate-x: -6.5px;
84
- --ease-origin-translate-y: 0
85
- }
86
-
87
- &[data-value="center-center"] {
88
- --ease-origin-translate-x: 0;
89
- --ease-origin-translate-y: 0;
90
- }
91
-
92
- &[data-value="center-right"] {
93
- --ease-origin-translate-x: 6.5px;
94
- --ease-origin-translate-y: 0;
95
- }
96
-
97
- &[data-value="bottom-left"] {
98
- --ease-origin-translate-x: -6.5px;
99
- --ease-origin-translate-y: 6.5px;
100
- }
101
-
102
- &[data-value="bottom-center"] {
103
- --ease-origin-translate-x: 0;
104
- --ease-origin-translate-y: 6.5px;
105
- }
106
-
107
- &[data-value="bottom-right"] {
108
- --ease-origin-translate-x: 6.5px;
109
- --ease-origin-translate-y: 6.5px;
110
- }
111
- }
112
-
113
- ease-dropdown[part="dropdown"] {
114
- --ease-dropdown-max-height: 180px;
115
-
116
- width: 100%;
117
- }
118
- `,
119
- template() {
120
- return html `
121
- <div part="container">
122
- <div part="preview" data-value=${this.value ?? 'center-center'}></div>
123
-
124
- <ease-dropdown part="dropdown" placeholder="Select" id="origin-dropdown" .value=${this.value ?? 'center-center'} fullWidth name=${this.name} @value-change=${this.handleValueChange}>
125
- <button slot="content" value="top-left">Top Left</button>
126
- <button slot="content" value="top-center">Top Center</button>
127
- <button slot="content" value="top-right">Top Right</button>
128
- <hr slot="content" />
129
- <button slot="content" value="center-left">Center Left</button>
130
- <button slot="content" value="center-center">Center Center</button>
131
- <button slot="content" value="center-right">Center Right</button>
132
- <hr slot="content" />
133
- <button slot="content" value="bottom-left">Bottom Left</button>
134
- <button slot="content" value="bottom-center">Bottom Center</button>
135
- <button slot="content" value="bottom-right">Bottom Right</button>
136
- </ease-dropdown>
137
- </div>
138
- `;
139
- }
140
- })
141
- export class Origin extends HTMLElement {
142
- @Prop({ reflect: true, defaultValue: 'center-center' })
143
- accessor value = 'center-center';
144
- @Prop({ type: Boolean, reflect: true })
145
- accessor disabled;
146
- @Query('ease-dropdown')
147
- accessor control;
148
- @Prop({ reflect: true, defaultValue: '' })
149
- accessor name = '';
150
- afterRender() {
151
- setBooleanAttribute(this, 'disabled', Boolean(this.disabled));
152
- }
153
- @Listen('change', { selector: 'ease-dropdown' })
154
- handleChange(event, target) {
155
- if (!target) {
156
- return;
157
- }
158
- this.value = String(target.value ?? 'center-center');
159
- dispatchControlEvent(this, 'change', { value: this.value, event });
160
- }
161
- handleValueChange = (event) => {
162
- this.value = String(this.control?.value ?? 'center-center');
163
- dispatchControlEvent(this, 'change', { value: this.value, event });
164
- };
165
- }
@@ -1,496 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Panel = void 0;
4
- const lit_html_1 = require("lit-html");
5
- const shared_1 = require("../shared.cjs");
6
- const Component_1 = require("../../decorators/Component");
7
- const Listen_1 = require("../../decorators/Listen");
8
- const Prop_1 = require("../../decorators/Prop");
9
- const Query_1 = require("../../decorators/Query");
10
- /**
11
- * Panel component - visual container with optional tabs and header actions.
12
- *
13
- * Use this component when you want the panel UI without state management,
14
- * or wrap it around `<ease-state>` for full functionality.
15
- *
16
- * @tag ease-panel
17
- *
18
- * @slot headline - Panel title text (hidden when tabs are present)
19
- * @slot actions - Header action buttons, links, or dropdowns
20
- * @slot - Default slot for main content
21
- * @slot tab-{id} - Tab panel content (use `data-tab-label` for display name)
22
- * @slot footer - Footer content below all panels
23
- *
24
- * @csspart section - Outer container
25
- * @csspart header - Header row containing headline/tabs and actions
26
- * @csspart headline - Title element
27
- * @csspart tabs - Tab button container
28
- * @csspart tab - Individual tab button
29
- * @csspart actions - Actions container
30
- * @csspart content - Content wrapper (handles height animations)
31
- * @csspart body - Inner body container
32
- * @csspart tab-panel - Individual tab panel
33
- * @csspart footer - Footer container
34
- *
35
- * @fires tab-change - Fired when the active tab changes
36
- */
37
- @(0, Component_1.Component)({
38
- tag: 'ease-panel',
39
- shadowMode: 'open',
40
- styles: `
41
- :host {
42
- --ease-panel-transition-duration: 120ms;
43
- --ease-panel-transition-easing: cubic-bezier(.25, 0, .5, 1);
44
- }
45
-
46
- [part="section"] {
47
- display: block;
48
- width: 100%;
49
- max-width: var(--ease-panel-max-width, 332px);
50
- border-radius: var(--ease-panel-radius, 12px);
51
- border: 1px solid var(--ease-panel-border-color, var(--color-white-6));
52
- background-clip: padding-box;
53
- background: var(--ease-panel-background, var(--color-gray-1000));
54
- box-shadow: var(--ease-panel-shadow, 0 0 40px 0 var(--color-white-2) inset);
55
- box-sizing: border-box;
56
- padding: var(--ease-panel-padding, 12px);
57
- margin: auto;
58
- }
59
-
60
- [part="header"] {
61
- display: flex;
62
- align-items: center;
63
- gap: 8px;
64
- width: 100%;
65
- margin-bottom: 12px;
66
- }
67
-
68
- [part="header"]:not(:has([part="headline"] slot[name="headline"]::slotted(*))):not(:has([part="tabs"]:not(:empty))):not(:has([part="actions"] slot[name="actions"]::slotted(*))) {
69
- display: none;
70
- margin-bottom: 0;
71
- }
72
-
73
- [part="headline"] {
74
- font-size: var(--ease-panel-title-font-size, 14px);
75
- font-weight: var(--ease-panel-title-font-weight, 500);
76
- line-height: var(--ease-panel-title-line-height, 24px);
77
- font-family: var(--ease-font-family, "Instrument Sans", sans-serif);
78
- color: var(--ease-panel-title-color, var(--color-blue-100));
79
- margin: 0 0 0 4px;
80
- flex-grow: 1;
81
- text-ellipsis: ellipsis;
82
- overflow: hidden;
83
- white-space: nowrap;
84
- }
85
-
86
- [part="headline"]:has(+ [part="tabs"]:not(:empty)) {
87
- display: none;
88
- }
89
-
90
- [part="tabs"] {
91
- display: flex;
92
- align-items: center;
93
- gap: 2px;
94
- flex-grow: 1;
95
- margin: 0 0 0 4px;
96
- }
97
-
98
- [part="tabs"]:empty {
99
- display: none;
100
- }
101
-
102
- [part="tab"] {
103
- appearance: none;
104
- font-size: var(--ease-panel-tab-font-size, 13px);
105
- font-weight: var(--ease-panel-tab-font-weight, 500);
106
- line-height: var(--ease-panel-tab-line-height, 24px);
107
- font-family: var(--ease-font-family, "Instrument Sans", sans-serif);
108
- color: var(--ease-panel-tab-color, var(--color-gray-600));
109
- background: transparent;
110
- border: none;
111
- padding: 4px 8px;
112
- margin: 0;
113
- cursor: pointer;
114
- border-radius: var(--ease-panel-tab-radius, 6px);
115
- transition: color 0.2s, background-color 0.2s;
116
- }
117
-
118
- [part="tab"]:hover {
119
- color: var(--ease-panel-tab-color-hover, var(--color-blue-100));
120
- }
121
-
122
- [part="tab"][aria-selected="true"] {
123
- color: var(--ease-panel-tab-color-active, var(--color-blue-100));
124
- background: var(--ease-panel-tab-background-active, var(--color-white-4));
125
- }
126
-
127
- [part="actions"] {
128
- display: flex;
129
- align-items: center;
130
- gap: 4px;
131
- margin-left: auto;
132
- }
133
-
134
- slot[name="actions"]::slotted(button),
135
- slot[name="actions"]::slotted(a) {
136
- --ease-icon-size: var(--ease-panel-action-icon-size, 16px);
137
-
138
- appearance: none;
139
- flex: 0 0 24px;
140
- border: none;
141
- outline: none;
142
- background-color: transparent;
143
- padding: 4px;
144
- margin: 0;
145
- cursor: pointer;
146
- color: var(--color-gray-600);
147
- transition: color 0.2s;
148
- text-decoration: none;
149
- display: flex;
150
- align-items: center;
151
- justify-content: center;
152
- }
153
-
154
- slot[name="actions"]::slotted(button:hover),
155
- slot[name="actions"]::slotted(button:focus-visible),
156
- slot[name="actions"]::slotted(a:hover),
157
- slot[name="actions"]::slotted(a:focus-visible) {
158
- color: var(--color-blue-100);
159
- }
160
-
161
- slot[name="actions"]::slotted(ease-dropdown) {
162
- flex: 0 0 auto;
163
- width: auto;
164
-
165
- --ease-icon-size: var(--ease-panel-action-icon-size, 16px);
166
- --ease-dropdown-trigger-padding: 4px;
167
- --ease-dropdown-radius: 6px;
168
- --ease-dropdown-background: transparent;
169
- --ease-dropdown-background-hover: transparent;
170
- --ease-dropdown-shadow: none;
171
- --ease-dropdown-color: var(--color-gray-600);
172
- --ease-popover-placement: bottom-end;
173
- }
174
-
175
- slot[name="actions"]::slotted(ease-dropdown:hover),
176
- slot[name="actions"]::slotted(ease-dropdown:focus-within) {
177
- --ease-dropdown-color: var(--color-blue-100);
178
- }
179
-
180
- [part="content"] {
181
- display: block;
182
- width: 100%;
183
- box-sizing: border-box;
184
- margin: auto;
185
- overflow: hidden;
186
- }
187
-
188
- [part="content"][data-animating="true"] {
189
- transition: height var(--ease-panel-transition-duration) var(--ease-panel-transition-easing);
190
- }
191
-
192
- [part="body"] {
193
- width: 100%;
194
- position: relative;
195
- }
196
-
197
- [part="tab-panel"] {
198
- width: 100%;
199
- pointer-events: none;
200
- display: none;
201
- }
202
-
203
- [part="tab-panel"][data-state="active"] {
204
- display: block;
205
- pointer-events: auto;
206
- }
207
-
208
- [part="tab-panel"][data-state="hidden"] {
209
- display: none;
210
- pointer-events: none;
211
- }
212
-
213
- [part="footer"] {
214
- display: flex;
215
- align-items: center;
216
- justify-content: space-between;
217
- width: 100%;
218
- padding: var(--ease-panel-footer-padding, 12px);
219
- box-sizing: border-box;
220
- border-top: 1px solid var(--color-white-4);
221
-
222
- &:not(:has([data-has-content="true"])) {
223
- display: none;
224
- }
225
- }
226
-
227
- ::slotted(:not([slot])),
228
- ::slotted([slot^="tab-"]) {
229
- display: grid;
230
- gap: 12px;
231
- box-sizing: border-box;
232
- width: 100%;
233
- }
234
- `
235
- })
236
- class Panel extends HTMLElement {
237
- #tabs = [];
238
- #isAnimating = false;
239
- @(0, Prop_1.Prop)({
240
- type: Number,
241
- reflect: true,
242
- attribute: 'active-tab',
243
- defaultValue: 0,
244
- onChange(next, previous) {
245
- const self = this;
246
- if (next !== previous && previous !== undefined) {
247
- self.handleActiveTabChange(previous, next);
248
- }
249
- }
250
- })
251
- accessor activeTab = 0;
252
- /** @internal */
253
- handleActiveTabChange(previous, next) {
254
- this.performTabAnimation(previous, next);
255
- }
256
- @(0, Query_1.Query)('[part="content"]')
257
- accessor contentElement;
258
- @(0, Query_1.Query)('[part="body"]')
259
- accessor bodyElement;
260
- /**
261
- * Get the tab configuration
262
- */
263
- get tabs() {
264
- return this.#tabs;
265
- }
266
- /**
267
- * Switch to a specific tab by index
268
- * @param index - The tab index (0-based)
269
- */
270
- setTab(index) {
271
- if (index >= 0 && index < this.#tabs.length && index !== this.activeTab) {
272
- this.activeTab = index;
273
- }
274
- }
275
- connectedCallback() {
276
- this.#syncTabs();
277
- }
278
- afterRender() {
279
- this.#syncTabs();
280
- }
281
- render() {
282
- const hasTabs = this.#tabs.length > 0;
283
- return (0, lit_html_1.html) `
284
- <section part="section">
285
- <div part="header">
286
- <h3 part="headline"><slot name="headline"></slot></h3>
287
- ${this.#renderTabs()}
288
- <div part="actions">
289
- <slot name="actions"></slot>
290
- </div>
291
- </div>
292
- <div part="content">
293
- <div part="body">
294
- ${hasTabs ? this.#renderTabPanels() : (0, lit_html_1.html) `<slot></slot>`}
295
- </div>
296
- </div>
297
- <div part="footer">
298
- <slot name="footer"></slot>
299
- </div>
300
- </section>
301
- `;
302
- }
303
- #renderTabs() {
304
- if (this.#tabs.length === 0) {
305
- return lit_html_1.nothing;
306
- }
307
- return (0, lit_html_1.html) `
308
- <div part="tabs" role="tablist">
309
- ${this.#tabs.map((tab, index) => (0, lit_html_1.html) `
310
- <button
311
- part="tab"
312
- role="tab"
313
- aria-selected=${index === this.activeTab ? 'true' : 'false'}
314
- aria-controls=${`panel-${tab.id}`}
315
- tabindex=${index === this.activeTab ? 0 : -1}
316
- @click=${(e) => this.#handleTabClick(index, tab.id, e)}
317
- @keydown=${(e) => this.#handleTabKeydown(e, index)}
318
- >
319
- ${tab.label}
320
- </button>
321
- `)}
322
- </div>
323
- `;
324
- }
325
- #renderTabPanels() {
326
- return (0, lit_html_1.html) `
327
- ${this.#tabs.map((tab, index) => (0, lit_html_1.html) `
328
- <div
329
- part="tab-panel"
330
- role="tabpanel"
331
- id=${`panel-${tab.id}`}
332
- aria-labelledby=${`tab-${tab.id}`}
333
- data-state=${index === this.activeTab ? 'active' : 'hidden'}
334
- data-index=${index}
335
- >
336
- <slot name=${`tab-${tab.id}`}></slot>
337
- </div>
338
- `)}
339
- `;
340
- }
341
- #handleTabClick(index, id, event) {
342
- if (index === this.activeTab) {
343
- return;
344
- }
345
- this.activeTab = index;
346
- this.dispatchEvent(new CustomEvent('tab-change', {
347
- detail: { index, id, event },
348
- bubbles: true,
349
- composed: true
350
- }));
351
- }
352
- #handleTabKeydown(event, currentIndex) {
353
- let newIndex = currentIndex;
354
- switch (event.key) {
355
- case 'ArrowLeft':
356
- event.preventDefault();
357
- newIndex = currentIndex > 0 ? currentIndex - 1 : this.#tabs.length - 1;
358
- break;
359
- case 'ArrowRight':
360
- event.preventDefault();
361
- newIndex = currentIndex < this.#tabs.length - 1 ? currentIndex + 1 : 0;
362
- break;
363
- case 'Home':
364
- event.preventDefault();
365
- newIndex = 0;
366
- break;
367
- case 'End':
368
- event.preventDefault();
369
- newIndex = this.#tabs.length - 1;
370
- break;
371
- default:
372
- return;
373
- }
374
- if (newIndex !== currentIndex) {
375
- this.activeTab = newIndex;
376
- // Focus the new tab button
377
- queueMicrotask(() => {
378
- const tabButtons = this.shadowRoot?.querySelectorAll('[part="tab"]');
379
- const newTabButton = tabButtons?.[newIndex];
380
- newTabButton?.focus();
381
- });
382
- }
383
- }
384
- async performTabAnimation(fromIndex, toIndex) {
385
- if (this.#isAnimating) {
386
- return;
387
- }
388
- this.#isAnimating = true;
389
- const duration = 120;
390
- const easing = 'cubic-bezier(.25, 0, .5, 1)';
391
- const content = this.contentElement;
392
- if (!content) {
393
- this.#isAnimating = false;
394
- this.requestRender();
395
- return;
396
- }
397
- // Get the panels by data-index attribute for reliability
398
- const fromPanel = this.shadowRoot?.querySelector(`[part="tab-panel"][data-index="${fromIndex}"]`);
399
- const toPanel = this.shadowRoot?.querySelector(`[part="tab-panel"][data-index="${toIndex}"]`);
400
- if (!fromPanel || !toPanel) {
401
- this.#isAnimating = false;
402
- this.requestRender();
403
- return;
404
- }
405
- // Lock the current height
406
- const startHeight = content.getBoundingClientRect().height;
407
- content.style.height = `${startHeight}px`;
408
- // FIX: Ensure the new panel is hidden immediately.
409
- toPanel.style.display = 'none';
410
- toPanel.style.opacity = '0';
411
- // Fade out old content via WAAPI
412
- try {
413
- const fadeOut = fromPanel.animate([{ opacity: 1 }, { opacity: 0 }], { duration, easing, fill: 'forwards' });
414
- await fadeOut.finished;
415
- fadeOut.cancel();
416
- }
417
- catch {
418
- // ignore
419
- }
420
- fromPanel.setAttribute('data-state', 'hidden');
421
- // Prepare and measure new panel while completely invisible
422
- const previousToState = toPanel.getAttribute('data-state');
423
- toPanel.style.display = 'block';
424
- toPanel.style.visibility = 'hidden';
425
- toPanel.style.opacity = '0';
426
- // Force layout, then measure
427
- void toPanel.offsetHeight;
428
- const endHeight = toPanel.getBoundingClientRect().height;
429
- // Animate height
430
- if (startHeight !== endHeight) {
431
- content.setAttribute('data-animating', 'true');
432
- void content.offsetHeight;
433
- content.style.height = `${endHeight}px`;
434
- await this.#wait(duration);
435
- }
436
- // Show panel but keep opacity at 0, then fade in
437
- toPanel.style.visibility = 'visible';
438
- toPanel.style.opacity = '0';
439
- void toPanel.offsetHeight;
440
- try {
441
- const fadeIn = toPanel.animate([{ opacity: 0 }, { opacity: 1 }], { duration, easing, fill: 'forwards' });
442
- await fadeIn.finished;
443
- fadeIn.cancel();
444
- }
445
- catch {
446
- // ignore
447
- }
448
- // Finalize new tab state and cleanup
449
- toPanel.style.display = '';
450
- toPanel.style.visibility = '';
451
- toPanel.style.opacity = '';
452
- if (previousToState !== 'active') {
453
- toPanel.setAttribute('data-state', 'active');
454
- }
455
- content.style.height = '';
456
- content.removeAttribute('data-animating');
457
- this.#isAnimating = false;
458
- }
459
- #wait(ms) {
460
- return new Promise((resolve) => setTimeout(resolve, ms));
461
- }
462
- #syncTabs() {
463
- const tabs = [];
464
- for (const child of Array.from(this.children)) {
465
- const slot = child.getAttribute('slot');
466
- if (slot?.startsWith('tab-')) {
467
- const id = slot.replace('tab-', '');
468
- const label = child.getAttribute('data-tab-label') || id;
469
- tabs.push({ id, label });
470
- }
471
- }
472
- this.#tabs = tabs.slice(0, 3);
473
- if (this.activeTab >= this.#tabs.length && this.#tabs.length > 0) {
474
- this.activeTab = 0;
475
- }
476
- }
477
- @(0, Listen_1.Listen)('slotchange', { selector: 'slot[name="footer"]' })
478
- onFooterSlotChange() {
479
- this.updateFooterAttribute();
480
- }
481
- @(0, Listen_1.Listen)('slotchange', { selector: 'slot:not([name])' })
482
- onDefaultSlotChange() {
483
- this.#syncTabs();
484
- this.requestRender();
485
- }
486
- updateFooterAttribute() {
487
- const footer = this.shadowRoot?.querySelector('[part="footer"]');
488
- if (!footer) {
489
- return;
490
- }
491
- const footerSlot = this.shadowRoot?.querySelector('slot[name="footer"]');
492
- const hasFooter = Boolean(footerSlot?.assignedNodes({ flatten: true }).length > 0);
493
- (0, shared_1.setBooleanAttribute)(footer, 'data-has-content', hasFooter);
494
- }
495
- }
496
- exports.Panel = Panel;