@flitsmeister/design-system 3.0.2 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/README.md +93 -1
  2. package/dist/ce/dom.d.ts +2 -0
  3. package/dist/ce/dom.d.ts.map +1 -0
  4. package/dist/ce/dom.js +11 -0
  5. package/dist/ce/dom.js.map +1 -0
  6. package/dist/ce/implicit-form-submit.d.ts +2 -0
  7. package/dist/ce/implicit-form-submit.d.ts.map +1 -0
  8. package/dist/ce/implicit-form-submit.js +27 -0
  9. package/dist/ce/implicit-form-submit.js.map +1 -0
  10. package/dist/fm-button/fm-button.d.ts +4 -1
  11. package/dist/fm-button/fm-button.d.ts.map +1 -1
  12. package/dist/fm-button/fm-button.js +4 -1
  13. package/dist/fm-button/fm-button.js.map +1 -1
  14. package/dist/fm-button/fm-button.style.js +7 -7
  15. package/dist/fm-dropdown/fm-dropdown.style.js +6 -6
  16. package/dist/fm-icon/fm-icon.style.js +4 -4
  17. package/dist/fm-input/fm-input.d.ts +21 -3
  18. package/dist/fm-input/fm-input.d.ts.map +1 -1
  19. package/dist/fm-input/fm-input.js +25 -6
  20. package/dist/fm-input/fm-input.js.map +1 -1
  21. package/dist/fm-input/fm-input.style.js +7 -7
  22. package/dist/fm-radio-input/fm-radio-input.style.js +4 -4
  23. package/dist/fm-segmented-controller/fm-segmented-controller.style.d.ts.map +1 -1
  24. package/dist/fm-segmented-controller/fm-segmented-controller.style.js +7 -8
  25. package/dist/fm-segmented-controller/fm-segmented-controller.style.js.map +1 -1
  26. package/dist/fm-wizard/fm-wizard.style.js +5 -5
  27. package/dist/react/ce.d.ts +14 -0
  28. package/dist/react/ce.d.ts.map +1 -0
  29. package/dist/react/ce.js +43 -0
  30. package/dist/react/ce.js.map +1 -0
  31. package/dist/react/fm-button.d.ts +27 -0
  32. package/dist/react/fm-button.d.ts.map +1 -0
  33. package/dist/react/fm-button.js +26 -0
  34. package/dist/react/fm-button.js.map +1 -0
  35. package/dist/react/fm-dropdown.d.ts +13 -0
  36. package/dist/react/fm-dropdown.d.ts.map +1 -0
  37. package/dist/react/fm-dropdown.js +19 -0
  38. package/dist/react/fm-dropdown.js.map +1 -0
  39. package/dist/react/fm-icon.d.ts +11 -0
  40. package/dist/react/fm-icon.d.ts.map +1 -0
  41. package/dist/react/fm-icon.js +13 -0
  42. package/dist/react/fm-icon.js.map +1 -0
  43. package/dist/react/fm-input.d.ts +30 -0
  44. package/dist/react/fm-input.d.ts.map +1 -0
  45. package/dist/react/fm-input.js +52 -0
  46. package/dist/react/fm-input.js.map +1 -0
  47. package/dist/react/fm-radio-input.d.ts +15 -0
  48. package/dist/react/fm-radio-input.d.ts.map +1 -0
  49. package/dist/react/fm-radio-input.js +15 -0
  50. package/dist/react/fm-radio-input.js.map +1 -0
  51. package/dist/react/fm-segmented-controller.d.ts +13 -0
  52. package/dist/react/fm-segmented-controller.d.ts.map +1 -0
  53. package/dist/react/fm-segmented-controller.js +16 -0
  54. package/dist/react/fm-segmented-controller.js.map +1 -0
  55. package/dist/react/index.d.ts +14 -0
  56. package/dist/react/index.d.ts.map +1 -0
  57. package/dist/react/index.js +8 -0
  58. package/dist/react/index.js.map +1 -0
  59. package/dist/vue/ce.d.ts +3 -0
  60. package/dist/vue/ce.d.ts.map +1 -0
  61. package/dist/vue/ce.js +16 -0
  62. package/dist/vue/ce.js.map +1 -0
  63. package/dist/vue/fm-button.d.ts +164 -0
  64. package/dist/vue/fm-button.d.ts.map +1 -0
  65. package/dist/vue/fm-button.js +67 -0
  66. package/dist/vue/fm-button.js.map +1 -0
  67. package/dist/vue/fm-dropdown.d.ts +65 -0
  68. package/dist/vue/fm-dropdown.d.ts.map +1 -0
  69. package/dist/vue/fm-dropdown.js +40 -0
  70. package/dist/vue/fm-dropdown.js.map +1 -0
  71. package/dist/vue/fm-input.d.ts +150 -0
  72. package/dist/vue/fm-input.d.ts.map +1 -0
  73. package/dist/vue/fm-input.js +93 -0
  74. package/dist/vue/fm-input.js.map +1 -0
  75. package/dist/vue/index.d.ts +6 -0
  76. package/dist/vue/index.d.ts.map +1 -0
  77. package/dist/vue/index.js +4 -0
  78. package/dist/vue/index.js.map +1 -0
  79. package/icons/bold/add.svg +3 -0
  80. package/icons/bold/check.svg +3 -0
  81. package/icons/bold/checkbox-checked.svg +4 -0
  82. package/icons/bold/checkbox-unchecked.svg +3 -0
  83. package/icons/bold/chevron-backward.svg +3 -0
  84. package/icons/bold/chevron-down.svg +3 -0
  85. package/icons/bold/chevron-forward.svg +3 -0
  86. package/icons/bold/chevron-up.svg +3 -0
  87. package/icons/bold/close-1.svg +3 -0
  88. package/icons/bold/close.svg +4 -0
  89. package/icons/bold/dot.svg +3 -0
  90. package/icons/bold/open-external.svg +3 -0
  91. package/icons/bold/prominent-1.svg +3 -0
  92. package/icons/bold/prominent.svg +3 -0
  93. package/icons/bold/question.svg +4 -0
  94. package/icons/bold/remove.svg +3 -0
  95. package/icons/bold/search.svg +3 -0
  96. package/icons/bold/spinner.svg +3 -0
  97. package/icons/bold/warning.svg +3 -0
  98. package/icons/duotone/check.svg +4 -0
  99. package/icons/filled/achievements.svg +3 -0
  100. package/icons/filled/add.svg +3 -0
  101. package/icons/filled/app-settings.svg +3 -0
  102. package/icons/filled/calendar.svg +7 -0
  103. package/icons/filled/car-simplified.svg +3 -0
  104. package/icons/filled/check.svg +3 -0
  105. package/icons/filled/clock.svg +3 -0
  106. package/icons/filled/close.svg +3 -0
  107. package/icons/filled/control.svg +7 -0
  108. package/icons/filled/danger.svg +3 -0
  109. package/icons/filled/delete.svg +3 -0
  110. package/icons/filled/deviceOne.svg +3 -0
  111. package/icons/filled/deviceTwo.svg +3 -0
  112. package/icons/filled/disputeFine.svg +3 -0
  113. package/icons/filled/email.svg +3 -0
  114. package/icons/filled/gasPrices.svg +3 -0
  115. package/icons/filled/hazard.svg +3 -0
  116. package/icons/filled/highway.svg +3 -0
  117. package/icons/filled/info.svg +3 -0
  118. package/icons/filled/lock-close.svg +3 -0
  119. package/icons/filled/lock-open.svg +3 -0
  120. package/icons/filled/lock.svg +3 -0
  121. package/icons/filled/microphone.svg +4 -0
  122. package/icons/filled/notificaiton-unread.svg +4 -0
  123. package/icons/filled/notificaiton.svg +3 -0
  124. package/icons/filled/parking.svg +3 -0
  125. package/icons/filled/play.svg +8 -0
  126. package/icons/filled/question.svg +3 -0
  127. package/icons/filled/rating-empty.svg +3 -0
  128. package/icons/filled/rating-full.svg +3 -0
  129. package/icons/filled/rating-half.svg +4 -0
  130. package/icons/filled/remove.svg +3 -0
  131. package/icons/filled/return-location.svg +3 -0
  132. package/icons/filled/support.svg +3 -0
  133. package/icons/filled/toll.svg +3 -0
  134. package/icons/filled/tripHistory.svg +3 -0
  135. package/icons/filled/truck.svg +3 -0
  136. package/icons/filled/user-pin.svg +3 -0
  137. package/icons/filled/user-profile.svg +3 -0
  138. package/icons/filled/warning.svg +3 -0
  139. package/icons/filled/zone-default.svg +3 -0
  140. package/icons/filled/zone-indoor.svg +3 -0
  141. package/icons/filled/zone-street.svg +3 -0
  142. package/icons/stroke/arrow-Down.svg +3 -0
  143. package/icons/stroke/arrow-Up.svg +3 -0
  144. package/icons/stroke/arrow-left.svg +3 -0
  145. package/icons/stroke/arrow-right.svg +3 -0
  146. package/icons/stroke/check.svg +3 -0
  147. package/icons/stroke/checkbox-checked.svg +4 -0
  148. package/icons/stroke/checkbox-unchecked.svg +3 -0
  149. package/icons/stroke/chevron-backward.svg +3 -0
  150. package/icons/stroke/chevron-down.svg +3 -0
  151. package/icons/stroke/chevron-forward.svg +3 -0
  152. package/icons/stroke/chevron-up.svg +3 -0
  153. package/icons/stroke/clock.svg +3 -0
  154. package/icons/stroke/close-1.svg +3 -0
  155. package/icons/stroke/close.svg +4 -0
  156. package/icons/stroke/download.svg +4 -0
  157. package/icons/stroke/email.svg +4 -0
  158. package/icons/stroke/hamburger.svg +3 -0
  159. package/icons/stroke/login.svg +4 -0
  160. package/icons/stroke/logout.svg +3 -0
  161. package/icons/stroke/more.svg +5 -0
  162. package/icons/stroke/open-external.svg +3 -0
  163. package/icons/stroke/question.svg +4 -0
  164. package/icons/stroke/search.svg +3 -0
  165. package/icons/stroke/spinner.svg +3 -0
  166. package/icons/stroke/warning.svg +3 -0
  167. package/package.json +78 -14
  168. package/scripts/bundle-cli.mjs +16 -0
  169. package/scripts/copy-package-assets.mjs +19 -0
  170. package/scripts/install-cli.bundled.mjs +1637 -0
  171. package/styles/fm-design-system/fm-design-system.css +921 -0
  172. package/styles/fm-design-system/fm-design-system.tailwind.css +323 -0
@@ -27,8 +27,7 @@ export const fmSegmentedControllerStyle = css `
27
27
  display: flex;
28
28
  align-items: stretch;
29
29
  box-sizing: border-box;
30
- max-height: var(--size-l);
31
- padding: var(--spacing-xxxs);
30
+ padding: var(--spacing-xs3);
32
31
  border-radius: var(--radius-sm);
33
32
  background: var(--color-surface-neutral-default-higher);
34
33
  -webkit-tap-highlight-color: transparent;
@@ -41,12 +40,12 @@ export const fmSegmentedControllerStyle = css `
41
40
 
42
41
  .segmented__indicator {
43
42
  position: absolute;
44
- top: var(--spacing-xxxs);
45
- bottom: var(--spacing-xxxs);
46
- left: var(--spacing-xxxs);
47
- width: calc((100% - 2 * var(--spacing-xxxs)) / var(--segment-count));
43
+ top: var(--spacing-xs3);
44
+ bottom: var(--spacing-xs3);
45
+ left: var(--spacing-xs3);
46
+ width: calc((100% - 2 * var(--spacing-xs3)) / var(--segment-count));
48
47
  border-radius: var(--radius-sm);
49
- background: var(--color-surface-brand-brand);
48
+ background: var(--color-surface-brand-default);
50
49
  box-sizing: border-box;
51
50
  transform: translateX(calc(var(--active-index, 0) * 100%));
52
51
  transition: none;
@@ -181,7 +180,7 @@ export const fmSegmentedControllerStyle = css `
181
180
  }
182
181
 
183
182
  .segment__input:focus-visible + .segment__label {
184
- outline: var(--stroke-sm) solid var(--color-outline-brand-brand);
183
+ outline: var(--stroke-sm) solid var(--color-outline-brand-default);
185
184
  outline-offset: 2px;
186
185
  border-radius: var(--radius-sm);
187
186
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fm-segmented-controller.style.js","sourceRoot":"","sources":["../../src/fm-segmented-controller/fm-segmented-controller.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqM5C,CAAC"}
1
+ {"version":3,"file":"fm-segmented-controller.style.js","sourceRoot":"","sources":["../../src/fm-segmented-controller/fm-segmented-controller.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoM5C,CAAC"}
@@ -145,8 +145,8 @@ export const fmWizardStyle = css `
145
145
  flex-shrink: 0;
146
146
  position: relative;
147
147
  z-index: 2;
148
- background: var(--color-surface-brand-brand);
149
- border: var(--stroke-sm) solid var(--color-surface-brand-brand);
148
+ background: var(--color-surface-brand-default);
149
+ border: var(--stroke-sm) solid var(--color-surface-brand-default);
150
150
  }
151
151
 
152
152
  .node--upcoming .node__circle {
@@ -160,14 +160,14 @@ export const fmWizardStyle = css `
160
160
  display: inline-block;
161
161
  width: max-content;
162
162
  max-width: 100%;
163
- margin-block-start: calc(-1 * var(--spacing-xxs));
164
- padding: var(--spacing-xxs);
163
+ margin-block-start: calc(-1 * var(--spacing-xs2));
164
+ padding: var(--spacing-xs2);
165
165
  text-align: center;
166
166
  font-size: var(--text-sm);
167
167
  font-weight: var(--font-weight-bold);
168
168
  color: var(--color-content-neutral-default, var(--color-gray-900, #161616));
169
169
  background: var(--color-surface-neutral-default-highest);
170
- border-radius: var(--radius-xxs);
170
+ border-radius: var(--radius-xs2);
171
171
  box-shadow: 0 3px 16px 0 var(--color-special-shadow-shadowDefault, rgba(0, 0, 0, 0.15));
172
172
  overflow-wrap: anywhere;
173
173
  position: relative;
@@ -0,0 +1,14 @@
1
+ import { type HTMLAttributes, type RefObject } from 'react';
2
+ export declare function boolAttr(value: boolean | undefined): true | undefined;
3
+ export type CeHostProps = Omit<HTMLAttributes<HTMLElement>, 'children'> & {
4
+ class?: string;
5
+ };
6
+ export declare function ceHostClass(className?: string, classAttr?: string): {
7
+ class?: string;
8
+ className?: string;
9
+ };
10
+ export declare function ceHostAttrs(host: object): Record<string, unknown>;
11
+ export declare function useCeRegistration(load: () => Promise<unknown>): void;
12
+ export declare function useCeEvent(ref: RefObject<HTMLElement | null>, type: string, handler?: ((event: Event) => void) | undefined): void;
13
+ export declare function useCeProperty<T extends HTMLElement, K extends keyof T>(ref: RefObject<T | null>, key: K, value: T[K] | undefined): void;
14
+ //# sourceMappingURL=ce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ce.d.ts","sourceRoot":"","sources":["../../src/react/ce.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,CAErE;AAED,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,GAAG;IACxE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,wBAAgB,WAAW,CACzB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAIxC;AAID,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOjE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAIpE;AAED,wBAAgB,UAAU,CACxB,GAAG,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EAClC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,SAAS,GAC7C,IAAI,CAQN;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,MAAM,CAAC,EACpE,GAAG,EAAE,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,EACxB,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GACtB,IAAI,CAKN"}
@@ -0,0 +1,43 @@
1
+ 'use client';
2
+ import { useEffect } from 'react';
3
+ export function boolAttr(value) {
4
+ return value ? true : undefined;
5
+ }
6
+ export function ceHostClass(className, classAttr) {
7
+ const value = className ?? classAttr;
8
+ if (!value)
9
+ return {};
10
+ return { class: value, className: value };
11
+ }
12
+ const HTML_BOOLEAN_ATTRS = ['hidden', 'inert', 'autoFocus', 'itemScope'];
13
+ export function ceHostAttrs(host) {
14
+ const attrs = { ...host };
15
+ for (const key of HTML_BOOLEAN_ATTRS) {
16
+ if (!Object.hasOwn(attrs, key))
17
+ continue;
18
+ attrs[key] = boolAttr(attrs[key]);
19
+ }
20
+ return attrs;
21
+ }
22
+ export function useCeRegistration(load) {
23
+ useEffect(() => {
24
+ void load();
25
+ }, [load]);
26
+ }
27
+ export function useCeEvent(ref, type, handler) {
28
+ useEffect(() => {
29
+ const element = ref.current;
30
+ if (!element || !handler)
31
+ return;
32
+ element.addEventListener(type, handler);
33
+ return () => element.removeEventListener(type, handler);
34
+ }, [ref, type, handler]);
35
+ }
36
+ export function useCeProperty(ref, key, value) {
37
+ useEffect(() => {
38
+ const element = ref.current;
39
+ if (element != null && value !== undefined)
40
+ element[key] = value;
41
+ }, [ref, key, value]);
42
+ }
43
+ //# sourceMappingURL=ce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ce.js","sourceRoot":"","sources":["../../src/react/ce.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,SAAS,EAAuC,MAAM,OAAO,CAAA;AAEtE,MAAM,UAAU,QAAQ,CAAC,KAA0B;IACjD,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AACjC,CAAC;AAMD,MAAM,UAAU,WAAW,CACzB,SAAkB,EAClB,SAAkB;IAElB,MAAM,KAAK,GAAG,SAAS,IAAI,SAAS,CAAA;IACpC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IACrB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;AAC3C,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,CAAU,CAAA;AAEjF,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,KAAK,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAA;IAClD,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;YAAE,SAAQ;QACxC,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAwB,CAAC,CAAA;IAC1D,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAA4B;IAC5D,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,IAAI,EAAE,CAAA;IACb,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,GAAkC,EAClC,IAAY,EACZ,OAA8C;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO;YAAE,OAAM;QAEhC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACvC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACzD,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,GAAwB,EACxB,GAAM,EACN,KAAuB;IAEvB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;QAC3B,IAAI,OAAO,IAAI,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IAClE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;AACvB,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { ButtonType, ButtonVariant, IconPosition, Role, Size } from '../fm-button/fm-button-core.js';
3
+ import type { IconVariant } from '../fm-icon/icon-registry.generated.js';
4
+ import { type CeHostProps } from './ce.js';
5
+ export interface FmButtonProps extends Omit<CeHostProps, 'onClick' | 'role'> {
6
+ type?: ButtonType;
7
+ title?: string;
8
+ href?: string;
9
+ target?: string;
10
+ size?: Size;
11
+ role?: Role;
12
+ buttontype?: ButtonVariant;
13
+ icon?: string;
14
+ iconVariant?: IconVariant;
15
+ iconPosition?: IconPosition;
16
+ disabled?: boolean;
17
+ loading?: boolean;
18
+ error?: boolean;
19
+ success?: boolean;
20
+ errorRetryLabel?: string;
21
+ customClasses?: string;
22
+ fullWidth?: boolean;
23
+ onClick?: (event: Event) => void;
24
+ children?: ReactNode;
25
+ }
26
+ export declare function FmButton({ type, title, href, target, size, role, buttontype, icon, iconVariant, iconPosition, disabled, loading, error, success, errorRetryLabel, customClasses, fullWidth, onClick, children, className, class: classAttr, ...host }: FmButtonProps): import("react").JSX.Element;
27
+ //# sourceMappingURL=fm-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fm-button.d.ts","sourceRoot":"","sources":["../../src/react/fm-button.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA2C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC/E,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,IAAI,EACJ,IAAI,EACL,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AACxE,OAAO,EAAyD,KAAK,WAAW,EAAE,MAAM,SAAS,CAAA;AAIjG,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC;IAC1E,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,UAAU,CAAC,EAAE,aAAa,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,wBAAgB,QAAQ,CAAC,EACvB,IAAe,EACf,KAAU,EACV,IAAS,EACT,MAAW,EACX,IAAW,EACX,IAAe,EACf,UAAqB,EACrB,IAAS,EACT,WAAoB,EACpB,YAAwB,EACxB,QAAgB,EAChB,OAAe,EACf,KAAa,EACb,OAAe,EACf,eAAoB,EACpB,aAAkB,EAClB,SAAiB,EACjB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,KAAK,EAAE,SAAS,EAChB,GAAG,IAAI,EACR,EAAE,aAAa,+BA+Cf"}
@@ -0,0 +1,26 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useCallback, useEffect } from 'react';
4
+ import { boolAttr, ceHostAttrs, ceHostClass, useCeRegistration } from './ce.js';
5
+ const loadButton = () => import('../fm-button/fm-button.js');
6
+ export function FmButton({ type = 'button', title = '', href = '', target = '', size = 'md', role = 'strong', buttontype = 'filled', icon = '', iconVariant = 'bold', iconPosition = 'prepend', disabled = false, loading = false, error = false, success = false, errorRetryLabel = '', customClasses = '', fullWidth = false, onClick, children, className, class: classAttr, ...host }) {
7
+ useCeRegistration(loadButton);
8
+ useEffect(() => {
9
+ if (icon)
10
+ void import('../fm-icon/all.js');
11
+ }, [icon]);
12
+ const handleClick = useCallback((event) => {
13
+ onClick?.(event.nativeEvent);
14
+ if (disabled || loading || event.defaultPrevented)
15
+ return;
16
+ const form = event.currentTarget.closest('form');
17
+ if (!form)
18
+ return;
19
+ if (type === 'submit')
20
+ form.requestSubmit();
21
+ else if (type === 'reset')
22
+ form.reset();
23
+ }, [onClick, type, disabled, loading]);
24
+ return (_jsx("fm-button", { ...ceHostAttrs(host), ...ceHostClass(className, classAttr), type: type, title: title, href: href, target: target, size: size, role: role, buttontype: buttontype, icon: icon, "icon-variant": iconVariant, "icon-position": iconPosition, disabled: boolAttr(disabled), loading: boolAttr(loading), error: boolAttr(error), success: boolAttr(success), "error-retry-label": errorRetryLabel, "custom-classes": customClasses, "full-width": boolAttr(fullWidth), onClick: handleClick, children: children }));
25
+ }
26
+ //# sourceMappingURL=fm-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fm-button.js","sourceRoot":"","sources":["../../src/react/fm-button.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,WAAW,EAAE,SAAS,EAAmC,MAAM,OAAO,CAAA;AAS/E,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAoB,MAAM,SAAS,CAAA;AAEjG,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAA;AAwB5D,MAAM,UAAU,QAAQ,CAAC,EACvB,IAAI,GAAG,QAAQ,EACf,KAAK,GAAG,EAAE,EACV,IAAI,GAAG,EAAE,EACT,MAAM,GAAG,EAAE,EACX,IAAI,GAAG,IAAI,EACX,IAAI,GAAG,QAAQ,EACf,UAAU,GAAG,QAAQ,EACrB,IAAI,GAAG,EAAE,EACT,WAAW,GAAG,MAAM,EACpB,YAAY,GAAG,SAAS,EACxB,QAAQ,GAAG,KAAK,EAChB,OAAO,GAAG,KAAK,EACf,KAAK,GAAG,KAAK,EACb,OAAO,GAAG,KAAK,EACf,eAAe,GAAG,EAAE,EACpB,aAAa,GAAG,EAAE,EAClB,SAAS,GAAG,KAAK,EACjB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,KAAK,EAAE,SAAS,EAChB,GAAG,IAAI,EACO;IACd,iBAAiB,CAAC,UAAU,CAAC,CAAA;IAE7B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI;YAAE,KAAK,MAAM,CAAC,mBAAmB,CAAC,CAAA;IAC5C,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,KAA8B,EAAE,EAAE;QACjC,OAAO,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAC5B,IAAI,QAAQ,IAAI,OAAO,IAAI,KAAK,CAAC,gBAAgB;YAAE,OAAM;QAEzD,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAChD,IAAI,CAAC,IAAI;YAAE,OAAM;QAEjB,IAAI,IAAI,KAAK,QAAQ;YAAE,IAAI,CAAC,aAAa,EAAE,CAAA;aACtC,IAAI,IAAI,KAAK,OAAO;YAAE,IAAI,CAAC,KAAK,EAAE,CAAA;IACzC,CAAC,EACD,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CACnC,CAAA;IAED,OAAO,CACL,uBACM,WAAW,CAAC,IAAI,CAAC,KACjB,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,EACrC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,kBACI,WAAW,mBACV,YAAY,EAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAC5B,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,EAC1B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EACtB,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,uBACP,eAAe,oBAClB,aAAa,gBACjB,QAAQ,CAAC,SAAS,CAAC,EAC/B,OAAO,EAAE,WAAW,YAEnB,QAAQ,GACC,CACb,CAAA;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type CeHostProps } from './ce.js';
3
+ export interface FmDropdownProps extends Omit<CeHostProps, 'onChange'> {
4
+ name?: string;
5
+ value?: string;
6
+ placeholder?: string;
7
+ disabled?: boolean;
8
+ grayBorder?: boolean;
9
+ children?: ReactNode;
10
+ onChange?: (value: string) => void;
11
+ }
12
+ export declare function FmDropdown({ name, value, placeholder, disabled, grayBorder, children, onChange, className, class: classAttr, ...host }: FmDropdownProps): import("react").JSX.Element;
13
+ //# sourceMappingURL=fm-dropdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fm-dropdown.d.ts","sourceRoot":"","sources":["../../src/react/fm-dropdown.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAkC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtE,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,SAAS,CAAA;AAIhB,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;IACpE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAS,EACT,KAAU,EACV,WAAgB,EAChB,QAAgB,EAChB,UAAkB,EAClB,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,KAAK,EAAE,SAAS,EAChB,GAAG,IAAI,EACR,EAAE,eAAe,+BAgCjB"}
@@ -0,0 +1,19 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useCallback, useEffect, useRef } from 'react';
4
+ import { assignOptionsSlot } from '../ce/dom.js';
5
+ import { boolAttr, ceHostAttrs, ceHostClass, useCeEvent, useCeRegistration } from './ce.js';
6
+ const loadDropdown = () => import('../fm-dropdown/fm-dropdown.js');
7
+ export function FmDropdown({ name = '', value = '', placeholder = '', disabled = false, grayBorder = false, children, onChange, className, class: classAttr, ...host }) {
8
+ const ref = useRef(null);
9
+ useCeRegistration(loadDropdown);
10
+ useEffect(() => {
11
+ assignOptionsSlot(ref.current);
12
+ }, [children]);
13
+ const handleChange = useCallback((event) => {
14
+ onChange?.(event.detail.value);
15
+ }, [onChange]);
16
+ useCeEvent(ref, 'fm-dropdown', onChange ? handleChange : undefined);
17
+ return (_jsx("fm-dropdown", { ...ceHostAttrs(host), ...ceHostClass(className, classAttr), ref: ref, name: name, value: value, placeholder: placeholder, disabled: boolAttr(disabled), "gray-border": boolAttr(grayBorder), children: children }));
18
+ }
19
+ //# sourceMappingURL=fm-dropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fm-dropdown.js","sourceRoot":"","sources":["../../src/react/fm-dropdown.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAkB,MAAM,OAAO,CAAA;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EACL,QAAQ,EACR,WAAW,EACX,WAAW,EACX,UAAU,EACV,iBAAiB,EAElB,MAAM,SAAS,CAAA;AAEhB,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAA;AAYlE,MAAM,UAAU,UAAU,CAAC,EACzB,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,EAAE,EACV,WAAW,GAAG,EAAE,EAChB,QAAQ,GAAG,KAAK,EAChB,UAAU,GAAG,KAAK,EAClB,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,KAAK,EAAE,SAAS,EAChB,GAAG,IAAI,EACS;IAChB,MAAM,GAAG,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAA;IAE3C,iBAAiB,CAAC,YAAY,CAAC,CAAA;IAE/B,SAAS,CAAC,GAAG,EAAE;QACb,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAChC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,KAAY,EAAE,EAAE;QACf,QAAQ,EAAE,CAAE,KAAwC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACpE,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAA;IAED,UAAU,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAEnE,OAAO,CACL,yBACM,WAAW,CAAC,IAAI,CAAC,KACjB,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,EACrC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,iBACf,QAAQ,CAAC,UAAU,CAAC,YAEhC,QAAQ,GACG,CACf,CAAA;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { IconColor, IconSize, IconVariant } from '../fm-icon/fm-icon.js';
2
+ import { type CeHostProps } from './ce.js';
3
+ export interface FmIconProps extends CeHostProps {
4
+ name: string;
5
+ variant?: IconVariant;
6
+ size?: IconSize;
7
+ color?: IconColor | '';
8
+ ariaLabel?: string;
9
+ }
10
+ export declare function FmIcon({ name, variant, size, color, ariaLabel, className, class: classAttr, ...host }: FmIconProps): import("react").JSX.Element;
11
+ //# sourceMappingURL=fm-icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fm-icon.d.ts","sourceRoot":"","sources":["../../src/react/fm-icon.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC7E,OAAO,EAA+C,KAAK,WAAW,EAAE,MAAM,SAAS,CAAA;AAIvF,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,KAAK,CAAC,EAAE,SAAS,GAAG,EAAE,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,MAAM,CAAC,EACrB,IAAI,EACJ,OAAkB,EAClB,IAAW,EACX,KAAU,EACV,SAAc,EACd,SAAS,EACT,KAAK,EAAE,SAAS,EAChB,GAAG,IAAI,EACR,EAAE,WAAW,+BAkBb"}
@@ -0,0 +1,13 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useEffect } from 'react';
4
+ import { ceHostAttrs, ceHostClass, useCeRegistration } from './ce.js';
5
+ const loadIcon = () => import('../fm-icon/fm-icon.js');
6
+ export function FmIcon({ name, variant = 'filled', size = 'sm', color = '', ariaLabel = '', className, class: classAttr, ...host }) {
7
+ useCeRegistration(loadIcon);
8
+ useEffect(() => {
9
+ void import(`../fm-icon/icons/${variant}-${name}.js`);
10
+ }, [name, variant]);
11
+ return (_jsx("fm-icon", { ...ceHostAttrs(host), ...ceHostClass(className, classAttr), name: name, variant: variant, size: size, color: color || undefined, "aria-label": ariaLabel || undefined }));
12
+ }
13
+ //# sourceMappingURL=fm-icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fm-icon.js","sourceRoot":"","sources":["../../src/react/fm-icon.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAoB,MAAM,SAAS,CAAA;AAEvF,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAA;AAUtD,MAAM,UAAU,MAAM,CAAC,EACrB,IAAI,EACJ,OAAO,GAAG,QAAQ,EAClB,IAAI,GAAG,IAAI,EACX,KAAK,GAAG,EAAE,EACV,SAAS,GAAG,EAAE,EACd,SAAS,EACT,KAAK,EAAE,SAAS,EAChB,GAAG,IAAI,EACK;IACZ,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,MAAM,CAAC,oBAAoB,OAAO,IAAI,IAAI,KAAK,CAAC,CAAA;IACvD,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;IAEnB,OAAO,CACL,qBACM,WAAW,CAAC,IAAI,CAAC,KACjB,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,EACrC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,IAAI,SAAS,gBACb,SAAS,IAAI,SAAS,GAClC,CACH,CAAA;AACH,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { ValidationRule } from '../fm-input/fm-input.js';
2
+ import { type CeHostProps } from './ce.js';
3
+ type InputType = 'text' | 'search' | 'email' | 'number' | 'password' | 'tel';
4
+ export interface FmInputProps extends Omit<CeHostProps, 'onChange' | 'onInput' | 'onFocus' | 'onBlur'> {
5
+ type?: InputType;
6
+ placeholder?: string;
7
+ value?: string;
8
+ rules?: ValidationRule[];
9
+ disabled?: boolean;
10
+ readonly?: boolean;
11
+ loading?: boolean;
12
+ grayBorder?: boolean;
13
+ maxLength?: number | null;
14
+ letterSpacing?: number;
15
+ autocomplete?: string;
16
+ /** Extra classes on the shadow `.inputgroup` — not a Tailwind API. Prefer host `className` for layout. */
17
+ customClass?: string;
18
+ /** Extra classes on the shadow `<input>` — not a Tailwind API. Prefer host `className` for layout. */
19
+ inputClass?: string;
20
+ onInput?: (value: string, event: CustomEvent) => void;
21
+ onFocus?: (event: CustomEvent) => void;
22
+ onBlur?: (event: CustomEvent) => void;
23
+ onChange?: (value: string) => void;
24
+ }
25
+ export type FmInputHandle = {
26
+ validate: () => void;
27
+ };
28
+ export declare const FmInput: import("react").ForwardRefExoticComponent<FmInputProps & import("react").RefAttributes<FmInputHandle>>;
29
+ export {};
30
+ //# sourceMappingURL=fm-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fm-input.d.ts","sourceRoot":"","sources":["../../src/react/fm-input.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAA6B,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAExF,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,SAAS,CAAA;AAEhB,KAAK,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAA;AAI5E,MAAM,WAAW,YACf,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACxE,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,cAAc,EAAE,CAAA;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,0GAA0G;IAC1G,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,sGAAsG;IACtG,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;IACrD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;IACtC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;IACrC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,IAAI,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,OAAO,wGAkHlB,CAAA"}
@@ -0,0 +1,52 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef, useCallback, useImperativeHandle, useRef } from 'react';
4
+ import { requestImplicitFormSubmit } from '../ce/implicit-form-submit.js';
5
+ import { boolAttr, ceHostAttrs, ceHostClass, useCeEvent, useCeProperty, useCeRegistration } from './ce.js';
6
+ const loadInput = () => import('../fm-input/fm-input.js');
7
+ export const FmInput = forwardRef(function FmInput({ type = 'text', placeholder = '', value = '', rules, disabled = false, readonly = false, loading = false, grayBorder = false, maxLength = null, letterSpacing = 0, autocomplete = '', customClass = '', inputClass = '', onInput, onFocus, onBlur, onChange, onKeyDown, className, class: classAttr, ...host }, ref) {
8
+ const elementRef = useRef(null);
9
+ useCeRegistration(loadInput);
10
+ useImperativeHandle(ref, () => ({
11
+ validate: () => {
12
+ const el = elementRef.current;
13
+ if (!el)
14
+ return;
15
+ if (typeof el.validate === 'function') {
16
+ el.validate();
17
+ return;
18
+ }
19
+ void customElements.whenDefined('fm-input').then(() => {
20
+ elementRef.current?.validate?.();
21
+ });
22
+ }
23
+ }), []);
24
+ const handleInput = useCallback((event) => {
25
+ const customEvent = event;
26
+ const next = customEvent.detail.value;
27
+ onInput?.(next, customEvent);
28
+ onChange?.(next);
29
+ }, [onInput, onChange]);
30
+ const handleFocus = useCallback((event) => onFocus?.(event), [onFocus]);
31
+ const handleBlur = useCallback((event) => onBlur?.(event), [onBlur]);
32
+ const handleKeyDown = useCallback((event) => {
33
+ onKeyDown?.(event);
34
+ if (event.key !== 'Enter' ||
35
+ disabled ||
36
+ readonly ||
37
+ loading ||
38
+ event.defaultPrevented)
39
+ return;
40
+ const form = event.currentTarget.closest('form');
41
+ if (!form)
42
+ return;
43
+ event.preventDefault();
44
+ requestImplicitFormSubmit(form);
45
+ }, [onKeyDown, disabled, readonly, loading]);
46
+ useCeEvent(elementRef, 'fm-input', handleInput);
47
+ useCeEvent(elementRef, 'fm-focus', onFocus ? handleFocus : undefined);
48
+ useCeEvent(elementRef, 'fm-blur', onBlur ? handleBlur : undefined);
49
+ useCeProperty(elementRef, 'rules', rules);
50
+ return (_jsx("fm-input", { ...ceHostAttrs(host), ...ceHostClass(className, classAttr), ref: elementRef, type: type, placeholder: placeholder, value: value, disabled: boolAttr(disabled), readonly: boolAttr(readonly), loading: boolAttr(loading), "gray-border": boolAttr(grayBorder), "max-length": maxLength ?? undefined, "letter-spacing": letterSpacing, autocomplete: autocomplete, "custom-class": customClass, "input-class": inputClass, onKeyDown: handleKeyDown }));
51
+ });
52
+ //# sourceMappingURL=fm-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fm-input.js","sourceRoot":"","sources":["../../src/react/fm-input.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { FmRadioInputMediaPlacement } from '../fm-radio-input/fm-radio-input.js';
3
+ import { type CeHostProps } from './ce.js';
4
+ export interface FmRadioInputProps extends Omit<CeHostProps, 'onChange'> {
5
+ name?: string;
6
+ value?: string;
7
+ checked?: boolean;
8
+ disabled?: boolean;
9
+ grayBorder?: boolean;
10
+ mediaPlacement?: FmRadioInputMediaPlacement;
11
+ children?: ReactNode;
12
+ onChange?: (value: string) => void;
13
+ }
14
+ export declare function FmRadioInput({ name, value, checked, disabled, grayBorder, mediaPlacement, children, onChange, className, class: classAttr, ...host }: FmRadioInputProps): import("react").JSX.Element;
15
+ //# sourceMappingURL=fm-radio-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fm-radio-input.d.ts","sourceRoot":"","sources":["../../src/react/fm-radio-input.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC3D,OAAO,KAAK,EAEV,0BAA0B,EAC3B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,SAAS,CAAA;AAIhB,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;IACtE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,cAAc,CAAC,EAAE,0BAA0B,CAAA;IAC3C,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC;AAED,wBAAgB,YAAY,CAAC,EAC3B,IAAS,EACT,KAAU,EACV,OAAe,EACf,QAAgB,EAChB,UAAkB,EAClB,cAAyB,EACzB,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,KAAK,EAAE,SAAS,EAChB,GAAG,IAAI,EACR,EAAE,iBAAiB,+BA+BnB"}
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useCallback, useRef } from 'react';
4
+ import { boolAttr, ceHostAttrs, ceHostClass, useCeEvent, useCeRegistration } from './ce.js';
5
+ const loadRadioInput = () => import('../fm-radio-input/fm-radio-input.js');
6
+ export function FmRadioInput({ name = '', value = '', checked = false, disabled = false, grayBorder = false, mediaPlacement = 'append', children, onChange, className, class: classAttr, ...host }) {
7
+ const ref = useRef(null);
8
+ useCeRegistration(loadRadioInput);
9
+ const handleChange = useCallback((event) => {
10
+ onChange?.(event.detail.value);
11
+ }, [onChange]);
12
+ useCeEvent(ref, 'fm-radio-input', onChange ? handleChange : undefined);
13
+ return (_jsx("fm-radio-input", { ...ceHostAttrs(host), ...ceHostClass(className, classAttr), ref: ref, name: name, value: value, checked: boolAttr(checked), disabled: boolAttr(disabled), "gray-border": boolAttr(grayBorder), "media-placement": mediaPlacement, children: children }));
14
+ }
15
+ //# sourceMappingURL=fm-radio-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fm-radio-input.js","sourceRoot":"","sources":["../../src/react/fm-radio-input.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,WAAW,EAAE,MAAM,EAAkB,MAAM,OAAO,CAAA;AAK3D,OAAO,EACL,QAAQ,EACR,WAAW,EACX,WAAW,EACX,UAAU,EACV,iBAAiB,EAElB,MAAM,SAAS,CAAA;AAEhB,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAA;AAa1E,MAAM,UAAU,YAAY,CAAC,EAC3B,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,EAAE,EACV,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,KAAK,EAChB,UAAU,GAAG,KAAK,EAClB,cAAc,GAAG,QAAQ,EACzB,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,KAAK,EAAE,SAAS,EAChB,GAAG,IAAI,EACW;IAClB,MAAM,GAAG,GAAG,MAAM,CAAsB,IAAI,CAAC,CAAA;IAE7C,iBAAiB,CAAC,cAAc,CAAC,CAAA;IAEjC,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,KAAY,EAAE,EAAE;QACf,QAAQ,EAAE,CACP,KAAsD,CAAC,MAAM,CAAC,KAAK,CACrE,CAAA;IACH,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAA;IAED,UAAU,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAEtE,OAAO,CACL,4BACM,WAAW,CAAC,IAAI,CAAC,KACjB,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,EACrC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,EAC1B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,iBACf,QAAQ,CAAC,UAAU,CAAC,qBAChB,cAAc,YAE9B,QAAQ,GACM,CAClB,CAAA;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { FmSegmentedControllerBackground, FmSegmentedOptionInput } from '../fm-segmented-controller/fm-segmented-controller.js';
2
+ import { type CeHostProps } from './ce.js';
3
+ export interface FmSegmentedControllerProps extends Omit<CeHostProps, 'onChange'> {
4
+ name?: string;
5
+ value?: string;
6
+ options?: FmSegmentedOptionInput[];
7
+ disabled?: boolean;
8
+ background?: FmSegmentedControllerBackground;
9
+ ariaLabel?: string;
10
+ onChange?: (value: string) => void;
11
+ }
12
+ export declare function FmSegmentedController({ name, value, options, disabled, background, ariaLabel, onChange, className, class: classAttr, ...host }: FmSegmentedControllerProps): import("react").JSX.Element;
13
+ //# sourceMappingURL=fm-segmented-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fm-segmented-controller.d.ts","sourceRoot":"","sources":["../../src/react/fm-segmented-controller.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,+BAA+B,EAC/B,sBAAsB,EACvB,MAAM,uDAAuD,CAAA;AAC9D,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,SAAS,CAAA;AAIhB,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,sBAAsB,EAAE,CAAA;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,+BAA+B,CAAA;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC;AAED,wBAAgB,qBAAqB,CAAC,EACpC,IAAS,EACT,KAAU,EACV,OAAO,EACP,QAAgB,EAChB,UAAmB,EACnB,SAAc,EACd,QAAQ,EACR,SAAS,EACT,KAAK,EAAE,SAAS,EAChB,GAAG,IAAI,EACR,EAAE,0BAA0B,+BA+B5B"}
@@ -0,0 +1,16 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useCallback, useRef } from 'react';
4
+ import { boolAttr, ceHostAttrs, ceHostClass, useCeEvent, useCeProperty, useCeRegistration } from './ce.js';
5
+ const loadSegmented = () => import('../fm-segmented-controller/fm-segmented-controller.js');
6
+ export function FmSegmentedController({ name = '', value = '', options, disabled = false, background = 'gray', ariaLabel = '', onChange, className, class: classAttr, ...host }) {
7
+ const ref = useRef(null);
8
+ useCeRegistration(loadSegmented);
9
+ const handleChange = useCallback((event) => {
10
+ onChange?.(event.detail.value);
11
+ }, [onChange]);
12
+ useCeEvent(ref, 'fm-segmented-controller', onChange ? handleChange : undefined);
13
+ useCeProperty(ref, 'options', options);
14
+ return (_jsx("fm-segmented-controller", { ...ceHostAttrs(host), ...ceHostClass(className, classAttr), ref: ref, name: name, value: value, disabled: boolAttr(disabled), background: background, "aria-label": ariaLabel || undefined }));
15
+ }
16
+ //# sourceMappingURL=fm-segmented-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fm-segmented-controller.js","sourceRoot":"","sources":["../../src/react/fm-segmented-controller.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAM3C,OAAO,EACL,QAAQ,EACR,WAAW,EACX,WAAW,EACX,UAAU,EACV,aAAa,EACb,iBAAiB,EAElB,MAAM,SAAS,CAAA;AAEhB,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAA;AAY3F,MAAM,UAAU,qBAAqB,CAAC,EACpC,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,EAAE,EACV,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,UAAU,GAAG,MAAM,EACnB,SAAS,GAAG,EAAE,EACd,QAAQ,EACR,SAAS,EACT,KAAK,EAAE,SAAS,EAChB,GAAG,IAAI,EACoB;IAC3B,MAAM,GAAG,GAAG,MAAM,CAA+B,IAAI,CAAC,CAAA;IAEtD,iBAAiB,CAAC,aAAa,CAAC,CAAA;IAEhC,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,KAAY,EAAE,EAAE;QACf,QAAQ,EAAE,CAAE,KAAwC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACpE,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAA;IAED,UAAU,CACR,GAAG,EACH,yBAAyB,EACzB,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CACpC,CAAA;IACD,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IAEtC,OAAO,CACL,qCACM,WAAW,CAAC,IAAI,CAAC,KACjB,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,EACrC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAC5B,UAAU,EAAE,UAAU,gBACV,SAAS,IAAI,SAAS,GAClC,CACH,CAAA;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ export { FmButton } from './fm-button.js';
2
+ export type { FmButtonProps } from './fm-button.js';
3
+ export { FmDropdown } from './fm-dropdown.js';
4
+ export type { FmDropdownProps } from './fm-dropdown.js';
5
+ export { FmIcon } from './fm-icon.js';
6
+ export type { FmIconProps } from './fm-icon.js';
7
+ export { FmInput } from './fm-input.js';
8
+ export type { FmInputHandle, FmInputProps } from './fm-input.js';
9
+ export type { ValidationRule } from '../fm-input/fm-input.js';
10
+ export { FmRadioInput } from './fm-radio-input.js';
11
+ export type { FmRadioInputProps } from './fm-radio-input.js';
12
+ export { FmSegmentedController } from './fm-segmented-controller.js';
13
+ export type { FmSegmentedControllerProps } from './fm-segmented-controller.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAChE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,YAAY,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA"}
@@ -0,0 +1,8 @@
1
+ 'use client';
2
+ export { FmButton } from './fm-button.js';
3
+ export { FmDropdown } from './fm-dropdown.js';
4
+ export { FmIcon } from './fm-icon.js';
5
+ export { FmInput } from './fm-input.js';
6
+ export { FmRadioInput } from './fm-radio-input.js';
7
+ export { FmSegmentedController } from './fm-segmented-controller.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAGvC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare function boolAttr(value: boolean | undefined): true | undefined;
2
+ export declare function callHandler(handler: unknown, event: Event): void;
3
+ //# sourceMappingURL=ce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ce.d.ts","sourceRoot":"","sources":["../../src/vue/ce.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,CAErE;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAShE"}
package/dist/vue/ce.js ADDED
@@ -0,0 +1,16 @@
1
+ export function boolAttr(value) {
2
+ return value ? true : undefined;
3
+ }
4
+ export function callHandler(handler, event) {
5
+ if (typeof handler === 'function') {
6
+ handler(event);
7
+ return;
8
+ }
9
+ if (!Array.isArray(handler))
10
+ return;
11
+ for (const fn of handler) {
12
+ if (typeof fn === 'function')
13
+ fn(event);
14
+ }
15
+ }
16
+ //# sourceMappingURL=ce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ce.js","sourceRoot":"","sources":["../../src/vue/ce.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,KAA0B;IACjD,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAgB,EAAE,KAAY;IACxD,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,CAAA;QACd,OAAM;IACR,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAM;IACnC,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACzB,IAAI,OAAO,EAAE,KAAK,UAAU;YAAE,EAAE,CAAC,KAAK,CAAC,CAAA;IACzC,CAAC;AACH,CAAC"}