@bridge-ui/vue 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/ai/skills/bridge-ui-components/SKILL.md +3 -1
  2. package/dist/Components/Autocomplete/composables/useAutocomplete.d.ts +1 -1
  3. package/dist/Components/ColorField/composables/useColorField.d.ts +2 -1
  4. package/dist/Components/DataTable/DataTable.js +5 -0
  5. package/dist/Components/DataTable/DataTable.vue.d.ts +43 -0
  6. package/dist/Components/DataTable/DataTable.vue_vue_type_script_setup_true_lang.js +382 -0
  7. package/dist/Components/DataTable/DataTableCellContent.js +5 -0
  8. package/dist/Components/DataTable/DataTableCellContent.vue.d.ts +23 -0
  9. package/dist/Components/DataTable/DataTableCellContent.vue_vue_type_script_setup_true_lang.js +38 -0
  10. package/dist/Components/DataTable/DataTableColumnsMenu.js +5 -0
  11. package/dist/Components/DataTable/DataTableColumnsMenu.vue.d.ts +11 -0
  12. package/dist/Components/DataTable/DataTableColumnsMenu.vue_vue_type_script_setup_true_lang.js +47 -0
  13. package/dist/Components/DataTable/DataTableFilterMenu.js +5 -0
  14. package/dist/Components/DataTable/DataTableFilterMenu.vue.d.ts +17 -0
  15. package/dist/Components/DataTable/DataTableFilterMenu.vue_vue_type_script_setup_true_lang.js +132 -0
  16. package/dist/Components/DataTable/DataTableFilterOptions.js +5 -0
  17. package/dist/Components/DataTable/DataTableFilterOptions.vue.d.ts +14 -0
  18. package/dist/Components/DataTable/DataTableFilterOptions.vue_vue_type_script_setup_true_lang.js +73 -0
  19. package/dist/Components/DataTable/DataTableSearch.js +5 -0
  20. package/dist/Components/DataTable/DataTableSearch.vue.d.ts +12 -0
  21. package/dist/Components/DataTable/DataTableSearch.vue_vue_type_script_setup_true_lang.js +39 -0
  22. package/dist/Components/DataTable/DataTableSelection.js +5 -0
  23. package/dist/Components/DataTable/DataTableSelection.vue.d.ts +20 -0
  24. package/dist/Components/DataTable/DataTableSelection.vue_vue_type_script_setup_true_lang.js +55 -0
  25. package/dist/Components/DataTable/DataTableSortButton.js +5 -0
  26. package/dist/Components/DataTable/DataTableSortButton.vue.d.ts +17 -0
  27. package/dist/Components/DataTable/DataTableSortButton.vue_vue_type_script_setup_true_lang.js +43 -0
  28. package/dist/Components/DataTable/DataTableToolbarButton.js +5 -0
  29. package/dist/Components/DataTable/DataTableToolbarButton.vue.d.ts +13 -0
  30. package/dist/Components/DataTable/DataTableToolbarButton.vue_vue_type_script_setup_true_lang.js +31 -0
  31. package/dist/Components/DataTable/composables/useDataTable.d.ts +557 -0
  32. package/dist/Components/DataTable/composables/useDataTable.js +479 -0
  33. package/dist/Components/DataTable/dataTable.types.d.ts +480 -0
  34. package/dist/Components/DataTable/index.d.ts +3 -0
  35. package/dist/Components/DataTable/index.js +3 -0
  36. package/dist/Components/DateField/composables/useDateField.d.ts +2 -1
  37. package/dist/Components/DateRangeField/composables/useDateRangeField.d.ts +2 -1
  38. package/dist/Components/DateTimeField/composables/useDateTimeField.d.ts +2 -1
  39. package/dist/Components/DateTimeRangeField/composables/useDateTimeRangeField.d.ts +2 -1
  40. package/dist/Components/FormField/composables/useFormField.d.ts +1 -1
  41. package/dist/Components/Menu/Menu.vue_vue_type_script_setup_true_lang.js +1 -0
  42. package/dist/Components/Menu/composables/useMenu.d.ts +1 -1
  43. package/dist/Components/Menu/composables/useMenu.js +7 -3
  44. package/dist/Components/Menu/menu.types.d.ts +6 -0
  45. package/dist/Components/NumberField/composables/useNumberField.d.ts +1 -1
  46. package/dist/Components/PasswordField/composables/usePasswordField.d.ts +1 -1
  47. package/dist/Components/Radio/Radio.vue_vue_type_script_setup_true_lang.js +9 -9
  48. package/dist/Components/Radio/composables/useRadio.js +57 -54
  49. package/dist/Components/Select/composables/useSelect.d.ts +1 -1
  50. package/dist/Components/Slider/composables/useSlider.d.ts +2 -2
  51. package/dist/Components/Snackbar/composables/useSnackbar.d.ts +1 -1
  52. package/dist/Components/Table/Table.js +5 -0
  53. package/dist/Components/Table/Table.vue.d.ts +16 -0
  54. package/dist/Components/Table/Table.vue_vue_type_script_setup_true_lang.js +44 -0
  55. package/dist/Components/Table/TableBody.js +5 -0
  56. package/dist/Components/Table/TableBody.vue.d.ts +11 -0
  57. package/dist/Components/Table/TableBody.vue_vue_type_script_setup_true_lang.js +17 -0
  58. package/dist/Components/Table/TableCaption.js +5 -0
  59. package/dist/Components/Table/TableCaption.vue.d.ts +11 -0
  60. package/dist/Components/Table/TableCaption.vue_vue_type_script_setup_true_lang.js +17 -0
  61. package/dist/Components/Table/TableCell.js +5 -0
  62. package/dist/Components/Table/TableCell.vue.d.ts +11 -0
  63. package/dist/Components/Table/TableCell.vue_vue_type_script_setup_true_lang.js +19 -0
  64. package/dist/Components/Table/TableFooter.js +5 -0
  65. package/dist/Components/Table/TableFooter.vue.d.ts +11 -0
  66. package/dist/Components/Table/TableFooter.vue_vue_type_script_setup_true_lang.js +17 -0
  67. package/dist/Components/Table/TableHead.js +5 -0
  68. package/dist/Components/Table/TableHead.vue.d.ts +11 -0
  69. package/dist/Components/Table/TableHead.vue_vue_type_script_setup_true_lang.js +19 -0
  70. package/dist/Components/Table/TableHeader.js +5 -0
  71. package/dist/Components/Table/TableHeader.vue.d.ts +11 -0
  72. package/dist/Components/Table/TableHeader.vue_vue_type_script_setup_true_lang.js +17 -0
  73. package/dist/Components/Table/TableRow.js +5 -0
  74. package/dist/Components/Table/TableRow.vue.d.ts +11 -0
  75. package/dist/Components/Table/TableRow.vue_vue_type_script_setup_true_lang.js +17 -0
  76. package/dist/Components/Table/composables/useTable.d.ts +16 -0
  77. package/dist/Components/Table/composables/useTable.js +88 -0
  78. package/dist/Components/Table/composables/useTableCell.d.ts +12 -0
  79. package/dist/Components/Table/composables/useTableCell.js +40 -0
  80. package/dist/Components/Table/composables/useTablePart.d.ts +12 -0
  81. package/dist/Components/Table/composables/useTablePart.js +32 -0
  82. package/dist/Components/Table/composables/useTableRow.d.ts +6 -0
  83. package/dist/Components/Table/composables/useTableRow.js +29 -0
  84. package/dist/Components/Table/index.d.ts +14 -0
  85. package/dist/Components/Table/index.js +14 -0
  86. package/dist/Components/Table/table.types.d.ts +416 -0
  87. package/dist/Components/Table/tableInjectionKey.d.ts +114 -0
  88. package/dist/Components/Table/tableInjectionKey.js +4 -0
  89. package/dist/Components/TextField/composables/useTextField.d.ts +1 -1
  90. package/dist/Components/Textarea/composables/useTextarea.d.ts +1 -1
  91. package/dist/Components/TimeField/composables/useTimeField.d.ts +2 -1
  92. package/dist/Components/TimeRangeField/composables/useTimeRangeField.d.ts +2 -1
  93. package/docs/README.md +2 -0
  94. package/docs/components/CalendarDate.md +1 -1
  95. package/docs/components/DataTable.md +345 -0
  96. package/docs/components/DateField.md +2 -2
  97. package/docs/components/DatePicker.md +3 -3
  98. package/docs/components/DateRangePicker.md +1 -1
  99. package/docs/components/Pagination.md +2 -2
  100. package/docs/components/Table.md +122 -0
  101. package/docs/examples/i18n-dictionary.ts +4 -0
  102. package/docs/examples/icon-fontawesome.ts +8 -0
  103. package/docs/examples/icon-heroicons.ts +8 -0
  104. package/docs/examples/icon-lucide.ts +8 -0
  105. package/docs/examples/icon-phosphor.ts +8 -0
  106. package/docs/examples/icon-tabler.ts +8 -0
  107. package/package.json +9 -2
@@ -0,0 +1,122 @@
1
+ # Table
2
+
3
+ Presentational table primitives for static or lightly interactive tabular data. Compose with `TableHeader`, `TableBody`, `TableRow`, `TableHead`, and `TableCell`. Sorting, selection, and pagination live on `DataTable`.
4
+
5
+ ## Import
6
+
7
+ ```ts
8
+ import {
9
+ Table,
10
+ TableBody,
11
+ TableCaption,
12
+ TableCell,
13
+ TableFooter,
14
+ TableHead,
15
+ TableHeader,
16
+ TableRow,
17
+ } from "@bridge-ui/vue/Components/Table";
18
+ ```
19
+
20
+ ## Examples
21
+
22
+ ### Usage
23
+
24
+ ```vue
25
+ <Table>
26
+ <TableHeader>
27
+ <TableRow>
28
+ <TableHead>Name</TableHead>
29
+ <TableHead>Role</TableHead>
30
+ <TableHead>Status</TableHead>
31
+ </TableRow>
32
+ </TableHeader>
33
+ <TableBody>
34
+ <TableRow>
35
+ <TableCell>Ada Lovelace</TableCell>
36
+ <TableCell>Engineer</TableCell>
37
+ <TableCell>Active</TableCell>
38
+ </TableRow>
39
+ </TableBody>
40
+ </Table>
41
+ ```
42
+
43
+ ### Variants
44
+
45
+ Same three chrome treatments as `DataTable`. Pair with `Pagination` under the table (Table does not render pagination itself):
46
+
47
+ ```vue
48
+ <Table variant="plain" />
49
+ <Pagination :count="12" v-model="page" variant="text" />
50
+
51
+ <Table variant="ghost" />
52
+ <Pagination :count="12" v-model="page" variant="ghost" />
53
+
54
+ <Table variant="bordered" />
55
+ <Pagination :count="12" v-model="page" variant="outlined" />
56
+ ```
57
+
58
+ | Table `variant` | Pagination `variant` |
59
+ | --------------- | -------------------- |
60
+ | `plain` | `text` |
61
+ | `ghost` | `ghost` |
62
+ | `bordered` | `outlined` |
63
+
64
+ `striped` is independent of variant (same as `hoverable`):
65
+
66
+ ```vue
67
+ <Table striped variant="bordered" />
68
+ ```
69
+
70
+ ### Rounded
71
+
72
+ Corner radius on the wrapper, header, and footer. Default `lg`.
73
+
74
+ ```vue
75
+ <Table rounded="none" />
76
+ <Table rounded="xl" variant="ghost" />
77
+ ```
78
+
79
+ ### Dense + sticky header
80
+
81
+ `sticky-header` pins header cells to the nearest scrollport (usually the page). The wrapper skips overflow so the header can stick. For a boxed scroll area, set `overflow-auto` and a max height on `classes.root`.
82
+
83
+ ```vue
84
+ <Table sticky-header size="sm" />
85
+ ```
86
+
87
+ ### Numeric cells
88
+
89
+ ```vue
90
+ <Table>
91
+ <TableHeader>
92
+ <TableRow>
93
+ <TableHead>Name</TableHead>
94
+ <TableHead numeric>Score</TableHead>
95
+ </TableRow>
96
+ </TableHeader>
97
+ <TableBody>
98
+ <TableRow>
99
+ <TableCell>Ada</TableCell>
100
+ <TableCell numeric>12</TableCell>
101
+ </TableRow>
102
+ </TableBody>
103
+ </Table>
104
+ ```
105
+
106
+ ### Caption
107
+
108
+ ```vue
109
+ <Table>
110
+ <TableCaption>Team roster</TableCaption>
111
+ <TableHeader>
112
+ <TableRow>
113
+ <TableHead>Name</TableHead>
114
+ </TableRow>
115
+ </TableHeader>
116
+ <TableBody>
117
+ <TableRow>
118
+ <TableCell>Ada Lovelace</TableCell>
119
+ </TableRow>
120
+ </TableBody>
121
+ </Table>
122
+ ```
@@ -20,6 +20,10 @@ const MESSAGES: Record<string, Record<string, string>> = {
20
20
  "en-US": {},
21
21
  "pt-BR": {
22
22
  "Close": "Fechar",
23
+ "Columns": "Colunas",
24
+ "Search": "Pesquisar",
25
+ "No data": "Sem dados",
26
+ "Per page:": "Por página:",
23
27
  "Loading...": "Carregando...",
24
28
  "No options": "Nenhuma opção",
25
29
  "Hide password": "Ocultar senha",
@@ -22,10 +22,14 @@ import {
22
22
  faCircleInfo,
23
23
  faCircleXmark,
24
24
  faClock,
25
+ faDownload,
25
26
  faEye,
26
27
  faEyeSlash,
28
+ faFilter,
29
+ faMagnifyingGlass,
27
30
  faPalette,
28
31
  faSpinner,
32
+ faTableColumns,
29
33
  faTriangleExclamation,
30
34
  faUpDown,
31
35
  faUser,
@@ -90,15 +94,19 @@ const icons = {
90
94
  clear: faXmark,
91
95
  check: faCheck,
92
96
  clock: faClock,
97
+ filter: faFilter,
93
98
  loader: faSpinner,
94
99
  info: faCircleInfo,
95
100
  eyeOff: faEyeSlash,
96
101
  palette: faPalette,
97
102
  error: faCircleXmark,
103
+ download: faDownload,
98
104
  success: faCircleCheck,
99
105
  chevronUp: faChevronUp,
106
+ columns: faTableColumns,
100
107
  chevronUpDown: faUpDown,
101
108
  calendar: faCalendarDays,
109
+ search: faMagnifyingGlass,
102
110
  alert: faCircleExclamation,
103
111
  chevronDown: faChevronDown,
104
112
  chevronLeft: faChevronLeft,
@@ -6,6 +6,7 @@
6
6
 
7
7
  // ** External Imports
8
8
  import {
9
+ ArrowDownTrayIcon,
9
10
  ArrowPathIcon,
10
11
  BellIcon,
11
12
  CalendarDaysIcon,
@@ -21,9 +22,12 @@ import {
21
22
  ExclamationTriangleIcon,
22
23
  EyeIcon,
23
24
  EyeSlashIcon,
25
+ FunnelIcon,
24
26
  InformationCircleIcon,
27
+ MagnifyingGlassIcon,
25
28
  SwatchIcon,
26
29
  UserIcon,
30
+ ViewColumnsIcon,
27
31
  XCircleIcon,
28
32
  XMarkIcon,
29
33
  } from "@heroicons/vue/24/outline";
@@ -40,12 +44,16 @@ const icons = {
40
44
  check: CheckIcon,
41
45
  clock: ClockIcon,
42
46
  error: XCircleIcon,
47
+ filter: FunnelIcon,
43
48
  palette: SwatchIcon,
44
49
  eyeOff: EyeSlashIcon,
45
50
  loader: ArrowPathIcon,
46
51
  success: CheckCircleIcon,
47
52
  chevronUp: ChevronUpIcon,
53
+ columns: ViewColumnsIcon,
48
54
  calendar: CalendarDaysIcon,
55
+ download: ArrowDownTrayIcon,
56
+ search: MagnifyingGlassIcon,
49
57
  info: InformationCircleIcon,
50
58
  alert: ExclamationCircleIcon,
51
59
  chevronDown: ChevronDownIcon,
@@ -18,11 +18,15 @@ import {
18
18
  CircleCheck,
19
19
  CircleX,
20
20
  Clock,
21
+ Columns3,
22
+ Download,
21
23
  Eye,
22
24
  EyeOff,
25
+ Filter,
23
26
  Info,
24
27
  Loader2,
25
28
  Palette,
29
+ Search,
26
30
  TriangleAlert,
27
31
  User,
28
32
  X,
@@ -42,10 +46,14 @@ const icons = {
42
46
  clock: Clock,
43
47
  error: CircleX,
44
48
  eyeOff: EyeOff,
49
+ filter: Filter,
50
+ search: Search,
45
51
  loader: Loader2,
46
52
  palette: Palette,
53
+ columns: Columns3,
47
54
  alert: CircleAlert,
48
55
  calendar: Calendar,
56
+ download: Download,
49
57
  success: CircleCheck,
50
58
  chevronUp: ChevronUp,
51
59
  warning: TriangleAlert,
@@ -16,9 +16,13 @@ import {
16
16
  PhCheck,
17
17
  PhCheckCircle,
18
18
  PhClock,
19
+ PhColumns,
20
+ PhDownloadSimple,
19
21
  PhEye,
20
22
  PhEyeSlash,
23
+ PhFunnel,
21
24
  PhInfo,
25
+ PhMagnifyingGlass,
22
26
  PhPalette,
23
27
  PhSpinnerGap,
24
28
  PhUser,
@@ -41,6 +45,8 @@ const icons = {
41
45
  check: PhCheck,
42
46
  clock: PhClock,
43
47
  error: PhXCircle,
48
+ filter: PhFunnel,
49
+ columns: PhColumns,
44
50
  eyeOff: PhEyeSlash,
45
51
  palette: PhPalette,
46
52
  warning: PhWarning,
@@ -51,6 +57,8 @@ const icons = {
51
57
  chevronDown: PhCaretDown,
52
58
  chevronLeft: PhCaretLeft,
53
59
  calendar: PhCalendarDots,
60
+ search: PhMagnifyingGlass,
61
+ download: PhDownloadSimple,
54
62
  chevronRight: PhCaretRight,
55
63
  chevronUpDown: PhCaretUpDown,
56
64
  } satisfies Record<SemanticIconName, unknown>;
@@ -18,11 +18,15 @@ import {
18
18
  IconCircleCheck,
19
19
  IconCircleX,
20
20
  IconClock,
21
+ IconColumns3,
22
+ IconDownload,
21
23
  IconEye,
22
24
  IconEyeOff,
25
+ IconFilter,
23
26
  IconInfoCircle,
24
27
  IconLoader2,
25
28
  IconPalette,
29
+ IconSearch,
26
30
  IconSelector,
27
31
  IconUser,
28
32
  IconX,
@@ -41,10 +45,14 @@ const icons = {
41
45
  clock: IconClock,
42
46
  error: IconCircleX,
43
47
  eyeOff: IconEyeOff,
48
+ filter: IconFilter,
49
+ search: IconSearch,
44
50
  loader: IconLoader2,
45
51
  info: IconInfoCircle,
46
52
  palette: IconPalette,
53
+ columns: IconColumns3,
47
54
  alert: IconAlertCircle,
55
+ download: IconDownload,
48
56
  success: IconCircleCheck,
49
57
  chevronUp: IconChevronUp,
50
58
  warning: IconAlertTriangle,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "license": "MIT",
4
- "version": "0.2.0",
4
+ "version": "0.3.0",
5
5
  "author": "BridgeUI",
6
6
  "sideEffects": false,
7
7
  "name": "@bridge-ui/vue",
@@ -80,10 +80,16 @@
80
80
  "docs"
81
81
  ],
82
82
  "peerDependencies": {
83
+ "@tanstack/vue-table": "^8.21.0",
83
84
  "vue": "^3.4.0"
84
85
  },
86
+ "peerDependenciesMeta": {
87
+ "@tanstack/vue-table": {
88
+ "optional": true
89
+ }
90
+ },
85
91
  "dependencies": {
86
- "@bridge-ui/core": "^0.2.0",
92
+ "@bridge-ui/core": "^0.3.0",
87
93
  "clsx": "^2.1.1",
88
94
  "es-toolkit": "^1.50.0",
89
95
  "tailwind-merge": "^3.6.0"
@@ -107,6 +113,7 @@
107
113
  "@tabler/icons-vue": "^3.46.0",
108
114
  "@tailwindcss/cli": "^4.3.3",
109
115
  "@tailwindcss/vite": "^4.3.3",
116
+ "@tanstack/vue-table": "^8.21.3",
110
117
  "@types/luxon": "^3.7.4",
111
118
  "@types/node": "^24.13.3",
112
119
  "@vue/language-core": "^3.3.9",