react-miui 0.23.7-beta.1 → 0.23.7

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 (92) hide show
  1. package/CHANGELOG.md +5 -3
  2. package/dist/components/layout/header/StickyHeader.d.ts +6 -6
  3. package/dist/components/layout/header/StickyHeader.d.ts.map +1 -1
  4. package/dist/components/layout/header/StickyHeader.js +35 -14
  5. package/dist/components/layout/header/StickyHeader.js.map +1 -1
  6. package/dist/components/layout/header/StickyHeader.stories.d.ts +2 -1
  7. package/dist/components/layout/header/StickyHeader.stories.d.ts.map +1 -1
  8. package/dist/components/layout/header/StickyHeader.stories.js +62 -4
  9. package/dist/components/layout/header/StickyHeader.stories.js.map +1 -1
  10. package/dist/components/layout/header/StickyHeader.styled.d.ts +3 -1
  11. package/dist/components/layout/header/StickyHeader.styled.d.ts.map +1 -1
  12. package/dist/components/layout/header/StickyHeader.styled.js +17 -7
  13. package/dist/components/layout/header/StickyHeader.styled.js.map +1 -1
  14. package/docs/assets/search.js +1 -1
  15. package/docs/classes/Drawer.html +15 -16
  16. package/docs/classes/Pop.html +15 -16
  17. package/docs/classes/ToasterProvider.html +11 -12
  18. package/docs/enums/ICON.html +15 -16
  19. package/docs/functions/Action.html +7 -7
  20. package/docs/functions/Button.html +7 -7
  21. package/docs/functions/Card.html +7 -7
  22. package/docs/functions/Checkbox.html +7 -7
  23. package/docs/functions/Choice.html +8 -8
  24. package/docs/functions/CoveringLoader.html +7 -7
  25. package/docs/functions/DirectionPad.html +7 -7
  26. package/docs/functions/EqualActions.html +7 -7
  27. package/docs/functions/FullLoader.html +7 -7
  28. package/docs/functions/HandleEsc.html +7 -7
  29. package/docs/functions/Header.html +7 -7
  30. package/docs/functions/HeaderIconAction.html +7 -7
  31. package/docs/functions/Icon-1.html +7 -7
  32. package/docs/functions/If.html +7 -7
  33. package/docs/functions/Input.html +8 -8
  34. package/docs/functions/KeyValue.html +7 -7
  35. package/docs/functions/Label.html +7 -7
  36. package/docs/functions/List-1.html +7 -7
  37. package/docs/functions/Loader.html +7 -7
  38. package/docs/functions/Loading.html +7 -7
  39. package/docs/functions/Message.html +7 -7
  40. package/docs/functions/Modal-1.html +7 -7
  41. package/docs/functions/ModalButtons.html +7 -7
  42. package/docs/functions/PopLoader.html +7 -7
  43. package/docs/functions/PopOption.html +7 -7
  44. package/docs/functions/SearchContainer.html +7 -7
  45. package/docs/functions/Section.html +7 -7
  46. package/docs/functions/Select.html +7 -7
  47. package/docs/functions/Selector.html +8 -8
  48. package/docs/functions/Spacer.html +7 -7
  49. package/docs/functions/Stats.html +7 -7
  50. package/docs/functions/{StickyHeader-1.html → StickyHeader.html} +14 -14
  51. package/docs/functions/Table.html +7 -7
  52. package/docs/functions/TextArea.html +7 -7
  53. package/docs/functions/Toggle.html +7 -7
  54. package/docs/functions/getCssText.html +7 -7
  55. package/docs/functions/styled.html +7 -7
  56. package/docs/functions/useToaster.html +8 -8
  57. package/docs/index.html +7 -7
  58. package/docs/interfaces/ActionProps.html +14 -15
  59. package/docs/interfaces/ChoiceProps.html +12 -13
  60. package/docs/interfaces/IconProps.html +8 -9
  61. package/docs/interfaces/InputCustomProps.html +11 -12
  62. package/docs/interfaces/StickyHeaderProps.html +99 -0
  63. package/docs/modules/List.html +8 -9
  64. package/docs/modules/Modal.html +7 -8
  65. package/docs/modules.html +9 -9
  66. package/docs/pages/tutorials/Test.html +7 -7
  67. package/docs/types/InputProps.html +8 -8
  68. package/docs/types/ThemeCSS.html +8 -8
  69. package/docs/variables/List.Header.html +6 -7
  70. package/docs/variables/List.Item.html +6 -7
  71. package/docs/variables/Modal.RemovePadding.html +6 -7
  72. package/docs/variables/cssReset.html +8 -8
  73. package/docs/variables/miuiScrollbars.html +8 -8
  74. package/esm/components/layout/header/StickyHeader.d.ts +6 -6
  75. package/esm/components/layout/header/StickyHeader.d.ts.map +1 -1
  76. package/esm/components/layout/header/StickyHeader.js +12 -11
  77. package/esm/components/layout/header/StickyHeader.js.map +1 -1
  78. package/esm/components/layout/header/StickyHeader.stories.d.ts +2 -1
  79. package/esm/components/layout/header/StickyHeader.stories.d.ts.map +1 -1
  80. package/esm/components/layout/header/StickyHeader.stories.js +39 -2
  81. package/esm/components/layout/header/StickyHeader.stories.js.map +1 -1
  82. package/esm/components/layout/header/StickyHeader.styled.d.ts +3 -1
  83. package/esm/components/layout/header/StickyHeader.styled.d.ts.map +1 -1
  84. package/esm/components/layout/header/StickyHeader.styled.js +17 -7
  85. package/esm/components/layout/header/StickyHeader.styled.js.map +1 -1
  86. package/package.json +3 -2
  87. package/pnpm-lock.yaml +163 -49
  88. package/src/components/layout/header/StickyHeader.stories.tsx +47 -1
  89. package/src/components/layout/header/StickyHeader.styled.ts +18 -7
  90. package/src/components/layout/header/StickyHeader.tsx +33 -22
  91. package/docs/functions/StickyHeader.Content.html +0 -61
  92. package/docs/modules/StickyHeader.html +0 -58
package/pnpm-lock.yaml CHANGED
@@ -40,6 +40,9 @@ devDependencies:
40
40
  '@dzek69/eslint-config-typescript':
41
41
  specifier: ^1.1.1
42
42
  version: 1.1.1(@typescript-eslint/eslint-plugin@5.61.0)(@typescript-eslint/parser@5.61.0)(eslint@8.44.0)(typescript@5.3.3)
43
+ '@ezez/hooks':
44
+ specifier: ^2.0.0
45
+ version: 2.0.0(react-dom@18.2.0)(react@18.2.0)
43
46
  '@icon-park/react':
44
47
  specifier: ^1.4.2
45
48
  version: 1.4.2(react-dom@18.2.0)(react@18.2.0)
@@ -137,8 +140,8 @@ devDependencies:
137
140
  specifier: ^1.35.2
138
141
  version: 1.35.2
139
142
  storybook:
140
- specifier: ^7.6.6
141
- version: 7.6.6
143
+ specifier: ^7.6.17
144
+ version: 7.6.17
142
145
  ts-node:
143
146
  specifier: ^10.9.1
144
147
  version: 10.9.1(@swc/core@1.3.101)(@types/node@20.4.6)(typescript@5.3.3)
@@ -1988,6 +1991,17 @@ packages:
1988
1991
  engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1989
1992
  dev: true
1990
1993
 
1994
+ /@ezez/hooks@2.0.0(react-dom@18.2.0)(react@18.2.0):
1995
+ resolution: {integrity: sha512-H+rjXAsITu8tGFLo6KeUYgb3E19jAzWE6LCc4ROmapz9yfbm9nN3yaAUcZXb9b0+M9kE854ZMjXgdoKtgEspiw==}
1996
+ peerDependencies:
1997
+ react: ^18.2.0
1998
+ react-dom: ^18.2.0
1999
+ dependencies:
2000
+ oop-timers: 5.0.0
2001
+ react: 18.2.0
2002
+ react-dom: 18.2.0(react@18.2.0)
2003
+ dev: true
2004
+
1991
2005
  /@fal-works/esbuild-plugin-global-externals@2.1.2:
1992
2006
  resolution: {integrity: sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==}
1993
2007
  dev: true
@@ -3354,13 +3368,13 @@ packages:
3354
3368
  - supports-color
3355
3369
  dev: true
3356
3370
 
3357
- /@storybook/builder-manager@7.6.6:
3358
- resolution: {integrity: sha512-96vmtUqh016H2n80xhvBZU2w5flTOzY7S0nW9nfxbY4UY4b39WajgwJ5wpg8l0YmCwQTrxCwY9/VE2Pd6CCqPA==}
3371
+ /@storybook/builder-manager@7.6.17:
3372
+ resolution: {integrity: sha512-Sj8hcDYiPCCMfeLzus37czl0zdrAxAz4IyYam2jBjVymrIrcDAFyL1OCZvnq33ft179QYQWhUs9qwzVmlR/ZWg==}
3359
3373
  dependencies:
3360
3374
  '@fal-works/esbuild-plugin-global-externals': 2.1.2
3361
- '@storybook/core-common': 7.6.6
3362
- '@storybook/manager': 7.6.6
3363
- '@storybook/node-logger': 7.6.6
3375
+ '@storybook/core-common': 7.6.17
3376
+ '@storybook/manager': 7.6.17
3377
+ '@storybook/node-logger': 7.6.17
3364
3378
  '@types/ejs': 3.1.2
3365
3379
  '@types/find-cache-dir': 3.2.1
3366
3380
  '@yarnpkg/esbuild-plugin-pnp': 3.0.0-rc.15(esbuild@0.18.20)
@@ -3444,6 +3458,17 @@ packages:
3444
3458
  tiny-invariant: 1.3.1
3445
3459
  dev: true
3446
3460
 
3461
+ /@storybook/channels@7.6.17:
3462
+ resolution: {integrity: sha512-GFG40pzaSxk1hUr/J/TMqW5AFDDPUSu+HkeE/oqSWJbOodBOLJzHN6CReJS6y1DjYSZLNFt1jftPWZZInG/XUA==}
3463
+ dependencies:
3464
+ '@storybook/client-logger': 7.6.17
3465
+ '@storybook/core-events': 7.6.17
3466
+ '@storybook/global': 5.0.0
3467
+ qs: 6.11.2
3468
+ telejson: 7.2.0
3469
+ tiny-invariant: 1.3.1
3470
+ dev: true
3471
+
3447
3472
  /@storybook/channels@7.6.6:
3448
3473
  resolution: {integrity: sha512-vvo7fBe2WffPonNNOA7Xx7jcHAto8qJYlq+VMysfheXrsRRbhHl3WQOA18Vm8hV9txtqdqk0hwQiXOWvhYVpeQ==}
3449
3474
  dependencies:
@@ -3455,22 +3480,22 @@ packages:
3455
3480
  tiny-invariant: 1.3.1
3456
3481
  dev: true
3457
3482
 
3458
- /@storybook/cli@7.6.6:
3459
- resolution: {integrity: sha512-FLmWrbmGOqe1VYwqyIWxU2lJcYPssORmSbSVVPw6OqQIXx3NrNBrmZDLncMwbVCDQ8eU54J1zb+MyDmSqMbVFg==}
3483
+ /@storybook/cli@7.6.17:
3484
+ resolution: {integrity: sha512-1sCo+nCqyR+nKfTcEidVu8XzNoECC7Y1l+uW38/r7s2f/TdDorXaIGAVrpjbSaXSoQpx5DxYJVaKCcQuOgqwcA==}
3460
3485
  hasBin: true
3461
3486
  dependencies:
3462
3487
  '@babel/core': 7.23.6
3463
3488
  '@babel/preset-env': 7.23.6(@babel/core@7.23.6)
3464
3489
  '@babel/types': 7.23.6
3465
3490
  '@ndelangen/get-tarball': 3.0.9
3466
- '@storybook/codemod': 7.6.6
3467
- '@storybook/core-common': 7.6.6
3468
- '@storybook/core-events': 7.6.6
3469
- '@storybook/core-server': 7.6.6
3470
- '@storybook/csf-tools': 7.6.6
3471
- '@storybook/node-logger': 7.6.6
3472
- '@storybook/telemetry': 7.6.6
3473
- '@storybook/types': 7.6.6
3491
+ '@storybook/codemod': 7.6.17
3492
+ '@storybook/core-common': 7.6.17
3493
+ '@storybook/core-events': 7.6.17
3494
+ '@storybook/core-server': 7.6.17
3495
+ '@storybook/csf-tools': 7.6.17
3496
+ '@storybook/node-logger': 7.6.17
3497
+ '@storybook/telemetry': 7.6.17
3498
+ '@storybook/types': 7.6.17
3474
3499
  '@types/semver': 7.5.0
3475
3500
  '@yarnpkg/fslib': 2.10.3
3476
3501
  '@yarnpkg/libzip': 2.3.0
@@ -3495,7 +3520,6 @@ packages:
3495
3520
  puppeteer-core: 2.1.1
3496
3521
  read-pkg-up: 7.0.1
3497
3522
  semver: 7.5.4
3498
- simple-update-notifier: 2.0.0
3499
3523
  strip-json-comments: 3.1.1
3500
3524
  tempy: 1.0.1
3501
3525
  ts-dedent: 2.2.0
@@ -3513,22 +3537,28 @@ packages:
3513
3537
  '@storybook/global': 5.0.0
3514
3538
  dev: true
3515
3539
 
3540
+ /@storybook/client-logger@7.6.17:
3541
+ resolution: {integrity: sha512-6WBYqixAXNAXlSaBWwgljWpAu10tPRBJrcFvx2gPUne58EeMM20Gi/iHYBz2kMCY+JLAgeIH7ZxInqwO8vDwiQ==}
3542
+ dependencies:
3543
+ '@storybook/global': 5.0.0
3544
+ dev: true
3545
+
3516
3546
  /@storybook/client-logger@7.6.6:
3517
3547
  resolution: {integrity: sha512-WEvVyuQR5oNF8jcMmGA13zDjxP/l46kOBBvB6JSc8toUdtLZ/kZWSnU0ioNM8+ECpFqXHjBcF2K6uSJOEb6YEg==}
3518
3548
  dependencies:
3519
3549
  '@storybook/global': 5.0.0
3520
3550
  dev: true
3521
3551
 
3522
- /@storybook/codemod@7.6.6:
3523
- resolution: {integrity: sha512-6QwW6T6ZgwwbTkEoZ7CAoX7lUUob7Sy7bRkMHhSjJe2++wEVFOYLvzHcLUJCupK59+WhmsJU9PpUMlXEKi40TQ==}
3552
+ /@storybook/codemod@7.6.17:
3553
+ resolution: {integrity: sha512-JuTmf2u3C4fCnjO7o3dqRgrq3ozNYfWlrRP8xuIdvT7niMap7a396hJtSKqS10FxCgKFcMAOsRgrCalH1dWxUg==}
3524
3554
  dependencies:
3525
3555
  '@babel/core': 7.23.6
3526
3556
  '@babel/preset-env': 7.23.6(@babel/core@7.23.6)
3527
3557
  '@babel/types': 7.23.6
3528
3558
  '@storybook/csf': 0.1.2
3529
- '@storybook/csf-tools': 7.6.6
3530
- '@storybook/node-logger': 7.6.6
3531
- '@storybook/types': 7.6.6
3559
+ '@storybook/csf-tools': 7.6.17
3560
+ '@storybook/node-logger': 7.6.17
3561
+ '@storybook/types': 7.6.17
3532
3562
  '@types/cross-spawn': 6.0.2
3533
3563
  cross-spawn: 7.0.3
3534
3564
  globby: 11.1.0
@@ -3570,6 +3600,37 @@ packages:
3570
3600
  '@storybook/preview-api': 7.6.6
3571
3601
  dev: true
3572
3602
 
3603
+ /@storybook/core-common@7.6.17:
3604
+ resolution: {integrity: sha512-me2TP3Q9/qzqCLoDHUSsUF+VS1MHxfHbTVF6vAz0D/COTxzsxLpu9TxTbzJoBCxse6XRb6wWI1RgF1mIcjic7g==}
3605
+ dependencies:
3606
+ '@storybook/core-events': 7.6.17
3607
+ '@storybook/node-logger': 7.6.17
3608
+ '@storybook/types': 7.6.17
3609
+ '@types/find-cache-dir': 3.2.1
3610
+ '@types/node': 18.19.3
3611
+ '@types/node-fetch': 2.6.4
3612
+ '@types/pretty-hrtime': 1.0.1
3613
+ chalk: 4.1.2
3614
+ esbuild: 0.18.20
3615
+ esbuild-register: 3.5.0(esbuild@0.18.20)
3616
+ file-system-cache: 2.3.0
3617
+ find-cache-dir: 3.3.2
3618
+ find-up: 5.0.0
3619
+ fs-extra: 11.1.1
3620
+ glob: 10.3.3
3621
+ handlebars: 4.7.8
3622
+ lazy-universal-dotenv: 4.0.0
3623
+ node-fetch: 2.6.12
3624
+ picomatch: 2.3.1
3625
+ pkg-dir: 5.0.0
3626
+ pretty-hrtime: 1.0.3
3627
+ resolve-from: 5.0.0
3628
+ ts-dedent: 2.2.0
3629
+ transitivePeerDependencies:
3630
+ - encoding
3631
+ - supports-color
3632
+ dev: true
3633
+
3573
3634
  /@storybook/core-common@7.6.6:
3574
3635
  resolution: {integrity: sha512-DpbFSYw8LHuwpeU2ec5uWryxrSqslFJnWTfNA7AvpzCviWXkz4kq+YYrDee9XExF6OozNwILmG6m52SnraysBA==}
3575
3636
  dependencies:
@@ -3605,30 +3666,36 @@ packages:
3605
3666
  resolution: {integrity: sha512-EUXYb3gyQ2EzpDAWkgfoDl1EPabj3OE6+zntsD/gwvzQU85BTocs10ksnRyS55bfrQpYbf+Z+gw2CZboyagLgg==}
3606
3667
  dev: true
3607
3668
 
3669
+ /@storybook/core-events@7.6.17:
3670
+ resolution: {integrity: sha512-AriWMCm/k1cxlv10f+jZ1wavThTRpLaN3kY019kHWbYT9XgaSuLU67G7GPr3cGnJ6HuA6uhbzu8qtqVCd6OfXA==}
3671
+ dependencies:
3672
+ ts-dedent: 2.2.0
3673
+ dev: true
3674
+
3608
3675
  /@storybook/core-events@7.6.6:
3609
3676
  resolution: {integrity: sha512-7+q9HiZiLxaQcwpaSLQrLdjHNHBoOoUY9ZcZXI9iNFSopOgb/ItDnzzlpv08NC7CbKae1hVKJM/t5aSTl7tCMw==}
3610
3677
  dependencies:
3611
3678
  ts-dedent: 2.2.0
3612
3679
  dev: true
3613
3680
 
3614
- /@storybook/core-server@7.6.6:
3615
- resolution: {integrity: sha512-QFVahaExgGtq9swBXgQAMUiCqpCcyVXOiKTIy1j+1uAhPVqhpCxBkkFoXruih5hbIMZyohE4mLPCAr/ivicoDg==}
3681
+ /@storybook/core-server@7.6.17:
3682
+ resolution: {integrity: sha512-KWGhTTaL1Q14FolcoKKZgytlPJUbH6sbJ1Ptj/84EYWFewcnEgVs0Zlnh1VStRZg+Rd1WC1V4yVd/bbDzxrvQA==}
3616
3683
  dependencies:
3617
3684
  '@aw-web-design/x-default-browser': 1.4.126
3618
3685
  '@discoveryjs/json-ext': 0.5.7
3619
- '@storybook/builder-manager': 7.6.6
3620
- '@storybook/channels': 7.6.6
3621
- '@storybook/core-common': 7.6.6
3622
- '@storybook/core-events': 7.6.6
3686
+ '@storybook/builder-manager': 7.6.17
3687
+ '@storybook/channels': 7.6.17
3688
+ '@storybook/core-common': 7.6.17
3689
+ '@storybook/core-events': 7.6.17
3623
3690
  '@storybook/csf': 0.1.2
3624
- '@storybook/csf-tools': 7.6.6
3691
+ '@storybook/csf-tools': 7.6.17
3625
3692
  '@storybook/docs-mdx': 0.1.0
3626
3693
  '@storybook/global': 5.0.0
3627
- '@storybook/manager': 7.6.6
3628
- '@storybook/node-logger': 7.6.6
3629
- '@storybook/preview-api': 7.6.6
3630
- '@storybook/telemetry': 7.6.6
3631
- '@storybook/types': 7.6.6
3694
+ '@storybook/manager': 7.6.17
3695
+ '@storybook/node-logger': 7.6.17
3696
+ '@storybook/preview-api': 7.6.17
3697
+ '@storybook/telemetry': 7.6.17
3698
+ '@storybook/types': 7.6.17
3632
3699
  '@types/detect-port': 1.3.3
3633
3700
  '@types/node': 18.19.3
3634
3701
  '@types/pretty-hrtime': 1.0.1
@@ -3641,7 +3708,7 @@ packages:
3641
3708
  express: 4.18.2
3642
3709
  fs-extra: 11.1.1
3643
3710
  globby: 11.1.0
3644
- ip: 2.0.0
3711
+ ip: 2.0.1
3645
3712
  lodash: 4.17.21
3646
3713
  open: 8.4.2
3647
3714
  pretty-hrtime: 1.0.3
@@ -3684,6 +3751,22 @@ packages:
3684
3751
  - supports-color
3685
3752
  dev: true
3686
3753
 
3754
+ /@storybook/csf-tools@7.6.17:
3755
+ resolution: {integrity: sha512-dAQtam0EBPeTJYcQPLxXgz4L9JFqD+HWbLFG9CmNIhMMjticrB0mpk1EFIS6vPXk/VsVWpBgMLD7dZlD6YMKcQ==}
3756
+ dependencies:
3757
+ '@babel/generator': 7.23.6
3758
+ '@babel/parser': 7.23.6
3759
+ '@babel/traverse': 7.23.6
3760
+ '@babel/types': 7.23.6
3761
+ '@storybook/csf': 0.1.2
3762
+ '@storybook/types': 7.6.17
3763
+ fs-extra: 11.1.1
3764
+ recast: 0.23.3
3765
+ ts-dedent: 2.2.0
3766
+ transitivePeerDependencies:
3767
+ - supports-color
3768
+ dev: true
3769
+
3687
3770
  /@storybook/csf-tools@7.6.6:
3688
3771
  resolution: {integrity: sha512-VXOZCzfSVJL832u17pPhFu1x3PPaAN9d8VXNFX+t/2raga7tK3T7Qhe7lWfP7EZcrVvSCEEp0aMRz2EzzDGVtw==}
3689
3772
  dependencies:
@@ -3774,8 +3857,8 @@ packages:
3774
3857
  - react-dom
3775
3858
  dev: true
3776
3859
 
3777
- /@storybook/manager@7.6.6:
3778
- resolution: {integrity: sha512-Ga3LcSu/xxSyg+cLlO9AS8QjW+D667V+c9qQPmsFyU6qfFc6m6mVqcRLSmFVD5e7P/o0FL7STOf9jAKkDcW8xw==}
3860
+ /@storybook/manager@7.6.17:
3861
+ resolution: {integrity: sha512-A1LDDIqMpwRzq/dqkbbiza0QI04o4ZHCl2a3UMDZUV/+QLc2nsr2DAaLk4CVL4/cIc5zGqmIcaOTvprx2YKVBw==}
3779
3862
  dev: true
3780
3863
 
3781
3864
  /@storybook/mdx2-csf@1.1.0:
@@ -3866,6 +3949,10 @@ packages:
3866
3949
  - webpack-plugin-serve
3867
3950
  dev: true
3868
3951
 
3952
+ /@storybook/node-logger@7.6.17:
3953
+ resolution: {integrity: sha512-w59MQuXhhUNrUVmVkXhMwIg2nvFWjdDczLTwYLorhfsE36CWeUOY5QCZWQy0Qf/h+jz8Uo7Evy64qn18v9C4wA==}
3954
+ dev: true
3955
+
3869
3956
  /@storybook/node-logger@7.6.6:
3870
3957
  resolution: {integrity: sha512-b2OF9GRNI01MlBlnDGS8S6/yOpBNl8eH/0ONafuMPzFEZs5PouHGsFflJvQwwcdVTknMjF5uVS2eSmnLZ8spvA==}
3871
3958
  dev: true
@@ -3943,6 +4030,25 @@ packages:
3943
4030
  util-deprecate: 1.0.2
3944
4031
  dev: true
3945
4032
 
4033
+ /@storybook/preview-api@7.6.17:
4034
+ resolution: {integrity: sha512-wLfDdI9RWo1f2zzFe54yRhg+2YWyxLZvqdZnSQ45mTs4/7xXV5Wfbv3QNTtcdw8tT3U5KRTrN1mTfTCiRJc0Kw==}
4035
+ dependencies:
4036
+ '@storybook/channels': 7.6.17
4037
+ '@storybook/client-logger': 7.6.17
4038
+ '@storybook/core-events': 7.6.17
4039
+ '@storybook/csf': 0.1.2
4040
+ '@storybook/global': 5.0.0
4041
+ '@storybook/types': 7.6.17
4042
+ '@types/qs': 6.9.7
4043
+ dequal: 2.0.3
4044
+ lodash: 4.17.21
4045
+ memoizerific: 1.11.3
4046
+ qs: 6.11.2
4047
+ synchronous-promise: 2.0.17
4048
+ ts-dedent: 2.2.0
4049
+ util-deprecate: 1.0.2
4050
+ dev: true
4051
+
3946
4052
  /@storybook/preview-api@7.6.6:
3947
4053
  resolution: {integrity: sha512-Bt6xIAR5yZ/JWc90X4BbLOA97iL65glZ1SOBgFFv2mHrdZ1lcdKhAlQr2aeJAf1mLvBtalPjvKzi9EuVY3FZ4w==}
3948
4054
  dependencies:
@@ -4043,12 +4149,12 @@ packages:
4043
4149
  qs: 6.11.2
4044
4150
  dev: true
4045
4151
 
4046
- /@storybook/telemetry@7.6.6:
4047
- resolution: {integrity: sha512-2WdDcrMrt1bPVgdMVO0tFmVxT6YIjiPRfKbH/7wwYMOGmV75m4mJ9Ha2gzZc/oXTSK1M4/fiK12IgW+S3ErcMg==}
4152
+ /@storybook/telemetry@7.6.17:
4153
+ resolution: {integrity: sha512-WOcOAmmengYnGInH98Px44F47DSpLyk20BM+Z/IIQDzfttGOLlxNqBBG1XTEhNRn+AYuk4aZ2JEed2lCjVIxcA==}
4048
4154
  dependencies:
4049
- '@storybook/client-logger': 7.6.6
4050
- '@storybook/core-common': 7.6.6
4051
- '@storybook/csf-tools': 7.6.6
4155
+ '@storybook/client-logger': 7.6.17
4156
+ '@storybook/core-common': 7.6.17
4157
+ '@storybook/csf-tools': 7.6.17
4052
4158
  chalk: 4.1.2
4053
4159
  detect-package-manager: 2.0.1
4054
4160
  fetch-retry: 5.0.6
@@ -4092,6 +4198,15 @@ packages:
4092
4198
  file-system-cache: 2.3.0
4093
4199
  dev: true
4094
4200
 
4201
+ /@storybook/types@7.6.17:
4202
+ resolution: {integrity: sha512-GRY0xEJQ0PrL7DY2qCNUdIfUOE0Gsue6N+GBJw9ku1IUDFLJRDOF+4Dx2BvYcVCPI5XPqdWKlEyZdMdKjiQN7Q==}
4203
+ dependencies:
4204
+ '@storybook/channels': 7.6.17
4205
+ '@types/babel__core': 7.20.1
4206
+ '@types/express': 4.17.17
4207
+ file-system-cache: 2.3.0
4208
+ dev: true
4209
+
4095
4210
  /@storybook/types@7.6.6:
4096
4211
  resolution: {integrity: sha512-77vbQp3GX93OD8UzFkY4a0fAmkZrqLe61XVo6yABrwbVDY0EcAwaCF5gcXRhOHldlH7KYbLfEQkDkkKTBjX7ow==}
4097
4212
  dependencies:
@@ -7963,8 +8078,8 @@ packages:
7963
8078
  loose-envify: 1.4.0
7964
8079
  dev: true
7965
8080
 
7966
- /ip@2.0.0:
7967
- resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==}
8081
+ /ip@2.0.1:
8082
+ resolution: {integrity: sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==}
7968
8083
  dev: true
7969
8084
 
7970
8085
  /ipaddr.js@1.9.1:
@@ -9713,7 +9828,6 @@ packages:
9713
9828
 
9714
9829
  /oop-timers@5.0.0:
9715
9830
  resolution: {integrity: sha512-YXDS1v+9/yM6zTWowcrNaaVbe81fuGnpfT5fzkNwOq3/bdrO1lRzm++j6+blOBvWpSzbN4QSEkkmksk6dHUjfw==}
9716
- dev: false
9717
9831
 
9718
9832
  /open@8.4.2:
9719
9833
  resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
@@ -11210,11 +11324,11 @@ packages:
11210
11324
  resolution: {integrity: sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==}
11211
11325
  dev: true
11212
11326
 
11213
- /storybook@7.6.6:
11214
- resolution: {integrity: sha512-PmJxpjGdLvDOHaRzqLOvcJ3ALQPaNeW6D5Lv7rPPVbuO24wdDzd/75dPRP7gJKYcGE0NnDZ6cLQq3UlCfbkIBA==}
11327
+ /storybook@7.6.17:
11328
+ resolution: {integrity: sha512-8+EIo91bwmeFWPg1eysrxXlhIYv3OsXrznTr4+4Eq0NikqAoq6oBhtlN5K2RGS2lBVF537eN+9jTCNbR+WrzDA==}
11215
11329
  hasBin: true
11216
11330
  dependencies:
11217
- '@storybook/cli': 7.6.6
11331
+ '@storybook/cli': 7.6.17
11218
11332
  transitivePeerDependencies:
11219
11333
  - bufferutil
11220
11334
  - encoding
@@ -1,4 +1,6 @@
1
- import React from "react";
1
+ import React, { useEffect } from "react";
2
+
3
+ import { useForceUpdate } from "@ezez/hooks";
2
4
 
3
5
  import type { StoryObj, Meta } from "@storybook/react";
4
6
 
@@ -9,6 +11,21 @@ const meta: Meta = {
9
11
  title: "Components/Layout/Header/StickyHeader",
10
12
  component: StickyHeader,
11
13
  tags: ["autodocs", "layout"],
14
+ argTypes: {
15
+ children: {
16
+ control: {
17
+ disable: true,
18
+ },
19
+ description: "Usual children",
20
+ },
21
+ position: {
22
+ control: {
23
+ type: "select",
24
+ },
25
+ description: "Position of the header",
26
+ options: ["top", "left", "right", "bottom"],
27
+ },
28
+ },
12
29
  };
13
30
 
14
31
  type Story = StoryObj<typeof StickyHeader>;
@@ -34,8 +51,37 @@ const Primary: Story = {
34
51
  },
35
52
  };
36
53
 
54
+ const RefsDemo: Story = {
55
+ render: (args) => {
56
+ const ref = React.useRef<HTMLDivElement>(null);
57
+ const refContent = React.useRef<HTMLDivElement>(null);
58
+ const handleForceUpdate = useForceUpdate();
59
+
60
+ useEffect(() => {
61
+ handleForceUpdate();
62
+ }, []);
63
+
64
+ console.info("RefsDemo", {
65
+ ref: ref.current, refContent: refContent.current,
66
+ });
67
+
68
+ return (
69
+ <>
70
+ <StickyHeader {...args} ref={ref}>
71
+ <Header>x</Header>
72
+ <StickyHeader.Content ref={refContent}>
73
+ {`Ref: ${ref.current ? `set ${ref.current.nodeName}` : "not set"}`}<br />
74
+ {`RefContent: ${refContent.current ? `set ${refContent.current.nodeName}` : "not set"}`}<br />
75
+ </StickyHeader.Content>
76
+ </StickyHeader>
77
+ </>
78
+ );
79
+ },
80
+ };
81
+
37
82
  export {
38
83
  Primary,
84
+ RefsDemo,
39
85
  };
40
86
 
41
87
  export default meta;
@@ -2,28 +2,39 @@ import { styled } from "../../../theme";
2
2
 
3
3
  const StyledStickyHeader = styled("div", {
4
4
  height: "100%",
5
- display: "grid",
6
- gridTemplateRows: "auto 1fr",
7
- gridTemplateColumns: "1fr",
5
+ display: "flex",
6
+ flexDirection: "column",
8
7
 
9
8
  variants: {
10
9
  position: {
11
10
  top: {},
12
11
  left: {
13
- gridTemplateRows: "1fr",
14
- gridTemplateColumns: "auto 1fr",
12
+ flexDirection: "row",
15
13
  },
16
14
  bottom: {},
17
15
  right: {
18
- gridTemplateRows: "1fr",
19
- gridTemplateColumns: "1fr auto",
16
+ flexDirection: "row",
20
17
  },
21
18
  },
22
19
  },
23
20
  });
24
21
 
25
22
  const Content = styled("div", {
23
+ flex: 1,
26
24
  overflow: "auto",
25
+
26
+ variants: {
27
+ position: {
28
+ top: {},
29
+ bottom: {
30
+ order: 1,
31
+ },
32
+ left: {},
33
+ right: {
34
+ order: 1,
35
+ },
36
+ },
37
+ },
27
38
  });
28
39
 
29
40
  export {
@@ -1,4 +1,4 @@
1
- import React from "react";
1
+ import React, { forwardRef } from "react";
2
2
 
3
3
  import { Header } from "./Header";
4
4
  import { Content, StyledStickyHeader } from "./StickyHeader.styled";
@@ -6,23 +6,36 @@ import { Content, StyledStickyHeader } from "./StickyHeader.styled";
6
6
  const err = new TypeError("StickyHeader needs two children - Header and StickyHeader.Content");
7
7
 
8
8
  interface ContentComponent {
9
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
10
- Content: React.FC<ContentProps>;
11
- }
12
-
13
- interface ContentProps {
14
- className?: string;
15
- children: React.ReactNode;
9
+ Content: typeof Content;
16
10
  }
17
11
 
18
12
  interface Props {
13
+ /**
14
+ * Position of the header
15
+ */
19
16
  position?: "top" | "left" | "right" | "bottom";
17
+ /**
18
+ * Additional class name
19
+ */
20
20
  className?: string;
21
+ /**
22
+ * If you need to pass custom children for some reason and you are sure that you are doing it right - use this prop
23
+ * to disable children type check.
24
+ */
25
+ __dangerouslyDisableChildrenGuard?: boolean;
21
26
  children: React.ReactNode;
22
27
  }
23
28
 
24
- const StickyHeader: React.FC<Props> & ContentComponent = (props) => {
25
- const { children: _children, position = "top", ...rest } = props;
29
+ const StickyHeaderRaw = forwardRef<HTMLDivElement, Props>((props, ref) => {
30
+ const { children: _children, position = "top", __dangerouslyDisableChildrenGuard, ...rest } = props;
31
+
32
+ if (__dangerouslyDisableChildrenGuard) {
33
+ return (
34
+ <StyledStickyHeader ref={ref} {...rest} position={position}>
35
+ {_children}
36
+ </StyledStickyHeader>
37
+ );
38
+ }
26
39
 
27
40
  const children = React.Children.toArray(_children);
28
41
 
@@ -32,7 +45,7 @@ const StickyHeader: React.FC<Props> & ContentComponent = (props) => {
32
45
  }
33
46
 
34
47
  let header = children.find(c => typeof c === "object" && "type" in c && c.type === Header),
35
- content = children.find(c => typeof c === "object" && "type" in c && c.type === StickyHeader.Content);
48
+ content = children.find(c => typeof c === "object" && "type" in c && c.type === Content);
36
49
 
37
50
  if (!header || !content) {
38
51
  throw err;
@@ -41,20 +54,18 @@ const StickyHeader: React.FC<Props> & ContentComponent = (props) => {
41
54
  header = header as never; // @TODO find a better way to silence TS on cloneElement
42
55
  content = content as never;
43
56
 
44
- const contentCls = (content as { props: ContentProps }).props.className;
45
-
46
57
  return (
47
- <StyledStickyHeader {...rest} position={position}>
58
+ <StyledStickyHeader ref={ref} {...rest} position={position}>
48
59
  {React.cloneElement(header, { position })}
49
- <Content className={contentCls}>
50
- {content}
51
- </Content>
60
+ {React.cloneElement(content, { position })}
52
61
  </StyledStickyHeader>
53
62
  );
54
- };
55
- // eslint-disable-next-line react/no-multi-comp
56
- StickyHeader.Content = ({ children }) => {
57
- return <>{children}</>;
58
- };
63
+ });
64
+
65
+ type StickyHeaderType = React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>> & ContentComponent;
66
+
67
+ const StickyHeader = StickyHeaderRaw as StickyHeaderType;
68
+ StickyHeader.Content = Content; // @TODO remove "position" from this component props
59
69
 
60
70
  export { StickyHeader };
71
+ export type { Props as StickyHeaderProps };
@@ -1,61 +0,0 @@
1
- <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Content | react-miui - v0.23.7-beta.1</title><meta name="description" content="Documentation for react-miui - v0.23.7-beta.1"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script><link rel="stylesheet" href="../assets/pages.css"/></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
2
- <div class="tsd-toolbar-contents container">
3
- <div class="table-cell" id="tsd-search" data-base="..">
4
- <div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
5
- <div class="field">
6
- <div id="tsd-toolbar-links"></div></div>
7
- <ul class="results">
8
- <li class="state loading">Preparing search index...</li>
9
- <li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">react-miui - v0.23.7-beta.1</a></div>
10
- <div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
11
- <div class="container container-main">
12
- <div class="col-8 col-content">
13
- <div class="tsd-page-title">
14
- <ul class="tsd-breadcrumb">
15
- <li><a href="../modules.html">react-miui - v0.23.7-beta.1</a></li>
16
- <li><a href="../modules/StickyHeader.html">StickyHeader</a></li>
17
- <li><a href="StickyHeader.Content.html">Content</a></li></ul>
18
- <h1>Function Content</h1></div>
19
- <section class="tsd-panel">
20
- <ul class="tsd-signatures tsd-kind-function tsd-parent-kind-namespace">
21
- <li class="tsd-signature tsd-anchor-link" id="Content">Content<span class="tsd-signature-symbol">(</span>__namedParameters<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ContentProps</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Element</span><a href="#Content" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
22
- <li class="tsd-description">
23
- <div class="tsd-parameters">
24
- <h4 class="tsd-parameters-title">Parameters</h4>
25
- <ul class="tsd-parameter-list">
26
- <li>
27
- <h5>__namedParameters: <span class="tsd-signature-type">ContentProps</span></h5></li></ul></div>
28
- <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Element</span></h4><aside class="tsd-sources">
29
- <ul>
30
- <li>Defined in <a href="https://github.com/dzek69/react-miui/blob/1737b09/src/components/layout/header/StickyHeader.tsx#L56">src/components/layout/header/StickyHeader.tsx:56</a></li></ul></aside></li></ul></section></div>
31
- <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
32
- <div class="tsd-navigation settings">
33
- <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
34
- <h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
35
- <div class="tsd-accordion-details">
36
- <div class="tsd-filter-visibility">
37
- <h4 class="uppercase">Member Visibility</h4><form>
38
- <ul id="tsd-filter-options">
39
- <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
40
- <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
41
- <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
42
- <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
43
- <div class="tsd-theme-toggle">
44
- <h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
45
- <nav class="tsd-navigation primary">
46
- <details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
47
- <h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
48
- <div class="tsd-accordion-details">
49
- <ul>
50
- <li class="current"><a href="../modules.html">react-<wbr/>miui -<wbr/> v0.23.7-<wbr/>beta.1</a>
51
- <ul>
52
- <li class="pages-entry pages-entry-page pages-entry-depth-1"><a href="../pages/tutorials/Test.html">Test</a></li>
53
- <li class="tsd-kind-namespace"><a href="../modules/List.html">List</a></li>
54
- <li class="tsd-kind-namespace"><a href="../modules/Modal.html">Modal</a></li>
55
- <li class="current tsd-kind-namespace"><a href="../modules/StickyHeader.html">Sticky<wbr/>Header</a></li></ul></li></ul></div></details></nav>
56
- <nav class="tsd-navigation secondary menu-sticky">
57
- <ul>
58
- <li class="current tsd-kind-function tsd-parent-kind-namespace"><a href="StickyHeader.Content.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>Content</a></li></ul></nav></div></div>
59
- <div class="container tsd-generator">
60
- <p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
61
- <div class="overlay"></div><script src="../assets/main.js"></script></body></html>