pentatrion-design 1.2.0 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/.changeset/config.json +11 -0
  2. package/.github/workflows/ci.yml +36 -0
  3. package/.github/workflows/deploy-storybook.yml +14 -10
  4. package/.github/workflows/release.yml +61 -38
  5. package/CHANGELOG.md +57 -20
  6. package/README.md +50 -5
  7. package/dist/Button-CVudu6dV.d.mts.map +1 -1
  8. package/dist/{Button-CL7xvvey.mjs → Button-Cx5QDjg9.mjs} +2 -2
  9. package/dist/{Button-CL7xvvey.mjs.map → Button-Cx5QDjg9.mjs.map} +1 -1
  10. package/dist/{Field-C0LPMoF4.mjs → Field-BHxm4Nr-.mjs} +11 -16
  11. package/dist/Field-BHxm4Nr-.mjs.map +1 -0
  12. package/dist/{Field-Cpsy6gP5.d.mts → Field-B_ZFAADd.d.mts} +2 -2
  13. package/dist/Field-B_ZFAADd.d.mts.map +1 -0
  14. package/dist/Input-B9HNBGpq.mjs.map +1 -1
  15. package/dist/Scroll-BSL6d8Ob.mjs.map +1 -1
  16. package/dist/{Snack-B1Fa9Ofb.mjs → Snack-0wCsjAOm.mjs} +7 -9
  17. package/dist/Snack-0wCsjAOm.mjs.map +1 -0
  18. package/dist/TooltipTrigger-VrJxlxNx.mjs.map +1 -1
  19. package/dist/badge-CtcHuvQK.mjs.map +1 -1
  20. package/dist/{button-tAEodFUL.mjs → button-CuqQ_n9M.mjs} +3 -3
  21. package/dist/{button-tAEodFUL.mjs.map → button-CuqQ_n9M.mjs.map} +1 -1
  22. package/dist/components/accordion/index.d.mts.map +1 -1
  23. package/dist/components/accordion/index.mjs +3 -5
  24. package/dist/components/accordion/index.mjs.map +1 -1
  25. package/dist/components/autocomplete/index.d.mts.map +1 -1
  26. package/dist/components/autocomplete/index.mjs +17 -22
  27. package/dist/components/autocomplete/index.mjs.map +1 -1
  28. package/dist/components/button/index.mjs +2 -2
  29. package/dist/components/context-menu/index.d.mts.map +1 -1
  30. package/dist/components/context-menu/index.mjs +3 -7
  31. package/dist/components/context-menu/index.mjs.map +1 -1
  32. package/dist/components/dialog/index.d.mts.map +1 -1
  33. package/dist/components/dropdown-menu-nested/index.mjs +1 -1
  34. package/dist/components/dropdown-menu-nested/index.mjs.map +1 -1
  35. package/dist/components/fields/checkbox/index.d.mts +1 -1
  36. package/dist/components/fields/checkbox/index.mjs +3 -3
  37. package/dist/components/fields/checkbox/index.mjs.map +1 -1
  38. package/dist/components/fields/color/index.d.mts +1 -1
  39. package/dist/components/fields/color/index.mjs +5 -4
  40. package/dist/components/fields/color/index.mjs.map +1 -1
  41. package/dist/components/fields/date/index.d.mts +4 -3
  42. package/dist/components/fields/date/index.d.mts.map +1 -1
  43. package/dist/components/fields/date/index.mjs +18 -9
  44. package/dist/components/fields/date/index.mjs.map +1 -1
  45. package/dist/components/fields/field/index.d.mts +12 -0
  46. package/dist/components/fields/field/index.d.mts.map +1 -0
  47. package/dist/components/fields/field/index.mjs +43 -0
  48. package/dist/components/fields/field/index.mjs.map +1 -0
  49. package/dist/components/fields/file/index.d.mts +7 -3
  50. package/dist/components/fields/file/index.d.mts.map +1 -1
  51. package/dist/components/fields/file/index.mjs +33 -19
  52. package/dist/components/fields/file/index.mjs.map +1 -1
  53. package/dist/components/fields/input-button/index.d.mts +6 -7
  54. package/dist/components/fields/input-button/index.d.mts.map +1 -1
  55. package/dist/components/fields/input-button/index.mjs +108 -127
  56. package/dist/components/fields/input-button/index.mjs.map +1 -1
  57. package/dist/components/fields/radio/index.d.mts +21 -8
  58. package/dist/components/fields/radio/index.d.mts.map +1 -1
  59. package/dist/components/fields/radio/index.mjs +87 -4
  60. package/dist/components/fields/radio/index.mjs.map +1 -1
  61. package/dist/components/fields/range/index.d.mts +14 -1
  62. package/dist/components/fields/range/index.d.mts.map +1 -1
  63. package/dist/components/fields/range/index.mjs +71 -1
  64. package/dist/components/fields/range/index.mjs.map +1 -1
  65. package/dist/components/fields/select/index.d.mts +1 -1
  66. package/dist/components/fields/select/index.mjs +5 -4
  67. package/dist/components/fields/select/index.mjs.map +1 -1
  68. package/dist/components/fields/stars/index.mjs +3 -3
  69. package/dist/components/fields/stars/index.mjs.map +1 -1
  70. package/dist/components/fields/text/index.d.mts +13 -7
  71. package/dist/components/fields/text/index.d.mts.map +1 -1
  72. package/dist/components/fields/text/index.mjs +2 -2
  73. package/dist/components/fields/textarea/index.d.mts +10 -1
  74. package/dist/components/fields/textarea/index.d.mts.map +1 -1
  75. package/dist/components/fields/textarea/index.mjs +50 -1
  76. package/dist/components/fields/textarea/index.mjs.map +1 -1
  77. package/dist/components/fields/toggle/index.mjs.map +1 -1
  78. package/dist/components/fields/totp/index.d.mts +1 -1
  79. package/dist/components/fields/totp/index.mjs +1 -1
  80. package/dist/components/fields/totp/index.mjs.map +1 -1
  81. package/dist/components/fields/wysiwyg/index.d.mts +39 -6
  82. package/dist/components/fields/wysiwyg/index.d.mts.map +1 -1
  83. package/dist/components/fields/wysiwyg/index.mjs +136 -19
  84. package/dist/components/fields/wysiwyg/index.mjs.map +1 -1
  85. package/dist/components/highlight/index.mjs.map +1 -1
  86. package/dist/components/i18n/index.d.mts +7 -0
  87. package/dist/components/i18n/index.d.mts.map +1 -0
  88. package/dist/components/i18n/index.mjs +2 -0
  89. package/dist/components/modal/index.mjs +1 -1
  90. package/dist/components/notification/index.d.mts +1 -1
  91. package/dist/components/notification/index.d.mts.map +1 -1
  92. package/dist/components/notification/index.mjs +1 -1
  93. package/dist/components/notification/index.mjs.map +1 -1
  94. package/dist/components/popover/index.mjs +2 -2
  95. package/dist/components/popover/index.mjs.map +1 -1
  96. package/dist/components/resizable/index.mjs.map +1 -1
  97. package/dist/components/resize-area/index.mjs.map +1 -1
  98. package/dist/components/select-legacy/index.mjs +3 -5
  99. package/dist/components/select-legacy/index.mjs.map +1 -1
  100. package/dist/components/snack/index.d.mts.map +1 -1
  101. package/dist/components/snack/index.mjs +1 -1
  102. package/dist/components/steps/index.mjs.map +1 -1
  103. package/dist/components/table/index.mjs.map +1 -1
  104. package/dist/components/tabs/index.mjs.map +1 -1
  105. package/dist/components/toast/index.mjs +1 -1
  106. package/dist/components/toast/index.mjs.map +1 -1
  107. package/dist/components/tooltip/index.mjs.map +1 -1
  108. package/dist/dropdown-menu-Bk0Asqb4.mjs.map +1 -1
  109. package/dist/hooks/index.d.mts +1 -4
  110. package/dist/hooks/index.d.mts.map +1 -1
  111. package/dist/hooks/index.mjs +2 -2
  112. package/dist/{hooks-CBijm9RA.mjs → hooks-BQw3Dsve.mjs} +3 -12
  113. package/dist/hooks-BQw3Dsve.mjs.map +1 -0
  114. package/dist/i18n-B57GZqP3.mjs +11 -0
  115. package/dist/i18n-B57GZqP3.mjs.map +1 -0
  116. package/dist/index-BG1rgXFb.d.mts.map +1 -1
  117. package/dist/index-C03MgO8e.d.mts.map +1 -1
  118. package/dist/{index-BPH0ele4.d.mts → index-Dx8EhTxo.d.mts} +3 -2
  119. package/dist/index-Dx8EhTxo.d.mts.map +1 -0
  120. package/dist/lib/index.d.mts +2 -2
  121. package/dist/lib/index.mjs +4 -1
  122. package/dist/lib/index.mjs.map +1 -1
  123. package/dist/loader-csj5qb99.mjs.map +1 -1
  124. package/dist/media-preview-DzVLd1Yz.mjs.map +1 -1
  125. package/dist/{modal-DY7p5b0n.mjs → modal-BndYAj4O.mjs} +2 -2
  126. package/dist/{modal-DY7p5b0n.mjs.map → modal-BndYAj4O.mjs.map} +1 -1
  127. package/dist/slot-D8EJRq72.mjs.map +1 -1
  128. package/dist/{text-C57IYu-q.mjs → text-INwc4EdW.mjs} +37 -7
  129. package/dist/text-INwc4EdW.mjs.map +1 -0
  130. package/package.json +26 -31
  131. package/release.sh +41 -0
  132. package/src/components/accordion/Accordion.tsx +2 -5
  133. package/src/components/autocomplete/Autocomplete.tsx +8 -12
  134. package/src/components/autocomplete/LazyAutocomplete.tsx +5 -8
  135. package/src/components/autocomplete/SimpleAutocomplete.tsx +2 -4
  136. package/src/components/context-menu/ContextMenu.tsx +3 -2
  137. package/src/components/fields/checkbox/CheckboxField.tsx +1 -1
  138. package/src/components/fields/checkbox/CheckboxesField.tsx +1 -1
  139. package/src/components/fields/color/ColorField.tsx +2 -1
  140. package/src/components/fields/date/DateField.tsx +17 -10
  141. package/src/components/fields/field/ColorForwarder.tsx +15 -0
  142. package/src/components/fields/{Field.stories.tsx → field/Field.stories.tsx} +4 -4
  143. package/src/components/fields/{Field.tsx → field/Field.tsx} +9 -5
  144. package/src/components/fields/field/index.ts +2 -0
  145. package/src/components/fields/file/FileField.stories.tsx +4 -12
  146. package/src/components/fields/file/FileField.tsx +2 -15
  147. package/src/components/fields/file/UploaderMock.tsx +1 -1
  148. package/src/components/fields/file/index.ts +2 -1
  149. package/src/components/fields/file/types.ts +34 -0
  150. package/src/components/fields/input-button/InputButton.tsx +37 -30
  151. package/src/components/fields/radio/RadioWithLegendField.tsx +1 -1
  152. package/src/components/fields/radio/RadiosButtonIconField.tsx +1 -1
  153. package/src/components/fields/radio/RadiosField.tsx +2 -2
  154. package/src/components/fields/radio/index.ts +1 -0
  155. package/src/components/fields/range/RangeField.tsx +1 -1
  156. package/src/components/fields/range/index.ts +1 -0
  157. package/src/components/fields/select/SelectField.tsx +2 -1
  158. package/src/components/fields/text/PasswordField.tsx +1 -1
  159. package/src/components/fields/text/SlugField.tsx +1 -1
  160. package/src/components/fields/text/TextField.tsx +2 -2
  161. package/src/components/fields/text/index.ts +1 -0
  162. package/src/components/fields/textarea/TextareaField.tsx +1 -1
  163. package/src/components/fields/textarea/index.ts +1 -0
  164. package/src/components/fields/totp/TotpField.tsx +1 -1
  165. package/src/components/fields/totp/TotpInput.tsx +3 -3
  166. package/src/components/fields/wysiwyg/Wysiwyg.stories.tsx +5 -1
  167. package/src/components/fields/wysiwyg/Wysiwyg.tsx +3 -3
  168. package/src/components/fields/wysiwyg/WysiwygField.tsx +2 -1
  169. package/src/components/fields/wysiwyg/WysiwygReader.stories.tsx +28 -0
  170. package/src/components/fields/wysiwyg/WysiwygReader.tsx +23 -0
  171. package/src/components/fields/wysiwyg/config/html.ts +26 -3
  172. package/src/components/fields/wysiwyg/config/state.ts +6 -0
  173. package/src/components/fields/wysiwyg/index.ts +18 -0
  174. package/src/components/fields/wysiwyg/plugins/FloatingLinkEditorPlugin.tsx +0 -1
  175. package/src/components/fields/wysiwyg/types.ts +25 -2
  176. package/src/components/highlight/Highlight.stories.tsx +1 -1
  177. package/src/components/i18n/TranslationContext.ts +11 -0
  178. package/src/components/i18n/index.ts +1 -0
  179. package/src/components/resizable/util.ts +1 -0
  180. package/src/components/select-legacy/Select.tsx +2 -5
  181. package/src/components/snack/Snack.tsx +2 -5
  182. package/src/hooks/index.ts +0 -1
  183. package/src/lib/arrUtil.ts +4 -0
  184. package/src/tailwind/components/input-outline.css +1 -2
  185. package/src/tailwind/components/range.css +2 -5
  186. package/src/tailwind/theme.css +16 -55
  187. package/tsdown.config.ts +2 -2
  188. package/update-pkg-mode.mjs +86 -0
  189. package/vitest.config.ts +1 -1
  190. package/.claude/settings.local.json +0 -21
  191. package/.local/eslint/.prettierrc +0 -11
  192. package/.local/eslint/eslint.config.js +0 -35
  193. package/.local/package copy 2.json +0 -142
  194. package/.local/package copy.json +0 -247
  195. package/.local/tailwind copy/base-prose.css +0 -110
  196. package/.local/tailwind copy/base.css +0 -131
  197. package/.local/tailwind copy/components-input-outline.css +0 -95
  198. package/.local/tailwind copy/components-range.css +0 -33
  199. package/.local/tailwind copy/components-resize-area.css +0 -110
  200. package/.local/tailwind copy/components-step.css +0 -168
  201. package/.local/tailwind copy/components.css +0 -10
  202. package/.local/tailwind copy/components.utilities.css +0 -63
  203. package/.local/tailwind copy/index.css +0 -14
  204. package/.local/tailwind copy/plugin.ts +0 -274
  205. package/.local/tailwind copy/utilities-dialog.css +0 -47
  206. package/.local/tailwind copy/utilities-dialog.utilities.css +0 -35
  207. package/.local/tailwind copy/utilities.css +0 -3
  208. package/.local/tailwind copy/vars.css +0 -121
  209. package/.local/vite-plugin-watch-and-restart.ts +0 -53
  210. package/MIGRATION.md +0 -6
  211. package/dist/Field-C0LPMoF4.mjs.map +0 -1
  212. package/dist/Field-Cpsy6gP5.d.mts.map +0 -1
  213. package/dist/Snack-B1Fa9Ofb.mjs.map +0 -1
  214. package/dist/components/fields/altcha/index.d.mts +0 -20
  215. package/dist/components/fields/altcha/index.d.mts.map +0 -1
  216. package/dist/components/fields/altcha/index.mjs +0 -128
  217. package/dist/components/fields/altcha/index.mjs.map +0 -1
  218. package/dist/components/fields/index.d.mts +0 -9
  219. package/dist/components/fields/index.d.mts.map +0 -1
  220. package/dist/components/fields/index.mjs +0 -2
  221. package/dist/hooks-CBijm9RA.mjs.map +0 -1
  222. package/dist/index-BPH0ele4.d.mts.map +0 -1
  223. package/dist/style.css +0 -1
  224. package/dist/text-C57IYu-q.mjs.map +0 -1
  225. package/src/components/fields/ErrorsFormatterContext.ts +0 -11
  226. package/src/components/fields/altcha/Altcha.stories.tsx +0 -24
  227. package/src/components/fields/altcha/Altcha.tsx +0 -52
  228. package/src/components/fields/altcha/AltchaField.stories.tsx +0 -76
  229. package/src/components/fields/altcha/AltchaField.tsx +0 -24
  230. package/src/components/fields/altcha/env.d.ts +0 -21
  231. package/src/components/fields/altcha/index.ts +0 -2
  232. package/src/components/fields/altcha/locales.fr.ts +0 -18
  233. package/src/components/fields/index.ts +0 -6
  234. package/src/components/fields/wysiwyg/AUDIT-wysiwyg.md +0 -80
  235. package/src/components/fields/wysiwyg/AUDIT-wysiwygField.md +0 -83
  236. package/src/components/fields/wysiwyg/plugins/index.css +0 -1
  237. package/src/hooks/useEffectEvent.ts +0 -11
  238. package/src/hooks/useRipple.test.tsx +0 -52
@@ -0,0 +1,11 @@
1
+ {
2
+ "$schema": "https://unpkg.com/@changesets/config@3.1.4/schema.json",
3
+ "changelog": "@changesets/cli/changelog",
4
+ "commit": false,
5
+ "fixed": [],
6
+ "linked": [],
7
+ "access": "restricted",
8
+ "baseBranch": "main",
9
+ "updateInternalDependencies": "patch",
10
+ "ignore": []
11
+ }
@@ -0,0 +1,36 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ check:
13
+ runs-on: ubuntu-latest
14
+
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+
18
+ - name: Setup Node
19
+ uses: actions/setup-node@v6
20
+ with:
21
+ node-version: 26.5.0
22
+
23
+ - name: "Install JS dependencies"
24
+ run: "npm ci"
25
+
26
+ - name: Format
27
+ run: npm run check:format
28
+
29
+ - name: Typecheck
30
+ run: npm run check:type
31
+
32
+ - name: Lint
33
+ run: npm run check:lint
34
+
35
+ - name: Test
36
+ run: npm run test-run
@@ -3,8 +3,9 @@ name: Deploy storybook
3
3
  on:
4
4
  workflow_dispatch:
5
5
 
6
- push:
7
- branches: [gh-pages]
6
+ workflow_run:
7
+ workflows: ["Release"]
8
+ types: [completed]
8
9
 
9
10
  permissions:
10
11
  pages: write
@@ -16,27 +17,28 @@ concurrency:
16
17
 
17
18
  jobs:
18
19
  build:
20
+ if: github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success'
19
21
  runs-on: ubuntu-latest
20
22
 
21
23
  steps:
22
24
  - uses: actions/checkout@v4
25
+ with:
26
+ ref: ${{ github.event.workflow_run.head_sha || github.sha }}
23
27
 
24
- - uses: pnpm/action-setup@v4
25
- # pnpm version is specified in the package.json packageManager section
26
- - uses: actions/setup-node@v4
28
+ - name: Setup Node
29
+ uses: actions/setup-node@v6
27
30
  with:
28
- node-version: 22
29
- cache: pnpm
31
+ node-version: 26.5.0
30
32
 
31
33
  - name: Setup Pages
32
34
  id: pages
33
35
  uses: actions/configure-pages@v5
34
36
 
35
37
  - name: "Install JS dependencies"
36
- run: "pnpm i --frozen-lockfile"
38
+ run: "npm ci"
37
39
 
38
40
  - name: Build storybook
39
- run: pnpm run storybook-build
41
+ run: npm run storybook-build
40
42
 
41
43
  - name: Upload artifact
42
44
  uses: actions/upload-pages-artifact@v3
@@ -44,11 +46,13 @@ jobs:
44
46
  path: "storybook-static"
45
47
 
46
48
  deploy:
49
+ needs: build
50
+ # required by actions/deploy-pages: ties this job to the Pages deployment
51
+ # history/protection rules and provides the OIDC context it authenticates with
47
52
  environment:
48
53
  name: github-pages
49
54
  url: ${{ steps.deployment.outputs.page_url }}
50
55
  runs-on: ubuntu-latest
51
- needs: build
52
56
  steps:
53
57
  - name: Deploy to GitHub pages
54
58
  id: deployment
@@ -4,48 +4,71 @@ on:
4
4
  workflow_dispatch:
5
5
 
6
6
  push:
7
- tags:
8
- - "v*.*.*"
7
+ branches: [main]
9
8
 
10
9
  jobs:
11
- build:
10
+ check:
11
+ runs-on: ubuntu-latest
12
+ outputs:
13
+ changed: ${{ steps.check.outputs.changed }}
14
+ version: ${{ steps.check.outputs.local }}
15
+
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+
19
+ - name: Check version change
20
+ id: check
21
+ run: |
22
+ LOCAL_VERSION=$(node -p "require('./package.json').version")
23
+ PUBLISHED_VERSION=$(npm view pentatrion-design version 2>/dev/null || echo "0.0.0")
24
+ echo "local=$LOCAL_VERSION" >> "$GITHUB_OUTPUT"
25
+ if [ "$LOCAL_VERSION" != "$PUBLISHED_VERSION" ]; then
26
+ echo "changed=true" >> "$GITHUB_OUTPUT"
27
+ else
28
+ echo "changed=false" >> "$GITHUB_OUTPUT"
29
+ fi
30
+
31
+ release:
32
+ needs: check
33
+ if: needs.check.outputs.changed == 'true'
12
34
  runs-on: ubuntu-latest
13
35
  permissions:
14
- contents: read
36
+ contents: write
15
37
  id-token: write
16
38
 
17
39
  steps:
18
- - uses: actions/checkout@v4
19
-
20
- - uses: pnpm/action-setup@v4
21
- # pnpm version is specified in the package.json packageManager section
22
- - uses: actions/setup-node@v4
23
- with:
24
- node-version: 22
25
- cache: pnpm
26
- registry-url: https://registry.npmjs.org
27
-
28
- - name: "Install JS dependencies"
29
- run: "pnpm i --frozen-lockfile"
30
-
31
- - name: Build library
32
- run: pnpm run build
33
-
34
- # - name: Release
35
- # uses: softprops/action-gh-release@v2
36
- # if: github.ref_type == 'tag'
37
- # with:
38
- # token: ${{ secrets.DESIGN_RELEASE_GITHUB_TOKEN }}
39
-
40
- # - name: Creating .npmrc
41
- # run: |
42
- # cat << EOF > "./.npmrc"
43
- # //registry.npmjs.org/:_authToken=$NPM_TOKEN
44
- # EOF
45
- # env:
46
- # NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
47
-
48
- # - name: Publish package
49
- # run: npm i -g npm@^11.5.2 && npm publish --provenance --access public
50
- # env:
51
- # NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
40
+ - uses: actions/checkout@v4
41
+
42
+ - name: Setup Node
43
+ uses: actions/setup-node@v6
44
+ with:
45
+ node-version: 26.5.0
46
+ registry-url: https://registry.npmjs.org
47
+
48
+ - name: "Install JS dependencies"
49
+ run: "npm ci"
50
+
51
+ - name: Typecheck / Eslint
52
+ run: npm run check:type
53
+
54
+ - name: Build library
55
+ run: npm run build
56
+
57
+ - name: Update pkg mode
58
+ run: node update-pkg-mode.mjs dist
59
+
60
+ - name: Publish package
61
+ run: npm i -g npm@^11.5.2 && npm publish --provenance --access public
62
+ env:
63
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
64
+
65
+ - name: Tag release
66
+ run: |
67
+ git tag "v${{ needs.check.outputs.version }}"
68
+ git push origin "v${{ needs.check.outputs.version }}"
69
+
70
+ - name: Create GitHub release
71
+ uses: softprops/action-gh-release@v2
72
+ with:
73
+ tag_name: "v${{ needs.check.outputs.version }}"
74
+ token: ${{ secrets.GITHUB_TOKEN }}
package/CHANGELOG.md CHANGED
@@ -1,55 +1,92 @@
1
+ ## 1.2.2
2
+
3
+ ### Patch Changes
4
+
5
+ - 7f9d59b: update dependencies, fix oxlint errors
6
+
7
+ ## 1.2.1
8
+
9
+ ### Patch Changes
10
+
11
+ - 82aed74: reconfigure github workflow
12
+
1
13
  ## 1.1.2
2
14
 
3
- - update dependencies
15
+ ### Patch Changes
16
+
17
+ - 650d02f: update dependencies
4
18
  - migrate oxlint / oxfmt
5
19
 
6
20
  ## 1.1.1
7
21
 
8
- fix hydration mismatch with boolean attributes
22
+ ### Patch Changes
23
+
24
+ - 9cc5fbe: fix hydration mismatch with boolean attributes
9
25
 
10
26
  ## 0.1.3
11
27
 
12
- autocomplete add autofocus option
28
+ ### Patch Changes
29
+
30
+ - 275ae50: autocomplete add autofocus option
13
31
 
14
32
  ## 0.1.2
15
33
 
16
- fix file extension for imports and add tsc-alias
34
+ ### Patch Changes
35
+
36
+ - bde366d: fix file extension for imports and add tsc-alias
17
37
 
18
38
  ## 0.0.14
19
39
 
20
- fix export .d.ts files
40
+ ### Patch Changes
41
+
42
+ - e9075d5: fix export .d.ts files
21
43
 
22
44
  ## 0.0.13
23
45
 
24
- Pentatrion-design has its own repository !!
46
+ ### Patch Changes
47
+
48
+ - fef7f38: Pentatrion-design has its own repository !!
25
49
 
26
50
  ## 0.0.12
27
- fix notificationsConsumer pointer event none
51
+
52
+ ### Patch Changes
53
+
54
+ - fix notificationsConsumer pointer event none
28
55
 
29
56
  ## 0.0.11
30
57
 
31
- add input/button color
32
- fix notificationsProvider pointer event none
58
+ ### Patch Changes
59
+
60
+ - add input/button color
61
+ - fix notificationsProvider pointer event none
33
62
 
34
63
  ## 0.0.10
35
64
 
36
- add textarea
37
- modal without size className for more flexibility
38
- tabs without border-radius for more flexibility
65
+ ### Patch Changes
66
+
67
+ - add textarea
68
+ - modal without size className for more flexibility
69
+ - tabs without border-radius for more flexibility
39
70
 
40
71
  ## 0.0.9
41
72
 
42
- modal add ComponentProps to parent
43
- modal fix forwardRef to functional component
73
+ ### Patch Changes
74
+
75
+ - modal add ComponentProps to parent
76
+ - modal fix forwardRef to functional component
44
77
 
45
78
  ## 0.0.8
46
79
 
47
- Range fix ComponentPropsWithRef import
48
- tsconfig remove extends from base
80
+ ### Patch Changes
81
+
82
+ - Range fix ComponentPropsWithRef import
83
+ - tsconfig remove extends from base
49
84
 
50
85
  ## 0.0.3
51
86
 
52
- Range add component
53
- LinkButton add component
54
- fix Toggle cursor pointer
55
- ResizeArea add more Props
87
+ ### Patch Changes
88
+
89
+ - Range add component
90
+ - LinkButton add component
91
+ - fix Toggle cursor pointer
92
+ - ResizeArea add more Props
package/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
  Créez un nouveau projet Vite + React v19 + TailwindCSS v4. [Official doc](https://tailwindcss.com/docs/installation/using-vite)
10
10
 
11
11
  ```bash
12
- pnpm create vite my-app
12
+ npm create vite@latest my-app
13
13
 
14
14
  # 1. React
15
15
  # 2. TypeScript + SWC
@@ -17,9 +17,9 @@ pnpm create vite my-app
17
17
  cd my-app
18
18
 
19
19
  # dépendances
20
- pnpm add -D tailwindcss @tailwindcss/vite prettier-plugin-tailwindcss
20
+ npm i -D tailwindcss @tailwindcss/vite prettier-plugin-tailwindcss
21
21
 
22
- pnpm add pentatrion-design clsx class-variance-authority
22
+ npm i pentatrion-design clsx class-variance-authority
23
23
  ```
24
24
  Supprimer les fichiers inutiles
25
25
 
@@ -52,8 +52,8 @@ Configuration recommandée
52
52
  /* src/index.css */
53
53
  @import "tailwindcss";
54
54
 
55
- @source "../node_modules/pentatrion-design/dist/components";
56
- @source "../node_modules/pentatrion-design/dist/hooks";
55
+ @source "./node_modules/pentatrion-design/dist/components";
56
+ @source "./node_modules/pentatrion-design/dist/hooks";
57
57
 
58
58
  @import "pentatrion-design/tailwind";
59
59
 
@@ -77,6 +77,7 @@ si on désire plus de contrôle sur nos imports
77
77
  @import "tailwindcss";
78
78
 
79
79
  @source "./node_modules/pentatrion-design/dist/components";
80
+ @source "./node_modules/pentatrion-design/dist/hooks";
80
81
 
81
82
  @import "pentatrion-design/tailwind/theme.css";
82
83
  @import "pentatrion-design/tailwind/variants.css";
@@ -143,3 +144,47 @@ fichier `tsconfig.json`.
143
144
  }
144
145
  }
145
146
  ```
147
+
148
+ ## Développement et release
149
+
150
+ ### Développement
151
+
152
+ Pas d'étape de build nécessaire : en mode développement, `package.json` pointe directement vers `src/*.ts` (`update-pkg-mode.mjs` ne bascule vers `dist/*` qu'en CI, juste avant publication).
153
+
154
+ ```bash
155
+ npm run storybook # storybook dev, pour visualiser/tester les composants isolément
156
+ npm run ci # lint + types + tests, à lancer avant de proposer une PR
157
+ ```
158
+
159
+ ### Changesets
160
+
161
+ Chaque changement notable (nouveau composant, fix, breaking change) doit s'accompagner d'un changeset :
162
+
163
+ ```bash
164
+ npx changeset add
165
+ ```
166
+
167
+ Répondre au questionnaire (package concerné, type de bump `patch`/`minor`/`major`, résumé du changement). Ça crée un fichier dans `.changeset/` qui sera consommé au moment de la release. Un changeset par changement, autant que nécessaire avant de releaser.
168
+
169
+ ### Release
170
+
171
+ Quand on est prêt à publier une nouvelle version :
172
+
173
+ ```bash
174
+ npx changeset version # bump package.json + génère/complète CHANGELOG.md, supprime les changesets consommés
175
+ git add -A
176
+ git commit -m "chore: release"
177
+ git push
178
+ ```
179
+
180
+ Le push sur `main` déclenche `.github/workflows/release.yml`, qui :
181
+
182
+ 1. Compare la version de `package.json` à celle publiée sur npm.
183
+ 2. Si elle a changé : typecheck, build, publie sur npm (`--provenance --access public`), pousse un tag `vX.Y.Z`, crée la release GitHub correspondante.
184
+
185
+ Aucune autre action manuelle n'est nécessaire — pas de tag ni de release GitHub à créer soi-même.
186
+
187
+ ### Storybook
188
+
189
+ Une fois `release.yml` terminé avec succès, `.github/workflows/deploy-storybook.yml` se déclenche automatiquement (`workflow_run`) et republie [design.pentatrion.com](https://design.pentatrion.com) avec la version tout juste publiée.
190
+
@@ -1 +1 @@
1
- {"version":3,"file":"Button-CVudu6dV.d.mts","names":[],"sources":["../src/components/button/Button.tsx"],"mappings":";;;UAmBiB,oBAAoB,KAAK;EACxC;EAEA;EAEA;EAEA,QAAQ;EAER;EAEA;EAEA;EAEA;;;;EAIA;EAEA;EAEA;EAEA,MAAM,UAAU;;cAGL,iBAAc;;;;;;;iBAuDX,SACd,YACA,SACA,SACA,OACA,MACA,WACA,WACA,UACA,UACA,UACA,MACA,SACA,OACA,QACG,SACF,8BAAW,IAAA"}
1
+ {"version":3,"file":"Button-CVudu6dV.d.mts","names":[],"sources":["../src/components/button/Button.tsx"],"mappings":";;;UAmBiB,oBAAoB,KAAK;EACxC;EAEA;EAEA;EAEA,QAAQ;EAER;EAEA;EAEA;EAEA;;;;EAIA;EAEA;EAEA;EAEA,MAAM,UAAU;;cAGL,iBAAc;;;;;;6CAqD1B;iBAEe,SACd,YACA,SACA,SACA,OACA,MACA,WACA,WACA,UACA,UACA,UACA,MACA,SACA,OACA,QACG,SACF,8BAAW,IAAA"}
@@ -1,5 +1,5 @@
1
- import { g as useRipple } from "./hooks-CBijm9RA.mjs";
2
1
  import { t as Loader } from "./loader-csj5qb99.mjs";
2
+ import { h as useRipple } from "./hooks-BQw3Dsve.mjs";
3
3
  import { t as Slot } from "./slot-D8EJRq72.mjs";
4
4
  import { c } from "react/compiler-runtime";
5
5
  import { useImperativeHandle, useRef } from "react";
@@ -208,4 +208,4 @@ function Button(t0) {
208
208
  //#endregion
209
209
  export { buttonVariants as n, Button as t };
210
210
 
211
- //# sourceMappingURL=Button-CL7xvvey.mjs.map
211
+ //# sourceMappingURL=Button-Cx5QDjg9.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button-CL7xvvey.mjs","names":["ComponentProps","RefObject","useImperativeHandle","useRef","clsx","Loader","useRipple","Slot","cva","ThemeColor","loaderColor","color","ButtonProps","Omit","withRipple","variant","size","width","loading","disabled","focusable","selected","icon","asChild","ref","HTMLButtonElement","buttonVariants","variants","clickable","true","false","small","medium","large","input","custom","scalable","fit","full","contained","light","outlined","text","ghost","defaultVariants","Button","t0","$","_c","children","className","props","t1","t10","t11","t2","t3","t4","t5","t6","t7","t8","t9","undefined","inputRef","t12","Symbol","for","current","rippleEnabled","includes","Comp","t13","t14","t15","t16","t17"],"sources":["../src/components/button/Button.tsx"],"sourcesContent":["import { ComponentProps, RefObject, useImperativeHandle, useRef } from \"react\";\nimport clsx from \"clsx\";\nimport { Loader } from \"../loader\";\nimport { useRipple } from \"../../hooks\";\nimport { Slot } from \"../slot\";\nimport { cva } from \"class-variance-authority\";\nimport { ThemeColor } from \"../../types\";\n\nfunction loaderColor(color: ThemeColor): ThemeColor {\n switch (color) {\n case \"yellow-alpha\":\n return \"yellow\";\n case \"gray-alpha\":\n return \"gray\";\n default:\n return color;\n }\n}\n\nexport interface ButtonProps extends Omit<ComponentProps<\"button\">, \"color\"> {\n withRipple?: boolean;\n\n variant?: \"contained\" | \"light\" | \"outlined\" | \"text\" | \"ghost\";\n\n size?: \"small\" | \"medium\" | \"large\" | \"custom\" | \"input\" | \"scalable\";\n\n color?: ThemeColor;\n\n width?: \"fit\" | \"full\" | \"custom\";\n\n loading?: boolean;\n\n disabled?: boolean;\n\n focusable?: boolean;\n /**\n * For a selected item inside a group.\n */\n selected?: boolean;\n\n icon?: boolean;\n\n asChild?: boolean;\n\n ref?: RefObject<HTMLButtonElement>;\n}\n\nexport const buttonVariants = cva(\n \"relative box-border inline-flex items-center leading-5 no-underline focus-visible-has:outline-2\",\n {\n variants: {\n clickable: {\n true: \"cursor-pointer active:translate-y-px focus-visible-has:z-10\",\n false: \"pointer-events-none\",\n },\n size: {\n small: \"[--h-button:1.5rem] h-(--h-button) truncate\",\n medium: \"[--h-button:2rem] h-(--h-button) truncate\",\n large: \"[--h-button:3rem] h-(--h-button) truncate\",\n input: \"[--h-button:calc(var(--h-input)-2px)] h-(--h-button) truncate\",\n custom: \"truncate\",\n scalable: \"\",\n },\n icon: {\n true: \"rounded-[calc(var(--h-button)/2)] min-w-(--h-button) [&_i,&_img,&_svg]:w-(--h-button) justify-center [&_:last-child:not(i,img,svg,strong)]:pr-4\",\n false: \"rounded-2xl px-4\",\n custom: \"\",\n },\n width: {\n fit: \"w-full max-w-fit\",\n full: \"w-full justify-center\",\n custom: \"\",\n },\n variant: {\n /**\n * src/tailwind/plugin.ts\n * addVariant(\"current\", [\n * `&[aria-checked=\"true\"]`,\n * `&[aria-current=\"page\"]`,\n * `&:has(:checked)`\n * ])\n */\n contained:\n \"shadow-sm hover:shadow-md active:shadow-md-active outline-offset-0 text-custom-text bg-custom-3 hover:bg-custom-4 current:bg-custom-4 focus-visible-has:outline-custom-5\",\n light:\n \"shadow-sm hover:shadow-md has-checked:shadow-md focus:shadow-md active:shadow-md-active outline-offset-0 bg-custom-1 text-gray-text hover:text-custom-text hover:bg-custom-3 current:bg-custom-3 focus-visible-has:outline-custom-4\",\n outlined:\n \"bg-custom-0 hover:shadow-xs active:shadow-xs-active text-gray-7 outline-offset-0 border-1 hover:bg-custom-1 border-custom-border focus-visible-has:outline-custom-5 current:bg-custom-3 focus-visible-has:border-transparent\",\n text: \"bg-transparent hover:shadow-xs active:shadow-xs-active outline-offset-0 hover:bg-custom-1 dark:hover:bg-custom-1/50 text-gray-7 hover:text-gray-8 current:bg-custom-3 focus-visible-has:outline-custom-5\",\n ghost: \"outline-offset-0 current:bg-custom-1 focus-visible-has:outline-custom-5\",\n },\n },\n defaultVariants: {\n size: \"medium\",\n icon: false,\n variant: \"contained\",\n clickable: true,\n width: \"fit\",\n },\n },\n);\n\nexport function Button({\n withRipple = true,\n variant = \"contained\",\n loading = false,\n color = \"yellow\",\n size = \"medium\",\n focusable = true,\n className,\n disabled = false,\n children,\n selected = false,\n icon = false,\n asChild = false,\n width = \"fit\",\n ref,\n ...props\n}: ButtonProps) {\n const inputRef = useRef<HTMLButtonElement>(null!);\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n ref,\n () => inputRef.current,\n );\n\n const rippleEnabled = !loading && !disabled && withRipple;\n\n useRipple(\n inputRef,\n [\"text\", \"outlined\", \"ghost\"].includes(variant) ? true : false,\n rippleEnabled,\n );\n\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n tabIndex={focusable ? 0 : -1}\n role=\"button\"\n ref={inputRef}\n className={clsx(\n buttonVariants({\n variant,\n size,\n width,\n icon: width === \"custom\" && !icon ? \"custom\" : icon,\n }),\n className,\n loading && !icon && \"text-transparent\",\n )}\n data-color={color}\n data-variant={variant}\n aria-checked={selected}\n suppressHydrationWarning\n aria-busy={loading}\n {...(disabled ? { disabled } : {})}\n {...props}\n >\n {asChild ? (\n children\n ) : (\n <>\n {/* {!notClickable && withRipple && ripples} */}\n {children}\n {loading && (\n <Loader\n color={loaderColor(color)}\n className={clsx(\"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2\")}\n position=\"absolute\"\n />\n )}\n </>\n )}\n </Comp>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Button-Cx5QDjg9.mjs","names":["ComponentProps","RefObject","useImperativeHandle","useRef","clsx","Loader","useRipple","Slot","cva","ThemeColor","loaderColor","color","ButtonProps","Omit","withRipple","variant","size","width","loading","disabled","focusable","selected","icon","asChild","ref","HTMLButtonElement","buttonVariants","variants","clickable","true","false","small","medium","large","input","custom","scalable","fit","full","contained","light","outlined","text","ghost","defaultVariants","Button","t0","$","_c","children","className","props","t1","t10","t11","t2","t3","t4","t5","t6","t7","t8","t9","undefined","inputRef","t12","Symbol","for","current","rippleEnabled","includes","Comp","t13","t14","t15","t16","t17"],"sources":["../src/components/button/Button.tsx"],"sourcesContent":["import { ComponentProps, RefObject, useImperativeHandle, useRef } from \"react\";\nimport clsx from \"clsx\";\nimport { Loader } from \"../loader\";\nimport { useRipple } from \"../../hooks\";\nimport { Slot } from \"../slot\";\nimport { cva } from \"class-variance-authority\";\nimport { ThemeColor } from \"../../types\";\n\nfunction loaderColor(color: ThemeColor): ThemeColor {\n switch (color) {\n case \"yellow-alpha\":\n return \"yellow\";\n case \"gray-alpha\":\n return \"gray\";\n default:\n return color;\n }\n}\n\nexport interface ButtonProps extends Omit<ComponentProps<\"button\">, \"color\"> {\n withRipple?: boolean;\n\n variant?: \"contained\" | \"light\" | \"outlined\" | \"text\" | \"ghost\";\n\n size?: \"small\" | \"medium\" | \"large\" | \"custom\" | \"input\" | \"scalable\";\n\n color?: ThemeColor;\n\n width?: \"fit\" | \"full\" | \"custom\";\n\n loading?: boolean;\n\n disabled?: boolean;\n\n focusable?: boolean;\n /**\n * For a selected item inside a group.\n */\n selected?: boolean;\n\n icon?: boolean;\n\n asChild?: boolean;\n\n ref?: RefObject<HTMLButtonElement>;\n}\n\nexport const buttonVariants = cva(\n \"relative box-border inline-flex items-center leading-5 no-underline focus-visible-has:outline-2\",\n {\n variants: {\n clickable: {\n true: \"cursor-pointer active:translate-y-px focus-visible-has:z-10\",\n false: \"pointer-events-none\",\n },\n size: {\n small: \"[--h-button:1.5rem] h-(--h-button) truncate\",\n medium: \"[--h-button:2rem] h-(--h-button) truncate\",\n large: \"[--h-button:3rem] h-(--h-button) truncate\",\n input: \"[--h-button:calc(var(--h-input)-2px)] h-(--h-button) truncate\",\n custom: \"truncate\",\n scalable: \"\",\n },\n icon: {\n true: \"rounded-[calc(var(--h-button)/2)] min-w-(--h-button) [&_i,&_img,&_svg]:w-(--h-button) justify-center [&_:last-child:not(i,img,svg,strong)]:pr-4\",\n false: \"rounded-2xl px-4\",\n custom: \"\",\n },\n width: {\n fit: \"w-full max-w-fit\",\n full: \"w-full justify-center\",\n custom: \"\",\n },\n variant: {\n /**\n * src/tailwind/plugin.ts\n * addVariant(\"current\", [\n * `&[aria-checked=\"true\"]`,\n * `&[aria-current=\"page\"]`,\n * `&:has(:checked)`\n * ])\n */\n contained:\n \"shadow-sm hover:shadow-md active:shadow-md-active outline-offset-0 text-custom-text bg-custom-3 hover:bg-custom-4 current:bg-custom-4 focus-visible-has:outline-custom-5\",\n light:\n \"shadow-sm hover:shadow-md has-checked:shadow-md focus:shadow-md active:shadow-md-active outline-offset-0 bg-custom-1 text-gray-text hover:text-custom-text hover:bg-custom-3 current:bg-custom-3 focus-visible-has:outline-custom-4\",\n outlined:\n \"bg-custom-0 hover:shadow-xs active:shadow-xs-active text-gray-7 outline-offset-0 border-1 hover:bg-custom-1 border-custom-border focus-visible-has:outline-custom-5 current:bg-custom-3 focus-visible-has:border-transparent\",\n text: \"bg-transparent hover:shadow-xs active:shadow-xs-active outline-offset-0 hover:bg-custom-1 dark:hover:bg-custom-1/50 text-gray-7 hover:text-gray-8 current:bg-custom-3 focus-visible-has:outline-custom-5\",\n ghost: \"outline-offset-0 current:bg-custom-1 focus-visible-has:outline-custom-5\",\n },\n },\n defaultVariants: {\n size: \"medium\",\n icon: false,\n variant: \"contained\",\n clickable: true,\n width: \"fit\",\n },\n },\n);\n\nexport function Button({\n withRipple = true,\n variant = \"contained\",\n loading = false,\n color = \"yellow\",\n size = \"medium\",\n focusable = true,\n className,\n disabled = false,\n children,\n selected = false,\n icon = false,\n asChild = false,\n width = \"fit\",\n ref,\n ...props\n}: ButtonProps) {\n const inputRef = useRef<HTMLButtonElement>(null!);\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n ref,\n () => inputRef.current,\n );\n\n const rippleEnabled = !loading && !disabled && withRipple;\n\n useRipple(\n inputRef,\n [\"text\", \"outlined\", \"ghost\"].includes(variant) ? true : false,\n rippleEnabled,\n );\n\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n tabIndex={focusable ? 0 : -1}\n role=\"button\"\n ref={inputRef}\n className={clsx(\n buttonVariants({\n variant,\n size,\n width,\n icon: width === \"custom\" && !icon ? \"custom\" : icon,\n }),\n className,\n loading && !icon && \"text-transparent\",\n )}\n data-color={color}\n data-variant={variant}\n aria-checked={selected}\n suppressHydrationWarning\n aria-busy={loading}\n {...(disabled ? { disabled } : {})}\n {...props}\n >\n {asChild ? (\n children\n ) : (\n <>\n {/* {!notClickable && withRipple && ripples} */}\n {children}\n {loading && (\n <Loader\n color={loaderColor(color)}\n className={clsx(\"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2\")}\n position=\"absolute\"\n />\n )}\n </>\n )}\n </Comp>\n );\n}\n"],"mappings":"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"}
@@ -1,25 +1,20 @@
1
+ import { isArrayOfString } from "./lib/index.mjs";
1
2
  import { t as Slot } from "./slot-D8EJRq72.mjs";
3
+ import { n as useTranslate } from "./i18n-B57GZqP3.mjs";
2
4
  import { c } from "react/compiler-runtime";
3
- import { createContext, isValidElement, useContext, useId } from "react";
5
+ import { isValidElement, useId } from "react";
4
6
  import { jsx, jsxs } from "react/jsx-runtime";
5
- //#region src/components/fields/ErrorsFormatterContext.ts
6
- const ErrorsFormatterContext = createContext(void 0);
7
- const ErrorsFormatterProvider = ErrorsFormatterContext.Provider;
8
- function useErrorsFormatter() {
9
- return useContext(ErrorsFormatterContext);
10
- }
11
- //#endregion
12
- //#region src/components/fields/Field.tsx
7
+ //#region src/components/fields/field/Field.tsx
13
8
  function Field(t0) {
14
9
  const $ = c(46);
15
10
  const { label, hint, description, footerDescription, errors: rawErrors, warning, id: providedId, children, preventLayerShift: t1, "data-testid": dataTestId, className } = t0;
16
11
  const preventLayerShift = t1 === void 0 ? true : t1;
17
- const formatErrors = useErrorsFormatter();
12
+ const translate = useTranslate();
18
13
  let t2;
19
- if ($[0] !== formatErrors || $[1] !== rawErrors) {
20
- t2 = formatErrors ? formatErrors(rawErrors) : rawErrors;
21
- $[0] = formatErrors;
22
- $[1] = rawErrors;
14
+ if ($[0] !== rawErrors || $[1] !== translate) {
15
+ t2 = isArrayOfString(rawErrors) && translate ? rawErrors.map((k) => translate(k)).join(", ") : rawErrors;
16
+ $[0] = rawErrors;
17
+ $[1] = translate;
23
18
  $[2] = t2;
24
19
  } else t2 = $[2];
25
20
  const errors = t2;
@@ -175,6 +170,6 @@ function Field(t0) {
175
170
  return t14;
176
171
  }
177
172
  //#endregion
178
- export { ErrorsFormatterProvider as n, useErrorsFormatter as r, Field as t };
173
+ export { Field as t };
179
174
 
180
- //# sourceMappingURL=Field-C0LPMoF4.mjs.map
175
+ //# sourceMappingURL=Field-BHxm4Nr-.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Field-BHxm4Nr-.mjs","names":["isValidElement","ReactNode","useId","ThemeColor","isArrayOfString","Slot","useTranslate","FieldProps","label","hint","description","footerDescription","errors","warning","children","id","preventLayerShift","className","Field","t0","$","_c","rawErrors","providedId","t1","dataTestId","undefined","translate","t2","map","k","join","internalId","t3","props","t4","labelElement","t5","hintElement","t6","errorsElement","t7","warningElement","color","showLabel","showFooter","t8","testIdProp","t9","t10","t11","t12","t13","t14"],"sources":["../src/components/fields/field/Field.tsx"],"sourcesContent":["import { isValidElement, ReactNode, useId } from \"react\";\nimport { type ThemeColor } from \"../../../types\";\nimport { isArrayOfString } from \"../../../lib/arrUtil\";\nimport { Slot } from \"../../slot\";\nimport { useTranslate } from \"../../i18n\";\n\nexport interface FieldProps {\n label?: ReactNode;\n hint?: ReactNode;\n description?: ReactNode;\n footerDescription?: ReactNode;\n errors?: ReactNode | boolean;\n warning?: ReactNode | boolean;\n children: ReactNode;\n id?: string;\n preventLayerShift?: boolean;\n \"data-testid\"?: string;\n className?: string;\n}\n\nexport function Field({\n label,\n hint,\n description,\n footerDescription,\n errors: rawErrors,\n warning,\n id: providedId,\n children,\n preventLayerShift = true,\n \"data-testid\": dataTestId,\n className,\n}: FieldProps) {\n const translate = useTranslate();\n const errors =\n isArrayOfString(rawErrors) && translate\n ? rawErrors.map((k) => translate(k)).join(\", \")\n : rawErrors;\n const internalId = useId();\n const id = isValidElement<{ id?: string }>(children)\n ? children?.props.id\n : (providedId ?? internalId);\n\n const labelElement = label && <span>{label}</span>;\n const hintElement = hint && <span className=\"text-body-sm text-gray-6\">{hint}</span>;\n const errorsElement = errors && typeof errors !== \"boolean\" && (\n <span\n className=\"text-red-4 dark:text-red-2 font-medium\"\n aria-live=\"polite\"\n role=\"status\"\n data-testid={dataTestId ? `input-field/alert/${dataTestId}` : undefined}\n >\n <i className=\"fe-circle-exclamation\"></i>\n <span>{errors}</span>\n </span>\n );\n const warningElement = warning && typeof warning !== \"boolean\" && (\n <span className=\"text-orange-4 dark:text-orange-2 font-medium\" aria-live=\"polite\" role=\"status\">\n <i className=\"fe-circle-exclamation\"></i>\n <span data-testid={dataTestId ? `input-field/warning/${dataTestId}` : undefined}>\n {warning}\n </span>\n </span>\n );\n\n const color: ThemeColor = errors ? \"red\" : warning ? \"orange\" : \"yellow\";\n\n const showLabel = preventLayerShift || label || hint;\n const showFooter = preventLayerShift || errorsElement || warningElement;\n\n const testIdProp = dataTestId ? { \"data-testid\": `input-field-${dataTestId}` } : {};\n\n return (\n <div role=\"group\" className={className} {...testIdProp}>\n {showLabel &&\n (label || hint ? (\n <label className=\"mb-1 flex flex-wrap items-center justify-between\" htmlFor={id}>\n {labelElement}\n {hintElement}\n </label>\n ) : (\n <label htmlFor={id} className=\"invisible\"></label>\n ))}\n {description && <div className=\"text-body-sm text-gray-6 mb-2\">{description}</div>}\n <Slot id={id} color={color}>\n {children}\n </Slot>\n {showFooter && (\n <div className=\"text-body-sm text-gray-6 mt-1 min-h-5\">\n {errorsElement || warningElement}\n </div>\n )}\n {footerDescription && (\n <div className=\"text-body-sm text-gray-6 mb-2\">{footerDescription}</div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from "react";
2
- //#region src/components/fields/Field.d.ts
2
+ //#region src/components/fields/field/Field.d.ts
3
3
  interface FieldProps {
4
4
  label?: ReactNode;
5
5
  hint?: ReactNode;
@@ -16,4 +16,4 @@ interface FieldProps {
16
16
  declare function Field({ label, hint, description, footerDescription, errors: rawErrors, warning, id: providedId, children, preventLayerShift, "data-testid": dataTestId, className }: FieldProps): import("react").JSX.Element;
17
17
  //#endregion
18
18
  export { FieldProps as n, Field as t };
19
- //# sourceMappingURL=Field-Cpsy6gP5.d.mts.map
19
+ //# sourceMappingURL=Field-B_ZFAADd.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Field-B_ZFAADd.d.mts","names":[],"sources":["../src/components/fields/field/Field.tsx"],"mappings":";;UAMiB;EACf,QAAQ;EACR,OAAO;EACP,cAAc;EACd,oBAAoB;EACpB,SAAS;EACT,UAAU;EACV,UAAU;EACV;EACA;EACA;EACA;;iBAGc,QACd,OACA,MACA,aACA,mBACA,QAAQ,WACR,SACA,IAAI,YACJ,UACA,kCACe,YACf,aACC,6BAAU,IAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Input-B9HNBGpq.mjs","names":["ComponentPropsWithRef","ReactNode","clsx","ThemeColor","InputProps","Omit","variant","disabled","prefix","suffix","color","size","flexibleWidth","children","inputClassName","sizeVariant","small","medium","large","custom","inputConfig","container","input","icon","Input","t0","$","_c","className","readOnly","ref","rest","t1","t2","t3","t4","t5","type","undefined","t6","t7","t8","t9","t10","t11","t12","t13","e","target","HTMLInputElement","select","t14","t15","t16","t17"],"sources":["../src/components/fields/text/Input.tsx"],"sourcesContent":["import { ComponentPropsWithRef, ReactNode } from \"react\";\nimport clsx from \"clsx\";\nimport type { ThemeColor } from \"../../../types\";\n\nexport interface InputProps extends Omit<ComponentPropsWithRef<\"input\">, \"prefix\" | \"size\"> {\n variant?: \"normal\" | \"ghost\";\n disabled?: boolean;\n prefix?: ReactNode;\n suffix?: ReactNode;\n color?: ThemeColor;\n size?: \"small\" | \"medium\" | \"large\" | \"custom\";\n flexibleWidth?: boolean;\n children?: ReactNode;\n inputClassName?: string;\n}\n\nexport const sizeVariant = {\n small: \"[--h-input:24px] h-(--h-input)\",\n medium: \"[--h-input:32px] h-(--h-input)\",\n large: \"[--h-input:48px] h-(--h-input)\",\n custom: \"\",\n};\n\nexport const inputConfig = {\n container: \"p8n-input-text rounded-full flex box-border\",\n input: \"h-full flex-1 appearance-none outline-hidden filter-none min-w-0 bg-transparent\",\n icon: \"[--h-icon:calc(var(--h-input)-2px)] h-(--h-icon) w-(--h-icon) inline-flex-center\",\n};\n\nexport function Input({\n variant = \"normal\",\n color = \"yellow\",\n disabled = false,\n prefix,\n suffix,\n className,\n inputClassName,\n readOnly,\n size = \"medium\",\n flexibleWidth = true,\n type,\n children,\n ref,\n ...rest\n}: InputProps) {\n return (\n <div\n aria-disabled={disabled}\n aria-readonly={readOnly}\n data-color={color}\n data-variant={variant}\n className={clsx(inputConfig.container, sizeVariant[size], className)}\n >\n {prefix && (\n <div\n className={clsx([\n \"flex-center relative\",\n typeof prefix === \"string\" && \"text-gray-6 mx-2 select-none\",\n ])}\n >\n {prefix}\n </div>\n )}\n <input\n type={type}\n ref={ref}\n className={clsx(\n inputConfig.input,\n size !== \"custom\" && !prefix && \"pl-4\",\n size !== \"custom\" && type !== \"date\" && type !== \"datetime-local\"\n ? !suffix && \"pr-4\"\n : \"pr-1\",\n flexibleWidth && \"w-0\",\n inputClassName,\n )}\n readOnly={readOnly}\n onClick={(e) => {\n if (readOnly) {\n (e.target as HTMLInputElement)?.select();\n }\n }}\n {...(disabled ? { disabled } : {})}\n {...rest}\n />\n {suffix && (\n <div\n className={clsx([\n \"flex-center relative\",\n typeof suffix === \"string\" && \"text-gray-6 mx-2 select-none\",\n ])}\n >\n {suffix}\n </div>\n )}\n {children}\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Input-B9HNBGpq.mjs","names":["ComponentPropsWithRef","ReactNode","clsx","ThemeColor","InputProps","Omit","variant","disabled","prefix","suffix","color","size","flexibleWidth","children","inputClassName","sizeVariant","small","medium","large","custom","inputConfig","container","input","icon","Input","t0","$","_c","className","readOnly","ref","rest","t1","t2","t3","t4","t5","type","undefined","t6","t7","t8","t9","t10","t11","t12","t13","e","target","HTMLInputElement","select","t14","t15","t16","t17"],"sources":["../src/components/fields/text/Input.tsx"],"sourcesContent":["import { ComponentPropsWithRef, ReactNode } from \"react\";\nimport clsx from \"clsx\";\nimport type { ThemeColor } from \"../../../types\";\n\nexport interface InputProps extends Omit<ComponentPropsWithRef<\"input\">, \"prefix\" | \"size\"> {\n variant?: \"normal\" | \"ghost\";\n disabled?: boolean;\n prefix?: ReactNode;\n suffix?: ReactNode;\n color?: ThemeColor;\n size?: \"small\" | \"medium\" | \"large\" | \"custom\";\n flexibleWidth?: boolean;\n children?: ReactNode;\n inputClassName?: string;\n}\n\nexport const sizeVariant = {\n small: \"[--h-input:24px] h-(--h-input)\",\n medium: \"[--h-input:32px] h-(--h-input)\",\n large: \"[--h-input:48px] h-(--h-input)\",\n custom: \"\",\n};\n\nexport const inputConfig = {\n container: \"p8n-input-text rounded-full flex box-border\",\n input: \"h-full flex-1 appearance-none outline-hidden filter-none min-w-0 bg-transparent\",\n icon: \"[--h-icon:calc(var(--h-input)-2px)] h-(--h-icon) w-(--h-icon) inline-flex-center\",\n};\n\nexport function Input({\n variant = \"normal\",\n color = \"yellow\",\n disabled = false,\n prefix,\n suffix,\n className,\n inputClassName,\n readOnly,\n size = \"medium\",\n flexibleWidth = true,\n type,\n children,\n ref,\n ...rest\n}: InputProps) {\n return (\n <div\n aria-disabled={disabled}\n aria-readonly={readOnly}\n data-color={color}\n data-variant={variant}\n className={clsx(inputConfig.container, sizeVariant[size], className)}\n >\n {prefix && (\n <div\n className={clsx([\n \"flex-center relative\",\n typeof prefix === \"string\" && \"text-gray-6 mx-2 select-none\",\n ])}\n >\n {prefix}\n </div>\n )}\n <input\n type={type}\n ref={ref}\n className={clsx(\n inputConfig.input,\n size !== \"custom\" && !prefix && \"pl-4\",\n size !== \"custom\" && type !== \"date\" && type !== \"datetime-local\"\n ? !suffix && \"pr-4\"\n : \"pr-1\",\n flexibleWidth && \"w-0\",\n inputClassName,\n )}\n readOnly={readOnly}\n onClick={(e) => {\n if (readOnly) {\n (e.target as HTMLInputElement)?.select();\n }\n }}\n {...(disabled ? { disabled } : {})}\n {...rest}\n />\n {suffix && (\n <div\n className={clsx([\n \"flex-center relative\",\n typeof suffix === \"string\" && \"text-gray-6 mx-2 select-none\",\n ])}\n >\n {suffix}\n </div>\n )}\n {children}\n </div>\n );\n}\n"],"mappings":"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"}