@warp-ds/elements 2.3.2 → 2.4.0-next.2

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 (244) hide show
  1. package/dist/custom-elements.json +3851 -0
  2. package/dist/index.d.ts +859 -0
  3. package/dist/packages/checkbox/checkbox-group.d.ts +10 -0
  4. package/dist/packages/checkbox/checkbox-group.js +7 -0
  5. package/dist/packages/checkbox/checkbox-group.js.map +7 -0
  6. package/dist/packages/checkbox/checkbox.d.ts +66 -0
  7. package/dist/packages/checkbox/checkbox.js +2591 -0
  8. package/dist/packages/checkbox/checkbox.js.map +7 -0
  9. package/dist/packages/checkbox/checkbox.react.stories.d.ts +12 -0
  10. package/dist/packages/checkbox/checkbox.react.stories.js +10 -0
  11. package/dist/packages/checkbox/checkbox.stories.d.ts +11 -0
  12. package/dist/packages/checkbox/checkbox.stories.js +25 -0
  13. package/dist/packages/checkbox/index.d.ts +2 -0
  14. package/dist/packages/checkbox/index.js +2 -0
  15. package/dist/packages/checkbox/react.d.ts +7 -0
  16. package/dist/packages/checkbox/react.js +20 -0
  17. package/dist/packages/checkbox/styles.d.ts +0 -0
  18. package/dist/packages/checkbox/styles.js +0 -0
  19. package/dist/packages/combobox/combobox.react.stories.d.ts +28 -0
  20. package/dist/packages/combobox/combobox.react.stories.js +90 -0
  21. package/dist/packages/combobox/combobox.stories.d.ts +19 -0
  22. package/dist/packages/combobox/combobox.stories.js +143 -0
  23. package/dist/packages/combobox/index.d.ts +91 -0
  24. package/dist/packages/combobox/index.js +2493 -0
  25. package/dist/packages/combobox/index.js.map +7 -0
  26. package/dist/packages/combobox/locales/da/messages.d.mts +1 -0
  27. package/dist/packages/combobox/locales/da/messages.mjs +1 -0
  28. package/dist/packages/combobox/locales/en/messages.d.mts +1 -0
  29. package/dist/packages/combobox/locales/en/messages.mjs +1 -0
  30. package/dist/packages/combobox/locales/fi/messages.d.mts +1 -0
  31. package/dist/packages/combobox/locales/fi/messages.mjs +1 -0
  32. package/dist/packages/combobox/locales/nb/messages.d.mts +1 -0
  33. package/dist/packages/combobox/locales/nb/messages.mjs +1 -0
  34. package/dist/packages/combobox/locales/sv/messages.d.mts +1 -0
  35. package/dist/packages/combobox/locales/sv/messages.mjs +1 -0
  36. package/dist/packages/combobox/react.d.ts +7 -0
  37. package/dist/packages/combobox/react.js +17 -0
  38. package/dist/packages/combobox/styles.d.ts +1 -0
  39. package/dist/packages/combobox/styles.js +3 -0
  40. package/dist/packages/deadtoggle/dead-toggle.react.stories.d.ts +15 -0
  41. package/dist/packages/deadtoggle/dead-toggle.react.stories.js +34 -0
  42. package/dist/packages/deadtoggle/dead-toggle.stories.d.ts +14 -0
  43. package/dist/packages/deadtoggle/dead-toggle.stories.js +45 -0
  44. package/dist/packages/deadtoggle/dead-toggle.test.d.ts +1 -0
  45. package/dist/packages/deadtoggle/dead-toggle.test.js +9 -0
  46. package/dist/packages/deadtoggle/index.d.ts +17 -0
  47. package/dist/packages/deadtoggle/index.js +2547 -0
  48. package/dist/packages/deadtoggle/index.js.map +7 -0
  49. package/dist/packages/deadtoggle/react.d.ts +2 -0
  50. package/dist/packages/deadtoggle/react.js +11 -0
  51. package/dist/packages/pageindicator/index.d.ts +10 -0
  52. package/dist/packages/pageindicator/index.js +32 -0
  53. package/dist/packages/pageindicator/index.js.map +7 -0
  54. package/dist/packages/pageindicator/pageindicator.react.stories.d.ts +19 -0
  55. package/dist/packages/pageindicator/pageindicator.react.stories.js +20 -0
  56. package/dist/packages/pageindicator/pageindicator.stories.d.ts +32 -0
  57. package/dist/packages/pageindicator/pageindicator.stories.js +71 -0
  58. package/dist/packages/pageindicator/react.d.ts +2 -0
  59. package/dist/packages/pageindicator/react.js +11 -0
  60. package/dist/packages/pageindicator/style.d.ts +1 -0
  61. package/dist/packages/pageindicator/style.js +26 -0
  62. package/dist/packages/pagination/index.d.ts +32 -0
  63. package/dist/packages/pagination/index.js +2500 -0
  64. package/dist/packages/pagination/index.js.map +7 -0
  65. package/dist/packages/pagination/locales/da/messages.d.mts +1 -0
  66. package/dist/packages/pagination/locales/da/messages.mjs +1 -0
  67. package/dist/packages/pagination/locales/en/messages.d.mts +1 -0
  68. package/dist/packages/pagination/locales/en/messages.mjs +1 -0
  69. package/dist/packages/pagination/locales/fi/messages.d.mts +1 -0
  70. package/dist/packages/pagination/locales/fi/messages.mjs +1 -0
  71. package/dist/packages/pagination/locales/nb/messages.d.mts +1 -0
  72. package/dist/packages/pagination/locales/nb/messages.mjs +1 -0
  73. package/dist/packages/pagination/locales/sv/messages.d.mts +1 -0
  74. package/dist/packages/pagination/locales/sv/messages.mjs +1 -0
  75. package/dist/packages/pagination/pagination.react.stories.d.ts +21 -0
  76. package/dist/packages/pagination/pagination.react.stories.js +45 -0
  77. package/dist/packages/pagination/pagination.stories.d.ts +14 -0
  78. package/dist/packages/pagination/pagination.stories.js +56 -0
  79. package/dist/packages/pagination/pagination.test.d.ts +1 -0
  80. package/dist/packages/pagination/pagination.test.js +76 -0
  81. package/dist/packages/pagination/react.d.ts +5 -0
  82. package/dist/packages/pagination/react.js +15 -0
  83. package/dist/packages/pagination/styles.d.ts +1 -0
  84. package/dist/packages/pagination/styles.js +2 -0
  85. package/dist/packages/radio/base-element.d.ts +46 -0
  86. package/dist/packages/radio/base-element.js +100 -0
  87. package/dist/packages/radio/custom-error-validator.d.ts +6 -0
  88. package/dist/packages/radio/custom-error-validator.js +22 -0
  89. package/dist/packages/radio/form-associated-element.d.ts +103 -0
  90. package/dist/packages/radio/form-associated-element.js +282 -0
  91. package/dist/packages/radio/host-styles.d.ts +1 -0
  92. package/dist/packages/radio/host-styles.js +12 -0
  93. package/dist/packages/radio/index.d.ts +2 -0
  94. package/dist/packages/radio/index.js +2 -0
  95. package/dist/packages/radio/invalid.d.ts +8 -0
  96. package/dist/packages/radio/invalid.js +5 -0
  97. package/dist/packages/radio/math.d.ts +1 -0
  98. package/dist/packages/radio/math.js +4 -0
  99. package/dist/packages/radio/radio-group-styles.d.ts +1 -0
  100. package/dist/packages/radio/radio-group-styles.js +59 -0
  101. package/dist/packages/radio/radio-group-styles.js.map +7 -0
  102. package/dist/packages/radio/radio-group.d.ts +72 -0
  103. package/dist/packages/radio/radio-group.js +2648 -0
  104. package/dist/packages/radio/radio-group.js.map +7 -0
  105. package/dist/packages/radio/radio-styles.d.ts +0 -0
  106. package/dist/packages/radio/radio-styles.js +1 -0
  107. package/dist/packages/radio/radio-styles.js.map +7 -0
  108. package/dist/packages/radio/radio.d.ts +38 -0
  109. package/dist/packages/radio/radio.js +2562 -0
  110. package/dist/packages/radio/radio.js.map +7 -0
  111. package/dist/packages/radio/radio.react.stories.d.ts +9 -0
  112. package/dist/packages/radio/radio.react.stories.js +10 -0
  113. package/dist/packages/radio/radio.stories.d.ts +15 -0
  114. package/dist/packages/radio/radio.stories.js +3702 -0
  115. package/dist/packages/radio/radio.stories.js.map +7 -0
  116. package/dist/packages/radio/react.d.ts +9 -0
  117. package/dist/packages/radio/react.js +22 -0
  118. package/dist/packages/radio/required-validator.d.ts +11 -0
  119. package/dist/packages/radio/required-validator.js +34 -0
  120. package/dist/packages/radio/slot.d.ts +20 -0
  121. package/dist/packages/radio/slot.js +71 -0
  122. package/dist/packages/radio/watch.d.ts +26 -0
  123. package/dist/packages/radio/watch.js +39 -0
  124. package/dist/packages/slider/Slider.d.ts +2 -0
  125. package/dist/packages/slider/Slider.js +8 -0
  126. package/dist/packages/slider/SliderThumb.d.ts +2 -0
  127. package/dist/packages/slider/SliderThumb.js +8 -0
  128. package/dist/packages/slider/index.d.ts +2 -0
  129. package/dist/packages/slider/index.js +2 -0
  130. package/dist/packages/slider/locales/da/messages.d.mts +1 -0
  131. package/dist/packages/slider/locales/da/messages.mjs +1 -0
  132. package/dist/packages/slider/locales/en/messages.d.mts +1 -0
  133. package/dist/packages/slider/locales/en/messages.mjs +1 -0
  134. package/dist/packages/slider/locales/fi/messages.d.mts +1 -0
  135. package/dist/packages/slider/locales/fi/messages.mjs +1 -0
  136. package/dist/packages/slider/locales/nb/messages.d.mts +1 -0
  137. package/dist/packages/slider/locales/nb/messages.mjs +1 -0
  138. package/dist/packages/slider/locales/sv/messages.d.mts +1 -0
  139. package/dist/packages/slider/locales/sv/messages.mjs +1 -0
  140. package/dist/packages/slider/oddbird-css-anchor-positioning.d.ts +2 -0
  141. package/dist/packages/slider/oddbird-css-anchor-positioning.js +3 -0
  142. package/dist/packages/slider/react.d.ts +8 -0
  143. package/dist/packages/slider/react.js +20 -0
  144. package/dist/packages/slider/slider-thumb.d.ts +63 -0
  145. package/dist/packages/slider/slider-thumb.js +2748 -0
  146. package/dist/packages/slider/slider-thumb.js.map +7 -0
  147. package/dist/packages/slider/slider.d.ts +55 -0
  148. package/dist/packages/slider/slider.js +2632 -0
  149. package/dist/packages/slider/slider.js.map +7 -0
  150. package/dist/packages/slider/slider.react.stories.d.ts +19 -0
  151. package/dist/packages/slider/slider.react.stories.js +140 -0
  152. package/dist/packages/slider/slider.stories.d.ts +21 -0
  153. package/dist/packages/slider/slider.stories.js +404 -0
  154. package/dist/packages/slider/slider.test.d.ts +4 -0
  155. package/dist/packages/slider/slider.test.js +111 -0
  156. package/dist/packages/slider/styles/w-slider-thumb.styles.d.ts +1 -0
  157. package/dist/packages/slider/styles/w-slider-thumb.styles.js +175 -0
  158. package/dist/packages/slider/styles/w-slider.styles.d.ts +1 -0
  159. package/dist/packages/slider/styles/w-slider.styles.js +148 -0
  160. package/dist/packages/slider/styles.d.ts +1 -0
  161. package/dist/packages/slider/styles.js +2 -0
  162. package/dist/packages/stepindicator/index.d.ts +37 -0
  163. package/dist/packages/stepindicator/index.js +2465 -0
  164. package/dist/packages/stepindicator/index.js.map +7 -0
  165. package/dist/packages/stepindicator/locales/da/messages.d.mts +1 -0
  166. package/dist/packages/stepindicator/locales/da/messages.mjs +1 -0
  167. package/dist/packages/stepindicator/locales/en/messages.d.mts +1 -0
  168. package/dist/packages/stepindicator/locales/en/messages.mjs +1 -0
  169. package/dist/packages/stepindicator/locales/fi/messages.d.mts +1 -0
  170. package/dist/packages/stepindicator/locales/fi/messages.mjs +1 -0
  171. package/dist/packages/stepindicator/locales/nb/messages.d.mts +1 -0
  172. package/dist/packages/stepindicator/locales/nb/messages.mjs +1 -0
  173. package/dist/packages/stepindicator/locales/sv/messages.d.mts +1 -0
  174. package/dist/packages/stepindicator/locales/sv/messages.mjs +1 -0
  175. package/dist/packages/stepindicator/react.d.ts +3 -0
  176. package/dist/packages/stepindicator/react.js +16 -0
  177. package/dist/packages/stepindicator/stepindicator.react.stories.d.ts +15 -0
  178. package/dist/packages/stepindicator/stepindicator.react.stories.js +112 -0
  179. package/dist/packages/stepindicator/stepindicator.stories.d.ts +12 -0
  180. package/dist/packages/stepindicator/stepindicator.stories.js +172 -0
  181. package/dist/packages/stepindicator/styles.d.ts +1 -0
  182. package/dist/packages/stepindicator/styles.js +2 -0
  183. package/dist/packages/switch/index.d.ts +23 -0
  184. package/dist/packages/switch/index.js +2456 -0
  185. package/dist/packages/switch/index.js.map +7 -0
  186. package/dist/packages/switch/react.d.ts +5 -0
  187. package/dist/packages/switch/react.js +15 -0
  188. package/dist/packages/switch/styles.d.ts +1 -0
  189. package/dist/packages/switch/styles.js +2 -0
  190. package/dist/packages/switch/switch.react.stories.d.ts +15 -0
  191. package/dist/packages/switch/switch.react.stories.js +29 -0
  192. package/dist/packages/switch/switch.stories.d.ts +9 -0
  193. package/dist/packages/switch/switch.stories.js +35 -0
  194. package/dist/packages/switch/switch.test.d.ts +1 -0
  195. package/dist/packages/switch/switch.test.js +40 -0
  196. package/dist/packages/tabs/index.d.ts +4 -0
  197. package/dist/packages/tabs/index.js +3 -0
  198. package/dist/packages/tabs/react.d.ts +12 -0
  199. package/dist/packages/tabs/react.js +31 -0
  200. package/dist/packages/tabs/styles.d.ts +1 -0
  201. package/dist/packages/tabs/styles.js +2 -0
  202. package/dist/packages/tabs/tab-panel.d.ts +20 -0
  203. package/dist/packages/tabs/tab-panel.js +51 -0
  204. package/dist/packages/tabs/tab.d.ts +18 -0
  205. package/dist/packages/tabs/tab.js +2464 -0
  206. package/dist/packages/tabs/tab.js.map +7 -0
  207. package/dist/packages/tabs/tabs.d.ts +40 -0
  208. package/dist/packages/tabs/tabs.js +2448 -0
  209. package/dist/packages/tabs/tabs.js.map +7 -0
  210. package/dist/packages/tabs/tabs.react.stories.d.ts +15 -0
  211. package/dist/packages/tabs/tabs.react.stories.js +51 -0
  212. package/dist/packages/tabs/tabs.stories.d.ts +11 -0
  213. package/dist/packages/tabs/tabs.stories.js +93 -0
  214. package/dist/packages/textarea/index.d.ts +1 -0
  215. package/dist/packages/textarea/index.js +1 -0
  216. package/dist/packages/textarea/locales/da/messages.d.mts +1 -0
  217. package/dist/packages/textarea/locales/da/messages.mjs +1 -0
  218. package/dist/packages/textarea/locales/en/messages.d.mts +1 -0
  219. package/dist/packages/textarea/locales/en/messages.mjs +1 -0
  220. package/dist/packages/textarea/locales/fi/messages.d.mts +1 -0
  221. package/dist/packages/textarea/locales/fi/messages.mjs +1 -0
  222. package/dist/packages/textarea/locales/nb/messages.d.mts +1 -0
  223. package/dist/packages/textarea/locales/nb/messages.mjs +1 -0
  224. package/dist/packages/textarea/locales/sv/messages.d.mts +1 -0
  225. package/dist/packages/textarea/locales/sv/messages.mjs +1 -0
  226. package/dist/packages/textarea/react.d.ts +11 -0
  227. package/dist/packages/textarea/react.js +21 -0
  228. package/dist/packages/textarea/styles.d.ts +1 -0
  229. package/dist/packages/textarea/styles.js +2 -0
  230. package/dist/packages/textarea/textarea.d.ts +49 -0
  231. package/dist/packages/textarea/textarea.js +2475 -0
  232. package/dist/packages/textarea/textarea.js.map +7 -0
  233. package/dist/packages/textarea/textarea.react.stories.d.ts +33 -0
  234. package/dist/packages/textarea/textarea.react.stories.js +41 -0
  235. package/dist/packages/textarea/textarea.stories.d.ts +19 -0
  236. package/dist/packages/textarea/textarea.stories.js +85 -0
  237. package/dist/packages/textarea/textarea.test.d.ts +1 -0
  238. package/dist/packages/textarea/textarea.test.js +68 -0
  239. package/dist/packages/toggle-styles.d.ts +1 -0
  240. package/dist/packages/toggle-styles.js +108 -0
  241. package/dist/setup-tests.d.ts +1 -0
  242. package/dist/setup-tests.js +1 -0
  243. package/dist/web-types.json +984 -1
  244. package/package.json +78 -1
@@ -0,0 +1,9 @@
1
+ import { WRadio } from './radio.js';
2
+ import { WRadioGroup } from './radio-group.js';
3
+ export declare const Radio: import("@lit/react").ReactWebComponent<WRadio, {}>;
4
+ export declare const RadioGroup: import("@lit/react").ReactWebComponent<WRadioGroup, {
5
+ onInput: string;
6
+ oninput: string;
7
+ onChange: string;
8
+ onchange: string;
9
+ }>;
@@ -0,0 +1,22 @@
1
+ import { LitElement } from 'lit';
2
+ import React from 'react';
3
+ import { createComponent } from '@lit/react';
4
+ // decouple from CDN by providing a dummy class
5
+ class Component extends LitElement {
6
+ }
7
+ export const Radio = createComponent({
8
+ tagName: 'w-radio',
9
+ elementClass: Component,
10
+ react: React,
11
+ });
12
+ export const RadioGroup = createComponent({
13
+ tagName: 'w-radio-group',
14
+ elementClass: Component,
15
+ react: React,
16
+ events: {
17
+ onInput: 'input',
18
+ oninput: 'input',
19
+ onChange: 'change',
20
+ onchange: 'change',
21
+ },
22
+ });
@@ -0,0 +1,11 @@
1
+ import type { Validator } from './form-associated-element';
2
+ export interface RequiredValidatorOptions {
3
+ /** This is a cheap way for us to get translation strings for the user without having proper translations. */
4
+ validationElement?: HTMLSelectElement | HTMLInputElement;
5
+ /**
6
+ * The property to check if its not null-ish. For most elements this will be "value".
7
+ * For "checkbox" for example it will be "checked"
8
+ */
9
+ validationProperty?: string;
10
+ }
11
+ export declare const RequiredValidator: (options?: RequiredValidatorOptions) => Validator;
@@ -0,0 +1,34 @@
1
+ export const RequiredValidator = (options = {}) => {
2
+ let { validationElement, validationProperty } = options;
3
+ if (!validationElement) {
4
+ validationElement = Object.assign(document.createElement('input'), { required: true });
5
+ }
6
+ if (!validationProperty) {
7
+ validationProperty = 'value';
8
+ }
9
+ const obj = {
10
+ observedAttributes: ['required'],
11
+ message: validationElement.validationMessage, // @TODO: Add a translation.
12
+ checkValidity(element) {
13
+ const validity = {
14
+ message: '',
15
+ isValid: true,
16
+ invalidKeys: [],
17
+ };
18
+ const isRequired = element.required ?? element.hasAttribute('required');
19
+ // Always true if the element isn't required.
20
+ if (!isRequired) {
21
+ return validity;
22
+ }
23
+ const value = element[validationProperty];
24
+ const isEmpty = !value;
25
+ if (isEmpty) {
26
+ validity.message = typeof obj.message === 'function' ? obj.message(element) : obj.message || '';
27
+ validity.isValid = false;
28
+ validity.invalidKeys.push('valueMissing');
29
+ }
30
+ return validity;
31
+ },
32
+ };
33
+ return obj;
34
+ };
@@ -0,0 +1,20 @@
1
+ import type { ReactiveController, ReactiveControllerHost } from 'lit';
2
+ /** A reactive controller that determines when slots exist. */
3
+ export declare class HasSlotController implements ReactiveController {
4
+ host: ReactiveControllerHost & Element;
5
+ slotNames: string[];
6
+ constructor(host: ReactiveControllerHost & Element, ...slotNames: string[]);
7
+ private hasDefaultSlot;
8
+ private hasNamedSlot;
9
+ test(slotName: string): boolean;
10
+ hostConnected(): void;
11
+ hostDisconnected(): void;
12
+ private handleSlotChange;
13
+ }
14
+ /**
15
+ * Given a list of nodes, this function iterates over all of them and returns the concatenated
16
+ * HTML as a string. This is useful for getting the HTML that corresponds to a slot’s assigned nodes (since we can't use slot.innerHTML as an alternative).
17
+ * @param nodes - The list of nodes to iterate over.
18
+ * @param callback - A function that can be used to customize the HTML output for specific types of nodes. If the function returns undefined, the default HTML output will be used.
19
+ */
20
+ export declare function getInnerHTML(nodes: Iterable<Node>, callback?: (node: Node) => string | undefined): string;
@@ -0,0 +1,71 @@
1
+ /** A reactive controller that determines when slots exist. */
2
+ export class HasSlotController {
3
+ constructor(host, ...slotNames) {
4
+ this.slotNames = [];
5
+ this.handleSlotChange = (event) => {
6
+ const slot = event.target;
7
+ if ((this.slotNames.includes('[default]') && !slot.name) || (slot.name && this.slotNames.includes(slot.name))) {
8
+ this.host.requestUpdate();
9
+ }
10
+ };
11
+ (this.host = host).addController(this);
12
+ this.slotNames = slotNames;
13
+ }
14
+ hasDefaultSlot() {
15
+ return [...this.host.childNodes].some((node) => {
16
+ if (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== '') {
17
+ return true;
18
+ }
19
+ if (node.nodeType === Node.ELEMENT_NODE) {
20
+ const el = node;
21
+ const tagName = el.tagName.toLowerCase();
22
+ // Ignore visually hidden elements since they aren't rendered
23
+ if (tagName === 'w-visually-hidden') {
24
+ return false;
25
+ }
26
+ // If it doesn't have a slot attribute, it's part of the default slot
27
+ if (!el.hasAttribute('slot')) {
28
+ return true;
29
+ }
30
+ }
31
+ return false;
32
+ });
33
+ }
34
+ hasNamedSlot(name) {
35
+ return this.host.querySelector(`:scope > [slot="${name}"]`) !== null;
36
+ }
37
+ test(slotName) {
38
+ return slotName === '[default]' ? this.hasDefaultSlot() : this.hasNamedSlot(slotName);
39
+ }
40
+ hostConnected() {
41
+ this.host.shadowRoot?.addEventListener('slotchange', this.handleSlotChange);
42
+ }
43
+ hostDisconnected() {
44
+ this.host.shadowRoot?.removeEventListener('slotchange', this.handleSlotChange);
45
+ }
46
+ }
47
+ /**
48
+ * Given a list of nodes, this function iterates over all of them and returns the concatenated
49
+ * HTML as a string. This is useful for getting the HTML that corresponds to a slot’s assigned nodes (since we can't use slot.innerHTML as an alternative).
50
+ * @param nodes - The list of nodes to iterate over.
51
+ * @param callback - A function that can be used to customize the HTML output for specific types of nodes. If the function returns undefined, the default HTML output will be used.
52
+ */
53
+ export function getInnerHTML(nodes, callback) {
54
+ let html = '';
55
+ for (const node of nodes) {
56
+ if (callback) {
57
+ const customHTML = callback(node);
58
+ if (customHTML !== undefined) {
59
+ html += customHTML;
60
+ continue;
61
+ }
62
+ }
63
+ if (node.nodeType === Node.ELEMENT_NODE) {
64
+ html += node.outerHTML;
65
+ }
66
+ if (node.nodeType === Node.TEXT_NODE) {
67
+ html += node.textContent;
68
+ }
69
+ }
70
+ return html;
71
+ }
@@ -0,0 +1,26 @@
1
+ import type { LitElement } from 'lit';
2
+ type UpdateHandler = (prev?: unknown, next?: unknown) => void;
3
+ type NonUndefined<A> = A extends undefined ? never : A;
4
+ type UpdateHandlerFunctionKeys<T extends object> = {
5
+ [K in keyof T]-?: NonUndefined<T[K]> extends UpdateHandler ? K : never;
6
+ }[keyof T];
7
+ interface WatchOptions {
8
+ /**
9
+ * If true, will only start watching after the initial update/render
10
+ */
11
+ waitUntilFirstUpdate?: boolean;
12
+ }
13
+ /**
14
+ * Runs when observed properties change, e.g. @property or @state, but before the component updates. To wait for an
15
+ * update to complete after a change occurs, use `await this.updateComplete` in the handler. To start watching after the
16
+ * initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.
17
+ *
18
+ * Usage:
19
+ *
20
+ * @watch('propName')
21
+ * handlePropChange(oldValue, newValue) {
22
+ * ...
23
+ * }
24
+ */
25
+ export declare function watch(propertyName: string | string[], options?: WatchOptions): <ElemClass extends LitElement>(proto: ElemClass, decoratedFnName: UpdateHandlerFunctionKeys<ElemClass>) => void;
26
+ export {};
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Runs when observed properties change, e.g. @property or @state, but before the component updates. To wait for an
3
+ * update to complete after a change occurs, use `await this.updateComplete` in the handler. To start watching after the
4
+ * initial update/render, use `{ waitUntilFirstUpdate: true }` or `this.hasUpdated` in the handler.
5
+ *
6
+ * Usage:
7
+ *
8
+ * @watch('propName')
9
+ * handlePropChange(oldValue, newValue) {
10
+ * ...
11
+ * }
12
+ */
13
+ export function watch(propertyName, options) {
14
+ const resolvedOptions = {
15
+ waitUntilFirstUpdate: false,
16
+ ...options,
17
+ };
18
+ return (proto, decoratedFnName) => {
19
+ // @ts-expect-error - update is a protected property
20
+ const { update } = proto;
21
+ const watchedProperties = Array.isArray(propertyName) ? propertyName : [propertyName];
22
+ // @ts-expect-error - update is a protected property
23
+ proto.update = function (changedProps) {
24
+ watchedProperties.forEach((property) => {
25
+ const key = property;
26
+ if (changedProps.has(key)) {
27
+ const oldValue = changedProps.get(key);
28
+ const newValue = this[key];
29
+ if (oldValue !== newValue) {
30
+ if (!resolvedOptions.waitUntilFirstUpdate || this.hasUpdated) {
31
+ this[decoratedFnName](oldValue, newValue);
32
+ }
33
+ }
34
+ }
35
+ });
36
+ update.call(this, changedProps);
37
+ };
38
+ };
39
+ }
@@ -0,0 +1,2 @@
1
+ import { WarpSlider } from './slider.js';
2
+ export declare const Slider: import("@lit/react").ReactWebComponent<WarpSlider, {}>;
@@ -0,0 +1,8 @@
1
+ import { createComponent } from '@lit/react';
2
+ import React from 'react';
3
+ import { WarpSlider } from './slider.js';
4
+ export const Slider = createComponent({
5
+ tagName: 'w-slider',
6
+ elementClass: WarpSlider,
7
+ react: React,
8
+ });
@@ -0,0 +1,2 @@
1
+ import { WarpSliderThumb } from './slider-thumb.js';
2
+ export declare const SliderThumb: import("@lit/react").ReactWebComponent<WarpSliderThumb, {}>;
@@ -0,0 +1,8 @@
1
+ import { createComponent } from '@lit/react';
2
+ import React from 'react';
3
+ import { WarpSliderThumb } from './slider-thumb.js';
4
+ export const SliderThumb = createComponent({
5
+ tagName: 'w-slider-thumb',
6
+ elementClass: WarpSliderThumb,
7
+ react: React,
8
+ });
@@ -0,0 +1,2 @@
1
+ export * from './slider.js';
2
+ export * from './slider-thumb.js';
@@ -0,0 +1,2 @@
1
+ export * from './slider.js';
2
+ export * from './slider-thumb.js';
@@ -0,0 +1 @@
1
+ export const messages: any;
@@ -0,0 +1 @@
1
+ /*eslint-disable*/ export const messages = JSON.parse("{\"slider.error.overlap\":[\"Maksimumværdien må ikke være mindre end minimumværdien\"],\"slider.error.required\":[\"Dette felt er påkrævet\"],\"slider.error.out_of_bounds\":[\"Værdien skal være mellem \",[\"min\"],\" og \",[\"max\"]]}");
@@ -0,0 +1 @@
1
+ export const messages: any;
@@ -0,0 +1 @@
1
+ /*eslint-disable*/ export const messages = JSON.parse("{\"slider.error.overlap\":[\"The maximum value cannot be less than the minimum\"],\"slider.error.required\":[\"This field is required\"],\"slider.error.out_of_bounds\":[\"Value must be between \",[\"min\"],\" and \",[\"max\"]]}");
@@ -0,0 +1 @@
1
+ export const messages: any;
@@ -0,0 +1 @@
1
+ /*eslint-disable*/ export const messages = JSON.parse("{\"slider.error.overlap\":[\"Maksimiarvo ei voi olla pienempi kuin minimiarvo\"],\"slider.error.required\":[\"Tämä kenttä on pakollinen\"],\"slider.error.out_of_bounds\":[\"Arvon on oltava välillä \",[\"min\"],\" - \",[\"max\"]]}");
@@ -0,0 +1 @@
1
+ export const messages: any;
@@ -0,0 +1 @@
1
+ /*eslint-disable*/ export const messages = JSON.parse("{\"slider.error.overlap\":[\"Maksimumsverdien kan ikke være mindre enn minimumsverdien\"],\"slider.error.required\":[\"Dette feltet er påkrevd\"],\"slider.error.out_of_bounds\":[\"Verdien må være mellom \",[\"min\"],\" og \",[\"max\"]]}");
@@ -0,0 +1 @@
1
+ export const messages: any;
@@ -0,0 +1 @@
1
+ /*eslint-disable*/ export const messages = JSON.parse("{\"slider.error.overlap\":[\"Maxvärdet kan inte vara mindre än minimivärdet\"],\"slider.error.required\":[\"Detta fält är obligatoriskt\"],\"slider.error.out_of_bounds\":[\"Värdet måste vara mellan \",[\"min\"],\" och \",[\"max\"]]}");
@@ -0,0 +1,2 @@
1
+ import polyfill from '@oddbird/css-anchor-positioning/fn';
2
+ export default polyfill;
@@ -0,0 +1,3 @@
1
+ // This file is only here to give the Storybook Vite dev server a target
2
+ import polyfill from '@oddbird/css-anchor-positioning/fn';
3
+ export default polyfill;
@@ -0,0 +1,8 @@
1
+ import { EventName } from '@lit/react';
2
+ import { WarpSlider } from './slider.js';
3
+ import { WarpSliderThumb } from './slider-thumb.js';
4
+ export declare const Slider: import("@lit/react").ReactWebComponent<WarpSlider, {}>;
5
+ export declare const SliderThumb: import("@lit/react").ReactWebComponent<WarpSliderThumb, {
6
+ onSliderValidity: EventName<CustomEvent>;
7
+ 'onslider-validity': EventName<CustomEvent>;
8
+ }>;
@@ -0,0 +1,20 @@
1
+ import { LitElement } from 'lit';
2
+ import React from 'react';
3
+ import { createComponent } from '@lit/react';
4
+ // decouple from CDN by providing a dummy class
5
+ class Component extends LitElement {
6
+ }
7
+ export const Slider = createComponent({
8
+ tagName: 'w-slider',
9
+ elementClass: Component,
10
+ react: React,
11
+ });
12
+ export const SliderThumb = createComponent({
13
+ tagName: 'w-slider-thumb',
14
+ elementClass: Component,
15
+ react: React,
16
+ events: {
17
+ onSliderValidity: 'slidervalidity',
18
+ 'onslider-validity': 'slidervalidity', // should be slider-validity
19
+ },
20
+ });
@@ -0,0 +1,63 @@
1
+ import { LitElement, PropertyValues } from 'lit';
2
+ import type { WarpTextField } from '../textfield/index.js';
3
+ declare const WarpSliderThumb_base: import("@open-wc/form-control").Constructor<import("@open-wc/form-control").FormControlInterface> & typeof LitElement;
4
+ /**
5
+ * Component to place inside a `<w-slider>`.
6
+ *
7
+ * [See Storybook for usage examples](https://warp-ds.github.io/elements/?path=/docs/forms-slider-and-range-slider--docs)
8
+ */
9
+ declare class WarpSliderThumb extends WarpSliderThumb_base {
10
+ #private;
11
+ static shadowRootOptions: {
12
+ delegatesFocus: boolean;
13
+ mode: ShadowRootMode;
14
+ serializable?: boolean;
15
+ slotAssignment?: SlotAssignmentMode;
16
+ };
17
+ static styles: import("lit").CSSResult[];
18
+ ariaLabel: string;
19
+ ariaDescription: string;
20
+ label: string;
21
+ name: string;
22
+ value: string;
23
+ disabled: boolean;
24
+ invalid: boolean;
25
+ /** Set by `<w-slider>` */
26
+ allowValuesOutsideRange: boolean;
27
+ /** Set by `<w-slider>` */
28
+ markers: string;
29
+ /** Set by `<w-slider>` */
30
+ required: boolean;
31
+ /** Set by `<w-slider>` */
32
+ step: number;
33
+ /** Set by `<w-slider>` */
34
+ min: string;
35
+ /** Set by `<w-slider>` */
36
+ max: string;
37
+ /** Set by `<w-slider>` */
38
+ suffix: string;
39
+ /** JS hook to help you format the numeric value how you want. */
40
+ formatter: (value: string, type: 'from' | 'to') => string;
41
+ range: HTMLInputElement;
42
+ textfield: WarpTextField;
43
+ /** @internal */
44
+ _showTooltip: boolean;
45
+ /** @internal */
46
+ _inputHasFocus: boolean;
47
+ resetFormControl(): void;
48
+ /**
49
+ * Reference to the anchor positioning style element used by the polyfill.
50
+ * @internal
51
+ */
52
+ anchorPositioningStyleElement: HTMLStyleElement | null;
53
+ updateFieldAfterValidation(): Promise<void>;
54
+ connectedCallback(): Promise<void>;
55
+ get boundaryValue(): string;
56
+ /** Value to display in the textfield (shows boundary when focused on empty value) */
57
+ get textFieldDisplayValue(): string;
58
+ /** Value to display in the tooltip */
59
+ get tooltipDisplayValue(): string | number;
60
+ updated(changedProperties: PropertyValues<this>): void;
61
+ render(): import("lit").TemplateResult<1>;
62
+ }
63
+ export { WarpSliderThumb };