@donotdev/components 0.0.13 → 0.0.14

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 (57) hide show
  1. package/dist/advanced/Code/CodeContent.d.ts.map +1 -1
  2. package/dist/advanced/Code/CodeContent.js +5 -1
  3. package/dist/advanced/Code/CodeSkeleton.d.ts.map +1 -1
  4. package/dist/advanced/Code/CodeSkeleton.js +2 -1
  5. package/dist/advanced/JsonViewer/JsonViewer.d.ts.map +1 -1
  6. package/dist/advanced/JsonViewer/JsonViewer.js +2 -1
  7. package/dist/atomic/Button/index.d.ts.map +1 -1
  8. package/dist/atomic/Checkbox/index.d.ts +16 -2
  9. package/dist/atomic/Checkbox/index.d.ts.map +1 -1
  10. package/dist/atomic/Checkbox/index.js +20 -4
  11. package/dist/atomic/Collapsible/index.d.ts.map +1 -1
  12. package/dist/atomic/Collapsible/index.js +5 -1
  13. package/dist/atomic/Icons/Partner/providerIcons.d.ts.map +1 -1
  14. package/dist/atomic/Icons/Partner/providerIcons.js +17 -1
  15. package/dist/atomic/Input/index.d.ts +6 -1
  16. package/dist/atomic/Input/index.d.ts.map +1 -1
  17. package/dist/atomic/Input/index.js +10 -5
  18. package/dist/atomic/Label/FloatingLabel.d.ts +3 -1
  19. package/dist/atomic/Label/FloatingLabel.d.ts.map +1 -1
  20. package/dist/atomic/Label/FloatingLabel.js +2 -2
  21. package/dist/atomic/Pagination/index.d.ts +7 -29
  22. package/dist/atomic/Pagination/index.d.ts.map +1 -1
  23. package/dist/atomic/Pagination/index.js +101 -71
  24. package/dist/atomic/PasswordInput/index.d.ts.map +1 -1
  25. package/dist/atomic/PasswordInput/index.js +1 -1
  26. package/dist/atomic/RangeInput/index.d.ts +45 -0
  27. package/dist/atomic/RangeInput/index.d.ts.map +1 -0
  28. package/dist/atomic/RangeInput/index.js +63 -0
  29. package/dist/atomic/Select/index.d.ts.map +1 -1
  30. package/dist/atomic/Select/index.js +1 -1
  31. package/dist/atomic/Slider/index.d.ts.map +1 -1
  32. package/dist/atomic/Slider/index.js +7 -4
  33. package/dist/atomic/Table/index.d.ts +18 -5
  34. package/dist/atomic/Table/index.d.ts.map +1 -1
  35. package/dist/atomic/Table/index.js +91 -31
  36. package/dist/atomic/Textarea/index.d.ts +4 -0
  37. package/dist/atomic/Textarea/index.d.ts.map +1 -1
  38. package/dist/atomic/Textarea/index.js +3 -3
  39. package/dist/atomic/Toaster/Toast.types.d.ts +17 -0
  40. package/dist/atomic/Toaster/Toast.types.d.ts.map +1 -0
  41. package/dist/atomic/Toaster/Toast.types.js +2 -0
  42. package/dist/atomic/Toaster/ToastPrimitive.d.ts +1 -1
  43. package/dist/atomic/Toaster/ToastPrimitive.d.ts.map +1 -1
  44. package/dist/atomic/VideoPlayer/index.d.ts +11 -1
  45. package/dist/atomic/VideoPlayer/index.d.ts.map +1 -1
  46. package/dist/atomic/VideoPlayer/index.js +6 -8
  47. package/dist/atomic/index.d.ts +2 -0
  48. package/dist/atomic/index.d.ts.map +1 -1
  49. package/dist/atomic/index.js +1 -0
  50. package/dist/hooks/index.d.ts +2 -1
  51. package/dist/hooks/index.d.ts.map +1 -1
  52. package/dist/hooks/useToast.d.ts +1 -8
  53. package/dist/hooks/useToast.d.ts.map +1 -1
  54. package/dist/hooks/useToast.js +1 -0
  55. package/dist/index.js +4 -4
  56. package/dist/styles/index.css +186 -72
  57. package/package.json +1 -1
@@ -2201,6 +2201,20 @@ em {
2201
2201
  padding-inline-start: var(--gap-md);
2202
2202
  }
2203
2203
 
2204
+ /* Bare mode - no visual chrome, used inside FloatingLabel or custom wrappers */
2205
+
2206
+ [data-bare] {
2207
+ border: none !important;
2208
+ box-shadow: none !important;
2209
+ background: transparent !important;
2210
+ }
2211
+
2212
+ [data-bare]:hover,[data-bare]:focus,[data-bare]:focus-visible {
2213
+ border-color: transparent !important;
2214
+ box-shadow: none !important;
2215
+ outline: none !important;
2216
+ }
2217
+
2204
2218
  /* Password strength bar height override */
2205
2219
 
2206
2220
  .dndev-password-strength-bar {
@@ -3302,6 +3316,7 @@ em {
3302
3316
 
3303
3317
  .dndev-collapsible-content[data-state='open'] {
3304
3318
  animation: slideDown var(--dur-normal) var(--ease-in-out);
3319
+ overflow: visible; /* Allow dropdowns/overlays to escape when open */
3305
3320
  }
3306
3321
 
3307
3322
  .dndev-collapsible-content[data-state='closed'] {
@@ -4434,6 +4449,18 @@ em {
4434
4449
 
4435
4450
  /* packages/components/src/atomic/Input/Input.css */
4436
4451
 
4452
+ /* Hide number input spinners - cleaner UI for price/range inputs */
4453
+
4454
+ input[type='number']::-webkit-inner-spin-button,
4455
+ input[type='number']::-webkit-outer-spin-button {
4456
+ -webkit-appearance: none;
4457
+ margin: 0;
4458
+ }
4459
+
4460
+ input[type='number'] {
4461
+ -moz-appearance: textfield;
4462
+ }
4463
+
4437
4464
  /* Input with leading icon (search, etc.) */
4438
4465
 
4439
4466
  .dndev-input-with-leading-icon {
@@ -4643,6 +4670,9 @@ em {
4643
4670
  background-color: transparent;
4644
4671
  transition: all var(--dur-normal) var(--ease-in-out);
4645
4672
  text-align: start;
4673
+ /* Flex-aware: allow fieldset to shrink in flex containers */
4674
+ min-width: 0;
4675
+ width: 100%;
4646
4676
  }
4647
4677
 
4648
4678
  .dndev-floating-fieldset:hover {
@@ -4651,7 +4681,6 @@ em {
4651
4681
 
4652
4682
  .dndev-floating-fieldset:focus-within {
4653
4683
  border-color: var(--ring);
4654
- box-shadow: 0 0 0 2px var(--ring);
4655
4684
  }
4656
4685
 
4657
4686
  .dndev-floating-fieldset[data-disabled='true'] {
@@ -4668,6 +4697,11 @@ em {
4668
4697
  font-weight: 500;
4669
4698
  line-height: 1;
4670
4699
  color: var(--foreground);
4700
+ /* Ellipsis by default */
4701
+ max-width: 100%;
4702
+ overflow: hidden;
4703
+ text-overflow: ellipsis;
4704
+ white-space: nowrap;
4671
4705
  }
4672
4706
 
4673
4707
  .dndev-floating-legend label {
@@ -4681,30 +4715,23 @@ em {
4681
4715
  color: var(--muted-foreground);
4682
4716
  }
4683
4717
 
4684
- .dndev-floating-legend[data-truncate='true'] {
4685
- max-width: calc(100% - var(--gap-md) * 2);
4686
- overflow: hidden;
4687
- text-overflow: ellipsis;
4688
- white-space: nowrap;
4689
- }
4690
-
4691
- /* Remove border from inner input since fieldset has it */
4718
+ /* Disable truncation when explicitly set to false */
4692
4719
 
4693
- .dndev-floating-fieldset .dndev-input {
4694
- border: none;
4695
- border-radius: var(--radius-interactive);
4696
- box-shadow: none;
4720
+ .dndev-floating-legend[data-truncate='false'] {
4721
+ max-width: none;
4722
+ overflow: visible;
4723
+ text-overflow: clip;
4724
+ white-space: normal;
4697
4725
  }
4698
4726
 
4699
- .dndev-floating-fieldset .dndev-input:hover {
4700
- border-color: transparent;
4701
- }
4727
+ /* Input inside fieldset uses bare mode via data-bare attribute (set by Input component) */
4702
4728
 
4703
- .dndev-floating-fieldset .dndev-input:focus,
4704
- .dndev-floating-fieldset .dndev-input:focus-visible {
4705
- border-color: transparent;
4729
+ /* This rule is kept for non-Input children that might need border removal */
4730
+
4731
+ .dndev-floating-fieldset > .dndev-input:not([data-bare]) {
4732
+ border: none;
4706
4733
  box-shadow: none;
4707
- outline: none;
4734
+ background: transparent;
4708
4735
  }
4709
4736
 
4710
4737
  /* packages/components/src/atomic/List/List.css */
@@ -5055,11 +5082,33 @@ em {
5055
5082
  /* packages/components/src/atomic/Pagination/Pagination.css */
5056
5083
 
5057
5084
  .dndev-pagination {
5085
+ display: flex;
5086
+ flex-direction: row;
5087
+ align-items: center;
5088
+ justify-content: space-between;
5089
+ gap: var(--gap-md);
5090
+ width: 100%;
5091
+ }
5092
+
5093
+ .dndev-pagination-info {
5094
+ display: none;
5095
+ }
5096
+
5097
+ .dndev-pagination-size {
5098
+ display: flex;
5099
+ align-items: center;
5100
+ }
5101
+
5102
+ .dndev-pagination-size-label {
5103
+ display: none;
5104
+ }
5105
+
5106
+ .dndev-pagination-nav {
5058
5107
  display: flex;
5059
5108
  align-items: center;
5060
5109
  justify-content: center;
5061
5110
  gap: var(--gap-sm);
5062
- flex-wrap: wrap;
5111
+ width: 100%;
5063
5112
  }
5064
5113
 
5065
5114
  .dndev-pagination-list {
@@ -5071,57 +5120,36 @@ em {
5071
5120
  margin: 0;
5072
5121
  }
5073
5122
 
5074
- .dndev-pagination-item {
5075
- display: flex;
5076
- align-items: center;
5077
- justify-content: center;
5078
- }
5079
-
5080
5123
  .dndev-pagination-button {
5081
- min-width: var(--touch-target);
5124
+ width: var(--touch-target);
5082
5125
  height: var(--touch-target);
5083
- display: flex;
5126
+ padding: 0;
5127
+ flex-shrink: 0;
5128
+ display: inline-flex;
5084
5129
  align-items: center;
5085
5130
  justify-content: center;
5086
- gap: var(--gap-sm);
5087
- border-radius: var(--radius-interactive);
5088
- font-weight: 500;
5089
- transition: var(--transition-fast);
5090
- cursor: pointer;
5091
- border: var(--border-hairline) solid var(--line-2);
5092
- background: transparent;
5093
- color: var(--foreground);
5094
- padding: var(--gap-sm) var(--gap-md);
5095
5131
  }
5096
5132
 
5097
- .dndev-pagination-button:hover:not(:disabled) {
5098
- background: var(--accent);
5099
- color: var(--accent-foreground);
5100
- }
5133
+ /* Desktop: Show all elements in one row */
5101
5134
 
5102
- .dndev-pagination-button:focus-visible {
5103
- outline: 2px solid var(--ring);
5104
- outline-offset: 2px;
5135
+ @media (min-width: 768px) {
5136
+ .dndev-pagination-info,
5137
+ .dndev-pagination-size {
5138
+ display: flex;
5139
+ align-items: center;
5140
+ white-space: nowrap;
5105
5141
  }
5106
5142
 
5107
- .dndev-pagination-button:disabled {
5108
- opacity: var(--opacity-muted);
5109
- cursor: not-allowed;
5143
+ .dndev-pagination-size-label {
5144
+ margin-right: var(--gap-sm);
5110
5145
  }
5111
5146
 
5112
- .dndev-pagination-button[aria-current='page'] {
5113
- background: var(--primary);
5114
- color: var(--primary-foreground);
5115
- border-color: var(--primary);
5147
+ .dndev-pagination-nav {
5148
+ justify-content: flex-end;
5149
+ width: auto;
5150
+ margin-left: auto;
5151
+ /* Push to right */
5116
5152
  }
5117
-
5118
- .dndev-pagination-ellipsis {
5119
- display: flex;
5120
- align-items: center;
5121
- justify-content: center;
5122
- width: var(--touch-target);
5123
- height: var(--touch-target);
5124
- color: var(--muted-foreground);
5125
5153
  }
5126
5154
 
5127
5155
  /* packages/components/src/atomic/Popover/Popover.css */
@@ -5852,8 +5880,12 @@ em {
5852
5880
 
5853
5881
  /* Adjust header padding when drag handle is present (sibling selector) */
5854
5882
 
5855
- .dndev-sheet-content[data-side='bottom'] .dndev-sheet-drag-handle ~ .dndev-sheet-header,
5856
- .dndev-sheet-content[data-side='top'] .dndev-sheet-drag-handle ~ .dndev-sheet-header {
5883
+ .dndev-sheet-content[data-side='bottom']
5884
+ .dndev-sheet-drag-handle
5885
+ ~ .dndev-sheet-header,
5886
+ .dndev-sheet-content[data-side='top']
5887
+ .dndev-sheet-drag-handle
5888
+ ~ .dndev-sheet-header {
5857
5889
  padding-top: 0;
5858
5890
  }
5859
5891
 
@@ -5911,12 +5943,9 @@ em {
5911
5943
  position: relative;
5912
5944
  margin-inline-start: auto;
5913
5945
  /* Push to end (RTL-aware: end = right in LTR, left in RTL) */
5946
+ margin-inline-end: var(--gap-sm);
5947
+ /* Spacing from edge - use margin not padding to keep icon centered */
5914
5948
  opacity: var(--opacity-muted);
5915
- /* No padding - tight spacing */
5916
- padding: 0;
5917
- /* RTL-aware: padding on logical end only */
5918
- padding-inline-end: var(--gap-md);
5919
- padding-inline-start: 0;
5920
5949
  }
5921
5950
 
5922
5951
  .dndev-sheet-close:hover {
@@ -6701,7 +6730,21 @@ em {
6701
6730
  }
6702
6731
 
6703
6732
  .dndev-table-header {
6704
- /* Base header styles */
6733
+ background-color: var(--accent);
6734
+ }
6735
+
6736
+ /* Filter row above header */
6737
+
6738
+ .dndev-table-filter-row {
6739
+ border: 1px solid var(--border);
6740
+ border-bottom: none;
6741
+ }
6742
+
6743
+ .dndev-table-filter-row .dndev-table-head {
6744
+ background-color: var(--muted);
6745
+ padding: var(--gap-xs);
6746
+ height: auto;
6747
+ min-height: auto;
6705
6748
  }
6706
6749
 
6707
6750
  .dndev-table-body {
@@ -6763,22 +6806,34 @@ em {
6763
6806
  padding-block: var(--gap-sm);
6764
6807
  }
6765
6808
 
6766
- .dndev-table-head[data-sortable='true'] {
6809
+ /* Header cells use accent foreground for contrast */
6810
+
6811
+ .dndev-table-header .dndev-table-head {
6812
+ color: var(--accent-foreground);
6813
+ }
6814
+
6815
+ [data-sortable='true']:is(.dndev-table-header .dndev-table-head) {
6767
6816
  cursor: pointer;
6768
6817
  }
6769
6818
 
6770
- .dndev-table-head[data-align='center'] {
6819
+ [data-align='center']:is(.dndev-table-header .dndev-table-head) {
6771
6820
  text-align: center;
6772
6821
  }
6773
6822
 
6774
- .dndev-table-head[data-align='end'] {
6823
+ [data-align='end']:is(.dndev-table-header .dndev-table-head) {
6775
6824
  text-align: end;
6776
6825
  }
6777
6826
 
6778
- .dndev-table-head[data-align='start'] {
6827
+ [data-align='start']:is(.dndev-table-header .dndev-table-head) {
6779
6828
  text-align: start;
6780
6829
  }
6781
6830
 
6831
+ /* Active filter indicator */
6832
+
6833
+ .dndev-table-filter-active {
6834
+ color: var(--primary);
6835
+ }
6836
+
6782
6837
  /* Table cell (td) styles */
6783
6838
 
6784
6839
  .dndev-table-cell {
@@ -6786,6 +6841,7 @@ em {
6786
6841
  padding-inline: var(--gap-md);
6787
6842
  padding-block: var(--gap-sm);
6788
6843
  min-height: var(--touch-target);
6844
+ line-height: 1.5; /* Ensure consistent line height for empty cells */
6789
6845
  }
6790
6846
 
6791
6847
  .dndev-table-cell[data-align='center'] {
@@ -6864,6 +6920,64 @@ em {
6864
6920
  padding-inline-start: calc(var(--gap-md) + var(--icon-md) + var(--gap-sm));
6865
6921
  }
6866
6922
 
6923
+ /* Skeleton rows - apply standard skeleton pulse animation to entire rows */
6924
+
6925
+ /* Keep existing background colors (zebra striping) - just add opacity pulse */
6926
+
6927
+ .dndev-table-body .dndev-table-row.dndev-skeleton-row {
6928
+ animation: dndev-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
6929
+ pointer-events: none;
6930
+
6931
+ /* Keep hover state but disabled (pointer-events: none prevents hover) */
6932
+ }
6933
+
6934
+ :is(.dndev-table-body .dndev-table-row.dndev-skeleton-row):hover {
6935
+ /* Inherit from parent .dndev-table-row hover styles */
6936
+ }
6937
+
6938
+ /* Even rows keep their var(--muted) background, just pulse */
6939
+
6940
+ .dndev-table-body .dndev-table-row.dndev-skeleton-row:nth-child(even) {
6941
+ animation: dndev-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
6942
+ }
6943
+
6944
+ :is(.dndev-table-body .dndev-table-row.dndev-skeleton-row:nth-child(even)):hover {
6945
+ /* Inherit from parent .dndev-table-row:nth-child(even) hover styles */
6946
+ }
6947
+
6948
+ /* Skeleton bars inside cells - adapt to row background for visibility */
6949
+
6950
+ /* Odd rows (transparent background): use default var(--muted) skeleton */
6951
+
6952
+ /* Even rows (var(--muted) background): use lighter skeleton for contrast */
6953
+
6954
+ .dndev-table-body .dndev-table-row.dndev-skeleton-row .dndev-skeleton {
6955
+ background-color: var(--muted);
6956
+ }
6957
+
6958
+ .dndev-table-body
6959
+ .dndev-table-row.dndev-skeleton-row:nth-child(even)
6960
+ .dndev-skeleton {
6961
+ /* Even rows have var(--muted) background, so skeleton should be lighter for contrast */
6962
+ background-color: color-mix(
6963
+ in oklab,
6964
+ var(--muted) 60%,
6965
+ var(--foreground) 40%
6966
+ );
6967
+ }
6968
+
6969
+ /* Use the same pulse animation as standard skeleton (from Skeleton.css) */
6970
+
6971
+ @keyframes dndev-pulse {
6972
+ 0%,
6973
+ 100% {
6974
+ opacity: 1;
6975
+ }
6976
+ 50% {
6977
+ opacity: var(--opacity-muted);
6978
+ }
6979
+ }
6980
+
6867
6981
  /* packages/components/src/atomic/Tabs/Tabs.css */
6868
6982
 
6869
6983
  /* Tabs list: use flexbox for natural wrapping, not grid */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@donotdev/components",
3
- "version": "0.0.13",
3
+ "version": "0.0.14",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "description": "Styled UI components for DoNotDev",