tyrell-components 1.0.0-TC55 → 1.0.0-TC57

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 (248) hide show
  1. package/README.md +53 -53
  2. package/css/tyrell-theme.css +7 -2
  3. package/css/tyrell.css +9 -18
  4. package/dist/tyrell-theme.css +1 -1
  5. package/dist/tyrell.css +1 -1
  6. package/dist/tyrell.js +1 -1
  7. package/lib/base/ty-component.d.ts +17 -0
  8. package/lib/base/ty-component.d.ts.map +1 -0
  9. package/lib/base/ty-component.js +32 -1
  10. package/lib/base/ty-component.js.map +1 -0
  11. package/lib/components/button.d.ts.map +1 -0
  12. package/lib/components/button.js +7 -0
  13. package/lib/components/button.js.map +1 -0
  14. package/lib/components/calendar-month.d.ts.map +1 -0
  15. package/lib/components/calendar-month.js +3 -2
  16. package/lib/components/calendar-month.js.map +1 -0
  17. package/lib/components/calendar-navigation.d.ts +11 -0
  18. package/lib/components/calendar-navigation.d.ts.map +1 -0
  19. package/lib/components/calendar-navigation.js +51 -40
  20. package/lib/components/calendar-navigation.js.map +1 -0
  21. package/lib/components/calendar.d.ts +28 -0
  22. package/lib/components/calendar.d.ts.map +1 -0
  23. package/lib/components/calendar.js +186 -4
  24. package/lib/components/calendar.js.map +1 -0
  25. package/lib/components/checkbox.d.ts +2 -0
  26. package/lib/components/checkbox.d.ts.map +1 -0
  27. package/lib/components/checkbox.js +10 -3
  28. package/lib/components/checkbox.js.map +1 -0
  29. package/lib/components/copy.d.ts.map +1 -0
  30. package/lib/components/copy.js +9 -2
  31. package/lib/components/copy.js.map +1 -0
  32. package/lib/components/date-picker.d.ts +17 -16
  33. package/lib/components/date-picker.d.ts.map +1 -0
  34. package/lib/components/date-picker.js +182 -249
  35. package/lib/components/date-picker.js.map +1 -0
  36. package/lib/components/dropdown.d.ts +403 -0
  37. package/lib/components/dropdown.d.ts.map +1 -0
  38. package/lib/components/dropdown.js +1315 -0
  39. package/lib/components/dropdown.js.map +1 -0
  40. package/lib/components/file-upload.d.ts +6 -0
  41. package/lib/components/file-upload.js +29 -2
  42. package/lib/components/icon.d.ts.map +1 -0
  43. package/lib/components/icon.js.map +1 -0
  44. package/lib/components/input.d.ts +74 -2
  45. package/lib/components/input.d.ts.map +1 -0
  46. package/lib/components/input.js +168 -8
  47. package/lib/components/input.js.map +1 -0
  48. package/lib/components/modal.d.ts +4 -8
  49. package/lib/components/modal.d.ts.map +1 -0
  50. package/lib/components/modal.js +18 -25
  51. package/lib/components/modal.js.map +1 -0
  52. package/lib/components/multiselect.d.ts +389 -0
  53. package/lib/components/multiselect.d.ts.map +1 -0
  54. package/lib/components/multiselect.js +1301 -0
  55. package/lib/components/multiselect.js.map +1 -0
  56. package/lib/components/option.d.ts.map +1 -0
  57. package/lib/components/option.js +5 -0
  58. package/lib/components/option.js.map +1 -0
  59. package/lib/components/popup.d.ts.map +1 -0
  60. package/lib/components/popup.js +19 -4
  61. package/lib/components/popup.js.map +1 -0
  62. package/lib/components/radio.d.ts +17 -0
  63. package/lib/components/radio.js +42 -4
  64. package/lib/components/resize-observer.d.ts.map +1 -0
  65. package/lib/components/resize-observer.js.map +1 -0
  66. package/lib/components/scroll-container.d.ts +3 -2
  67. package/lib/components/scroll-container.d.ts.map +1 -0
  68. package/lib/components/scroll-container.js +5 -8
  69. package/lib/components/scroll-container.js.map +1 -0
  70. package/lib/components/select.d.ts +16 -6
  71. package/lib/components/select.js +73 -19
  72. package/lib/components/selected-tags.d.ts +7 -1
  73. package/lib/components/selected-tags.js +10 -1
  74. package/lib/components/step.d.ts.map +1 -0
  75. package/lib/components/step.js.map +1 -0
  76. package/lib/components/switch.d.ts +2 -0
  77. package/lib/components/switch.js +10 -3
  78. package/lib/components/tab.d.ts +49 -1
  79. package/lib/components/tab.d.ts.map +1 -0
  80. package/lib/components/tab.js +151 -10
  81. package/lib/components/tab.js.map +1 -0
  82. package/lib/components/tabs.d.ts +14 -2
  83. package/lib/components/tabs.d.ts.map +1 -0
  84. package/lib/components/tabs.js +184 -135
  85. package/lib/components/tabs.js.map +1 -0
  86. package/lib/components/tag.d.ts +4 -7
  87. package/lib/components/tag.d.ts.map +1 -0
  88. package/lib/components/tag.js +6 -7
  89. package/lib/components/tag.js.map +1 -0
  90. package/lib/components/textarea.d.ts +8 -3
  91. package/lib/components/textarea.d.ts.map +1 -0
  92. package/lib/components/textarea.js +23 -15
  93. package/lib/components/textarea.js.map +1 -0
  94. package/lib/components/tooltip.d.ts +4 -3
  95. package/lib/components/tooltip.d.ts.map +1 -0
  96. package/lib/components/tooltip.js +34 -24
  97. package/lib/components/tooltip.js.map +1 -0
  98. package/lib/components/wizard.d.ts +5 -4
  99. package/lib/components/wizard.d.ts.map +1 -0
  100. package/lib/components/wizard.js +120 -156
  101. package/lib/components/wizard.js.map +1 -0
  102. package/lib/icons/fontawesome/brands.d.ts.map +1 -0
  103. package/lib/icons/fontawesome/brands.js.map +1 -0
  104. package/lib/icons/fontawesome/regular.d.ts.map +1 -0
  105. package/lib/icons/fontawesome/regular.js.map +1 -0
  106. package/lib/icons/fontawesome/solid.d.ts.map +1 -0
  107. package/lib/icons/fontawesome/solid.js.map +1 -0
  108. package/lib/icons/heroicons/micro.d.ts.map +1 -0
  109. package/lib/icons/heroicons/micro.js.map +1 -0
  110. package/lib/icons/heroicons/mini.d.ts.map +1 -0
  111. package/lib/icons/heroicons/mini.js.map +1 -0
  112. package/lib/icons/heroicons/outline.d.ts.map +1 -0
  113. package/lib/icons/heroicons/outline.js.map +1 -0
  114. package/lib/icons/heroicons/solid.d.ts.map +1 -0
  115. package/lib/icons/heroicons/solid.js.map +1 -0
  116. package/lib/icons/lucide.d.ts.map +1 -0
  117. package/lib/icons/lucide.js.map +1 -0
  118. package/lib/icons/material/filled.d.ts.map +1 -0
  119. package/lib/icons/material/filled.js.map +1 -0
  120. package/lib/icons/material/outlined.d.ts.map +1 -0
  121. package/lib/icons/material/outlined.js.map +1 -0
  122. package/lib/icons/material/round.d.ts.map +1 -0
  123. package/lib/icons/material/round.js.map +1 -0
  124. package/lib/icons/material/sharp.d.ts.map +1 -0
  125. package/lib/icons/material/sharp.js.map +1 -0
  126. package/lib/icons/material/two-tone.d.ts.map +1 -0
  127. package/lib/icons/material/two-tone.js.map +1 -0
  128. package/lib/index.d.ts +1 -1
  129. package/lib/index.d.ts.map +1 -0
  130. package/lib/index.js.map +1 -0
  131. package/lib/styles/button.d.ts.map +1 -0
  132. package/lib/styles/button.js +68 -58
  133. package/lib/styles/button.js.map +1 -0
  134. package/lib/styles/calendar-month.d.ts +3 -0
  135. package/lib/styles/calendar-month.d.ts.map +1 -0
  136. package/lib/styles/calendar-month.js +43 -27
  137. package/lib/styles/calendar-month.js.map +1 -0
  138. package/lib/styles/calendar-navigation.d.ts +1 -1
  139. package/lib/styles/calendar-navigation.d.ts.map +1 -0
  140. package/lib/styles/calendar-navigation.js +55 -26
  141. package/lib/styles/calendar-navigation.js.map +1 -0
  142. package/lib/styles/calendar.d.ts +3 -2
  143. package/lib/styles/calendar.d.ts.map +1 -0
  144. package/lib/styles/calendar.js +74 -0
  145. package/lib/styles/calendar.js.map +1 -0
  146. package/lib/styles/checkbox.js +22 -10
  147. package/lib/styles/copy.d.ts.map +1 -0
  148. package/lib/styles/copy.js +5 -1
  149. package/lib/styles/copy.js.map +1 -0
  150. package/lib/styles/date-picker.d.ts.map +1 -0
  151. package/lib/styles/date-picker.js +53 -23
  152. package/lib/styles/date-picker.js.map +1 -0
  153. package/lib/styles/dropdown.d.ts +12 -0
  154. package/lib/styles/dropdown.d.ts.map +1 -0
  155. package/lib/styles/dropdown.js +725 -0
  156. package/lib/styles/dropdown.js.map +1 -0
  157. package/lib/styles/file-upload.d.ts +1 -1
  158. package/lib/styles/file-upload.js +3 -3
  159. package/lib/styles/icon.d.ts +1 -1
  160. package/lib/styles/icon.d.ts.map +1 -0
  161. package/lib/styles/icon.js +2 -2
  162. package/lib/styles/icon.js.map +1 -0
  163. package/lib/styles/input.d.ts.map +1 -0
  164. package/lib/styles/input.js +1 -1
  165. package/lib/styles/input.js.map +1 -0
  166. package/lib/styles/modal.d.ts.map +1 -0
  167. package/lib/styles/modal.js.map +1 -0
  168. package/lib/styles/multiselect.d.ts +6 -0
  169. package/lib/styles/multiselect.d.ts.map +1 -0
  170. package/lib/styles/multiselect.js +568 -0
  171. package/lib/styles/multiselect.js.map +1 -0
  172. package/lib/styles/option.d.ts +1 -1
  173. package/lib/styles/option.d.ts.map +1 -0
  174. package/lib/styles/option.js +3 -3
  175. package/lib/styles/option.js.map +1 -0
  176. package/lib/styles/popup.d.ts +1 -1
  177. package/lib/styles/popup.d.ts.map +1 -0
  178. package/lib/styles/popup.js +8 -5
  179. package/lib/styles/popup.js.map +1 -0
  180. package/lib/styles/radio.js +10 -4
  181. package/lib/styles/resize-observer.d.ts.map +1 -0
  182. package/lib/styles/resize-observer.js.map +1 -0
  183. package/lib/styles/scroll-container.d.ts +1 -1
  184. package/lib/styles/scroll-container.d.ts.map +1 -0
  185. package/lib/styles/scroll-container.js +1 -1
  186. package/lib/styles/scroll-container.js.map +1 -0
  187. package/lib/styles/select.d.ts +1 -1
  188. package/lib/styles/select.js +6 -0
  189. package/lib/styles/step.d.ts +1 -1
  190. package/lib/styles/step.d.ts.map +1 -0
  191. package/lib/styles/step.js +1 -9
  192. package/lib/styles/step.js.map +1 -0
  193. package/lib/styles/switch.js +6 -3
  194. package/lib/styles/tab.d.ts +1 -1
  195. package/lib/styles/tab.d.ts.map +1 -0
  196. package/lib/styles/tab.js +67 -3
  197. package/lib/styles/tab.js.map +1 -0
  198. package/lib/styles/tabs.d.ts +1 -1
  199. package/lib/styles/tabs.d.ts.map +1 -0
  200. package/lib/styles/tabs.js +7 -3
  201. package/lib/styles/tabs.js.map +1 -0
  202. package/lib/styles/tag.d.ts.map +1 -0
  203. package/lib/styles/tag.js +1 -2
  204. package/lib/styles/tag.js.map +1 -0
  205. package/lib/styles/textarea.d.ts.map +1 -0
  206. package/lib/styles/textarea.js.map +1 -0
  207. package/lib/styles/tooltip.d.ts.map +1 -0
  208. package/lib/styles/tooltip.js.map +1 -0
  209. package/lib/styles/wizard.d.ts +9 -5
  210. package/lib/styles/wizard.d.ts.map +1 -0
  211. package/lib/styles/wizard.js +211 -99
  212. package/lib/styles/wizard.js.map +1 -0
  213. package/lib/types/common.d.ts +2 -2
  214. package/lib/types/common.d.ts.map +1 -0
  215. package/lib/types/common.js.map +1 -0
  216. package/lib/utils/calendar-utils.d.ts.map +1 -0
  217. package/lib/utils/calendar-utils.js.map +1 -0
  218. package/lib/utils/icon-registry.d.ts.map +1 -0
  219. package/lib/utils/icon-registry.js.map +1 -0
  220. package/lib/utils/locale.d.ts.map +1 -0
  221. package/lib/utils/locale.js.map +1 -0
  222. package/lib/utils/number-format.d.ts.map +1 -0
  223. package/lib/utils/number-format.js.map +1 -0
  224. package/lib/utils/parse-boolean.d.ts +39 -0
  225. package/lib/utils/parse-boolean.d.ts.map +1 -0
  226. package/lib/utils/parse-boolean.js +23 -0
  227. package/lib/utils/parse-boolean.js.map +1 -0
  228. package/lib/utils/positioning.d.ts.map +1 -0
  229. package/lib/utils/positioning.js.map +1 -0
  230. package/lib/utils/property-capture.d.ts.map +1 -0
  231. package/lib/utils/property-capture.js.map +1 -0
  232. package/lib/utils/property-manager.d.ts +7 -1
  233. package/lib/utils/property-manager.d.ts.map +1 -0
  234. package/lib/utils/property-manager.js +16 -4
  235. package/lib/utils/property-manager.js.map +1 -0
  236. package/lib/utils/resize-observer.d.ts.map +1 -0
  237. package/lib/utils/resize-observer.js.map +1 -0
  238. package/lib/utils/scroll-lock.d.ts.map +1 -0
  239. package/lib/utils/scroll-lock.js.map +1 -0
  240. package/lib/utils/styles.d.ts.map +1 -0
  241. package/lib/utils/styles.js.map +1 -0
  242. package/lib/utils/validity.d.ts +38 -0
  243. package/lib/utils/validity.js +116 -0
  244. package/lib/version.d.ts +1 -1
  245. package/lib/version.d.ts.map +1 -0
  246. package/lib/version.js +1 -1
  247. package/lib/version.js.map +1 -0
  248. package/package.json +26 -5
@@ -50,14 +50,10 @@ export declare class TyModal extends HTMLElement {
50
50
  static get observedAttributes(): string[];
51
51
  get open(): boolean;
52
52
  set open(v: boolean);
53
- get backdrop(): boolean;
54
- set backdrop(v: boolean);
55
- /** @deprecated Use preventOutsideClick — prevent-* wins when both are set. */
56
- get closeOnOutsideClick(): boolean;
57
- set closeOnOutsideClick(v: boolean);
58
- /** @deprecated Use preventEscape — prevent-* wins when both are set. */
59
- get closeOnEscape(): boolean;
60
- set closeOnEscape(v: boolean);
53
+ get noBackdrop(): boolean;
54
+ set noBackdrop(v: boolean);
55
+ get noZoom(): boolean;
56
+ set noZoom(v: boolean);
61
57
  get preventOutsideClick(): boolean;
62
58
  set preventOutsideClick(v: boolean);
63
59
  get preventEscape(): boolean;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../src/components/modal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAUH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,cAAc,GAAG,QAAQ,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA8dD;;GAEG;AACH,qBAAa,OAAQ,SAAQ,WAAW;IACtC,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;IAElB,0BAA0B;IAC1B,MAAM,KAAK,kBAAkB,aAE5B;;IAOD,iBAAiB;IAQjB,oBAAoB;IAIpB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAI3F"}
@@ -1,4 +1,5 @@
1
1
  import { lockScroll, unlockScroll } from '../utils/scroll-lock.js';
2
+ import { coerceBoolean } from '../utils/property-manager.js';
2
3
  import { ensureStyles } from '../utils/styles.js';
3
4
  import { modalStyles } from '../styles/modal.js';
4
5
  const backdropClickHandlers = new WeakMap();
@@ -22,17 +23,9 @@ return true;
22
23
  function getModalAttributes(el) {
23
24
  return {
24
25
  open: parseBoolAttr(el, 'open'),
25
- backdrop: el.hasAttribute('backdrop') ? parseBoolAttr(el, 'backdrop') : true,
26
- closeOnOutsideClick: parseBoolAttr(el, 'prevent-outside-click')
27
- ? false
28
- : el.hasAttribute('close-on-outside-click')
29
- ? parseBoolAttr(el, 'close-on-outside-click')
30
- : true,
31
- closeOnEscape: parseBoolAttr(el, 'prevent-escape')
32
- ? false
33
- : el.hasAttribute('close-on-escape')
34
- ? parseBoolAttr(el, 'close-on-escape')
35
- : true,
26
+ backdrop: !parseBoolAttr(el, 'no-backdrop'),
27
+ closeOnOutsideClick: !parseBoolAttr(el, 'prevent-outside-click'),
28
+ closeOnEscape: !parseBoolAttr(el, 'prevent-escape'),
36
29
  };
37
30
  }
38
31
  function getModalDialog(shadowRoot) {
@@ -267,6 +260,7 @@ pendingCloseReasons.delete(el);
267
260
  dispatchModalEvent(el, 'close', { reason });
268
261
  }
269
262
  }
263
+ syncBackdropZoom();
270
264
  dialog.onclose = (event) => {
271
265
  if (event.target !== dialog)
272
266
  return;
@@ -282,10 +276,7 @@ syncBackdropZoom();
282
276
  };
283
277
  }
284
278
  function syncBackdropZoom() {
285
- const anyOpen = Array.from(document.querySelectorAll('ty-modal[open][backdrop-zoom], ty-dialog[open][backdrop-zoom]')).some((m) => {
286
- const v = m.getAttribute('backdrop-zoom').toLowerCase().trim();
287
- return v !== 'false' && v !== '0';
288
- });
279
+ const anyOpen = Array.from(document.querySelectorAll('ty-modal[open], ty-dialog[open]')).some((m) => parseBoolAttr(m, 'open') && !parseBoolAttr(m, 'no-zoom'));
289
280
  document.documentElement.classList.toggle('ty-modal-zoom', anyOpen);
290
281
  }
291
282
  function cleanup(el) {
@@ -333,23 +324,25 @@ hoverLeaveHandlers.delete(el);
333
324
  }
334
325
  export class TyModal extends HTMLElement {
335
326
  static get observedAttributes() {
336
- return ['open', 'backdrop', 'close-on-outside-click', 'close-on-escape', 'prevent-outside-click', 'prevent-escape', 'label'];
327
+ return ['open', 'no-backdrop', 'no-zoom', 'prevent-outside-click', 'prevent-escape', 'label'];
337
328
  }
338
329
  get open() { return parseBoolAttr(this, 'open'); }
339
- set open(v) { v ? this.setAttribute('open', 'true') : this.removeAttribute('open'); }
340
- get backdrop() { return getModalAttributes(this).backdrop; }
341
- set backdrop(v) { this.setAttribute('backdrop', String(!!v)); }
342
- get closeOnOutsideClick() { return getModalAttributes(this).closeOnOutsideClick; }
343
- set closeOnOutsideClick(v) { this.setAttribute('close-on-outside-click', String(!!v)); }
344
- get closeOnEscape() { return getModalAttributes(this).closeOnEscape; }
345
- set closeOnEscape(v) { this.setAttribute('close-on-escape', String(!!v)); }
330
+ set open(v) { coerceBoolean(v) ? this.setAttribute('open', 'true') : this.removeAttribute('open'); }
331
+ get noBackdrop() { return parseBoolAttr(this, 'no-backdrop'); }
332
+ set noBackdrop(v) {
333
+ coerceBoolean(v) ? this.setAttribute('no-backdrop', '') : this.removeAttribute('no-backdrop');
334
+ }
335
+ get noZoom() { return parseBoolAttr(this, 'no-zoom'); }
336
+ set noZoom(v) {
337
+ coerceBoolean(v) ? this.setAttribute('no-zoom', '') : this.removeAttribute('no-zoom');
338
+ }
346
339
  get preventOutsideClick() { return parseBoolAttr(this, 'prevent-outside-click'); }
347
340
  set preventOutsideClick(v) {
348
- v ? this.setAttribute('prevent-outside-click', '') : this.removeAttribute('prevent-outside-click');
341
+ coerceBoolean(v) ? this.setAttribute('prevent-outside-click', '') : this.removeAttribute('prevent-outside-click');
349
342
  }
350
343
  get preventEscape() { return parseBoolAttr(this, 'prevent-escape'); }
351
344
  set preventEscape(v) {
352
- v ? this.setAttribute('prevent-escape', '') : this.removeAttribute('prevent-escape');
345
+ coerceBoolean(v) ? this.setAttribute('prevent-escape', '') : this.removeAttribute('prevent-escape');
353
346
  }
354
347
  constructor() {
355
348
  super();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal.js","sourceRoot":"","sources":["../../src/components/modal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,389 @@
1
+ /**
2
+ * TyMultiselect Web Component
3
+ * PORTED FROM: clj/ty/components/multiselect.cljs
4
+ *
5
+ * A multiselect dropdown component using ty-tag for selections with:
6
+ * - Tag-only options (only ty-tag elements supported)
7
+ * - Multiple selection with visual tags
8
+ * - Desktop mode with smart positioning
9
+ * - Mobile mode with full-screen modal
10
+ * - Search and filtering capabilities
11
+ * - Keyboard navigation
12
+ * - Form association for native form submission with multiple values
13
+ * - Scroll locking when dropdown is open
14
+ * - Outside click to close
15
+ *
16
+ * @example
17
+ * ```html
18
+ * <!-- Basic multiselect -->
19
+ * <ty-multiselect label="Skills" placeholder="Select skills" required>
20
+ * <ty-tag value="js">JavaScript</ty-tag>
21
+ * <ty-tag value="ts">TypeScript</ty-tag>
22
+ * <ty-tag value="py">Python</ty-tag>
23
+ * </ty-multiselect>
24
+ *
25
+ * <!-- With pre-selected values -->
26
+ * <ty-multiselect value="js,ts">
27
+ * <ty-tag value="js">JavaScript</ty-tag>
28
+ * <ty-tag value="ts">TypeScript</ty-tag>
29
+ * <ty-tag value="py">Python</ty-tag>
30
+ * </ty-multiselect>
31
+ *
32
+ * <!-- With rich tag content -->
33
+ * <ty-multiselect label="Team Members">
34
+ * <ty-tag value="1" flavor="primary">
35
+ * <div class="flex items-center gap-2">
36
+ * <img src="avatar1.jpg" class="w-6 h-6 rounded-full" />
37
+ * <span>John Doe</span>
38
+ * </div>
39
+ * </ty-tag>
40
+ * </ty-multiselect>
41
+ * ```
42
+ */
43
+ import type { Flavor, Size } from '../types/common.js';
44
+ import { TyComponent } from '../base/ty-component.js';
45
+ import type { PropertyChange } from '../utils/property-manager.js';
46
+ /**
47
+ * Tag data structure
48
+ */
49
+ interface TagData {
50
+ value: string;
51
+ text: string;
52
+ element: HTMLElement;
53
+ }
54
+ /**
55
+ * Component state structure
56
+ */
57
+ interface MultiselectState {
58
+ open: boolean;
59
+ search: string;
60
+ highlightedIndex: number;
61
+ filteredTags: TagData[];
62
+ selectedValues: string[];
63
+ mode: 'desktop' | 'mobile';
64
+ expandedSection: 'selected' | 'available';
65
+ }
66
+ /**
67
+ * Ty Multiselect Component
68
+ */
69
+ export declare class TyMultiselect extends TyComponent<MultiselectState> {
70
+ protected static properties: {
71
+ value: {
72
+ type: "string";
73
+ visual: boolean;
74
+ formValue: boolean;
75
+ emitChange: boolean;
76
+ default: string;
77
+ coerce: (v: any) => string;
78
+ };
79
+ name: {
80
+ type: "string";
81
+ default: string;
82
+ };
83
+ placeholder: {
84
+ type: "string";
85
+ visual: boolean;
86
+ default: string;
87
+ };
88
+ label: {
89
+ type: "string";
90
+ visual: boolean;
91
+ default: string;
92
+ };
93
+ disabled: {
94
+ type: "boolean";
95
+ visual: boolean;
96
+ default: boolean;
97
+ };
98
+ readonly: {
99
+ type: "boolean";
100
+ visual: boolean;
101
+ default: boolean;
102
+ };
103
+ required: {
104
+ type: "boolean";
105
+ visual: boolean;
106
+ default: boolean;
107
+ };
108
+ searchable: {
109
+ type: "boolean";
110
+ visual: boolean;
111
+ default: boolean;
112
+ aliases: {
113
+ 'not-searchable': boolean;
114
+ };
115
+ };
116
+ size: {
117
+ type: "string";
118
+ visual: boolean;
119
+ default: string;
120
+ validate: (v: any) => boolean;
121
+ coerce: (v: any) => any;
122
+ };
123
+ flavor: {
124
+ type: "string";
125
+ visual: boolean;
126
+ default: string;
127
+ validate: (v: any) => boolean;
128
+ coerce: (v: any) => any;
129
+ };
130
+ delay: {
131
+ type: "number";
132
+ default: number;
133
+ validate: (v: any) => boolean;
134
+ coerce: (v: any) => number;
135
+ };
136
+ 'selected-label': {
137
+ type: "string";
138
+ visual: boolean;
139
+ default: string;
140
+ };
141
+ 'available-label': {
142
+ type: "string";
143
+ visual: boolean;
144
+ default: string;
145
+ };
146
+ 'no-selection-message': {
147
+ type: "string";
148
+ visual: boolean;
149
+ default: string;
150
+ };
151
+ 'no-options-message': {
152
+ type: "string";
153
+ visual: boolean;
154
+ default: string;
155
+ };
156
+ };
157
+ private _value;
158
+ private _name;
159
+ private _placeholder;
160
+ private _label;
161
+ private _disabled;
162
+ private _readonly;
163
+ private _required;
164
+ private _searchable;
165
+ private _size;
166
+ private _flavor;
167
+ private _selectedLabel;
168
+ private _availableLabel;
169
+ private _noSelectionMessage;
170
+ private _noOptionsMessage;
171
+ private _state;
172
+ set expandedSection(value: 'selected' | 'available');
173
+ get expandedSection(): 'selected' | 'available';
174
+ private _stubClickHandler;
175
+ private _outsideClickHandler;
176
+ private _tagClickHandler;
177
+ private _tagDismissHandler;
178
+ private _searchInputHandler;
179
+ private _blockSearchClick;
180
+ private _keyboardHandler;
181
+ private _delay;
182
+ private _searchDebounceTimer;
183
+ constructor();
184
+ /**
185
+ * Called when component is connected to DOM
186
+ * TyComponent handles property capture automatically
187
+ */
188
+ protected onConnect(): void;
189
+ /**
190
+ * Called when component is disconnected from DOM
191
+ * Clean up event listeners and timers
192
+ */
193
+ protected onDisconnect(): void;
194
+ /**
195
+ * Called when properties change
196
+ * Handle state synchronization BEFORE render
197
+ */
198
+ protected onPropertiesChanged(changes: PropertyChange[]): void;
199
+ /**
200
+ * Get the form value for this component
201
+ * Returns FormData with multiple entries (HTMX standard)
202
+ */
203
+ protected getFormValue(): FormDataEntryValue | FormData | null;
204
+ /**
205
+ * Parse multiselect value (comma-separated string to array)
206
+ */
207
+ private parseValue;
208
+ /**
209
+ * Initialize component state from attributes
210
+ * Reads from both property and attribute (like ClojureScript version)
211
+ */
212
+ private initializeState;
213
+ /**
214
+ * Get all ty-tag elements from the component (ALL slots)
215
+ */
216
+ private getTagElements;
217
+ /**
218
+ * Extract value and text from a ty-tag element
219
+ */
220
+ private getTagData;
221
+ /**
222
+ * Select a tag - set selected state, move to selected slot, make dismissible
223
+ */
224
+ private selectTag;
225
+ /**
226
+ * Deselect a tag - remove selected state, remove from selected slot, remove dismissible
227
+ */
228
+ private deselectTag;
229
+ /**
230
+ * Get array of currently selected values from tags (ALWAYS reads from DOM)
231
+ */
232
+ private getSelectedValues;
233
+ /**
234
+ * Check if all available tags are selected
235
+ */
236
+ private allTagsSelected;
237
+ /**
238
+ * Sync tag selection states with desired values
239
+ */
240
+ private syncSelectedTags;
241
+ /**
242
+ * Central update function - synchronizes everything
243
+ * Uses TyComponent's property system for proper lifecycle
244
+ */
245
+ private updateComponentValue;
246
+ /**
247
+ * Calculate and set dropdown position with smart direction detection
248
+ */
249
+ private calculatePosition;
250
+ /**
251
+ * Open dropdown dialog (desktop mode)
252
+ * Using <dialog> element - scroll locking handled natively
253
+ */
254
+ private openDropdown;
255
+ /**
256
+ * Close dropdown dialog (desktop mode)
257
+ * Using <dialog> element - scroll unlocking handled natively
258
+ */
259
+ private closeDropdown;
260
+ /**
261
+ * Open mobile modal (mobile mode)
262
+ * Now using <dialog> element for native z-index management
263
+ */
264
+ private openMobileModal;
265
+ /**
266
+ * Close mobile modal (mobile mode)
267
+ * Now using <dialog> element for native management
268
+ */
269
+ private closeMobileModal;
270
+ private handleStubClick;
271
+ private handleOutsideClick;
272
+ private handleTagClick;
273
+ private handleTagDismiss;
274
+ private blockSearchClick;
275
+ private handleSearchInput;
276
+ private handleKeyboard;
277
+ /**
278
+ * Filter tags based on search query
279
+ */
280
+ private filterTags;
281
+ /**
282
+ * Update visibility of tags based on filtered list
283
+ */
284
+ private updateTagVisibility;
285
+ /**
286
+ * Show/hide the dropdown options area
287
+ */
288
+ private updateOptionsVisibility;
289
+ /**
290
+ * Clear all tag highlights
291
+ */
292
+ private clearHighlights;
293
+ /**
294
+ * Highlight tag at specific index
295
+ */
296
+ private highlightTag;
297
+ /**
298
+ * Dispatch search event for external search handling
299
+ * With optional delay/debounce support
300
+ */
301
+ private dispatchSearchEvent;
302
+ /**
303
+ * Fire the actual search event
304
+ */
305
+ private fireSearchEvent;
306
+ /**
307
+ * Dispatch custom change event
308
+ */
309
+ private dispatchChangeEvent;
310
+ /**
311
+ * Main render method (required by TyComponent)
312
+ * Delegates to mode-specific renderer
313
+ */
314
+ protected render(): void;
315
+ /**
316
+ * Setup event listeners
317
+ */
318
+ private setupEventListeners;
319
+ /**
320
+ * Build CSS class list for stub
321
+ */
322
+ private buildStubClasses;
323
+ /**
324
+ * Render desktop mode with dialog
325
+ */
326
+ private renderDesktop;
327
+ /**
328
+ * Render mobile mode with full-screen modal
329
+ * Following dropdown.ts mobile structure
330
+ */
331
+ private renderMobile;
332
+ /**
333
+ * Setup event listeners for mobile mode
334
+ * Using <dialog> element - backdrop clicks handled natively
335
+ */
336
+ private setupMobileEventListeners;
337
+ /**
338
+ * Handle mobile stub click - open modal
339
+ */
340
+ private handleMobileStubClick;
341
+ /**
342
+ * Handle mobile tag click - select and potentially close
343
+ */
344
+ private handleMobileTagClick;
345
+ /**
346
+ * Toggle section expansion (mobile only)
347
+ * Clicking expanded section collapses it and expands the other
348
+ * Clicking collapsed section expands it and collapses the other
349
+ */
350
+ private toggleSection;
351
+ /**
352
+ * Sync section states to DOM without toggle logic
353
+ */
354
+ private syncSectionStates;
355
+ /**
356
+ * Update mobile selected section state (collapsed view, empty states, etc.)
357
+ */
358
+ private updateMobileSelectedState;
359
+ /**
360
+ * Update selection display (show/hide placeholder)
361
+ * Matches dropdown.ts pattern - uses CSS via has-selection class
362
+ */
363
+ private updateSelectionDisplay;
364
+ get value(): string;
365
+ set value(val: string);
366
+ get name(): string;
367
+ set name(val: string);
368
+ get placeholder(): string;
369
+ set placeholder(val: string);
370
+ get label(): string;
371
+ set label(val: string);
372
+ get disabled(): boolean;
373
+ set disabled(value: boolean);
374
+ get readonly(): boolean;
375
+ set readonly(value: boolean);
376
+ get required(): boolean;
377
+ set required(value: boolean);
378
+ get searchable(): boolean;
379
+ set searchable(value: boolean);
380
+ get delay(): number;
381
+ set delay(value: number | string);
382
+ get size(): Size;
383
+ set size(value: Size);
384
+ get flavor(): Flavor;
385
+ set flavor(value: Flavor);
386
+ get form(): HTMLFormElement | null;
387
+ }
388
+ export {};
389
+ //# sourceMappingURL=multiselect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiselect.d.ts","sourceRoot":"","sources":["../../src/components/multiselect.ts"],"names":[],"mappings":"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"}