@seij/common-ui 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +7 -0
  3. package/dist/index.d.ts +45 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +113 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/init/SeijUIProvider.d.ts +15 -0
  8. package/dist/init/SeijUIProvider.d.ts.map +1 -0
  9. package/dist/init/SeijUIProvider.js +20 -0
  10. package/dist/init/SeijUIProvider.js.map +1 -0
  11. package/dist/lib/applicationshell/ApplicationShell.d.ts +13 -0
  12. package/dist/lib/applicationshell/ApplicationShell.d.ts.map +1 -0
  13. package/dist/lib/applicationshell/ApplicationShell.js +110 -0
  14. package/dist/lib/applicationshell/ApplicationShell.js.map +1 -0
  15. package/dist/lib/applicationshell/ApplicationShell.types.d.ts +9 -0
  16. package/dist/lib/applicationshell/ApplicationShell.types.d.ts.map +1 -0
  17. package/dist/lib/applicationshell/TitleBar.d.ts +9 -0
  18. package/dist/lib/applicationshell/TitleBar.d.ts.map +1 -0
  19. package/dist/lib/applicationshell/TitleBar.js +100 -0
  20. package/dist/lib/applicationshell/TitleBar.js.map +1 -0
  21. package/dist/lib/badge/Badge.d.ts +5 -0
  22. package/dist/lib/badge/Badge.d.ts.map +1 -0
  23. package/dist/lib/badge/Badge.js +9 -0
  24. package/dist/lib/badge/Badge.js.map +1 -0
  25. package/dist/lib/button/Button.d.ts +16 -0
  26. package/dist/lib/button/Button.d.ts.map +1 -0
  27. package/dist/lib/button/Button.js +15 -0
  28. package/dist/lib/button/Button.js.map +1 -0
  29. package/dist/lib/button_bar/ButtonBar.d.ts +5 -0
  30. package/dist/lib/button_bar/ButtonBar.d.ts.map +1 -0
  31. package/dist/lib/button_bar/ButtonBar.js +26 -0
  32. package/dist/lib/button_bar/ButtonBar.js.map +1 -0
  33. package/dist/lib/common-ui.d.ts +5 -0
  34. package/dist/lib/common-ui.d.ts.map +1 -0
  35. package/dist/lib/common-ui.js +9 -0
  36. package/dist/lib/common-ui.js.map +1 -0
  37. package/dist/lib/commons/currencysymbol.d.ts +2 -0
  38. package/dist/lib/commons/currencysymbol.d.ts.map +1 -0
  39. package/dist/lib/commons/currencysymbol.js +15 -0
  40. package/dist/lib/commons/currencysymbol.js.map +1 -0
  41. package/dist/lib/commons/obfuscatelabel.d.ts +17 -0
  42. package/dist/lib/commons/obfuscatelabel.d.ts.map +1 -0
  43. package/dist/lib/commons/obfuscatelabel.js +23 -0
  44. package/dist/lib/commons/obfuscatelabel.js.map +1 -0
  45. package/dist/lib/data_table/DataTable.d.ts +32 -0
  46. package/dist/lib/data_table/DataTable.d.ts.map +1 -0
  47. package/dist/lib/data_table/DataTable.js +40 -0
  48. package/dist/lib/data_table/DataTable.js.map +1 -0
  49. package/dist/lib/datatabledynamic/DataTableDynamic.d.ts +14 -0
  50. package/dist/lib/datatabledynamic/DataTableDynamic.d.ts.map +1 -0
  51. package/dist/lib/datatabledynamic/DataTableDynamic.js +18 -0
  52. package/dist/lib/datatabledynamic/DataTableDynamic.js.map +1 -0
  53. package/dist/lib/devise/DeviseContext.d.ts +2 -0
  54. package/dist/lib/devise/DeviseContext.d.ts.map +1 -0
  55. package/dist/lib/devise/DeviseContext.js +6 -0
  56. package/dist/lib/devise/DeviseContext.js.map +1 -0
  57. package/dist/lib/error_notifier/ErrorNotifier.d.ts +6 -0
  58. package/dist/lib/error_notifier/ErrorNotifier.d.ts.map +1 -0
  59. package/dist/lib/error_notifier/ErrorNotifier.js +29 -0
  60. package/dist/lib/error_notifier/ErrorNotifier.js.map +1 -0
  61. package/dist/lib/errorbox/ErrorBox.d.ts +6 -0
  62. package/dist/lib/errorbox/ErrorBox.d.ts.map +1 -0
  63. package/dist/lib/errorbox/ErrorBox.js +26 -0
  64. package/dist/lib/errorbox/ErrorBox.js.map +1 -0
  65. package/dist/lib/form_layout/FormLayout.d.ts +23 -0
  66. package/dist/lib/form_layout/FormLayout.d.ts.map +1 -0
  67. package/dist/lib/form_layout/FormLayout.js +102 -0
  68. package/dist/lib/form_layout/FormLayout.js.map +1 -0
  69. package/dist/lib/i18n/i18n.detect.d.ts +10 -0
  70. package/dist/lib/i18n/i18n.detect.d.ts.map +1 -0
  71. package/dist/lib/i18n/i18n.detect.js +30 -0
  72. package/dist/lib/i18n/i18n.detect.js.map +1 -0
  73. package/dist/lib/i18n/i18n.factory.d.ts +3 -0
  74. package/dist/lib/i18n/i18n.factory.d.ts.map +1 -0
  75. package/dist/lib/i18n/i18n.factory.js +70 -0
  76. package/dist/lib/i18n/i18n.factory.js.map +1 -0
  77. package/dist/lib/i18n/i18n.react.d.ts +19 -0
  78. package/dist/lib/i18n/i18n.react.d.ts.map +1 -0
  79. package/dist/lib/i18n/i18n.react.js +29 -0
  80. package/dist/lib/i18n/i18n.react.js.map +1 -0
  81. package/dist/lib/i18n/i18n.types.d.ts +28 -0
  82. package/dist/lib/i18n/i18n.types.d.ts.map +1 -0
  83. package/dist/lib/i18n/index.d.ts +3 -0
  84. package/dist/lib/i18n/index.d.ts.map +1 -0
  85. package/dist/lib/info_box/InfoBox.d.ts +7 -0
  86. package/dist/lib/info_box/InfoBox.d.ts.map +1 -0
  87. package/dist/lib/info_box/InfoBox.js +13 -0
  88. package/dist/lib/info_box/InfoBox.js.map +1 -0
  89. package/dist/lib/inlineedit/InlineEdit.d.ts +9 -0
  90. package/dist/lib/inlineedit/InlineEdit.d.ts.map +1 -0
  91. package/dist/lib/inlineedit/InlineEdit.js +47 -0
  92. package/dist/lib/inlineedit/InlineEdit.js.map +1 -0
  93. package/dist/lib/listview/ListView.d.ts +16 -0
  94. package/dist/lib/listview/ListView.d.ts.map +1 -0
  95. package/dist/lib/listview/ListView.js +100 -0
  96. package/dist/lib/listview/ListView.js.map +1 -0
  97. package/dist/lib/loader/Loader.d.ts +4 -0
  98. package/dist/lib/loader/Loader.d.ts.map +1 -0
  99. package/dist/lib/loader/Loader.js +9 -0
  100. package/dist/lib/loader/Loader.js.map +1 -0
  101. package/dist/lib/localdate/InputLocalDate.d.ts +17 -0
  102. package/dist/lib/localdate/InputLocalDate.d.ts.map +1 -0
  103. package/dist/lib/localdate/InputLocalDate.js +61 -0
  104. package/dist/lib/localdate/InputLocalDate.js.map +1 -0
  105. package/dist/lib/localdate/LabelLocalDate.d.ts +6 -0
  106. package/dist/lib/localdate/LabelLocalDate.d.ts.map +1 -0
  107. package/dist/lib/localdate/LabelLocalDate.js +9 -0
  108. package/dist/lib/localdate/LabelLocalDate.js.map +1 -0
  109. package/dist/lib/money/InputMoneyDec.d.ts +20 -0
  110. package/dist/lib/money/InputMoneyDec.d.ts.map +1 -0
  111. package/dist/lib/money/InputMoneyDec.js +24 -0
  112. package/dist/lib/money/InputMoneyDec.js.map +1 -0
  113. package/dist/lib/money/InputMoneyInt.d.ts +24 -0
  114. package/dist/lib/money/InputMoneyInt.d.ts.map +1 -0
  115. package/dist/lib/money/InputMoneyInt.js +24 -0
  116. package/dist/lib/money/InputMoneyInt.js.map +1 -0
  117. package/dist/lib/money/LabelMoneyDec.d.ts +33 -0
  118. package/dist/lib/money/LabelMoneyDec.d.ts.map +1 -0
  119. package/dist/lib/money/LabelMoneyDec.js +22 -0
  120. package/dist/lib/money/LabelMoneyDec.js.map +1 -0
  121. package/dist/lib/money/LabelMoneyInt.d.ts +33 -0
  122. package/dist/lib/money/LabelMoneyInt.d.ts.map +1 -0
  123. package/dist/lib/money/LabelMoneyInt.js +22 -0
  124. package/dist/lib/money/LabelMoneyInt.js.map +1 -0
  125. package/dist/lib/month/InputDurationMonths.d.ts +9 -0
  126. package/dist/lib/month/InputDurationMonths.d.ts.map +1 -0
  127. package/dist/lib/month/InputDurationMonths.js +22 -0
  128. package/dist/lib/month/InputDurationMonths.js.map +1 -0
  129. package/dist/lib/month/InputMonth.d.ts +13 -0
  130. package/dist/lib/month/InputMonth.d.ts.map +1 -0
  131. package/dist/lib/month/InputMonth.js +15 -0
  132. package/dist/lib/month/InputMonth.js.map +1 -0
  133. package/dist/lib/navigation/Navigation.d.ts +9 -0
  134. package/dist/lib/navigation/Navigation.d.ts.map +1 -0
  135. package/dist/lib/navigation/Navigation.js +38 -0
  136. package/dist/lib/navigation/Navigation.js.map +1 -0
  137. package/dist/lib/navigation/Navigation.types.d.ts +48 -0
  138. package/dist/lib/navigation/Navigation.types.d.ts.map +1 -0
  139. package/dist/lib/navigation/NavigationService.d.ts +8 -0
  140. package/dist/lib/navigation/NavigationService.d.ts.map +1 -0
  141. package/dist/lib/navigation/NavigationService.js +13 -0
  142. package/dist/lib/navigation/NavigationService.js.map +1 -0
  143. package/dist/lib/number/InputNumber.d.ts +22 -0
  144. package/dist/lib/number/InputNumber.d.ts.map +1 -0
  145. package/dist/lib/number/InputNumber.js +82 -0
  146. package/dist/lib/number/InputNumber.js.map +1 -0
  147. package/dist/lib/number/InputNumberDec.d.ts +16 -0
  148. package/dist/lib/number/InputNumberDec.d.ts.map +1 -0
  149. package/dist/lib/number/InputNumberDec.js +21 -0
  150. package/dist/lib/number/InputNumberDec.js.map +1 -0
  151. package/dist/lib/number/InputNumberInt.d.ts +19 -0
  152. package/dist/lib/number/InputNumberInt.d.ts.map +1 -0
  153. package/dist/lib/number/InputNumberInt.js +21 -0
  154. package/dist/lib/number/InputNumberInt.js.map +1 -0
  155. package/dist/lib/number/index.d.ts +4 -0
  156. package/dist/lib/number/index.d.ts.map +1 -0
  157. package/dist/lib/percent/InputPercent.d.ts +9 -0
  158. package/dist/lib/percent/InputPercent.d.ts.map +1 -0
  159. package/dist/lib/percent/InputPercent.js +29 -0
  160. package/dist/lib/percent/InputPercent.js.map +1 -0
  161. package/dist/lib/percent/LabelPercent.d.ts +8 -0
  162. package/dist/lib/percent/LabelPercent.d.ts.map +1 -0
  163. package/dist/lib/percent/LabelPercent.js +9 -0
  164. package/dist/lib/percent/LabelPercent.js.map +1 -0
  165. package/dist/lib/percent/LabelPercentInt.d.ts +4 -0
  166. package/dist/lib/percent/LabelPercentInt.d.ts.map +1 -0
  167. package/dist/lib/percent/LabelPercentInt.js +10 -0
  168. package/dist/lib/percent/LabelPercentInt.js.map +1 -0
  169. package/dist/lib/select/InputCombobox.d.ts +49 -0
  170. package/dist/lib/select/InputCombobox.d.ts.map +1 -0
  171. package/dist/lib/select/InputCombobox.js +42 -0
  172. package/dist/lib/select/InputCombobox.js.map +1 -0
  173. package/dist/lib/select/InputSelect.d.ts +22 -0
  174. package/dist/lib/select/InputSelect.d.ts.map +1 -0
  175. package/dist/lib/select/InputSelect.js +31 -0
  176. package/dist/lib/select/InputSelect.js.map +1 -0
  177. package/dist/lib/switchbutton/SwitchButton.d.ts +9 -0
  178. package/dist/lib/switchbutton/SwitchButton.d.ts.map +1 -0
  179. package/dist/lib/switchbutton/SwitchButton.js +18 -0
  180. package/dist/lib/switchbutton/SwitchButton.js.map +1 -0
  181. package/dist/lib/tabs/Tabs.d.ts +18 -0
  182. package/dist/lib/tabs/Tabs.d.ts.map +1 -0
  183. package/dist/lib/tabs/Tabs.js +30 -0
  184. package/dist/lib/tabs/Tabs.js.map +1 -0
  185. package/dist/lib/tabs/index.d.ts +2 -0
  186. package/dist/lib/tabs/index.d.ts.map +1 -0
  187. package/dist/lib/text/InputText.d.ts +12 -0
  188. package/dist/lib/text/InputText.d.ts.map +1 -0
  189. package/dist/lib/text/InputText.js +32 -0
  190. package/dist/lib/text/InputText.js.map +1 -0
  191. package/dist/lib/typography/description/Description.d.ts +4 -0
  192. package/dist/lib/typography/description/Description.d.ts.map +1 -0
  193. package/dist/lib/typography/description/Description.js +9 -0
  194. package/dist/lib/typography/description/Description.js.map +1 -0
  195. package/dist/lib/typography/description/index.d.ts +2 -0
  196. package/dist/lib/typography/description/index.d.ts.map +1 -0
  197. package/dist/lib/typography/index.d.ts +5 -0
  198. package/dist/lib/typography/index.d.ts.map +1 -0
  199. package/dist/lib/typography/label_and_description/LabelAndDescription.d.ts +5 -0
  200. package/dist/lib/typography/label_and_description/LabelAndDescription.d.ts.map +1 -0
  201. package/dist/lib/typography/label_and_description/LabelAndDescription.js +16 -0
  202. package/dist/lib/typography/label_and_description/LabelAndDescription.js.map +1 -0
  203. package/dist/lib/typography/label_and_description/index.d.ts +2 -0
  204. package/dist/lib/typography/label_and_description/index.d.ts.map +1 -0
  205. package/dist/lib/typography/sectiontitle/SectionTitle.d.ts +5 -0
  206. package/dist/lib/typography/sectiontitle/SectionTitle.d.ts.map +1 -0
  207. package/dist/lib/typography/sectiontitle/SectionTitle.js +8 -0
  208. package/dist/lib/typography/sectiontitle/SectionTitle.js.map +1 -0
  209. package/dist/lib/typography/todo/Todo.d.ts +5 -0
  210. package/dist/lib/typography/todo/Todo.d.ts.map +1 -0
  211. package/dist/lib/typography/todo/Todo.js +7 -0
  212. package/dist/lib/typography/todo/Todo.js.map +1 -0
  213. package/dist/lib/view_layout/ViewBody.d.ts +8 -0
  214. package/dist/lib/view_layout/ViewBody.d.ts.map +1 -0
  215. package/dist/lib/view_layout/ViewBody.js +8 -0
  216. package/dist/lib/view_layout/ViewBody.js.map +1 -0
  217. package/dist/lib/view_layout/ViewFooter.d.ts +10 -0
  218. package/dist/lib/view_layout/ViewFooter.d.ts.map +1 -0
  219. package/dist/lib/view_layout/ViewFooter.js +8 -0
  220. package/dist/lib/view_layout/ViewFooter.js.map +1 -0
  221. package/dist/lib/view_layout/ViewHeader.d.ts +5 -0
  222. package/dist/lib/view_layout/ViewHeader.d.ts.map +1 -0
  223. package/dist/lib/view_layout/ViewHeader.js +8 -0
  224. package/dist/lib/view_layout/ViewHeader.js.map +1 -0
  225. package/dist/lib/view_layout/ViewLayout.d.ts +16 -0
  226. package/dist/lib/view_layout/ViewLayout.d.ts.map +1 -0
  227. package/dist/lib/view_layout/ViewLayout.js +127 -0
  228. package/dist/lib/view_layout/ViewLayout.js.map +1 -0
  229. package/dist/lib/view_layout/ViewTitle.d.ts +21 -0
  230. package/dist/lib/view_layout/ViewTitle.d.ts.map +1 -0
  231. package/dist/lib/view_layout/ViewTitle.js +71 -0
  232. package/dist/lib/view_layout/ViewTitle.js.map +1 -0
  233. package/dist/lib/year/InputDurationYears.d.ts +9 -0
  234. package/dist/lib/year/InputDurationYears.d.ts.map +1 -0
  235. package/dist/lib/year/InputDurationYears.js +22 -0
  236. package/dist/lib/year/InputDurationYears.js.map +1 -0
  237. package/dist/lib/year/InputYear.d.ts +9 -0
  238. package/dist/lib/year/InputYear.d.ts.map +1 -0
  239. package/dist/lib/year/InputYear.js +21 -0
  240. package/dist/lib/year/InputYear.js.map +1 -0
  241. package/dist/locales/en.d.ts +8 -0
  242. package/dist/locales/en.d.ts.map +1 -0
  243. package/dist/locales/en.js +41 -0
  244. package/dist/locales/en.js.map +1 -0
  245. package/dist/locales/fr.d.ts +8 -0
  246. package/dist/locales/fr.d.ts.map +1 -0
  247. package/dist/locales/fr.js +41 -0
  248. package/dist/locales/fr.js.map +1 -0
  249. package/dist/locales/interfaces.d.ts +11 -0
  250. package/dist/locales/interfaces.d.ts.map +1 -0
  251. package/dist/stories/utils/SeijUIProviderDecorator.d.ts +2 -0
  252. package/dist/stories/utils/SeijUIProviderDecorator.d.ts.map +1 -0
  253. package/dist/stories/utils/StoryComponentFrame.d.ts +11 -0
  254. package/dist/stories/utils/StoryComponentFrame.d.ts.map +1 -0
  255. package/package.json +48 -0
@@ -0,0 +1,31 @@
1
+ import { jsxs as a, jsx as i } from "react/jsx-runtime";
2
+ import { Select as h, Caption1 as s } from "@fluentui/react-components";
3
+ function u({
4
+ id: o,
5
+ value: n,
6
+ disabled: t = !1,
7
+ options: c,
8
+ onValueChange: l
9
+ }) {
10
+ var d;
11
+ const r = (d = c.find((e) => e.code === n)) == null ? void 0 : d.description;
12
+ return /* @__PURE__ */ a("div", { children: [
13
+ /* @__PURE__ */ i(
14
+ h,
15
+ {
16
+ id: o,
17
+ value: n,
18
+ onChange: (e, p) => {
19
+ l(p.value ?? "");
20
+ },
21
+ disabled: t,
22
+ children: c.map((e) => /* @__PURE__ */ i("option", { value: e.code, children: e.label }, e.code))
23
+ }
24
+ ),
25
+ r && /* @__PURE__ */ i("div", { children: /* @__PURE__ */ i(s, { children: r }) })
26
+ ] });
27
+ }
28
+ export {
29
+ u as InputSelect
30
+ };
31
+ //# sourceMappingURL=InputSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputSelect.js","sources":["../../../src/lib/select/InputSelect.tsx"],"sourcesContent":["import { Caption1, Select } from \"@fluentui/react-components\";\n\nexport interface InputSelectOption {\n code: string;\n label: string;\n description?: string | null | undefined;\n}\nexport interface InputSelectProps<T extends InputSelectOption> {\n id?: string;\n /** Le code de la valeur sélectionnée. */\n value: string;\n /** Indique si le champ est désactivé */\n disabled?: boolean;\n /** La liste des options à afficher dans la liste déroulante. */\n options: T[];\n /** La fonction à appeler lorsque la valeur sélectionnée change. */\n onValueChange: (value: string) => void;\n}\n/**\n * Une combobox de sélection d'entrée avec une liste déroulante d'options.\n * @returns Un composant de combobox de sélection (sans saisie de texte possible).\n */\nexport function InputSelect<T extends InputSelectOption>({\n id,\n value,\n disabled = false,\n options,\n onValueChange,\n}: InputSelectProps<T>) {\n const description = options.find((it) => it.code === value)?.description;\n return (\n <div>\n <Select\n id={id}\n value={value}\n onChange={(ev, data) => {\n onValueChange(data.value ?? \"\");\n }}\n disabled={disabled}\n >\n {options.map((o) => (\n <option key={o.code} value={o.code}>\n {o.label}\n </option>\n ))}\n </Select>\n {description && (\n <div>\n <Caption1>{description}</Caption1>\n </div>\n )}\n </div>\n );\n}\n"],"names":["InputSelect","id","value","disabled","options","onValueChange","description","_a","it","jsx","Select","ev","data","o","Caption1"],"mappings":";;AAsBO,SAASA,EAAyC;AAAA,EACvD,IAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,SAAAC;AAAA,EACA,eAAAC;AACF,GAAwB;;AACtB,QAAMC,KAAcC,IAAAH,EAAQ,KAAK,CAACI,MAAOA,EAAG,SAASN,CAAK,MAAtC,gBAAAK,EAAyC;AAC7D,2BACG,OAAA,EACC,UAAA;AAAA,IAAA,gBAAAE;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,IAAAT;AAAA,QACA,OAAAC;AAAA,QACA,UAAU,CAACS,GAAIC,MAAS;AACtB,UAAAP,EAAcO,EAAK,SAAS,EAAE;AAAA,QAChC;AAAA,QACA,UAAAT;AAAA,QAEC,UAAAC,EAAQ,IAAI,CAACS,MACZ,gBAAAJ,EAAC,UAAA,EAAoB,OAAOI,EAAE,MAC3B,UAAAA,EAAE,MAAA,GADQA,EAAE,IAEf,CACD;AAAA,MAAA;AAAA,IAAA;AAAA,IAEFP,KACC,gBAAAG,EAAC,OAAA,EACC,UAAA,gBAAAA,EAACK,GAAA,EAAU,aAAY,EAAA,CACzB;AAAA,EAAA,GAEJ;AAEJ;"}
@@ -0,0 +1,9 @@
1
+ export declare function SwitchButton({ value, label, labelTrue, labelFalse, onValueChange, disabled, }: {
2
+ value: boolean;
3
+ label?: string;
4
+ labelTrue?: string;
5
+ labelFalse?: string;
6
+ disabled?: boolean;
7
+ onValueChange: (next: boolean) => void;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=SwitchButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwitchButton.d.ts","sourceRoot":"","sources":["../../../src/lib/switchbutton/SwitchButton.tsx"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,KAAK,EACL,SAAS,EACT,UAAU,EACV,aAAa,EACb,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC,2CAMA"}
@@ -0,0 +1,18 @@
1
+ import { jsx as c } from "react/jsx-runtime";
2
+ import { Switch as i } from "@fluentui/react-components";
3
+ function b({
4
+ value: n,
5
+ label: t,
6
+ labelTrue: e,
7
+ labelFalse: o,
8
+ onValueChange: a,
9
+ disabled: h
10
+ }) {
11
+ return /* @__PURE__ */ c(i, { checked: n, onChange: () => {
12
+ a(!n);
13
+ }, label: (n ? e : o) ?? t ?? "", disabled: h });
14
+ }
15
+ export {
16
+ b as SwitchButton
17
+ };
18
+ //# sourceMappingURL=SwitchButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwitchButton.js","sources":["../../../src/lib/switchbutton/SwitchButton.tsx"],"sourcesContent":["import { Switch } from \"@fluentui/react-components\";\n\nexport function SwitchButton({\n value,\n label,\n labelTrue,\n labelFalse,\n onValueChange,\n disabled,\n}: {\n value: boolean;\n label?: string;\n labelTrue?: string;\n labelFalse?: string;\n disabled?: boolean;\n onValueChange: (next: boolean) => void;\n}) {\n const handleChange = () => {\n onValueChange(!value);\n };\n const finalLabel = (value ? labelTrue : labelFalse) ?? label ?? \"\";\n return <Switch checked={value} onChange={handleChange} label={finalLabel} disabled={disabled} />;\n}\n"],"names":["SwitchButton","value","label","labelTrue","labelFalse","onValueChange","disabled","jsx","Switch"],"mappings":";;AAEO,SAASA,EAAa;AAAA,EAC3B,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,UAAAC;AACF,GAOG;AAKD,SAAO,gBAAAC,EAACC,KAAO,SAASP,GAAO,UAJV,MAAM;AACzB,IAAAI,EAAc,CAACJ,CAAK;AAAA,EACtB,GAEuD,QADnCA,IAAQE,IAAYC,MAAeF,KAAS,IACU,UAAAI,GAAoB;AAChG;"}
@@ -0,0 +1,18 @@
1
+ import { ReactNode } from 'react';
2
+ export declare const Tabs: ({ value, children, onChange, }: {
3
+ value: string | null;
4
+ children: ReactNode | ReactNode[];
5
+ onChange: (value: string | null) => void;
6
+ }) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const TabsList: ({ children }: {
8
+ children: ReactNode | ReactNode[];
9
+ }) => import("react/jsx-runtime").JSX.Element;
10
+ export declare const TabsTab: ({ value, children }: {
11
+ value: string;
12
+ children: ReactNode | ReactNode[];
13
+ }) => import("react/jsx-runtime").JSX.Element;
14
+ export declare const TabsPanel: ({ value, children }: {
15
+ value: string;
16
+ children: ReactNode | ReactNode[];
17
+ }) => import("react/jsx-runtime").JSX.Element | null;
18
+ //# sourceMappingURL=Tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/lib/tabs/Tabs.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,SAAS,EAAc,MAAM,OAAO,CAAC;AASrD,eAAO,MAAM,IAAI,GAAI,gCAIlB;IACD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC1C,4CAMA,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,cAAc;IAAE,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,CAAA;CAAE,4CAW3E,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,qBAAqB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,CAAA;CAAE,4CAEhG,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,qBAAqB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,CAAA;CAAE,mDAIlG,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { TabList as s, Tab as u } from "@fluentui/react-components";
3
+ import b, { useContext as o } from "react";
4
+ const a = b.createContext({
5
+ currentTab: null,
6
+ onChange: () => {
7
+ }
8
+ }), m = ({
9
+ value: r,
10
+ children: e,
11
+ onChange: n
12
+ }) => /* @__PURE__ */ t("div", { children: /* @__PURE__ */ t(a.Provider, { value: { currentTab: r, onChange: n }, children: e }) }), v = ({ children: r }) => {
13
+ const e = o(a);
14
+ return /* @__PURE__ */ t(
15
+ s,
16
+ {
17
+ selectedValue: e.currentTab,
18
+ onTabSelect: (n, c) => e.onChange(c.value),
19
+ vertical: !1,
20
+ children: r
21
+ }
22
+ );
23
+ }, d = ({ value: r, children: e }) => /* @__PURE__ */ t(u, { value: r, children: e }), f = ({ value: r, children: e }) => o(a).currentTab !== r ? null : /* @__PURE__ */ t("div", { children: e });
24
+ export {
25
+ m as Tabs,
26
+ v as TabsList,
27
+ f as TabsPanel,
28
+ d as TabsTab
29
+ };
30
+ //# sourceMappingURL=Tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.js","sources":["../../../src/lib/tabs/Tabs.tsx"],"sourcesContent":["import { Tab, TabList as TabListFluent } from \"@fluentui/react-components\";\nimport React, { ReactNode, useContext } from \"react\";\n\nconst TabsContext = React.createContext<{ currentTab: string | null; onChange: (value: string | null) => void }>({\n currentTab: null,\n onChange: () => {\n // Volontairement vide\n },\n});\n\nexport const Tabs = ({\n value,\n children,\n onChange,\n}: {\n value: string | null;\n children: ReactNode | ReactNode[];\n onChange: (value: string | null) => void;\n}) => {\n return (\n <div>\n <TabsContext.Provider value={{ currentTab: value, onChange: onChange }}>{children}</TabsContext.Provider>\n </div>\n );\n};\n\nexport const TabsList = ({ children }: { children: ReactNode | ReactNode[] }) => {\n const currentTab = useContext(TabsContext);\n return (\n <TabListFluent\n selectedValue={currentTab.currentTab}\n onTabSelect={(e, data) => currentTab.onChange(data.value as string | null)}\n vertical={false}\n >\n {children}\n </TabListFluent>\n );\n};\n\nexport const TabsTab = ({ value, children }: { value: string; children: ReactNode | ReactNode[] }) => {\n return <Tab value={value}>{children}</Tab>;\n};\n\nexport const TabsPanel = ({ value, children }: { value: string; children: ReactNode | ReactNode[] }) => {\n const currentTab = useContext(TabsContext);\n if (currentTab.currentTab !== value) return null;\n return <div>{children}</div>;\n};\n"],"names":["TabsContext","React","Tabs","value","children","onChange","jsx","TabsList","currentTab","useContext","TabListFluent","e","data","TabsTab","Tab","TabsPanel"],"mappings":";;;AAGA,MAAMA,IAAcC,EAAM,cAAuF;AAAA,EAC/G,YAAY;AAAA,EACZ,UAAU,MAAM;AAAA,EAEhB;AACF,CAAC,GAEYC,IAAO,CAAC;AAAA,EACnB,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AACF,MAMI,gBAAAC,EAAC,OAAA,EACC,UAAA,gBAAAA,EAACN,EAAY,UAAZ,EAAqB,OAAO,EAAE,YAAYG,GAAO,UAAAE,EAAA,GAAuB,UAAAD,GAAS,GACpF,GAISG,IAAW,CAAC,EAAE,UAAAH,QAAsD;AAC/E,QAAMI,IAAaC,EAAWT,CAAW;AACzC,SACE,gBAAAM;AAAA,IAACI;AAAAA,IAAA;AAAA,MACC,eAAeF,EAAW;AAAA,MAC1B,aAAa,CAACG,GAAGC,MAASJ,EAAW,SAASI,EAAK,KAAsB;AAAA,MACzE,UAAU;AAAA,MAET,UAAAR;AAAA,IAAA;AAAA,EAAA;AAGP,GAEaS,IAAU,CAAC,EAAE,OAAAV,GAAO,UAAAC,QACxB,gBAAAE,EAACQ,GAAA,EAAI,OAAAX,GAAe,UAAAC,EAAA,CAAS,GAGzBW,IAAY,CAAC,EAAE,OAAAZ,GAAO,UAAAC,QACdK,EAAWT,CAAW,EAC1B,eAAeG,IAAc,OACrC,gBAAAG,EAAC,SAAK,UAAAF,GAAS;"}
@@ -0,0 +1,2 @@
1
+ export * from './Tabs';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/tabs/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { ChangeEventHandler } from 'react';
2
+ export interface InputTextProps {
3
+ value: string;
4
+ maxLength?: number;
5
+ disabled?: boolean;
6
+ placeholder?: string;
7
+ onValueChange: (value: string) => void;
8
+ onChange?: ChangeEventHandler<HTMLInputElement>;
9
+ autoComplete?: string | undefined | null;
10
+ }
11
+ export declare function InputText({ value, maxLength, disabled, placeholder, onValueChange, onChange, autoComplete, }: InputTextProps): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=InputText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputText.d.ts","sourceRoot":"","sources":["../../../src/lib/text/InputText.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAC3C,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAChD,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;CAC1C;AACD,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACX,aAAa,EACb,QAAQ,EACR,YAAqB,GACtB,EAAE,cAAc,2CAiBhB"}
@@ -0,0 +1,32 @@
1
+ import { jsx as u } from "react/jsx-runtime";
2
+ import { Input as a } from "@fluentui/react-components";
3
+ import { isNil as x } from "lodash-es";
4
+ function I({
5
+ value: o,
6
+ maxLength: e,
7
+ disabled: i,
8
+ placeholder: m,
9
+ onValueChange: f,
10
+ onChange: r,
11
+ autoComplete: t = "nope"
12
+ }) {
13
+ const c = (p) => {
14
+ const n = p.currentTarget.value;
15
+ n !== o && f(n), n !== o && r && r(p);
16
+ }, s = x(t) || t === "" ? "nope" : t;
17
+ return /* @__PURE__ */ u(
18
+ a,
19
+ {
20
+ autoComplete: s,
21
+ value: o,
22
+ disabled: i,
23
+ placeholder: m,
24
+ onChange: c,
25
+ maxLength: e
26
+ }
27
+ );
28
+ }
29
+ export {
30
+ I as InputText
31
+ };
32
+ //# sourceMappingURL=InputText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputText.js","sources":["../../../src/lib/text/InputText.tsx"],"sourcesContent":["import { Input } from \"@fluentui/react-components\";\nimport { isNil } from \"lodash-es\";\nimport { ChangeEventHandler } from \"react\";\nexport interface InputTextProps {\n value: string;\n maxLength?: number;\n disabled?: boolean;\n placeholder?: string;\n onValueChange: (value: string) => void;\n onChange?: ChangeEventHandler<HTMLInputElement>;\n autoComplete?: string | undefined | null;\n}\nexport function InputText({\n value,\n maxLength,\n disabled,\n placeholder,\n onValueChange,\n onChange,\n autoComplete = \"nope\",\n}: InputTextProps) {\n const handleChange: ChangeEventHandler<HTMLInputElement> = (e) => {\n const v = e.currentTarget.value;\n if (v !== value) onValueChange(v);\n if (v !== value && onChange) onChange(e);\n };\n const autoCompleteCompat = isNil(autoComplete) ? \"nope\" : autoComplete === \"\" ? \"nope\" : autoComplete;\n return (\n <Input\n autoComplete={autoCompleteCompat}\n value={value}\n disabled={disabled}\n placeholder={placeholder}\n onChange={handleChange}\n maxLength={maxLength}\n />\n );\n}\n"],"names":["InputText","value","maxLength","disabled","placeholder","onValueChange","onChange","autoComplete","handleChange","e","v","autoCompleteCompat","isNil","jsx","Input"],"mappings":";;;AAYO,SAASA,EAAU;AAAA,EACxB,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC,IAAe;AACjB,GAAmB;AACjB,QAAMC,IAAqD,CAACC,MAAM;AAChE,UAAMC,IAAID,EAAE,cAAc;AAC1B,IAAIC,MAAMT,KAAOI,EAAcK,CAAC,GAC5BA,MAAMT,KAASK,KAAUA,EAASG,CAAC;AAAA,EACzC,GACME,IAAqBC,EAAML,CAAY,KAAaA,MAAiB,KAA1B,SAAwCA;AACzF,SACE,gBAAAM;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,cAAcH;AAAA,MACd,OAAAV;AAAA,MACA,UAAAE;AAAA,MACA,aAAAC;AAAA,MACA,UAAUI;AAAA,MACV,WAAAN;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -0,0 +1,4 @@
1
+ export declare function Description({ value }: {
2
+ value: string | null | undefined;
3
+ }): import("react/jsx-runtime").JSX.Element | null;
4
+ //# sourceMappingURL=Description.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Description.d.ts","sourceRoot":"","sources":["../../../../src/lib/typography/description/Description.tsx"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,kDAG1E"}
@@ -0,0 +1,9 @@
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ import { Caption1 as n } from "@fluentui/react-components";
3
+ function p({ value: r }) {
4
+ return r ? /* @__PURE__ */ i(n, { children: r }) : null;
5
+ }
6
+ export {
7
+ p as Description
8
+ };
9
+ //# sourceMappingURL=Description.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Description.js","sources":["../../../../src/lib/typography/description/Description.tsx"],"sourcesContent":["import { Caption1 } from \"@fluentui/react-components\";\n\nexport function Description({ value }: { value: string | null | undefined }) {\n if (!value) return null;\n return <Caption1>{value}</Caption1>;\n}\n"],"names":["Description","value","jsx","Caption1"],"mappings":";;AAEO,SAASA,EAAY,EAAE,OAAAC,KAA+C;AAC3E,SAAKA,IACE,gBAAAC,EAACC,KAAU,UAAAF,EAAA,CAAM,IADL;AAErB;"}
@@ -0,0 +1,2 @@
1
+ export * from './Description';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/typography/description/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './description';
2
+ export * from './label_and_description';
3
+ export * from './todo/Todo';
4
+ export * from './sectiontitle/SectionTitle';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/typography/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function LabelAndDescription({ label, description, }: {
2
+ label: string | null | undefined;
3
+ description: string | null | undefined;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=LabelAndDescription.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LabelAndDescription.d.ts","sourceRoot":"","sources":["../../../../src/lib/typography/label_and_description/LabelAndDescription.tsx"],"names":[],"mappings":"AAGA,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,WAAW,GACZ,EAAE;IACD,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACxC,2CAWA"}
@@ -0,0 +1,16 @@
1
+ import { jsxs as e, jsx as i } from "react/jsx-runtime";
2
+ import { Body1 as n } from "@fluentui/react-components";
3
+ import { Description as d } from "../description/Description.js";
4
+ function m({
5
+ label: r,
6
+ description: o
7
+ }) {
8
+ return /* @__PURE__ */ e("div", { children: [
9
+ /* @__PURE__ */ i("div", { children: /* @__PURE__ */ i(n, { children: r }) }),
10
+ /* @__PURE__ */ i("div", { children: /* @__PURE__ */ i(d, { value: o }) })
11
+ ] });
12
+ }
13
+ export {
14
+ m as LabelAndDescription
15
+ };
16
+ //# sourceMappingURL=LabelAndDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LabelAndDescription.js","sources":["../../../../src/lib/typography/label_and_description/LabelAndDescription.tsx"],"sourcesContent":["import { Body1 } from \"@fluentui/react-components\";\nimport { Description } from \"../description/Description\";\n\nexport function LabelAndDescription({\n label,\n description,\n}: {\n label: string | null | undefined;\n description: string | null | undefined;\n}) {\n return (\n <div>\n <div>\n <Body1>{label}</Body1>\n </div>\n <div>\n <Description value={description} />\n </div>\n </div>\n );\n}\n"],"names":["LabelAndDescription","label","description","jsx","Body1","Description"],"mappings":";;;AAGO,SAASA,EAAoB;AAAA,EAClC,OAAAC;AAAA,EACA,aAAAC;AACF,GAGG;AACD,2BACG,OAAA,EACC,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAA,EACC,UAAA,gBAAAA,EAACC,GAAA,EAAO,UAAAH,EAAA,CAAM,GAChB;AAAA,sBACC,OAAA,EACC,UAAA,gBAAAE,EAACE,GAAA,EAAY,OAAOH,GAAa,EAAA,CACnC;AAAA,EAAA,GACF;AAEJ;"}
@@ -0,0 +1,2 @@
1
+ export * from './LabelAndDescription';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/typography/label_and_description/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { ReactNode } from 'react';
2
+ export declare function SectionTitle(props: {
3
+ children: ReactNode | ReactNode[];
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=SectionTitle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SectionTitle.d.ts","sourceRoot":"","sources":["../../../../src/lib/typography/sectiontitle/SectionTitle.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,CAAA;CAAE,2CAExE"}
@@ -0,0 +1,8 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ function n(r) {
3
+ return /* @__PURE__ */ e("h4", { children: r.children });
4
+ }
5
+ export {
6
+ n as SectionTitle
7
+ };
8
+ //# sourceMappingURL=SectionTitle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SectionTitle.js","sources":["../../../../src/lib/typography/sectiontitle/SectionTitle.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport function SectionTitle(props: { children: ReactNode | ReactNode[] }) {\n return <h4>{props.children}</h4>;\n}\n"],"names":["SectionTitle","props","jsx"],"mappings":";AAEO,SAASA,EAAaC,GAA8C;AACzE,SAAO,gBAAAC,EAAC,MAAA,EAAI,UAAAD,EAAM,SAAA,CAAS;AAC7B;"}
@@ -0,0 +1,5 @@
1
+ import { ReactNode } from 'react';
2
+ export declare const Todo: ({ children }: {
3
+ children?: ReactNode | undefined;
4
+ }) => import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=Todo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Todo.d.ts","sourceRoot":"","sources":["../../../../src/lib/typography/todo/Todo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,eAAO,MAAM,IAAI,GAAI,cAAc;IAAE,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,4CAEtE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { MessageBar as t } from "@fluentui/react-components";
3
+ const i = ({ children: r }) => /* @__PURE__ */ o(t, { intent: "warning", children: r });
4
+ export {
5
+ i as Todo
6
+ };
7
+ //# sourceMappingURL=Todo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Todo.js","sources":["../../../../src/lib/typography/todo/Todo.tsx"],"sourcesContent":["import { MessageBar } from \"@fluentui/react-components\";\nimport { ReactNode } from \"react\";\n\nexport const Todo = ({ children }: { children?: ReactNode | undefined }) => {\n return <MessageBar intent=\"warning\">{children}</MessageBar>;\n};\n"],"names":["Todo","children","jsx","MessageBar"],"mappings":";;AAGO,MAAMA,IAAO,CAAC,EAAE,UAAAC,QACd,gBAAAC,EAACC,GAAA,EAAW,QAAO,WAAW,UAAAF,EAAA,CAAS;"}
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from 'react';
2
+ /**
3
+ * Corps principal d'une vue, à mettre uniquement dans ViewLayout
4
+ */
5
+ export declare function ViewBody({ children }: {
6
+ children: ReactNode | ReactNode[];
7
+ }): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=ViewBody.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewBody.d.ts","sourceRoot":"","sources":["../../../src/lib/view_layout/ViewBody.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,CAAA;CAAE,2CAE3E"}
@@ -0,0 +1,8 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ function t({ children: o }) {
3
+ return /* @__PURE__ */ r("div", { children: o });
4
+ }
5
+ export {
6
+ t as ViewBody
7
+ };
8
+ //# sourceMappingURL=ViewBody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewBody.js","sources":["../../../src/lib/view_layout/ViewBody.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\n/**\n * Corps principal d'une vue, à mettre uniquement dans ViewLayout\n */\nexport function ViewBody({ children }: { children: ReactNode | ReactNode[] }) {\n return <div>{children}</div>;\n}\n"],"names":["ViewBody","children","jsx"],"mappings":";AAKO,SAASA,EAAS,EAAE,UAAAC,KAAmD;AAC5E,SAAO,gBAAAC,EAAC,SAAK,UAAAD,GAAS;AACxB;"}
@@ -0,0 +1,10 @@
1
+ import { ReactNode } from 'react';
2
+ /**
3
+ * Footer d'une vue, à utiliser uniquement dans ViewLayout
4
+ * @param param0
5
+ * @returns
6
+ */
7
+ export declare function ViewFooter({ children }: {
8
+ children: ReactNode;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=ViewFooter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewFooter.d.ts","sourceRoot":"","sources":["../../../src/lib/view_layout/ViewFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAE/D"}
@@ -0,0 +1,8 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ function e({ children: o }) {
3
+ return /* @__PURE__ */ r("div", { children: o });
4
+ }
5
+ export {
6
+ e as ViewFooter
7
+ };
8
+ //# sourceMappingURL=ViewFooter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewFooter.js","sources":["../../../src/lib/view_layout/ViewFooter.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\n/**\n * Footer d'une vue, à utiliser uniquement dans ViewLayout\n * @param param0\n * @returns\n */\nexport function ViewFooter({ children }: { children: ReactNode }) {\n return <div>{children}</div>;\n}\n"],"names":["ViewFooter","children","jsx"],"mappings":";AAOO,SAASA,EAAW,EAAE,UAAAC,KAAqC;AAChE,SAAO,gBAAAC,EAAC,SAAK,UAAAD,GAAS;AACxB;"}
@@ -0,0 +1,5 @@
1
+ import { ReactNode } from 'react';
2
+ export declare function ViewHeader({ children }: {
3
+ children: ReactNode;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=ViewHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewHeader.d.ts","sourceRoot":"","sources":["../../../src/lib/view_layout/ViewHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAE/D"}
@@ -0,0 +1,8 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ function o({ children: r }) {
3
+ return /* @__PURE__ */ e("div", { children: r });
4
+ }
5
+ export {
6
+ o as ViewHeader
7
+ };
8
+ //# sourceMappingURL=ViewHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewHeader.js","sources":["../../../src/lib/view_layout/ViewHeader.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport function ViewHeader({ children }: { children: ReactNode }) {\n return <div>{children}</div>;\n}\n"],"names":["ViewHeader","children","jsx"],"mappings":";AAEO,SAASA,EAAW,EAAE,UAAAC,KAAqC;AAChE,SAAO,gBAAAC,EAAC,SAAK,UAAAD,GAAS;AACxB;"}
@@ -0,0 +1,16 @@
1
+ import { HTMLAttributes, ReactElement } from 'react';
2
+ import { ViewTitle } from './ViewTitle';
3
+ import { ViewBody } from './ViewBody';
4
+ import { ViewFooter } from './ViewFooter';
5
+ import { ViewHeader } from './ViewHeader';
6
+ export type LayoutContentSize = "xsmall" | "small" | "standard" | "large";
7
+ export type ViewAllowedChild = ReactElement<typeof ViewHeader> | ReactElement<typeof ViewTitle> | ReactElement<typeof ViewBody> | ReactElement<typeof ViewFooter>;
8
+ export declare function ViewLayout({ children, contentSize, ...otherProps }: {
9
+ /**
10
+ * Indique si on a un contenu de type large ou normal ou small, permet d'adapter la largeur de lecture.
11
+ * Par défaut "standard" qui correspond à une lecture à 60rem
12
+ **/
13
+ contentSize?: LayoutContentSize;
14
+ children: ViewAllowedChild | ViewAllowedChild[];
15
+ } & HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
16
+ //# sourceMappingURL=ViewLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewLayout.d.ts","sourceRoot":"","sources":["../../../src/lib/view_layout/ViewLayout.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,YAAY,EAA+B,MAAM,OAAO,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AA+F1E,MAAM,MAAM,gBAAgB,GACxB,YAAY,CAAC,OAAO,UAAU,CAAC,GAC/B,YAAY,CAAC,OAAO,SAAS,CAAC,GAC9B,YAAY,CAAC,OAAO,QAAQ,CAAC,GAC7B,YAAY,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpC,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,WAAwB,EACxB,GAAG,UAAU,EACd,EAAE;IACD;;;QAGI;IACJ,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CAAC;CACjD,GAAG,cAAc,CAAC,cAAc,CAAC,2CAmDjC"}
@@ -0,0 +1,127 @@
1
+ import { jsx as t, jsxs as L } from "react/jsx-runtime";
2
+ import { makeStyles as v, tokens as o, mergeClasses as a } from "@fluentui/react-components";
3
+ import { isArray as W } from "lodash-es";
4
+ import { useState as H, useRef as z, useEffect as N } from "react";
5
+ import { ViewTitle as R } from "./ViewTitle.js";
6
+ import { ViewBody as k } from "./ViewBody.js";
7
+ import { ViewFooter as B } from "./ViewFooter.js";
8
+ import { ViewHeader as G } from "./ViewHeader.js";
9
+ const l = {
10
+ debugBorder: "none"
11
+ }, V = v({
12
+ root: {
13
+ display: "flex",
14
+ flexDirection: "column",
15
+ alignItems: "center",
16
+ justifyContent: "center",
17
+ height: "100%",
18
+ width: "100%",
19
+ minWidth: "100%"
20
+ },
21
+ content: {
22
+ display: "flex",
23
+ flexDirection: "column",
24
+ flexGrow: 1,
25
+ overflow: "hidden",
26
+ marginLeft: o.spacingHorizontalL,
27
+ marginRight: o.spacingHorizontalL,
28
+ width: "100%"
29
+ },
30
+ contentLarge: {
31
+ maxWidth: "100%"
32
+ },
33
+ contentStandard: {
34
+ maxWidth: "60rem"
35
+ },
36
+ contentSmall: {
37
+ maxWidth: "40rem"
38
+ },
39
+ contentXSmall: {
40
+ maxWidth: "30rem"
41
+ },
42
+ headerWrapper: {
43
+ // Le header prend un minimum de place en hauteur
44
+ flexShrink: 0,
45
+ // Le header ne doit pas scroller mais on réserve quand même une place
46
+ // cachée pour une scrollbar de telle sorte que lorsque le body va scroller
47
+ // si une barre de scroll appraît, le header, body et footer soient toujours
48
+ // alignés
49
+ overflowY: "hidden",
50
+ scrollbarGutter: "stable",
51
+ // Le padding est sur le wrapper pour que lorsque l'écran devient tout petit
52
+ // on aille pas coller les bords de l'écran
53
+ paddingLeft: o.spacingHorizontalL,
54
+ paddingRight: o.spacingHorizontalL,
55
+ // Mode debug uniquement
56
+ border: l.debugBorder
57
+ },
58
+ header: { margin: "auto" },
59
+ headerWithShadow: {
60
+ //border: "1px solid #ccc",
61
+ boxShadow: o.shadow16,
62
+ transition: "box-shadow 0.2s ease-in-out",
63
+ zIndex: 1
64
+ },
65
+ bodyWrapper: {
66
+ // Le body prend un maximum de place en hauteur
67
+ flexGrow: 1,
68
+ // Le body va scroller mais il faut réserver une place cachée pour la scroll
69
+ // sinon si la scrollbar apparaît elle va désaligner body/header/footer.
70
+ overflowY: "auto",
71
+ scrollbarGutter: "stable",
72
+ // Le padding est sur le wrapper pour que lorsque l'écran devient tout petit
73
+ // on aille pas coller les bords de l'écran
74
+ paddingLeft: o.spacingHorizontalL,
75
+ paddingRight: o.spacingHorizontalL,
76
+ // Mode debug uniquement
77
+ border: l.debugBorder
78
+ },
79
+ body: {
80
+ margin: "auto"
81
+ },
82
+ footerWrapper: {
83
+ // Le footer prend un minimum de place en hauteur
84
+ flexShrink: 0,
85
+ margin: "auto",
86
+ // Le footer ne doit pas scroller mais on réserve quand même une place
87
+ // cachée pour une scrollbar de telle sorte que lorsque le body va scroller
88
+ // si une barre de scroll appraît, le header, body et footer soient toujours
89
+ // alignés
90
+ overflowY: "hidden",
91
+ scrollbarGutter: "stable",
92
+ // Le padding est sur le wrapper pour que lorsque l'écran devient tout petit
93
+ // on aille pas coller les bords de l'écran
94
+ paddingLeft: o.spacingHorizontalL,
95
+ paddingRight: o.spacingHorizontalL,
96
+ // Mode debug uniquement
97
+ border: l.debugBorder
98
+ },
99
+ footer: {
100
+ margin: "auto"
101
+ }
102
+ });
103
+ function A({
104
+ children: n,
105
+ contentSize: i = "standard",
106
+ ...p
107
+ }) {
108
+ const [h, f] = H(!1), c = z(null);
109
+ N(() => {
110
+ const r = c.current;
111
+ if (!r) return;
112
+ const m = () => {
113
+ f(r.scrollTop > 0);
114
+ };
115
+ return r.addEventListener("scroll", m), () => r.removeEventListener("scroll", m);
116
+ }, []);
117
+ const d = W(n) ? n : [n], g = d.find((r) => r.type === G || r.type === R), u = d.find((r) => r.type === k), y = d.find((r) => r.type === B), e = V(), s = i === "large" ? e.contentLarge : i === "small" ? e.contentSmall : i === "xsmall" ? e.contentXSmall : e.contentStandard, b = a(e.body, s), S = a(e.headerWrapper, h ? e.headerWithShadow : void 0), x = a(e.header, s), w = a(e.footer, s);
118
+ return /* @__PURE__ */ t("div", { ...p, className: e.root, children: /* @__PURE__ */ L("div", { className: e.content, children: [
119
+ /* @__PURE__ */ t("div", { className: S, children: /* @__PURE__ */ t("div", { className: x, children: g }) }),
120
+ /* @__PURE__ */ t("div", { className: e.bodyWrapper, ref: c, children: /* @__PURE__ */ t("div", { className: b, children: u }) }),
121
+ /* @__PURE__ */ t("div", { className: e.footerWrapper, children: /* @__PURE__ */ t("div", { className: w, children: y }) })
122
+ ] }) });
123
+ }
124
+ export {
125
+ A as ViewLayout
126
+ };
127
+ //# sourceMappingURL=ViewLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewLayout.js","sources":["../../../src/lib/view_layout/ViewLayout.tsx"],"sourcesContent":["import { makeStyles, mergeClasses, tokens } from \"@fluentui/react-components\";\nimport { isArray } from \"lodash-es\";\nimport { HTMLAttributes, ReactElement, useEffect, useRef, useState } from \"react\";\nimport { ViewTitle } from \"./ViewTitle\";\nimport { ViewBody } from \"./ViewBody\";\nimport { ViewFooter } from \"./ViewFooter\";\nimport { ViewHeader } from \"./ViewHeader\";\n\nconst DEBUG = false;\n\nconst debugTokens = {\n debugBorder: DEBUG ? \"1px dotted red\" : \"none\",\n};\n\nexport type LayoutContentSize = \"xsmall\" | \"small\" | \"standard\" | \"large\";\n\nconst useStyles = makeStyles({\n root: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"100%\",\n width: \"100%\",\n minWidth: \"100%\",\n },\n content: {\n display: \"flex\",\n flexDirection: \"column\",\n flexGrow: 1,\n overflow: \"hidden\",\n marginLeft: tokens.spacingHorizontalL,\n marginRight: tokens.spacingHorizontalL,\n width: \"100%\",\n },\n contentLarge: {\n maxWidth: \"100%\",\n },\n contentStandard: {\n maxWidth: \"60rem\",\n },\n contentSmall: {\n maxWidth: \"40rem\",\n },\n contentXSmall: {\n maxWidth: \"30rem\",\n },\n headerWrapper: {\n // Le header prend un minimum de place en hauteur\n flexShrink: 0,\n // Le header ne doit pas scroller mais on réserve quand même une place\n // cachée pour une scrollbar de telle sorte que lorsque le body va scroller\n // si une barre de scroll appraît, le header, body et footer soient toujours\n // alignés\n overflowY: \"hidden\",\n scrollbarGutter: \"stable\",\n // Le padding est sur le wrapper pour que lorsque l'écran devient tout petit\n // on aille pas coller les bords de l'écran\n paddingLeft: tokens.spacingHorizontalL,\n paddingRight: tokens.spacingHorizontalL,\n // Mode debug uniquement\n border: debugTokens.debugBorder,\n },\n header: { margin: \"auto\" },\n headerWithShadow: {\n //border: \"1px solid #ccc\",\n boxShadow: tokens.shadow16,\n transition: \"box-shadow 0.2s ease-in-out\",\n zIndex: 1,\n },\n bodyWrapper: {\n // Le body prend un maximum de place en hauteur\n flexGrow: 1,\n // Le body va scroller mais il faut réserver une place cachée pour la scroll\n // sinon si la scrollbar apparaît elle va désaligner body/header/footer.\n overflowY: \"auto\",\n scrollbarGutter: \"stable\",\n // Le padding est sur le wrapper pour que lorsque l'écran devient tout petit\n // on aille pas coller les bords de l'écran\n paddingLeft: tokens.spacingHorizontalL,\n paddingRight: tokens.spacingHorizontalL,\n // Mode debug uniquement\n border: debugTokens.debugBorder,\n },\n body: {\n margin: \"auto\",\n },\n footerWrapper: {\n // Le footer prend un minimum de place en hauteur\n flexShrink: 0,\n margin: \"auto\",\n // Le footer ne doit pas scroller mais on réserve quand même une place\n // cachée pour une scrollbar de telle sorte que lorsque le body va scroller\n // si une barre de scroll appraît, le header, body et footer soient toujours\n // alignés\n overflowY: \"hidden\",\n scrollbarGutter: \"stable\",\n // Le padding est sur le wrapper pour que lorsque l'écran devient tout petit\n // on aille pas coller les bords de l'écran\n paddingLeft: tokens.spacingHorizontalL,\n paddingRight: tokens.spacingHorizontalL,\n // Mode debug uniquement\n border: debugTokens.debugBorder,\n },\n footer: {\n margin: \"auto\",\n },\n});\n\nexport type ViewAllowedChild =\n | ReactElement<typeof ViewHeader>\n | ReactElement<typeof ViewTitle>\n | ReactElement<typeof ViewBody>\n | ReactElement<typeof ViewFooter>;\n\nexport function ViewLayout({\n children,\n contentSize = \"standard\",\n ...otherProps\n}: {\n /**\n * Indique si on a un contenu de type large ou normal ou small, permet d'adapter la largeur de lecture.\n * Par défaut \"standard\" qui correspond à une lecture à 60rem\n **/\n contentSize?: LayoutContentSize;\n children: ViewAllowedChild | ViewAllowedChild[];\n} & HTMLAttributes<HTMLDivElement>) {\n const [hasScrolled, setHasScrolled] = useState(false);\n const bodyRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const el = bodyRef.current;\n if (!el) return;\n\n const handleScroll = () => {\n setHasScrolled(el.scrollTop > 0);\n };\n\n el.addEventListener(\"scroll\", handleScroll);\n return () => el.removeEventListener(\"scroll\", handleScroll);\n }, []);\n\n const childrenList = isArray(children) ? children : [children];\n const header = childrenList.find((it) => it.type === ViewHeader || it.type === ViewTitle);\n const body = childrenList.find((it) => it.type === ViewBody);\n const footer = childrenList.find((it) => it.type === ViewFooter);\n const styles = useStyles();\n\n const sizingStyles =\n contentSize === \"large\"\n ? styles.contentLarge\n : contentSize === \"small\"\n ? styles.contentSmall\n : contentSize === \"xsmall\"\n ? styles.contentXSmall\n : styles.contentStandard;\n\n const bodyStyles = mergeClasses(styles.body, sizingStyles);\n const headerWrapperStyles = mergeClasses(styles.headerWrapper, hasScrolled ? styles.headerWithShadow : undefined);\n const headerStyles = mergeClasses(styles.header, sizingStyles);\n const footerStyles = mergeClasses(styles.footer, sizingStyles);\n\n return (\n <div {...otherProps} className={styles.root}>\n <div className={styles.content}>\n <div className={headerWrapperStyles}>\n <div className={headerStyles}>{header}</div>\n </div>\n <div className={styles.bodyWrapper} ref={bodyRef}>\n <div className={bodyStyles}>{body}</div>\n </div>\n <div className={styles.footerWrapper}>\n <div className={footerStyles}>{footer}</div>\n </div>\n </div>\n </div>\n );\n}\n"],"names":["debugTokens","useStyles","makeStyles","tokens","ViewLayout","children","contentSize","otherProps","hasScrolled","setHasScrolled","useState","bodyRef","useRef","useEffect","el","handleScroll","childrenList","isArray","header","it","ViewHeader","ViewTitle","body","ViewBody","footer","ViewFooter","styles","sizingStyles","bodyStyles","mergeClasses","headerWrapperStyles","headerStyles","footerStyles","jsx","jsxs"],"mappings":"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"}